{"version":3,"names":[],"mappings":"","sources":["bundle.min.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.MyApp = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\nvar process = module.exports = {};\n\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; \nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],2:[function(require,module,exports){\n(function (process){(function (){\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = require('react');\nvar Scheduler = require('scheduler');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar suppressWarning = false;\nfunction setSuppressWarning(newSuppressWarning) {\n {\n suppressWarning = newSuppressWarning;\n }\n} \n\nfunction warn(format) {\n {\n if (!suppressWarning) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n if (!suppressWarning) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } \n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); \n\n argsWithFormat.unshift('Warning: ' + format); \n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; \n\nvar HostRoot = 3; \n\nvar HostPortal = 4; \n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar ScopeComponent = 21;\nvar OffscreenComponent = 22;\nvar LegacyHiddenComponent = 23;\nvar CacheComponent = 24;\nvar TracingMarkerComponent = 25;\n\n\nvar enableClientRenderFallbackOnTextMismatch = true; \n\nvar enableNewReconciler = false; \n\nvar enableLazyContextPropagation = false; \n\nvar enableLegacyHidden = false; \n\nvar enableSuspenseAvoidThisFallback = false; \n\nvar disableCommentsAsDOMContainers = true; \n\nvar enableCustomElementPropertySupport = false; \nvar warnAboutStringRefs = true; \n\nvar enableSchedulingProfiler = true; \n\nvar enableProfilerTimer = true; \n\nvar enableProfilerCommitHooks = true; \n\nvar allNativeEvents = new Set();\n\n\nvar registrationNameDependencies = {};\n\nvar possibleRegistrationNames = {} ; \n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n {\n if (registrationNameDependencies[registrationName]) {\n error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n }\n }\n\n registrationNameDependencies[registrationName] = dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n\n for (var i = 0; i < dependencies.length; i++) {\n allNativeEvents.add(dependencies[i]);\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction typeName(value) {\n {\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} \n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n return '' + value;\n}\n\nfunction checkAttributeStringCoercion(value, attributeName) {\n {\n if (willCoercionThrow(value)) {\n error('The provided `%s` attribute is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', attributeName, typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\nfunction checkPropStringCoercion(value, propName) {\n {\n if (willCoercionThrow(value)) {\n error('The provided `%s` prop is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', propName, typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\nfunction checkCSSPropertyStringCoercion(value, propName) {\n {\n if (willCoercionThrow(value)) {\n error('The provided `%s` CSS property is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', propName, typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\nfunction checkHtmlStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided HTML markup uses a value of unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\nfunction checkFormFieldValueStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('Form field values (value, checked, defaultValue, or defaultChecked props)' + ' must be strings, not %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\n\nvar RESERVED = 0; \n\nvar STRING = 1; \n\nvar BOOLEANISH_STRING = 2; \n\nvar BOOLEAN = 3; \n\nvar OVERLOADED_BOOLEAN = 4; \n\nvar NUMERIC = 5; \n\nvar POSITIVE_NUMERIC = 6;\n\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': \n\n case 'symbol':\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n\n return false;\n }\n\n if (propertyInfo !== null) {\n\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} \n\n\nvar properties = {}; \n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', \n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\n\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, \n name, \n null, \n false, \n false);\n}); \n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, \n attributeName, \n null, \n false, \n false);\n}); \n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, \n name.toLowerCase(), \n null, \n false, \n false);\n}); \n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, \n name, \n null, \n false, \n false);\n}); \n\n['allowFullScreen', 'async', \n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', \n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, \n name.toLowerCase(), \n null, \n false, \n false);\n}); \n\n['checked', \n'multiple', 'muted', 'selected' \n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, \n name, \n null, \n false, \n false);\n}); \n\n['capture', 'download' \n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, \n name, \n null, \n false, \n false);\n}); \n\n['cols', 'rows', 'size', 'span' \n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, \n name, \n null, \n false, \n false);\n}); \n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, \n name.toLowerCase(), \n null, \n false, \n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; \n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' \n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, \n attributeName, null, \n false, \n false);\n}); \n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' \n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, \n attributeName, 'http://www.w3.org/1999/xlink', false, \n false);\n}); \n\n['xml:base', 'xml:lang', 'xml:space' \n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, \n attributeName, 'http://www.w3.org/XML/1998/namespace', false, \n false);\n}); \n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, \n attributeName.toLowerCase(), \n null, \n false, \n false);\n}); \n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, \n'xlink:href', 'http://www.w3.org/1999/xlink', true, \nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, \n attributeName.toLowerCase(), \n null, \n true, \n true);\n});\n\n\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n {\n checkAttributeStringCoercion(expected, name);\n }\n\n if ( propertyInfo.sanitizeURL) {\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n } \n\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n return expected;\n } \n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue; \n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n\nfunction getValueForAttribute(node, name, expected, isCustomComponentTag) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n {\n checkAttributeStringCoercion(expected, name);\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n }\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n {\n checkAttributeStringCoercion(value, name);\n }\n\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n node[propertyName] = value;\n }\n\n return;\n } \n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n attributeValue = '';\n } else {\n {\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_SCOPE_TYPE = Symbol.for('react.scope');\nvar REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for('react.debug_trace_mode');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden');\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\nvar REACT_TRACING_MARKER_TYPE = Symbol.for('react.tracing_marker');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; \n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; \n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; \n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } \n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; \n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; \n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n }; \n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n if (sample && control && typeof sample.stack === 'string') {\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n if (sampleLines[s] !== controlLines[c]) {\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; \n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); \n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } \n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } \n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nfunction describeFiber(fiber) {\n var owner = fiber._debugOwner ? fiber._debugOwner.type : null ;\n var source = fiber._debugSource ;\n\n switch (fiber.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(fiber.type);\n\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(fiber.type);\n\n case ForwardRef:\n return describeFunctionComponentFrame(fiber.type.render);\n\n case ClassComponent:\n return describeClassComponentFrame(fiber.type);\n\n default:\n return '';\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} \n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} \n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n }\n }\n\n return null;\n}\n\nfunction getWrappedName$1(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n} \n\n\nfunction getContextName$1(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentNameFromFiber(fiber) {\n var tag = fiber.tag,\n type = fiber.type;\n\n switch (tag) {\n case CacheComponent:\n return 'Cache';\n\n case ContextConsumer:\n var context = type;\n return getContextName$1(context) + '.Consumer';\n\n case ContextProvider:\n var provider = type;\n return getContextName$1(provider._context) + '.Provider';\n\n case DehydratedFragment:\n return 'DehydratedFragment';\n\n case ForwardRef:\n return getWrappedName$1(type, type.render, 'ForwardRef');\n\n case Fragment:\n return 'Fragment';\n\n case HostComponent:\n return type;\n\n case HostPortal:\n return 'Portal';\n\n case HostRoot:\n return 'Root';\n\n case HostText:\n return 'Text';\n\n case LazyComponent:\n return getComponentNameFromType(type);\n\n case Mode:\n if (type === REACT_STRICT_MODE_TYPE) {\n return 'StrictMode';\n }\n\n return 'Mode';\n\n case OffscreenComponent:\n return 'Offscreen';\n\n case Profiler:\n return 'Profiler';\n\n case ScopeComponent:\n return 'Scope';\n\n case SuspenseComponent:\n return 'Suspense';\n\n case SuspenseListComponent:\n return 'SuspenseList';\n\n case TracingMarkerComponent:\n return 'TracingMarker';\n\n case ClassComponent:\n case FunctionComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n case MemoComponent:\n case SimpleMemoComponent:\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n break;\n\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentNameFromFiber(owner);\n }\n }\n\n return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } \n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\n\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame.getCurrentStack = fiber === null ? null : getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction getCurrentFiber() {\n {\n return current;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\n\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n\n case 'object':\n {\n checkFormFieldValueStringCoercion(value);\n }\n\n return value;\n\n default:\n return '';\n }\n}\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n }\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n {\n checkFormFieldValueStringCoercion(node[valueField]);\n }\n\n var currentValue = '' + node[valueField]; \n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n {\n checkFormFieldValueStringCoercion(value);\n }\n\n currentValue = '' + value;\n set.call(this, value);\n }\n }); \n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n {\n checkFormFieldValueStringCoercion(value);\n }\n\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } \n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); \n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n var hostProps = assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n checkControlledValueProps('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || \n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n node.removeAttribute('value');\n return;\n }\n\n {\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; \n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; \n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); \n\n if (!isHydrating) {\n {\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n node.defaultValue = initialValue;\n }\n } \n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } \n\n\n {\n checkAttributeStringCoercion(name, 'name');\n }\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } \n\n\n var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n if (!otherProps) {\n throw new Error('ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.');\n } \n\n\n updateValueIfChanged(otherNode); \n\n updateWrapper(otherNode, otherProps);\n }\n }\n} \n\n\nfunction setDefaultValue(node, type, value) {\n if ( \n type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\nvar didWarnInvalidInnerHTML = false;\n\nfunction validateProps(element, props) {\n {\n if (props.value == null) {\n if (typeof props.children === 'object' && props.children !== null) {\n React.Children.forEach(props.children, function (child) {\n if (child == null) {\n return;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\n return;\n }\n\n if (!didWarnInvalidChild) {\n didWarnInvalidChild = true;\n\n error('Cannot infer the option value of complex children. ' + 'Pass a `value` prop or use a plain string as children to <option>.');\n }\n });\n } else if (props.dangerouslySetInnerHTML != null) {\n if (!didWarnInvalidInnerHTML) {\n didWarnInvalidInnerHTML = true;\n\n error('Pass a `value` prop if you set dangerouslyInnerHTML so React knows ' + 'which value should be selected.');\n }\n }\n } \n\n\n if (props.selected != null && !didWarnSelectedSetOnOption) {\n error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n didWarnSelectedSetOnOption = true;\n }\n }\n}\nfunction postMountWrapper$1(element, props) {\n if (props.value != null) {\n element.setAttribute('value', toString(getToStringValue(props.value)));\n }\n}\n\nvar isArrayImpl = Array.isArray; \n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n return '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\nfunction checkSelectPropTypes(props) {\n {\n checkControlledValueProps('select', props);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n\n if (props[propName] == null) {\n continue;\n }\n\n var propNameIsArray = isArray(props[propName]);\n\n if (props.multiple && !propNameIsArray) {\n error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n } else if (!props.multiple && propNameIsArray) {\n error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n }\n }\n }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n var options = node.options;\n\n if (multiple) {\n var selectedValues = propValue;\n var selectedValue = {};\n\n for (var i = 0; i < selectedValues.length; i++) {\n selectedValue['$' + selectedValues[i]] = true;\n }\n\n for (var _i = 0; _i < options.length; _i++) {\n var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n if (options[_i].selected !== selected) {\n options[_i].selected = selected;\n }\n\n if (selected && setDefaultSelected) {\n options[_i].defaultSelected = true;\n }\n }\n } else {\n var _selectedValue = toString(getToStringValue(propValue));\n\n var defaultSelected = null;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n if (options[_i2].value === _selectedValue) {\n options[_i2].selected = true;\n\n if (setDefaultSelected) {\n options[_i2].defaultSelected = true;\n }\n\n return;\n }\n\n if (defaultSelected === null && !options[_i2].disabled) {\n defaultSelected = options[_i2];\n }\n }\n\n if (defaultSelected !== null) {\n defaultSelected.selected = true;\n }\n }\n}\n\n\nfunction getHostProps$1(element, props) {\n return assign({}, props, {\n value: undefined\n });\n}\nfunction initWrapperState$1(element, props) {\n var node = element;\n\n {\n checkSelectPropTypes(props);\n }\n\n node._wrapperState = {\n wasMultiple: !!props.multiple\n };\n\n {\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components');\n\n didWarnValueDefaultValue$1 = true;\n }\n }\n}\nfunction postMountWrapper$2(element, props) {\n var node = element;\n node.multiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n }\n}\nfunction postUpdateWrapper(element, props) {\n var node = element;\n var wasMultiple = node._wrapperState.wasMultiple;\n node._wrapperState.wasMultiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (wasMultiple !== !!props.multiple) {\n if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n } else {\n updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n }\n }\n}\nfunction restoreControlledState$1(element, props) {\n var node = element;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n }\n}\n\nvar didWarnValDefaultVal = false;\n\nfunction getHostProps$2(element, props) {\n var node = element;\n\n if (props.dangerouslySetInnerHTML != null) {\n throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');\n } \n\n\n var hostProps = assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: toString(node._wrapperState.initialValue)\n });\n\n return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n var node = element;\n\n {\n checkControlledValueProps('textarea', props);\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n didWarnValDefaultVal = true;\n }\n }\n\n var initialValue = props.value; \n\n if (initialValue == null) {\n var children = props.children,\n defaultValue = props.defaultValue;\n\n if (children != null) {\n {\n error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n\n {\n if (defaultValue != null) {\n throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');\n }\n\n if (isArray(children)) {\n if (children.length > 1) {\n throw new Error('<textarea> can only have at most one child.');\n }\n\n children = children[0];\n }\n\n defaultValue = children;\n }\n }\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n initialValue = defaultValue;\n }\n\n node._wrapperState = {\n initialValue: getToStringValue(initialValue)\n };\n}\nfunction updateWrapper$1(element, props) {\n var node = element;\n var value = getToStringValue(props.value);\n var defaultValue = getToStringValue(props.defaultValue);\n\n if (value != null) {\n var newValue = toString(value); \n\n if (newValue !== node.value) {\n node.value = newValue;\n }\n\n if (props.defaultValue == null && node.defaultValue !== newValue) {\n node.defaultValue = newValue;\n }\n }\n\n if (defaultValue != null) {\n node.defaultValue = toString(defaultValue);\n }\n}\nfunction postMountWrapper$3(element, props) {\n var node = element; \n\n var textContent = node.textContent; \n\n if (textContent === node._wrapperState.initialValue) {\n if (textContent !== '' && textContent !== null) {\n node.value = textContent;\n }\n }\n}\nfunction restoreControlledState$2(element, props) {\n updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; \n\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n\n case 'math':\n return MATH_NAMESPACE;\n\n default:\n return HTML_NAMESPACE;\n }\n}\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n return getIntrinsicNamespace(type);\n }\n\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n return HTML_NAMESPACE;\n } \n\n\n return parentNamespace;\n}\n\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nvar reusableSVGContainer;\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n if (node.namespaceURI === SVG_NAMESPACE) {\n\n if (!('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n\n return;\n }\n }\n\n node.innerHTML = html;\n});\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n firstChild.nodeValue = text;\n return;\n }\n }\n\n node.textContent = text;\n};\n\nvar shorthandToLonghand = {\n animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n columns: ['columnCount', 'columnWidth'],\n flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n flexFlow: ['flexDirection', 'flexWrap'],\n font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n gap: ['columnGap', 'rowGap'],\n grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n gridColumnGap: ['columnGap'],\n gridGap: ['columnGap', 'rowGap'],\n gridRow: ['gridRowEnd', 'gridRowStart'],\n gridRowGap: ['rowGap'],\n gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n marker: ['markerEnd', 'markerMid', 'markerStart'],\n mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n maskPosition: ['maskPositionX', 'maskPositionY'],\n outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n overflow: ['overflowX', 'overflowY'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n placeContent: ['alignContent', 'justifyContent'],\n placeItems: ['alignItems', 'justifyItems'],\n placeSelf: ['alignSelf', 'justifySelf'],\n textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n wordWrap: ['overflowWrap']\n};\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; \n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; \n }\n\n {\n checkCSSPropertyStringCoercion(value, name);\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g; \n\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported style property %s. Did you mean %s?', name, \n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n\n error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n\n error('`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n\n error('`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n\n\nfunction createDangerousStringForStyles(styles) {\n {\n var serialized = '';\n var delimiter = '';\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var styleValue = styles[styleName];\n\n if (styleValue != null) {\n var isCustomProperty = styleName.indexOf('--') === 0;\n serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n delimiter = ';';\n }\n }\n\n return serialized || null;\n }\n}\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styles[styleName]);\n }\n }\n\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nfunction isValueEmpty(value) {\n return value == null || typeof value === 'boolean' || value === '';\n}\n\n\nfunction expandShorthandMap(styles) {\n var expanded = {};\n\n for (var key in styles) {\n var longhands = shorthandToLonghand[key] || [key];\n\n for (var i = 0; i < longhands.length; i++) {\n expanded[longhands[i]] = key;\n }\n }\n\n return expanded;\n}\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n {\n if (!nextStyles) {\n return;\n }\n\n var expandedUpdates = expandShorthandMap(styleUpdates);\n var expandedStyles = expandShorthandMap(nextStyles);\n var warnedAbout = {};\n\n for (var key in expandedUpdates) {\n var originalKey = expandedUpdates[key];\n var correctOriginalKey = expandedStyles[key];\n\n if (correctOriginalKey && originalKey !== correctOriginalKey) {\n var warningKey = originalKey + ',' + correctOriginalKey;\n\n if (warnedAbout[warningKey]) {\n continue;\n }\n\n warnedAbout[warningKey] = true;\n\n error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n }\n }\n }\n}\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true \n\n};\n\n\nvar voidElementTags = assign({\n menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n } \n\n\n if (voidElementTags[tag]) {\n if (props.children != null || props.dangerouslySetInnerHTML != null) {\n throw new Error(tag + \" is a void element tag and must neither have `children` nor \" + 'use `dangerouslySetInnerHTML`.');\n }\n }\n\n if (props.dangerouslySetInnerHTML != null) {\n if (props.children != null) {\n throw new Error('Can only set one of `children` or `props.dangerouslySetInnerHTML`.');\n }\n\n if (typeof props.dangerouslySetInnerHTML !== 'object' || !(HTML in props.dangerouslySetInnerHTML)) {\n throw new Error('`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://reactjs.org/link/dangerously-set-inner-html ' + 'for more information.');\n }\n }\n\n {\n if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n }\n }\n\n if (props.style != null && typeof props.style !== 'object') {\n throw new Error('The `style` prop expects a mapping from style properties to values, ' + \"not a string. For example, style={{marginRight: spacing + 'em'}} when \" + 'using JSX.');\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n\n switch (tagName) {\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n\n default:\n return true;\n }\n}\n\nvar possibleStandardNames = {\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n disablepictureinpicture: 'disablePictureInPicture',\n disableremoteplayback: 'disableRemotePlayback',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n enterkeyhint: 'enterKeyHint',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n imagesizes: 'imageSizes',\n imagesrcset: 'imageSrcSet',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n 'aria-current': 0,\n 'aria-description': 0,\n 'aria-details': 0,\n 'aria-disabled': 0,\n 'aria-hidden': 0,\n 'aria-invalid': 0,\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nfunction validateProperty(tagName, name) {\n {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; \n\n if (correctName == null) {\n error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n warnedProperties[name] = true;\n return true;\n } \n\n\n if (name !== correctName) {\n error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; \n\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n } \n\n\n if (name !== standardName) {\n error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n }\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n\n if (type === 'select' && props.multiple) {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, eventRegistry) {\n if (hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n warnedProperties$1[name] = true;\n return true;\n } \n\n\n if (eventRegistry != null) {\n var registrationNameDependencies = eventRegistry.registrationNameDependencies,\n possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n\n if (registrationNameDependencies.hasOwnProperty(name)) {\n return true;\n }\n\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n if (registrationName != null) {\n error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (EVENT_NAME_REGEX.test(name)) {\n error('Unknown event handler property `%s`. It will be ignored.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } \n\n\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; \n\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n\n if (standardName !== name) {\n error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } \n\n\n if (isReserved) {\n return true;\n } \n\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n } \n\n\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, eventRegistry) {\n {\n var unknownProps = [];\n\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], eventRegistry);\n\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n }\n }\n};\n\nfunction validateProperties$2(type, props, eventRegistry) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnUnknownProperties(type, props, eventRegistry);\n}\n\nvar IS_EVENT_HANDLE_NON_MANAGED_NODE = 1;\nvar IS_NON_DELEGATED = 1 << 1;\nvar IS_CAPTURE_PHASE = 1 << 2;\n\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS = IS_EVENT_HANDLE_NON_MANAGED_NODE | IS_NON_DELEGATED | IS_CAPTURE_PHASE;\n\nvar currentReplayingEvent = null;\nfunction setReplayingEvent(event) {\n {\n if (currentReplayingEvent !== null) {\n error('Expected currently replaying event to be null. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n }\n }\n\n currentReplayingEvent = event;\n}\nfunction resetReplayingEvent() {\n {\n if (currentReplayingEvent === null) {\n error('Expected currently replaying event to not be null. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n }\n }\n\n currentReplayingEvent = null;\n}\nfunction isReplayingEvent(event) {\n return event === currentReplayingEvent;\n}\n\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window; \n\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n } \n\n\n return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n\n if (!internalInstance) {\n return;\n }\n\n if (typeof restoreImpl !== 'function') {\n throw new Error('setRestoreImplementation() needs to be called to handle a target for controlled ' + 'events. This error is likely caused by a bug in React. Please file an issue.');\n }\n\n var stateNode = internalInstance.stateNode; \n\n if (stateNode) {\n var _props = getFiberCurrentPropsFromNode(stateNode);\n\n restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n }\n}\n\nfunction setRestoreImplementation(impl) {\n restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\nfunction needsStateRestore() {\n return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n restoreStateOfTarget(target);\n\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar flushSyncImpl = function () {};\n\nvar isInsideEventHandler = false;\n\nfunction finishEventHandler() {\n var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n if (controlledComponentsHavePendingUpdates) {\n flushSyncImpl();\n restoreStateIfNeeded();\n }\n}\n\nfunction batchedUpdates(fn, a, b) {\n if (isInsideEventHandler) {\n return fn(a, b);\n }\n\n isInsideEventHandler = true;\n\n try {\n return batchedUpdatesImpl(fn, a, b);\n } finally {\n isInsideEventHandler = false;\n finishEventHandler();\n }\n} \nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushSyncImpl) {\n batchedUpdatesImpl = _batchedUpdatesImpl;\n flushSyncImpl = _flushSyncImpl;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n\n default:\n return false;\n }\n}\n\n\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n\n if (stateNode === null) {\n return null;\n }\n\n var props = getFiberCurrentPropsFromNode(stateNode);\n\n if (props === null) {\n return null;\n }\n\n var listener = props[registrationName];\n\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n\n if (listener && typeof listener !== 'function') {\n throw new Error(\"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\");\n }\n\n return listener;\n}\n\nvar passiveBrowserEventsSupported = false; \n\nif (canUseDOM) {\n try {\n var options = {}; \n\n Object.defineProperty(options, 'passive', {\n get: function () {\n passiveBrowserEventsSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (e) {\n passiveBrowserEventsSupported = false;\n }\n}\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n if (typeof document === 'undefined' || document === null) {\n throw new Error('The `document` global was defined when React was initialized, but is not ' + 'defined anymore. This can happen in a test environment if a component ' + 'schedules an update from an asynchronous callback, but the test has already ' + 'finished running. To solve this, you can either unmount the component at ' + 'the end of your test (and ensure that any asynchronous operations get ' + 'canceled in `componentWillUnmount`), or you can change the test itself ' + 'to be asynchronous.');\n }\n\n var evt = document.createEvent('Event');\n var didCall = false; \n\n var didError = true; \n\n var windowEvent = window.event; \n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n function restoreAfterDispatch() {\n fakeNode.removeEventListener(evtType, callCallback, false); \n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } \n\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } \n\n\n var error; \n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {\n }\n }\n }\n } \n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); \n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); \n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didCall && didError) {\n if (!didSetError) {\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n\n this.onError(error);\n } \n\n\n window.removeEventListener('error', handleWindowError);\n\n if (!didCall) {\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; \n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction hasCaughtError() {\n return hasError;\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n throw new Error('clearCaughtError was called but no error was captured. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n }\n}\n\nfunction get(key) {\n return key._reactInternals;\n}\nfunction has(key) {\n return key._reactInternals !== undefined;\n}\nfunction set(key, value) {\n key._reactInternals = value;\n}\n\nvar NoFlags =\n0;\nvar PerformedWork =\n1; \n\nvar Placement =\n2;\nvar Update =\n4;\nvar ChildDeletion =\n16;\nvar ContentReset =\n32;\nvar Callback =\n64;\nvar DidCapture =\n128;\nvar ForceClientRender =\n256;\nvar Ref =\n512;\nvar Snapshot =\n1024;\nvar Passive =\n2048;\nvar Hydrating =\n4096;\nvar Visibility =\n8192;\nvar StoreConsistency =\n16384;\nvar LifecycleEffectMask = Passive | Update | Callback | Ref | Snapshot | StoreConsistency; \n\nvar HostEffectMask =\n32767; \n\nvar Incomplete =\n32768;\nvar ShouldCapture =\n65536;\nvar ForceUpdateForLegacySuspense =\n131072;\nvar Forked =\n1048576; \n\nvar RefStatic =\n2097152;\nvar LayoutStatic =\n4194304;\nvar PassiveStatic =\n8388608; \n\nvar MountLayoutDev =\n16777216;\nvar MountPassiveDev =\n33554432; \n\nvar BeforeMutationMask = \nUpdate | Snapshot | ( 0);\nvar MutationMask = Placement | Update | ChildDeletion | ContentReset | Ref | Hydrating | Visibility;\nvar LayoutMask = Update | Callback | Ref | Visibility; \n\nvar PassiveMask = Passive | ChildDeletion; \n\nvar StaticMask = LayoutStatic | PassiveStatic | RefStatic;\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n\n if (!fiber.alternate) {\n var nextNode = node;\n\n do {\n node = nextNode;\n\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n nearestMounted = node.return;\n }\n\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n\n if (node.tag === HostRoot) {\n return nearestMounted;\n } \n\n\n return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (fiber.tag === SuspenseComponent) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState === null) {\n var current = fiber.alternate;\n\n if (current !== null) {\n suspenseState = current.memoizedState;\n }\n }\n\n if (suspenseState !== null) {\n return suspenseState.dehydrated;\n }\n }\n\n return null;\n}\nfunction getContainerFromFiber(fiber) {\n return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n {\n var owner = ReactCurrentOwner.current;\n\n if (owner !== null && owner.tag === ClassComponent) {\n var ownerFiber = owner;\n var instance = ownerFiber.stateNode;\n\n if (!instance._warnedAboutRefsInRender) {\n error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentNameFromFiber(ownerFiber) || 'A component');\n }\n\n instance._warnedAboutRefsInRender = true;\n }\n }\n\n var fiber = get(component);\n\n if (!fiber) {\n return false;\n }\n\n return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n\n if (!alternate) {\n var nearestMounted = getNearestMountedFiber(fiber);\n\n if (nearestMounted === null) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n\n return fiber;\n } \n\n\n var a = fiber;\n var b = alternate;\n\n while (true) {\n var parentA = a.return;\n\n if (parentA === null) {\n break;\n }\n\n var parentB = parentA.alternate;\n\n if (parentB === null) {\n var nextParent = parentA.return;\n\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } \n\n\n break;\n } \n\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n\n while (child) {\n if (child === a) {\n assertIsMounted(parentA);\n return fiber;\n }\n\n if (child === b) {\n assertIsMounted(parentA);\n return alternate;\n }\n\n child = child.sibling;\n } \n\n\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.return !== b.return) {\n a = parentA;\n b = parentB;\n } else {\n var didFindChild = false;\n var _child = parentA.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n _child = parentB.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n throw new Error('Child was not found in either parent set. This indicates a bug ' + 'in React related to the return pointer. Please file an issue.');\n }\n }\n }\n\n if (a.alternate !== b) {\n throw new Error(\"Return fibers should always be each others' alternates. \" + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n } \n\n\n if (a.tag !== HostRoot) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.stateNode.current === a) {\n return fiber;\n } \n\n\n return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n return currentParent !== null ? findCurrentHostFiberImpl(currentParent) : null;\n}\n\nfunction findCurrentHostFiberImpl(node) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n }\n\n var child = node.child;\n\n while (child !== null) {\n var match = findCurrentHostFiberImpl(child);\n\n if (match !== null) {\n return match;\n }\n\n child = child.sibling;\n }\n\n return null;\n}\n\nfunction findCurrentHostFiberWithNoPortals(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n return currentParent !== null ? findCurrentHostFiberWithNoPortalsImpl(currentParent) : null;\n}\n\nfunction findCurrentHostFiberWithNoPortalsImpl(node) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n }\n\n var child = node.child;\n\n while (child !== null) {\n if (child.tag !== HostPortal) {\n var match = findCurrentHostFiberWithNoPortalsImpl(child);\n\n if (match !== null) {\n return match;\n }\n }\n\n child = child.sibling;\n }\n\n return null;\n}\n\nvar scheduleCallback = Scheduler.unstable_scheduleCallback;\nvar cancelCallback = Scheduler.unstable_cancelCallback;\nvar shouldYield = Scheduler.unstable_shouldYield;\nvar requestPaint = Scheduler.unstable_requestPaint;\nvar now = Scheduler.unstable_now;\nvar getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel;\nvar ImmediatePriority = Scheduler.unstable_ImmediatePriority;\nvar UserBlockingPriority = Scheduler.unstable_UserBlockingPriority;\nvar NormalPriority = Scheduler.unstable_NormalPriority;\nvar LowPriority = Scheduler.unstable_LowPriority;\nvar IdlePriority = Scheduler.unstable_IdlePriority;\nvar unstable_yieldValue = Scheduler.unstable_yieldValue;\nvar unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue;\n\nvar rendererID = null;\nvar injectedHook = null;\nvar injectedProfilingHooks = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n return false;\n }\n\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook.isDisabled) {\n return true;\n }\n\n if (!hook.supportsFiber) {\n {\n error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://reactjs.org/link/react-devtools');\n } \n\n\n return true;\n }\n\n try {\n if (enableSchedulingProfiler) {\n internals = assign({}, internals, {\n getLaneLabelMap: getLaneLabelMap,\n injectProfilingHooks: injectProfilingHooks\n });\n }\n\n rendererID = hook.inject(internals); \n\n injectedHook = hook;\n } catch (err) {\n {\n error('React instrumentation encountered an error: %s.', err);\n }\n }\n\n if (hook.checkDCE) {\n return true;\n } else {\n return false;\n }\n}\nfunction onScheduleRoot(root, children) {\n {\n if (injectedHook && typeof injectedHook.onScheduleFiberRoot === 'function') {\n try {\n injectedHook.onScheduleFiberRoot(rendererID, root, children);\n } catch (err) {\n if ( !hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitRoot(root, eventPriority) {\n if (injectedHook && typeof injectedHook.onCommitFiberRoot === 'function') {\n try {\n var didError = (root.current.flags & DidCapture) === DidCapture;\n\n if (enableProfilerTimer) {\n var schedulerPriority;\n\n switch (eventPriority) {\n case DiscreteEventPriority:\n schedulerPriority = ImmediatePriority;\n break;\n\n case ContinuousEventPriority:\n schedulerPriority = UserBlockingPriority;\n break;\n\n case DefaultEventPriority:\n schedulerPriority = NormalPriority;\n break;\n\n case IdleEventPriority:\n schedulerPriority = IdlePriority;\n break;\n\n default:\n schedulerPriority = NormalPriority;\n break;\n }\n\n injectedHook.onCommitFiberRoot(rendererID, root, schedulerPriority, didError);\n } else {\n injectedHook.onCommitFiberRoot(rendererID, root, undefined, didError);\n }\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onPostCommitRoot(root) {\n if (injectedHook && typeof injectedHook.onPostCommitFiberRoot === 'function') {\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitUnmount(fiber) {\n if (injectedHook && typeof injectedHook.onCommitFiberUnmount === 'function') {\n try {\n injectedHook.onCommitFiberUnmount(rendererID, fiber);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n {\n if (typeof unstable_yieldValue === 'function') {\n unstable_setDisableYieldValue(newIsStrictMode);\n setSuppressWarning(newIsStrictMode);\n }\n\n if (injectedHook && typeof injectedHook.setStrictMode === 'function') {\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n }\n} \n\nfunction injectProfilingHooks(profilingHooks) {\n injectedProfilingHooks = profilingHooks;\n}\n\nfunction getLaneLabelMap() {\n {\n var map = new Map();\n var lane = 1;\n\n for (var index = 0; index < TotalLanes; index++) {\n var label = getLabelForLane(lane);\n map.set(lane, label);\n lane *= 2;\n }\n\n return map;\n }\n}\n\nfunction markCommitStarted(lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markCommitStarted === 'function') {\n injectedProfilingHooks.markCommitStarted(lanes);\n }\n }\n}\nfunction markCommitStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markCommitStopped === 'function') {\n injectedProfilingHooks.markCommitStopped();\n }\n }\n}\nfunction markComponentRenderStarted(fiber) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentRenderStarted === 'function') {\n injectedProfilingHooks.markComponentRenderStarted(fiber);\n }\n }\n}\nfunction markComponentRenderStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentRenderStopped === 'function') {\n injectedProfilingHooks.markComponentRenderStopped();\n }\n }\n}\nfunction markComponentPassiveEffectMountStarted(fiber) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectMountStarted === 'function') {\n injectedProfilingHooks.markComponentPassiveEffectMountStarted(fiber);\n }\n }\n}\nfunction markComponentPassiveEffectMountStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectMountStopped === 'function') {\n injectedProfilingHooks.markComponentPassiveEffectMountStopped();\n }\n }\n}\nfunction markComponentPassiveEffectUnmountStarted(fiber) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStarted === 'function') {\n injectedProfilingHooks.markComponentPassiveEffectUnmountStarted(fiber);\n }\n }\n}\nfunction markComponentPassiveEffectUnmountStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStopped === 'function') {\n injectedProfilingHooks.markComponentPassiveEffectUnmountStopped();\n }\n }\n}\nfunction markComponentLayoutEffectMountStarted(fiber) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectMountStarted === 'function') {\n injectedProfilingHooks.markComponentLayoutEffectMountStarted(fiber);\n }\n }\n}\nfunction markComponentLayoutEffectMountStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectMountStopped === 'function') {\n injectedProfilingHooks.markComponentLayoutEffectMountStopped();\n }\n }\n}\nfunction markComponentLayoutEffectUnmountStarted(fiber) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStarted === 'function') {\n injectedProfilingHooks.markComponentLayoutEffectUnmountStarted(fiber);\n }\n }\n}\nfunction markComponentLayoutEffectUnmountStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStopped === 'function') {\n injectedProfilingHooks.markComponentLayoutEffectUnmountStopped();\n }\n }\n}\nfunction markComponentErrored(fiber, thrownValue, lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentErrored === 'function') {\n injectedProfilingHooks.markComponentErrored(fiber, thrownValue, lanes);\n }\n }\n}\nfunction markComponentSuspended(fiber, wakeable, lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markComponentSuspended === 'function') {\n injectedProfilingHooks.markComponentSuspended(fiber, wakeable, lanes);\n }\n }\n}\nfunction markLayoutEffectsStarted(lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markLayoutEffectsStarted === 'function') {\n injectedProfilingHooks.markLayoutEffectsStarted(lanes);\n }\n }\n}\nfunction markLayoutEffectsStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markLayoutEffectsStopped === 'function') {\n injectedProfilingHooks.markLayoutEffectsStopped();\n }\n }\n}\nfunction markPassiveEffectsStarted(lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markPassiveEffectsStarted === 'function') {\n injectedProfilingHooks.markPassiveEffectsStarted(lanes);\n }\n }\n}\nfunction markPassiveEffectsStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markPassiveEffectsStopped === 'function') {\n injectedProfilingHooks.markPassiveEffectsStopped();\n }\n }\n}\nfunction markRenderStarted(lanes) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderStarted === 'function') {\n injectedProfilingHooks.markRenderStarted(lanes);\n }\n }\n}\nfunction markRenderYielded() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderYielded === 'function') {\n injectedProfilingHooks.markRenderYielded();\n }\n }\n}\nfunction markRenderStopped() {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderStopped === 'function') {\n injectedProfilingHooks.markRenderStopped();\n }\n }\n}\nfunction markRenderScheduled(lane) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markRenderScheduled === 'function') {\n injectedProfilingHooks.markRenderScheduled(lane);\n }\n }\n}\nfunction markForceUpdateScheduled(fiber, lane) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markForceUpdateScheduled === 'function') {\n injectedProfilingHooks.markForceUpdateScheduled(fiber, lane);\n }\n }\n}\nfunction markStateUpdateScheduled(fiber, lane) {\n {\n if (injectedProfilingHooks !== null && typeof injectedProfilingHooks.markStateUpdateScheduled === 'function') {\n injectedProfilingHooks.markStateUpdateScheduled(fiber, lane);\n }\n }\n}\n\nvar NoMode =\n0; \n\nvar ConcurrentMode =\n1;\nvar ProfileMode =\n2;\nvar StrictLegacyMode =\n8;\nvar StrictEffectsMode =\n16;\n\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; \n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nfunction clz32Fallback(x) {\n var asUint = x >>> 0;\n\n if (asUint === 0) {\n return 32;\n }\n\n return 31 - (log(asUint) / LN2 | 0) | 0;\n}\n\n\nvar TotalLanes = 31;\nvar NoLanes =\n0;\nvar NoLane =\n0;\nvar SyncLane =\n1;\nvar InputContinuousHydrationLane =\n2;\nvar InputContinuousLane =\n4;\nvar DefaultHydrationLane =\n8;\nvar DefaultLane =\n16;\nvar TransitionHydrationLane =\n32;\nvar TransitionLanes =\n4194240;\nvar TransitionLane1 =\n64;\nvar TransitionLane2 =\n128;\nvar TransitionLane3 =\n256;\nvar TransitionLane4 =\n512;\nvar TransitionLane5 =\n1024;\nvar TransitionLane6 =\n2048;\nvar TransitionLane7 =\n4096;\nvar TransitionLane8 =\n8192;\nvar TransitionLane9 =\n16384;\nvar TransitionLane10 =\n32768;\nvar TransitionLane11 =\n65536;\nvar TransitionLane12 =\n131072;\nvar TransitionLane13 =\n262144;\nvar TransitionLane14 =\n524288;\nvar TransitionLane15 =\n1048576;\nvar TransitionLane16 =\n2097152;\nvar RetryLanes =\n130023424;\nvar RetryLane1 =\n4194304;\nvar RetryLane2 =\n8388608;\nvar RetryLane3 =\n16777216;\nvar RetryLane4 =\n33554432;\nvar RetryLane5 =\n67108864;\nvar SomeRetryLane = RetryLane1;\nvar SelectiveHydrationLane =\n134217728;\nvar NonIdleLanes =\n268435455;\nvar IdleHydrationLane =\n268435456;\nvar IdleLane =\n536870912;\nvar OffscreenLane =\n1073741824; \n\nfunction getLabelForLane(lane) {\n {\n if (lane & SyncLane) {\n return 'Sync';\n }\n\n if (lane & InputContinuousHydrationLane) {\n return 'InputContinuousHydration';\n }\n\n if (lane & InputContinuousLane) {\n return 'InputContinuous';\n }\n\n if (lane & DefaultHydrationLane) {\n return 'DefaultHydration';\n }\n\n if (lane & DefaultLane) {\n return 'Default';\n }\n\n if (lane & TransitionHydrationLane) {\n return 'TransitionHydration';\n }\n\n if (lane & TransitionLanes) {\n return 'Transition';\n }\n\n if (lane & RetryLanes) {\n return 'Retry';\n }\n\n if (lane & SelectiveHydrationLane) {\n return 'SelectiveHydration';\n }\n\n if (lane & IdleHydrationLane) {\n return 'IdleHydration';\n }\n\n if (lane & IdleLane) {\n return 'Idle';\n }\n\n if (lane & OffscreenLane) {\n return 'Offscreen';\n }\n }\n}\nvar NoTimestamp = -1;\nvar nextTransitionLane = TransitionLane1;\nvar nextRetryLane = RetryLane1;\n\nfunction getHighestPriorityLanes(lanes) {\n switch (getHighestPriorityLane(lanes)) {\n case SyncLane:\n return SyncLane;\n\n case InputContinuousHydrationLane:\n return InputContinuousHydrationLane;\n\n case InputContinuousLane:\n return InputContinuousLane;\n\n case DefaultHydrationLane:\n return DefaultHydrationLane;\n\n case DefaultLane:\n return DefaultLane;\n\n case TransitionHydrationLane:\n return TransitionHydrationLane;\n\n case TransitionLane1:\n case TransitionLane2:\n case TransitionLane3:\n case TransitionLane4:\n case TransitionLane5:\n case TransitionLane6:\n case TransitionLane7:\n case TransitionLane8:\n case TransitionLane9:\n case TransitionLane10:\n case TransitionLane11:\n case TransitionLane12:\n case TransitionLane13:\n case TransitionLane14:\n case TransitionLane15:\n case TransitionLane16:\n return lanes & TransitionLanes;\n\n case RetryLane1:\n case RetryLane2:\n case RetryLane3:\n case RetryLane4:\n case RetryLane5:\n return lanes & RetryLanes;\n\n case SelectiveHydrationLane:\n return SelectiveHydrationLane;\n\n case IdleHydrationLane:\n return IdleHydrationLane;\n\n case IdleLane:\n return IdleLane;\n\n case OffscreenLane:\n return OffscreenLane;\n\n default:\n {\n error('Should have found matching lanes. This is a bug in React.');\n } \n\n\n return lanes;\n }\n}\n\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n\n if (pendingLanes === NoLanes) {\n return NoLanes;\n }\n\n var nextLanes = NoLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes; \n\n var nonIdlePendingLanes = pendingLanes & NonIdleLanes;\n\n if (nonIdlePendingLanes !== NoLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n\n if (nonIdleUnblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes);\n } else {\n var nonIdlePingedLanes = nonIdlePendingLanes & pingedLanes;\n\n if (nonIdlePingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdlePingedLanes);\n }\n }\n } else {\n var unblockedLanes = pendingLanes & ~suspendedLanes;\n\n if (unblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(unblockedLanes);\n } else {\n if (pingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(pingedLanes);\n }\n }\n }\n\n if (nextLanes === NoLanes) {\n return NoLanes;\n } \n\n\n if (wipLanes !== NoLanes && wipLanes !== nextLanes && \n (wipLanes & suspendedLanes) === NoLanes) {\n var nextLane = getHighestPriorityLane(nextLanes);\n var wipLane = getHighestPriorityLane(wipLanes);\n\n if ( \n nextLane >= wipLane || \n nextLane === DefaultLane && (wipLane & TransitionLanes) !== NoLanes) {\n return wipLanes;\n }\n }\n\n if ((nextLanes & InputContinuousLane) !== NoLanes) {\n nextLanes |= pendingLanes & DefaultLane;\n } \n\n\n var entangledLanes = root.entangledLanes;\n\n if (entangledLanes !== NoLanes) {\n var entanglements = root.entanglements;\n var lanes = nextLanes & entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n nextLanes |= entanglements[index];\n lanes &= ~lane;\n }\n }\n\n return nextLanes;\n}\nfunction getMostRecentEventTime(root, lanes) {\n var eventTimes = root.eventTimes;\n var mostRecentEventTime = NoTimestamp;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var eventTime = eventTimes[index];\n\n if (eventTime > mostRecentEventTime) {\n mostRecentEventTime = eventTime;\n }\n\n lanes &= ~lane;\n }\n\n return mostRecentEventTime;\n}\n\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case SyncLane:\n case InputContinuousHydrationLane:\n case InputContinuousLane:\n return currentTime + 250;\n\n case DefaultHydrationLane:\n case DefaultLane:\n case TransitionHydrationLane:\n case TransitionLane1:\n case TransitionLane2:\n case TransitionLane3:\n case TransitionLane4:\n case TransitionLane5:\n case TransitionLane6:\n case TransitionLane7:\n case TransitionLane8:\n case TransitionLane9:\n case TransitionLane10:\n case TransitionLane11:\n case TransitionLane12:\n case TransitionLane13:\n case TransitionLane14:\n case TransitionLane15:\n case TransitionLane16:\n return currentTime + 5000;\n\n case RetryLane1:\n case RetryLane2:\n case RetryLane3:\n case RetryLane4:\n case RetryLane5:\n return NoTimestamp;\n\n case SelectiveHydrationLane:\n case IdleHydrationLane:\n case IdleLane:\n case OffscreenLane:\n return NoTimestamp;\n\n default:\n {\n error('Should have found matching lanes. This is a bug in React.');\n }\n\n return NoTimestamp;\n }\n}\n\nfunction markStarvedLanesAsExpired(root, currentTime) {\n var pendingLanes = root.pendingLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes;\n var expirationTimes = root.expirationTimes; \n\n var lanes = pendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var expirationTime = expirationTimes[index];\n\n if (expirationTime === NoTimestamp) {\n if ((lane & suspendedLanes) === NoLanes || (lane & pingedLanes) !== NoLanes) {\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n }\n } else if (expirationTime <= currentTime) {\n root.expiredLanes |= lane;\n }\n\n lanes &= ~lane;\n }\n} \n\nfunction getHighestPriorityPendingLanes(root) {\n return getHighestPriorityLanes(root.pendingLanes);\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n var everythingButOffscreen = root.pendingLanes & ~OffscreenLane;\n\n if (everythingButOffscreen !== NoLanes) {\n return everythingButOffscreen;\n }\n\n if (everythingButOffscreen & OffscreenLane) {\n return OffscreenLane;\n }\n\n return NoLanes;\n}\nfunction includesSyncLane(lanes) {\n return (lanes & SyncLane) !== NoLanes;\n}\nfunction includesNonIdleWork(lanes) {\n return (lanes & NonIdleLanes) !== NoLanes;\n}\nfunction includesOnlyRetries(lanes) {\n return (lanes & RetryLanes) === lanes;\n}\nfunction includesOnlyNonUrgentLanes(lanes) {\n var UrgentLanes = SyncLane | InputContinuousLane | DefaultLane;\n return (lanes & UrgentLanes) === NoLanes;\n}\nfunction includesOnlyTransitions(lanes) {\n return (lanes & TransitionLanes) === lanes;\n}\nfunction includesBlockingLane(root, lanes) {\n\n var SyncDefaultLanes = InputContinuousHydrationLane | InputContinuousLane | DefaultHydrationLane | DefaultLane;\n return (lanes & SyncDefaultLanes) !== NoLanes;\n}\nfunction includesExpiredLane(root, lanes) {\n return (lanes & root.expiredLanes) !== NoLanes;\n}\nfunction isTransitionLane(lane) {\n return (lane & TransitionLanes) !== NoLanes;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n\n if ((nextTransitionLane & TransitionLanes) === NoLanes) {\n nextTransitionLane = TransitionLane1;\n }\n\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n\n if ((nextRetryLane & RetryLanes) === NoLanes) {\n nextRetryLane = RetryLane1;\n }\n\n return lane;\n}\nfunction getHighestPriorityLane(lanes) {\n return lanes & -lanes;\n}\nfunction pickArbitraryLane(lanes) {\n return getHighestPriorityLane(lanes);\n}\n\nfunction pickArbitraryLaneIndex(lanes) {\n return 31 - clz32(lanes);\n}\n\nfunction laneToIndex(lane) {\n return pickArbitraryLaneIndex(lane);\n}\n\nfunction includesSomeLane(a, b) {\n return (a & b) !== NoLanes;\n}\nfunction isSubsetOfLanes(set, subset) {\n return (set & subset) === subset;\n}\nfunction mergeLanes(a, b) {\n return a | b;\n}\nfunction removeLanes(set, subset) {\n return set & ~subset;\n}\nfunction intersectLanes(a, b) {\n return a & b;\n} \n\nfunction laneToLanes(lane) {\n return lane;\n}\nfunction higherPriorityLane(a, b) {\n return a !== NoLane && a < b ? a : b;\n}\nfunction createLaneMap(initial) {\n var laneMap = [];\n\n for (var i = 0; i < TotalLanes; i++) {\n laneMap.push(initial);\n }\n\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane; \n\n if (updateLane !== IdleLane) {\n root.suspendedLanes = NoLanes;\n root.pingedLanes = NoLanes;\n }\n\n var eventTimes = root.eventTimes;\n var index = laneToIndex(updateLane); \n\n eventTimes[index] = eventTime;\n}\nfunction markRootSuspended(root, suspendedLanes) {\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes; \n\n var expirationTimes = root.expirationTimes;\n var lanes = suspendedLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootPinged(root, pingedLanes, eventTime) {\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes; \n\n root.suspendedLanes = NoLanes;\n root.pingedLanes = NoLanes;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n var entanglements = root.entanglements;\n var eventTimes = root.eventTimes;\n var expirationTimes = root.expirationTimes; \n\n var lanes = noLongerPendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] = NoLanes;\n eventTimes[index] = NoTimestamp;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = root.entangledLanes |= entangledLanes;\n var entanglements = root.entanglements;\n var lanes = rootEntangledLanes;\n\n while (lanes) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n\n if ( \n lane & entangledLanes | \n entanglements[index] & entangledLanes) {\n entanglements[index] |= entangledLanes;\n }\n\n lanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = getHighestPriorityLane(renderLanes);\n var lane;\n\n switch (renderLane) {\n case InputContinuousLane:\n lane = InputContinuousHydrationLane;\n break;\n\n case DefaultLane:\n lane = DefaultHydrationLane;\n break;\n\n case TransitionLane1:\n case TransitionLane2:\n case TransitionLane3:\n case TransitionLane4:\n case TransitionLane5:\n case TransitionLane6:\n case TransitionLane7:\n case TransitionLane8:\n case TransitionLane9:\n case TransitionLane10:\n case TransitionLane11:\n case TransitionLane12:\n case TransitionLane13:\n case TransitionLane14:\n case TransitionLane15:\n case TransitionLane16:\n case RetryLane1:\n case RetryLane2:\n case RetryLane3:\n case RetryLane4:\n case RetryLane5:\n lane = TransitionHydrationLane;\n break;\n\n case IdleLane:\n lane = IdleHydrationLane;\n break;\n\n default:\n lane = NoLane;\n break;\n } \n\n\n if ((lane & (root.suspendedLanes | renderLanes)) !== NoLane) {\n return NoLane;\n }\n\n return lane;\n}\nfunction addFiberToLanesMap(root, fiber, lanes) {\n\n if (!isDevToolsPresent) {\n return;\n }\n\n var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap;\n\n while (lanes > 0) {\n var index = laneToIndex(lanes);\n var lane = 1 << index;\n var updaters = pendingUpdatersLaneMap[index];\n updaters.add(fiber);\n lanes &= ~lane;\n }\n}\nfunction movePendingFibersToMemoized(root, lanes) {\n\n if (!isDevToolsPresent) {\n return;\n }\n\n var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap;\n var memoizedUpdaters = root.memoizedUpdaters;\n\n while (lanes > 0) {\n var index = laneToIndex(lanes);\n var lane = 1 << index;\n var updaters = pendingUpdatersLaneMap[index];\n\n if (updaters.size > 0) {\n updaters.forEach(function (fiber) {\n var alternate = fiber.alternate;\n\n if (alternate === null || !memoizedUpdaters.has(alternate)) {\n memoizedUpdaters.add(fiber);\n }\n });\n updaters.clear();\n }\n\n lanes &= ~lane;\n }\n}\nfunction getTransitionsForLanes(root, lanes) {\n {\n return null;\n }\n}\n\nvar DiscreteEventPriority = SyncLane;\nvar ContinuousEventPriority = InputContinuousLane;\nvar DefaultEventPriority = DefaultLane;\nvar IdleEventPriority = IdleLane;\nvar currentUpdatePriority = NoLane;\nfunction getCurrentUpdatePriority() {\n return currentUpdatePriority;\n}\nfunction setCurrentUpdatePriority(newPriority) {\n currentUpdatePriority = newPriority;\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = currentUpdatePriority;\n\n try {\n currentUpdatePriority = priority;\n return fn();\n } finally {\n currentUpdatePriority = previousPriority;\n }\n}\nfunction higherEventPriority(a, b) {\n return a !== 0 && a < b ? a : b;\n}\nfunction lowerEventPriority(a, b) {\n return a === 0 || a > b ? a : b;\n}\nfunction isHigherEventPriority(a, b) {\n return a !== 0 && a < b;\n}\nfunction lanesToEventPriority(lanes) {\n var lane = getHighestPriorityLane(lanes);\n\n if (!isHigherEventPriority(DiscreteEventPriority, lane)) {\n return DiscreteEventPriority;\n }\n\n if (!isHigherEventPriority(ContinuousEventPriority, lane)) {\n return ContinuousEventPriority;\n }\n\n if (includesNonIdleWork(lane)) {\n return DefaultEventPriority;\n }\n\n return IdleEventPriority;\n}\n\nfunction isRootDehydrated(root) {\n var currentState = root.current.memoizedState;\n return currentState.isDehydrated;\n}\n\nvar _attemptSynchronousHydration;\n\nfunction setAttemptSynchronousHydration(fn) {\n _attemptSynchronousHydration = fn;\n}\nfunction attemptSynchronousHydration(fiber) {\n _attemptSynchronousHydration(fiber);\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n attemptHydrationAtCurrentPriority = fn;\n}\nvar getCurrentUpdatePriority$1;\nfunction setGetCurrentUpdatePriority(fn) {\n getCurrentUpdatePriority$1 = fn;\n}\nvar attemptHydrationAtPriority;\nfunction setAttemptHydrationAtPriority(fn) {\n attemptHydrationAtPriority = fn;\n} \n\nvar hasScheduledReplayAttempt = false; \n\nvar queuedDiscreteEvents = []; \n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; \n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); \n\nvar queuedExplicitHydrationTargets = [];\nvar discreteReplayableEvents = ['mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', \n'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit'];\nfunction isDiscreteEventThatRequiresHydration(eventType) {\n return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n return {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n };\n}\n\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'focusin':\n case 'focusout':\n queuedFocus = null;\n break;\n\n case 'dragenter':\n case 'dragleave':\n queuedDrag = null;\n break;\n\n case 'mouseover':\n case 'mouseout':\n queuedMouse = null;\n break;\n\n case 'pointerover':\n case 'pointerout':\n {\n var pointerId = nativeEvent.pointerId;\n queuedPointers.delete(pointerId);\n break;\n }\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n {\n var _pointerId = nativeEvent.pointerId;\n queuedPointerCaptures.delete(_pointerId);\n break;\n }\n }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn !== null) {\n var _fiber2 = getInstanceFromNode(blockedOn);\n\n if (_fiber2 !== null) {\n attemptContinuousHydration(_fiber2);\n }\n }\n\n return queuedEvent;\n } \n\n\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n var targetContainers = existingQueuedEvent.targetContainers;\n\n if (targetContainer !== null && targetContainers.indexOf(targetContainer) === -1) {\n targetContainers.push(targetContainer);\n }\n\n return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n switch (domEventName) {\n case 'focusin':\n {\n var focusEvent = nativeEvent;\n queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, domEventName, eventSystemFlags, targetContainer, focusEvent);\n return true;\n }\n\n case 'dragenter':\n {\n var dragEvent = nativeEvent;\n queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, domEventName, eventSystemFlags, targetContainer, dragEvent);\n return true;\n }\n\n case 'mouseover':\n {\n var mouseEvent = nativeEvent;\n queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, domEventName, eventSystemFlags, targetContainer, mouseEvent);\n return true;\n }\n\n case 'pointerover':\n {\n var pointerEvent = nativeEvent;\n var pointerId = pointerEvent.pointerId;\n queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, pointerEvent));\n return true;\n }\n\n case 'gotpointercapture':\n {\n var _pointerEvent = nativeEvent;\n var _pointerId2 = _pointerEvent.pointerId;\n queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, _pointerEvent));\n return true;\n }\n }\n\n return false;\n} \n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted !== null) {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n queuedTarget.blockedOn = instance;\n attemptHydrationAtPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (isRootDehydrated(root)) {\n queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); \n\n return;\n }\n }\n }\n }\n\n queuedTarget.blockedOn = null;\n}\n\nfunction queueExplicitHydrationTarget(target) {\n var updatePriority = getCurrentUpdatePriority$1();\n var queuedTarget = {\n blockedOn: null,\n target: target,\n priority: updatePriority\n };\n var i = 0;\n\n for (; i < queuedExplicitHydrationTargets.length; i++) {\n if (!isHigherEventPriority(updatePriority, queuedExplicitHydrationTargets[i].priority)) {\n break;\n }\n }\n\n queuedExplicitHydrationTargets.splice(i, 0, queuedTarget);\n\n if (i === 0) {\n attemptExplicitHydrationTarget(queuedTarget);\n }\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (queuedEvent.blockedOn !== null) {\n return false;\n }\n\n var targetContainers = queuedEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.domEventName, queuedEvent.eventSystemFlags, targetContainer, queuedEvent.nativeEvent);\n\n if (nextBlockedOn === null) {\n {\n var nativeEvent = queuedEvent.nativeEvent;\n var nativeEventClone = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n setReplayingEvent(nativeEventClone);\n nativeEvent.target.dispatchEvent(nativeEventClone);\n resetReplayingEvent();\n }\n } else {\n var _fiber3 = getInstanceFromNode(nextBlockedOn);\n\n if (_fiber3 !== null) {\n attemptContinuousHydration(_fiber3);\n }\n\n queuedEvent.blockedOn = nextBlockedOn;\n return false;\n } \n\n\n targetContainers.shift();\n }\n\n return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n map.delete(key);\n }\n}\n\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = false;\n\n\n if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n queuedFocus = null;\n }\n\n if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n queuedDrag = null;\n }\n\n if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n queuedMouse = null;\n }\n\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n\n if (!hasScheduledReplayAttempt) {\n hasScheduledReplayAttempt = true; \n\n Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n }\n }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n if (queuedDiscreteEvents.length > 0) {\n scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); \n\n for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n var queuedEvent = queuedDiscreteEvents[i];\n\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n }\n }\n }\n\n if (queuedFocus !== null) {\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n }\n\n if (queuedDrag !== null) {\n scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n }\n\n if (queuedMouse !== null) {\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n }\n\n var unblock = function (queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n };\n\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n\n for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n if (queuedTarget.blockedOn === unblocked) {\n queuedTarget.blockedOn = null;\n }\n }\n\n while (queuedExplicitHydrationTargets.length > 0) {\n var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n if (nextExplicitTarget.blockedOn !== null) {\n break;\n } else {\n attemptExplicitHydrationTarget(nextExplicitTarget);\n\n if (nextExplicitTarget.blockedOn === null) {\n queuedExplicitHydrationTargets.shift();\n }\n }\n }\n}\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig; \n\nvar _enabled = true; \n\nfunction setEnabled(enabled) {\n _enabled = !!enabled;\n}\nfunction isEnabled() {\n return _enabled;\n}\nfunction createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags) {\n var eventPriority = getEventPriority(domEventName);\n var listenerWrapper;\n\n switch (eventPriority) {\n case DiscreteEventPriority:\n listenerWrapper = dispatchDiscreteEvent;\n break;\n\n case ContinuousEventPriority:\n listenerWrapper = dispatchContinuousEvent;\n break;\n\n case DefaultEventPriority:\n default:\n listenerWrapper = dispatchEvent;\n break;\n }\n\n return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer);\n}\n\nfunction dispatchDiscreteEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n var previousPriority = getCurrentUpdatePriority();\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = null;\n\n try {\n setCurrentUpdatePriority(DiscreteEventPriority);\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig.transition = prevTransition;\n }\n}\n\nfunction dispatchContinuousEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n var previousPriority = getCurrentUpdatePriority();\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = null;\n\n try {\n setCurrentUpdatePriority(ContinuousEventPriority);\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig.transition = prevTransition;\n }\n}\n\nfunction dispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (!_enabled) {\n return;\n }\n\n {\n dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n }\n}\n\nfunction dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n var blockedOn = findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn === null) {\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, return_targetInst, targetContainer);\n clearIfContinuousEvent(domEventName, nativeEvent);\n return;\n }\n\n if (queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent)) {\n nativeEvent.stopPropagation();\n return;\n } \n\n\n clearIfContinuousEvent(domEventName, nativeEvent);\n\n if (eventSystemFlags & IS_CAPTURE_PHASE && isDiscreteEventThatRequiresHydration(domEventName)) {\n while (blockedOn !== null) {\n var fiber = getInstanceFromNode(blockedOn);\n\n if (fiber !== null) {\n attemptSynchronousHydration(fiber);\n }\n\n var nextBlockedOn = findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (nextBlockedOn === null) {\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, return_targetInst, targetContainer);\n }\n\n if (nextBlockedOn === blockedOn) {\n break;\n }\n\n blockedOn = nextBlockedOn;\n }\n\n if (blockedOn !== null) {\n nativeEvent.stopPropagation();\n }\n\n return;\n } \n\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, null, targetContainer);\n}\n\nvar return_targetInst = null; \n\nfunction findInstanceBlockingEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n return_targetInst = null;\n var nativeEventTarget = getEventTarget(nativeEvent);\n var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted === null) {\n targetInst = null;\n } else {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n return instance;\n } \n\n\n targetInst = null;\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (isRootDehydrated(root)) {\n return getContainerFromFiber(nearestMounted);\n }\n\n targetInst = null;\n } else if (nearestMounted !== targetInst) {\n targetInst = null;\n }\n }\n }\n\n return_targetInst = targetInst; \n\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case 'cancel':\n case 'click':\n case 'close':\n case 'contextmenu':\n case 'copy':\n case 'cut':\n case 'auxclick':\n case 'dblclick':\n case 'dragend':\n case 'dragstart':\n case 'drop':\n case 'focusin':\n case 'focusout':\n case 'input':\n case 'invalid':\n case 'keydown':\n case 'keypress':\n case 'keyup':\n case 'mousedown':\n case 'mouseup':\n case 'paste':\n case 'pause':\n case 'play':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointerup':\n case 'ratechange':\n case 'reset':\n case 'resize':\n case 'seeked':\n case 'submit':\n case 'touchcancel':\n case 'touchend':\n case 'touchstart':\n case 'volumechange': \n\n case 'change':\n case 'selectionchange':\n case 'textInput':\n case 'compositionstart':\n case 'compositionend':\n case 'compositionupdate': \n\n case 'beforeblur':\n case 'afterblur': \n\n case 'beforeinput':\n case 'blur':\n case 'fullscreenchange':\n case 'focus':\n case 'hashchange':\n case 'popstate':\n case 'select':\n case 'selectstart':\n return DiscreteEventPriority;\n\n case 'drag':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'mousemove':\n case 'mouseout':\n case 'mouseover':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'scroll':\n case 'toggle':\n case 'touchmove':\n case 'wheel': \n\n case 'mouseenter':\n case 'mouseleave':\n case 'pointerenter':\n case 'pointerleave':\n return ContinuousEventPriority;\n\n case 'message':\n {\n var schedulerPriority = getCurrentPriorityLevel();\n\n switch (schedulerPriority) {\n case ImmediatePriority:\n return DiscreteEventPriority;\n\n case UserBlockingPriority:\n return ContinuousEventPriority;\n\n case NormalPriority:\n case LowPriority:\n return DefaultEventPriority;\n\n case IdlePriority:\n return IdleEventPriority;\n\n default:\n return DefaultEventPriority;\n }\n }\n\n default:\n return DefaultEventPriority;\n }\n}\n\nfunction addEventBubbleListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, false);\n return listener;\n}\nfunction addEventCaptureListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, true);\n return listener;\n}\nfunction addEventCaptureListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n capture: true,\n passive: passive\n });\n return listener;\n}\nfunction addEventBubbleListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n passive: passive\n });\n return listener;\n}\n\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n root = nativeEventTarget;\n startText = getText();\n return true;\n}\nfunction reset() {\n root = null;\n startText = null;\n fallbackText = null;\n}\nfunction getData() {\n if (fallbackText) {\n return fallbackText;\n }\n\n var start;\n var startValue = startText;\n var startLength = startValue.length;\n var end;\n var endValue = getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n fallbackText = endValue.slice(start, sliceTail);\n return fallbackText;\n}\nfunction getText() {\n if ('value' in root) {\n return root.value;\n }\n\n return root.textContent;\n}\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; \n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n charCode = keyCode;\n } \n\n\n if (charCode === 10) {\n charCode = 13;\n } \n\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nfunction functionThatReturnsTrue() {\n return true;\n}\n\nfunction functionThatReturnsFalse() {\n return false;\n} \n\n\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n\n var normalize = Interface[_propName];\n\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault(); \n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation(); \n } else if (typeof event.cancelBubble !== 'unknown') {\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n\n persist: function () {\n },\n\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\n\n\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = assign({}, EventInterface, {\n view: 0,\n detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n\n lastMouseEvent = event;\n }\n}\n\n\nvar MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } \n\n\n return lastMovementY;\n }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n\nvar DragEventInterface = assign({}, MouseEventInterface, {\n dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n\nvar FocusEventInterface = assign({}, UIEventInterface, {\n relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n\nvar AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n\nvar ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n\nvar CompositionEventInterface = assign({}, EventInterface, {\n data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n\nvar SyntheticInputEvent = SyntheticCompositionEvent;\n\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n if (key !== 'Unidentified') {\n return key;\n }\n } \n\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); \n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n\n return '';\n}\n\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n}; \n\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\n\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n return 0;\n },\n keyCode: function (event) {\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n },\n which: function (event) {\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n\nvar PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n\nvar TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n\nvar TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n\nvar WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : \n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : \n 'wheelDeltaY' in event ? -event.wheelDeltaY : \n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; \n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n} \n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; \n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nfunction registerEvents() {\n registerTwoPhaseEvent('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']);\n registerTwoPhaseEvent('onCompositionEnd', ['compositionend', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionStart', ['compositionstart', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionUpdate', ['compositionupdate', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n} \n\n\nvar hasSpaceKeypress = false;\n\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && \n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n\nfunction getCompositionEventType(domEventName) {\n switch (domEventName) {\n case 'compositionstart':\n return 'onCompositionStart';\n\n case 'compositionend':\n return 'onCompositionEnd';\n\n case 'compositionupdate':\n return 'onCompositionUpdate';\n }\n}\n\n\nfunction isFallbackCompositionStart(domEventName, nativeEvent) {\n return domEventName === 'keydown' && nativeEvent.keyCode === START_KEYCODE;\n}\n\n\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'keyup':\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n case 'keydown':\n return nativeEvent.keyCode !== START_KEYCODE;\n\n case 'keypress':\n case 'mousedown':\n case 'focusout':\n return true;\n\n default:\n return false;\n }\n}\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n\n return null;\n}\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n return nativeEvent.locale === 'ko';\n} \n\n\nvar isComposing = false;\n\nfunction extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(domEventName);\n } else if (!isComposing) {\n if (isFallbackCompositionStart(domEventName, nativeEvent)) {\n eventType = 'onCompositionStart';\n }\n } else if (isFallbackCompositionEnd(domEventName, nativeEvent)) {\n eventType = 'onCompositionEnd';\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n if (!isComposing && eventType === 'onCompositionStart') {\n isComposing = initialize(nativeEventTarget);\n } else if (eventType === 'onCompositionEnd') {\n if (isComposing) {\n fallbackData = getData();\n }\n }\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, eventType);\n\n if (listeners.length > 0) {\n var event = new SyntheticCompositionEvent(eventType, domEventName, null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n\n if (fallbackData) {\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n\n if (customData !== null) {\n event.data = customData;\n }\n }\n }\n}\n\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'compositionend':\n return getDataFromCustomEvent(nativeEvent);\n\n case 'keypress':\n var which = nativeEvent.which;\n\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'textInput':\n var chars = nativeEvent.data; \n\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n return null;\n }\n}\n\n\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing) {\n if (domEventName === 'compositionend' || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent)) {\n var chars = getData();\n reset();\n isComposing = false;\n return chars;\n }\n\n return null;\n }\n\n switch (domEventName) {\n case 'paste':\n return null;\n\n case 'keypress':\n if (!isKeypressCommand(nativeEvent)) {\n if (nativeEvent.char && nativeEvent.char.length > 1) {\n return nativeEvent.char;\n } else if (nativeEvent.which) {\n return String.fromCharCode(nativeEvent.which);\n }\n }\n\n return null;\n\n case 'compositionend':\n return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n default:\n return null;\n }\n}\n\n\nfunction extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(domEventName, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(domEventName, nativeEvent);\n } \n\n\n if (!chars) {\n return null;\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, 'onBeforeInput');\n\n if (listeners.length > 0) {\n var event = new SyntheticInputEvent('onBeforeInput', 'beforeinput', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.data = chars;\n }\n}\n\n\nfunction extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n}\n\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\n\nfunction isEventSupported(eventNameSuffix) {\n if (!canUseDOM) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n return isSupported;\n}\n\nfunction registerEvents$1() {\n registerTwoPhaseEvent('onChange', ['change', 'click', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'selectionchange']);\n}\n\nfunction createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) {\n enqueueStateRestore(target);\n var listeners = accumulateTwoPhaseListeners(inst, 'onChange');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onChange', 'change', null, nativeEvent, target);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n}\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(dispatchQueue, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); \n\n batchedUpdates(runEventInBatch, dispatchQueue);\n}\n\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n\n if (updateValueIfChanged(targetNode)) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (domEventName === 'change') {\n return targetInst;\n }\n}\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n activeElement = null;\n activeElementInst = null;\n}\n\n\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n\n if (getInstIfValueChanged(activeElementInst)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n if (domEventName === 'focusin') {\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (domEventName === 'focusout') {\n stopWatchingForValueChange();\n }\n} \n\n\nfunction getTargetInstForInputEventPolyfill(domEventName, targetInst) {\n if (domEventName === 'selectionchange' || domEventName === 'keyup' || domEventName === 'keydown') {\n return getInstIfValueChanged(activeElementInst);\n }\n}\n\n\nfunction shouldUseClickEvent(elem) {\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (domEventName === 'click') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (domEventName === 'input' || domEventName === 'change') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction handleControlledInputBlur(node) {\n var state = node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n {\n setDefaultValue(node, 'number', node.value);\n }\n}\n\n\nfunction extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n var getTargetInstFunc, handleEventFunc;\n\n if (shouldUseChangeEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(domEventName, targetInst);\n\n if (inst) {\n createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget);\n return;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(domEventName, targetNode, targetInst);\n } \n\n\n if (domEventName === 'focusout') {\n handleControlledInputBlur(targetNode);\n }\n}\n\nfunction registerEvents$2() {\n registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover']);\n registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover']);\n registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover']);\n registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover']);\n}\n\n\nfunction extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var isOverEvent = domEventName === 'mouseover' || domEventName === 'pointerover';\n var isOutEvent = domEventName === 'mouseout' || domEventName === 'pointerout';\n\n if (isOverEvent && !isReplayingEvent(nativeEvent)) {\n var related = nativeEvent.relatedTarget || nativeEvent.fromElement;\n\n if (related) {\n if (getClosestInstanceFromNode(related) || isContainerMarkedAsRoot(related)) {\n return;\n }\n }\n }\n\n if (!isOutEvent && !isOverEvent) {\n return;\n }\n\n var win; \n\n if (nativeEventTarget.window === nativeEventTarget) {\n win = nativeEventTarget;\n } else {\n var doc = nativeEventTarget.ownerDocument;\n\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n\n if (isOutEvent) {\n var _related = nativeEvent.relatedTarget || nativeEvent.toElement;\n\n from = targetInst;\n to = _related ? getClosestInstanceFromNode(_related) : null;\n\n if (to !== null) {\n var nearestMounted = getNearestMountedFiber(to);\n\n if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n to = null;\n }\n }\n } else {\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n return;\n }\n\n var SyntheticEventCtor = SyntheticMouseEvent;\n var leaveEventType = 'onMouseLeave';\n var enterEventType = 'onMouseEnter';\n var eventTypePrefix = 'mouse';\n\n if (domEventName === 'pointerout' || domEventName === 'pointerover') {\n SyntheticEventCtor = SyntheticPointerEvent;\n leaveEventType = 'onPointerLeave';\n enterEventType = 'onPointerEnter';\n eventTypePrefix = 'pointer';\n }\n\n var fromNode = from == null ? win : getNodeFromInstance(from);\n var toNode = to == null ? win : getNodeFromInstance(to);\n var leave = new SyntheticEventCtor(leaveEventType, eventTypePrefix + 'leave', from, nativeEvent, nativeEventTarget);\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n var enter = null; \n\n var nativeTargetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (nativeTargetInst === targetInst) {\n var enterEvent = new SyntheticEventCtor(enterEventType, eventTypePrefix + 'enter', to, nativeEvent, nativeEventTarget);\n enterEvent.target = toNode;\n enterEvent.relatedTarget = fromNode;\n enter = enterEvent;\n }\n\n accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leave, enter, from, to);\n}\n\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y \n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\n\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } \n\n\n for (var i = 0; i < keysA.length; i++) {\n var currentKey = keysA[i];\n\n if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) {\n return false;\n }\n }\n\n return true;\n}\n\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n\n return node;\n}\n\n\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n\n node = node.parentNode;\n }\n}\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === TEXT_NODE) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\n\nfunction getOffsets(outerNode) {\n var ownerDocument = outerNode.ownerDocument;\n var win = ownerDocument && ownerDocument.defaultView || window;\n var selection = win.getSelection && win.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset; \n\n try {\n anchorNode.nodeType;\n focusNode.nodeType;\n } catch (e) {\n return null;\n }\n\n return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n var length = 0;\n var start = -1;\n var end = -1;\n var indexWithinAnchor = 0;\n var indexWithinFocus = 0;\n var node = outerNode;\n var parentNode = null;\n\n outer: while (true) {\n var next = null;\n\n while (true) {\n if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n start = length + anchorOffset;\n }\n\n if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n end = length + focusOffset;\n }\n\n if (node.nodeType === TEXT_NODE) {\n length += node.nodeValue.length;\n }\n\n if ((next = node.firstChild) === null) {\n break;\n } \n\n\n parentNode = node;\n node = next;\n }\n\n while (true) {\n if (node === outerNode) {\n break outer;\n }\n\n if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n start = length;\n }\n\n if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n end = length;\n }\n\n if ((next = node.nextSibling) !== null) {\n break;\n }\n\n node = parentNode;\n parentNode = node.parentNode;\n } \n\n\n node = next;\n }\n\n if (start === -1 || end === -1) {\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n}\n\nfunction setOffsets(node, offsets) {\n var doc = node.ownerDocument || document;\n var win = doc && doc.defaultView || window; \n\n if (!win.getSelection) {\n return;\n }\n\n var selection = win.getSelection();\n var length = node.textContent.length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length); \n\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n return;\n }\n\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nfunction isTextNode(node) {\n return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nfunction isInDocument(node) {\n return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n try {\n return typeof iframe.contentWindow.location.href === 'string';\n } catch (err) {\n return false;\n }\n}\n\nfunction getActiveElementDeep() {\n var win = window;\n var element = getActiveElement();\n\n while (element instanceof win.HTMLIFrameElement) {\n if (isSameOriginFrame(element)) {\n win = element.contentWindow;\n } else {\n return element;\n }\n\n element = getActiveElement(win.document);\n }\n\n return element;\n}\n\n\n\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n var focusedElem = getActiveElementDeep();\n return {\n focusedElem: focusedElem,\n selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n };\n}\n\nfunction restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElementDeep();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n setSelection(priorFocusedElem, priorSelectionRange);\n } \n\n\n var ancestors = [];\n var ancestor = priorFocusedElem;\n\n while (ancestor = ancestor.parentNode) {\n if (ancestor.nodeType === ELEMENT_NODE) {\n ancestors.push({\n element: ancestor,\n left: ancestor.scrollLeft,\n top: ancestor.scrollTop\n });\n }\n }\n\n if (typeof priorFocusedElem.focus === 'function') {\n priorFocusedElem.focus();\n }\n\n for (var i = 0; i < ancestors.length; i++) {\n var info = ancestors[i];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n}\n\nfunction getSelection(input) {\n var selection;\n\n if ('selectionStart' in input) {\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else {\n selection = getOffsets(input);\n }\n\n return selection || {\n start: 0,\n end: 0\n };\n}\n\nfunction setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else {\n setOffsets(input, offsets);\n }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nfunction registerEvents$3() {\n registerTwoPhaseEvent('onSelect', ['focusout', 'contextmenu', 'dragend', 'focusin', 'keydown', 'keyup', 'mousedown', 'mouseup', 'selectionchange']);\n}\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\nfunction getSelection$1(node) {\n if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else {\n var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n var selection = win.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n }\n}\n\n\nfunction getEventTargetDocument(eventTarget) {\n return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n\n\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc = getEventTargetDocument(nativeEventTarget);\n\n if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n return;\n } \n\n\n var currentSelection = getSelection$1(activeElement$1);\n\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n var listeners = accumulateTwoPhaseListeners(activeElementInst$1, 'onSelect');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onSelect', 'select', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.target = activeElement$1;\n }\n }\n}\n\n\nfunction extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n\n switch (domEventName) {\n case 'focusin':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement$1 = targetNode;\n activeElementInst$1 = targetInst;\n lastSelection = null;\n }\n\n break;\n\n case 'focusout':\n activeElement$1 = null;\n activeElementInst$1 = null;\n lastSelection = null;\n break;\n\n case 'mousedown':\n mouseDown = true;\n break;\n\n case 'contextmenu':\n case 'mouseup':\n case 'dragend':\n mouseDown = false;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n\n case 'selectionchange':\n if (skipSelectionChangeEvent) {\n break;\n }\n\n\n case 'keydown':\n case 'keyup':\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n}\n\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n return prefixes;\n}\n\n\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\nvar prefixedEventNames = {};\n\nvar style = {};\n\nif (canUseDOM) {\n style = document.createElement('div').style; \n\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n } \n\n\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return eventName;\n}\n\nvar ANIMATION_END = getVendorPrefixedEventName('animationend');\nvar ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration');\nvar ANIMATION_START = getVendorPrefixedEventName('animationstart');\nvar TRANSITION_END = getVendorPrefixedEventName('transitionend');\n\nvar topLevelEventsToReactNames = new Map(); \n\nvar simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'toggle', 'touchMove', 'waiting', 'wheel'];\n\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\n\nfunction registerSimpleEvents() {\n for (var i = 0; i < simpleEventPluginEvents.length; i++) {\n var eventName = simpleEventPluginEvents[i];\n var domEventName = eventName.toLowerCase();\n var capitalizedEvent = eventName[0].toUpperCase() + eventName.slice(1);\n registerSimpleEvent(domEventName, 'on' + capitalizedEvent);\n } \n\n\n registerSimpleEvent(ANIMATION_END, 'onAnimationEnd');\n registerSimpleEvent(ANIMATION_ITERATION, 'onAnimationIteration');\n registerSimpleEvent(ANIMATION_START, 'onAnimationStart');\n registerSimpleEvent('dblclick', 'onDoubleClick');\n registerSimpleEvent('focusin', 'onFocus');\n registerSimpleEvent('focusout', 'onBlur');\n registerSimpleEvent(TRANSITION_END, 'onTransitionEnd');\n}\n\nfunction extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n\n if (reactName === undefined) {\n return;\n }\n\n var SyntheticEventCtor = SyntheticEvent;\n var reactEventType = domEventName;\n\n switch (domEventName) {\n case 'keypress':\n if (getEventCharCode(nativeEvent) === 0) {\n return;\n }\n\n\n case 'keydown':\n case 'keyup':\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n\n case 'focusin':\n reactEventType = 'focus';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'focusout':\n reactEventType = 'blur';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'beforeblur':\n case 'afterblur':\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'click':\n if (nativeEvent.button === 2) {\n return;\n }\n\n\n case 'auxclick':\n case 'dblclick':\n case 'mousedown':\n case 'mousemove':\n case 'mouseup': \n\n\n case 'mouseout':\n case 'mouseover':\n case 'contextmenu':\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n\n case 'drag':\n case 'dragend':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'dragstart':\n case 'drop':\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n\n case 'touchcancel':\n case 'touchend':\n case 'touchmove':\n case 'touchstart':\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n\n case 'scroll':\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n\n case 'wheel':\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n\n case 'copy':\n case 'cut':\n case 'paste':\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'pointerup':\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n }\n\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n {\n var accumulateTargetOnly = !inCapturePhase && \n domEventName === 'scroll';\n\n var _listeners = accumulateSinglePhaseListeners(targetInst, reactName, nativeEvent.type, inCapturePhase, accumulateTargetOnly);\n\n if (_listeners.length > 0) {\n var _event = new SyntheticEventCtor(reactName, reactEventType, null, nativeEvent, nativeEventTarget);\n\n dispatchQueue.push({\n event: _event,\n listeners: _listeners\n });\n }\n }\n}\n\nregisterSimpleEvents();\nregisterEvents$2();\nregisterEvents$1();\nregisterEvents$3();\nregisterEvents();\n\nfunction extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n var shouldProcessPolyfillPlugins = (eventSystemFlags & SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS) === 0; \n\n if (shouldProcessPolyfillPlugins) {\n extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n }\n} \n\n\nvar mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'encrypted', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'resize', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting']; \n\nvar nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'toggle'].concat(mediaEventTypes));\n\nfunction executeDispatch(event, listener, currentTarget) {\n var type = event.type || 'unknown-event';\n event.currentTarget = currentTarget;\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n\nfunction processDispatchQueueItemsInOrder(event, dispatchListeners, inCapturePhase) {\n var previousInstance;\n\n if (inCapturePhase) {\n for (var i = dispatchListeners.length - 1; i >= 0; i--) {\n var _dispatchListeners$i = dispatchListeners[i],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget,\n listener = _dispatchListeners$i.listener;\n\n if (instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, listener, currentTarget);\n previousInstance = instance;\n }\n } else {\n for (var _i = 0; _i < dispatchListeners.length; _i++) {\n var _dispatchListeners$_i = dispatchListeners[_i],\n _instance = _dispatchListeners$_i.instance,\n _currentTarget = _dispatchListeners$_i.currentTarget,\n _listener = _dispatchListeners$_i.listener;\n\n if (_instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, _listener, _currentTarget);\n previousInstance = _instance;\n }\n }\n}\n\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event,\n listeners = _dispatchQueue$i.listeners;\n processDispatchQueueItemsInOrder(event, listeners, inCapturePhase); \n } \n\n\n rethrowCaughtError();\n}\n\nfunction dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var nativeEventTarget = getEventTarget(nativeEvent);\n var dispatchQueue = [];\n extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n}\n\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n {\n if (!nonDelegatedEvents.has(domEventName)) {\n error('Did not expect a listenToNonDelegatedEvent() call for \"%s\". ' + 'This is a bug in React. Please file an issue.', domEventName);\n }\n }\n\n var isCapturePhaseListener = false;\n var listenerSet = getEventListenerSet(targetElement);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener);\n\n if (!listenerSet.has(listenerSetKey)) {\n addTrappedEventListener(targetElement, domEventName, IS_NON_DELEGATED, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n {\n if (nonDelegatedEvents.has(domEventName) && !isCapturePhaseListener) {\n error('Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. ' + 'This is a bug in React. Please file an issue.', domEventName);\n }\n }\n\n var eventSystemFlags = 0;\n\n if (isCapturePhaseListener) {\n eventSystemFlags |= IS_CAPTURE_PHASE;\n }\n\n addTrappedEventListener(target, domEventName, eventSystemFlags, isCapturePhaseListener);\n} \nvar listeningMarker = '_reactListening' + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = true;\n allNativeEvents.forEach(function (domEventName) {\n if (domEventName !== 'selectionchange') {\n if (!nonDelegatedEvents.has(domEventName)) {\n listenToNativeEvent(domEventName, false, rootContainerElement);\n }\n\n listenToNativeEvent(domEventName, true, rootContainerElement);\n }\n });\n var ownerDocument = rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n\n if (ownerDocument !== null) {\n if (!ownerDocument[listeningMarker]) {\n ownerDocument[listeningMarker] = true;\n listenToNativeEvent('selectionchange', false, ownerDocument);\n }\n }\n }\n}\n\nfunction addTrappedEventListener(targetContainer, domEventName, eventSystemFlags, isCapturePhaseListener, isDeferredListenerForLegacyFBSupport) {\n var listener = createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags); \n\n var isPassiveListener = undefined;\n\n if (passiveBrowserEventsSupported) {\n if (domEventName === 'touchstart' || domEventName === 'touchmove' || domEventName === 'wheel') {\n isPassiveListener = true;\n }\n }\n\n targetContainer = targetContainer;\n var unsubscribeListener; \n\n\n if (isCapturePhaseListener) {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventCaptureListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventCaptureListener(targetContainer, domEventName, listener);\n }\n } else {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventBubbleListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventBubbleListener(targetContainer, domEventName, listener);\n }\n }\n}\n\nfunction isMatchingRootContainer(grandContainer, targetContainer) {\n return grandContainer === targetContainer || grandContainer.nodeType === COMMENT_NODE && grandContainer.parentNode === targetContainer;\n}\n\nfunction dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var ancestorInst = targetInst;\n\n if ((eventSystemFlags & IS_EVENT_HANDLE_NON_MANAGED_NODE) === 0 && (eventSystemFlags & IS_NON_DELEGATED) === 0) {\n var targetContainerNode = targetContainer; \n\n if (targetInst !== null) {\n var node = targetInst;\n\n mainLoop: while (true) {\n if (node === null) {\n return;\n }\n\n var nodeTag = node.tag;\n\n if (nodeTag === HostRoot || nodeTag === HostPortal) {\n var container = node.stateNode.containerInfo;\n\n if (isMatchingRootContainer(container, targetContainerNode)) {\n break;\n }\n\n if (nodeTag === HostPortal) {\n var grandNode = node.return;\n\n while (grandNode !== null) {\n var grandTag = grandNode.tag;\n\n if (grandTag === HostRoot || grandTag === HostPortal) {\n var grandContainer = grandNode.stateNode.containerInfo;\n\n if (isMatchingRootContainer(grandContainer, targetContainerNode)) {\n return;\n }\n }\n\n grandNode = grandNode.return;\n }\n } \n\n\n while (container !== null) {\n var parentNode = getClosestInstanceFromNode(container);\n\n if (parentNode === null) {\n return;\n }\n\n var parentTag = parentNode.tag;\n\n if (parentTag === HostComponent || parentTag === HostText) {\n node = ancestorInst = parentNode;\n continue mainLoop;\n }\n\n container = container.parentNode;\n }\n }\n\n node = node.return;\n }\n }\n }\n\n batchedUpdates(function () {\n return dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, ancestorInst);\n });\n}\n\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\n\nfunction accumulateSinglePhaseListeners(targetFiber, reactName, nativeEventType, inCapturePhase, accumulateTargetOnly, nativeEvent) {\n var captureName = reactName !== null ? reactName + 'Capture' : null;\n var reactEventName = inCapturePhase ? captureName : reactName;\n var listeners = [];\n var instance = targetFiber;\n var lastHostComponent = null; \n\n while (instance !== null) {\n var _instance2 = instance,\n stateNode = _instance2.stateNode,\n tag = _instance2.tag; \n\n if (tag === HostComponent && stateNode !== null) {\n lastHostComponent = stateNode; \n\n\n if (reactEventName !== null) {\n var listener = getListener(instance, reactEventName);\n\n if (listener != null) {\n listeners.push(createDispatchListener(instance, listener, lastHostComponent));\n }\n }\n } \n\n\n if (accumulateTargetOnly) {\n break;\n } \n\n instance = instance.return;\n }\n\n return listeners;\n} \n\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n var captureName = reactName + 'Capture';\n var listeners = [];\n var instance = targetFiber; \n\n while (instance !== null) {\n var _instance3 = instance,\n stateNode = _instance3.stateNode,\n tag = _instance3.tag; \n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n var captureListener = getListener(instance, captureName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n\n var bubbleListener = getListener(instance, reactName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n\n instance = instance.return;\n }\n\n return listeners;\n}\n\nfunction getParent(inst) {\n if (inst === null) {\n return null;\n }\n\n do {\n inst = inst.return; \n } while (inst && inst.tag !== HostComponent);\n\n if (inst) {\n return inst;\n }\n\n return null;\n}\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n var nodeA = instA;\n var nodeB = instB;\n var depthA = 0;\n\n for (var tempA = nodeA; tempA; tempA = getParent(tempA)) {\n depthA++;\n }\n\n var depthB = 0;\n\n for (var tempB = nodeB; tempB; tempB = getParent(tempB)) {\n depthB++;\n } \n\n\n while (depthA - depthB > 0) {\n nodeA = getParent(nodeA);\n depthA--;\n } \n\n\n while (depthB - depthA > 0) {\n nodeB = getParent(nodeB);\n depthB--;\n } \n\n\n var depth = depthA;\n\n while (depth--) {\n if (nodeA === nodeB || nodeB !== null && nodeA === nodeB.alternate) {\n return nodeA;\n }\n\n nodeA = getParent(nodeA);\n nodeB = getParent(nodeB);\n }\n\n return null;\n}\n\nfunction accumulateEnterLeaveListenersForEvent(dispatchQueue, event, target, common, inCapturePhase) {\n var registrationName = event._reactName;\n var listeners = [];\n var instance = target;\n\n while (instance !== null) {\n if (instance === common) {\n break;\n }\n\n var _instance4 = instance,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode,\n tag = _instance4.tag;\n\n if (alternate !== null && alternate === common) {\n break;\n }\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n\n if (inCapturePhase) {\n var captureListener = getListener(instance, registrationName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n } else if (!inCapturePhase) {\n var bubbleListener = getListener(instance, registrationName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n }\n\n instance = instance.return;\n }\n\n if (listeners.length !== 0) {\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n} \n\n\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leaveEvent, enterEvent, from, to) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n\n if (from !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, leaveEvent, from, common, false);\n }\n\n if (to !== null && enterEvent !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, enterEvent, to, common, true);\n }\n}\nfunction getListenerSetKey(domEventName, capture) {\n return domEventName + \"__\" + (capture ? 'capture' : 'bubble');\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar warnedUnknownTags;\nvar validatePropertiesInDevelopment;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeHTML;\n\n{\n warnedUnknownTags = {\n dialog: true,\n webview: true\n };\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n });\n }; \n\n\n canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode;\n\n warnForPropDifference = function (propName, serverValue, clientValue) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n if (normalizedServerValue === normalizedClientValue) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n };\n\n warnForExtraAttributes = function (attributeNames) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n var names = [];\n attributeNames.forEach(function (name) {\n names.push(name);\n });\n\n error('Extra attributes from the server: %s', names);\n };\n\n warnForInvalidEventListener = function (registrationName, listener) {\n if (listener === false) {\n error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n } else {\n error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n }\n }; \n\n\n normalizeHTML = function (parent, html) {\n var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n testElement.innerHTML = html;\n return testElement.innerHTML;\n };\n} \n\n\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\nvar NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\nfunction normalizeMarkupForTextOrAttribute(markup) {\n {\n checkHtmlStringCoercion(markup);\n }\n\n var markupString = typeof markup === 'string' ? markup : '' + markup;\n return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n}\n\nfunction checkForUnmatchedText(serverText, clientText, isConcurrentMode, shouldWarnDev) {\n var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n if (normalizedServerText === normalizedClientText) {\n return;\n }\n\n if (shouldWarnDev) {\n {\n if (!didWarnInvalidHydration) {\n didWarnInvalidHydration = true;\n\n error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n }\n }\n }\n\n if (isConcurrentMode && enableClientRenderFallbackOnTextMismatch) {\n throw new Error('Text content does not match server-rendered HTML.');\n }\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n for (var propKey in nextProps) {\n if (!nextProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = nextProps[propKey];\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n Object.freeze(nextProp);\n }\n } \n\n\n setValueForStyles(domElement, nextProp);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n setInnerHTML(domElement, nextHtml);\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n if (canSetTextContent) {\n setTextContent(domElement, nextProp);\n }\n } else if (typeof nextProp === 'number') {\n setTextContent(domElement, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if (nextProp != null) {\n setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n }\n }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n for (var i = 0; i < updatePayload.length; i += 2) {\n var propKey = updatePayload[i];\n var propValue = updatePayload[i + 1];\n\n if (propKey === STYLE) {\n setValueForStyles(domElement, propValue);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n setInnerHTML(domElement, propValue);\n } else if (propKey === CHILDREN) {\n setTextContent(domElement, propValue);\n } else {\n setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n }\n }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n var isCustomComponentTag; \n\n var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n var domElement;\n var namespaceURI = parentNamespace;\n\n if (namespaceURI === HTML_NAMESPACE) {\n namespaceURI = getIntrinsicNamespace(type);\n }\n\n if (namespaceURI === HTML_NAMESPACE) {\n {\n isCustomComponentTag = isCustomComponent(type, props); \n\n if (!isCustomComponentTag && type !== type.toLowerCase()) {\n error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n }\n }\n\n if (type === 'script') {\n var div = ownerDocument.createElement('div');\n\n div.innerHTML = '<script><' + '/script>'; \n\n var firstChild = div.firstChild;\n domElement = div.removeChild(firstChild);\n } else if (typeof props.is === 'string') {\n domElement = ownerDocument.createElement(type, {\n is: props.is\n });\n } else {\n domElement = ownerDocument.createElement(type); \n\n if (type === 'select') {\n var node = domElement;\n\n if (props.multiple) {\n node.multiple = true;\n } else if (props.size) {\n node.size = props.size;\n }\n }\n }\n } else {\n domElement = ownerDocument.createElementNS(namespaceURI, type);\n }\n\n {\n if (namespaceURI === HTML_NAMESPACE) {\n if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !hasOwnProperty.call(warnedUnknownTags, type)) {\n warnedUnknownTags[type] = true;\n\n error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n }\n }\n }\n\n return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n {\n validatePropertiesInDevelopment(tag, rawProps);\n } \n\n\n var props;\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n props = rawProps;\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'video':\n case 'audio':\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n props = rawProps;\n break;\n\n case 'source':\n listenToNonDelegatedEvent('error', domElement);\n props = rawProps;\n break;\n\n case 'img':\n case 'image':\n case 'link':\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'details':\n listenToNonDelegatedEvent('toggle', domElement);\n props = rawProps;\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps);\n props = getHostProps(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n props = rawProps;\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps);\n props = getHostProps$1(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n props = getHostProps$2(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n\n default:\n props = rawProps;\n }\n\n assertValidProps(tag, props);\n setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n switch (tag) {\n case 'input':\n track(domElement);\n postMountWrapper(domElement, rawProps, false);\n break;\n\n case 'textarea':\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'option':\n postMountWrapper$1(domElement, rawProps);\n break;\n\n case 'select':\n postMountWrapper$2(domElement, rawProps);\n break;\n\n default:\n if (typeof props.onClick === 'function') {\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n} \n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n {\n validatePropertiesInDevelopment(tag, nextRawProps);\n }\n\n var updatePayload = null;\n var lastProps;\n var nextProps;\n\n switch (tag) {\n case 'input':\n lastProps = getHostProps(domElement, lastRawProps);\n nextProps = getHostProps(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'select':\n lastProps = getHostProps$1(domElement, lastRawProps);\n nextProps = getHostProps$1(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'textarea':\n lastProps = getHostProps$2(domElement, lastRawProps);\n nextProps = getHostProps$2(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n default:\n lastProps = lastRawProps;\n nextProps = nextRawProps;\n\n if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n assertValidProps(tag, nextProps);\n var propKey;\n var styleName;\n var styleUpdates = null;\n\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (!updatePayload) {\n updatePayload = [];\n }\n } else {\n (updatePayload = updatePayload || []).push(propKey, null);\n }\n }\n\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n Object.freeze(nextProp);\n }\n }\n\n if (lastProp) {\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n } \n\n\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n if (!styleUpdates) {\n if (!updatePayload) {\n updatePayload = [];\n }\n\n updatePayload.push(propKey, styleUpdates);\n }\n\n styleUpdates = nextProp;\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n (updatePayload = updatePayload || []).push(propKey, nextHtml);\n }\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string' || typeof nextProp === 'number') {\n (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n\n if (!updatePayload && lastProp !== nextProp) {\n updatePayload = [];\n }\n } else {\n (updatePayload = updatePayload || []).push(propKey, nextProp);\n }\n }\n\n if (styleUpdates) {\n {\n validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n }\n\n (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n }\n\n return updatePayload;\n} \n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n updateChecked(domElement, nextRawProps);\n }\n\n var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n var isCustomComponentTag = isCustomComponent(tag, nextRawProps); \n\n updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); \n\n switch (tag) {\n case 'input':\n updateWrapper(domElement, nextRawProps);\n break;\n\n case 'textarea':\n updateWrapper$1(domElement, nextRawProps);\n break;\n\n case 'select':\n postUpdateWrapper(domElement, nextRawProps);\n break;\n }\n}\n\nfunction getPossibleStandardName(propName) {\n {\n var lowerCasedName = propName.toLowerCase();\n\n if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n return null;\n }\n\n return possibleStandardNames[lowerCasedName] || null;\n }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement, isConcurrentMode, shouldWarnDev) {\n var isCustomComponentTag;\n var extraAttributeNames;\n\n {\n isCustomComponentTag = isCustomComponent(tag, rawProps);\n validatePropertiesInDevelopment(tag, rawProps);\n } \n\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'video':\n case 'audio':\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n break;\n\n case 'source':\n listenToNonDelegatedEvent('error', domElement);\n break;\n\n case 'img':\n case 'image':\n case 'link':\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'details':\n listenToNonDelegatedEvent('toggle', domElement);\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps); \n\n listenToNonDelegatedEvent('invalid', domElement);\n break;\n }\n\n assertValidProps(tag, rawProps);\n\n {\n extraAttributeNames = new Set();\n var attributes = domElement.attributes;\n\n for (var _i = 0; _i < attributes.length; _i++) {\n var name = attributes[_i].name.toLowerCase();\n\n switch (name) {\n case 'value':\n break;\n\n case 'checked':\n break;\n\n case 'selected':\n break;\n\n default:\n extraAttributeNames.add(attributes[_i].name);\n }\n }\n }\n\n var updatePayload = null;\n\n for (var propKey in rawProps) {\n if (!rawProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = rawProps[propKey];\n\n if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n if (domElement.textContent !== nextProp) {\n if (rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n checkForUnmatchedText(domElement.textContent, nextProp, isConcurrentMode, shouldWarnDev);\n }\n\n updatePayload = [CHILDREN, nextProp];\n }\n } else if (typeof nextProp === 'number') {\n if (domElement.textContent !== '' + nextProp) {\n if (rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n checkForUnmatchedText(domElement.textContent, nextProp, isConcurrentMode, shouldWarnDev);\n }\n\n updatePayload = [CHILDREN, '' + nextProp];\n }\n }\n } else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if (shouldWarnDev && true && \n typeof isCustomComponentTag === 'boolean') {\n var serverValue = void 0;\n var propertyInfo = isCustomComponentTag && enableCustomElementPropertySupport ? null : getPropertyInfo(propKey);\n\n if (rawProps[SUPPRESS_HYDRATION_WARNING] === true) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || \n propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var serverHTML = domElement.innerHTML;\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n var expectedHTML = normalizeHTML(domElement, nextHtml);\n\n if (expectedHTML !== serverHTML) {\n warnForPropDifference(propKey, serverHTML, expectedHTML);\n }\n }\n } else if (propKey === STYLE) {\n extraAttributeNames.delete(propKey);\n\n if (canDiffStyleForHydrationWarning) {\n var expectedStyle = createDangerousStringForStyles(nextProp);\n serverValue = domElement.getAttribute('style');\n\n if (expectedStyle !== serverValue) {\n warnForPropDifference(propKey, serverValue, expectedStyle);\n }\n }\n } else if (isCustomComponentTag && !enableCustomElementPropertySupport) {\n extraAttributeNames.delete(propKey.toLowerCase());\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n var isMismatchDueToBadCasing = false;\n\n if (propertyInfo !== null) {\n extraAttributeNames.delete(propertyInfo.attributeName);\n serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n } else {\n var ownNamespace = parentNamespace;\n\n if (ownNamespace === HTML_NAMESPACE) {\n ownNamespace = getIntrinsicNamespace(tag);\n }\n\n if (ownNamespace === HTML_NAMESPACE) {\n extraAttributeNames.delete(propKey.toLowerCase());\n } else {\n var standardName = getPossibleStandardName(propKey);\n\n if (standardName !== null && standardName !== propKey) {\n isMismatchDueToBadCasing = true; \n\n extraAttributeNames.delete(standardName);\n } \n\n\n extraAttributeNames.delete(propKey);\n }\n\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n }\n\n var dontWarnCustomElement = enableCustomElementPropertySupport ;\n\n if (!dontWarnCustomElement && nextProp !== serverValue && !isMismatchDueToBadCasing) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n }\n }\n }\n\n {\n if (shouldWarnDev) {\n if ( \n extraAttributeNames.size > 0 && rawProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n warnForExtraAttributes(extraAttributeNames);\n }\n }\n }\n\n switch (tag) {\n case 'input':\n track(domElement);\n postMountWrapper(domElement, rawProps, true);\n break;\n\n case 'textarea':\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'select':\n case 'option':\n break;\n\n default:\n if (typeof rawProps.onClick === 'function') {\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n return updatePayload;\n}\nfunction diffHydratedText(textNode, text, isConcurrentMode) {\n var isDifferent = textNode.nodeValue !== text;\n return isDifferent;\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n {\n if (text === '') {\n return;\n }\n\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n switch (tag) {\n case 'input':\n restoreControlledState(domElement, props);\n return;\n\n case 'textarea':\n restoreControlledState$2(domElement, props);\n return;\n\n case 'select':\n restoreControlledState$1(domElement, props);\n return;\n }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; \n\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', \n 'foreignObject', 'desc', 'title']; \n\n var buttonScopeTags = inScopeTags.concat(['button']); \n\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n var emptyAncestorInfo = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n updatedAncestorInfo = function (oldInfo, tag) {\n var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n\n var info = {\n tag: tag\n };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n } \n\n\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n\n var isTagValidWithParent = function (tag, parentTag) {\n switch (parentTag) {\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n\n case 'option':\n return tag === '#text';\n\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n case 'html':\n return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n case 'frameset':\n return tag === 'frame';\n\n case '#document':\n return tag === 'html';\n } \n\n\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frameset':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n return parentTag == null;\n }\n\n return true;\n };\n\n\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n var didWarn$1 = {};\n\n validateDOMNesting = function (childTag, childText, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n if (childTag != null) {\n error('validateDOMNesting: when childText is passed, childTag should be null');\n }\n\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n if (!invalidParentOrAncestor) {\n return;\n }\n\n var ancestorTag = invalidParentOrAncestor.tag;\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag;\n\n if (didWarn$1[warnKey]) {\n return;\n }\n\n didWarn$1[warnKey] = true;\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n\n error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n } else {\n error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n }\n };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\nfunction getRootHostContext(rootContainerInstance) {\n var type;\n var namespace;\n var nodeType = rootContainerInstance.nodeType;\n\n switch (nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n {\n type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n var root = rootContainerInstance.documentElement;\n namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n break;\n }\n\n default:\n {\n var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n var ownNamespace = container.namespaceURI || null;\n type = container.tagName;\n namespace = getChildNamespace(ownNamespace, type);\n break;\n }\n }\n\n {\n var validatedTag = type.toLowerCase();\n var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n {\n var parentHostContextDev = parentHostContext;\n var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getPublicInstance(instance) {\n return instance;\n}\nfunction prepareForCommit(containerInfo) {\n eventsEnabled = isEnabled();\n selectionInformation = getSelectionInformation();\n var activeInstance = null;\n\n setEnabled(false);\n return activeInstance;\n}\nfunction resetAfterCommit(containerInfo) {\n restoreSelection(selectionInformation);\n setEnabled(eventsEnabled);\n eventsEnabled = null;\n selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n var parentNamespace;\n\n {\n var hostContextDev = hostContext;\n validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n if (typeof props.children === 'string' || typeof props.children === 'number') {\n var string = '' + props.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n\n parentNamespace = hostContextDev.namespace;\n }\n\n var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n precacheFiberNode(internalInstanceHandle, domElement);\n updateFiberProps(domElement, props);\n return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n setInitialProperties(domElement, type, props, rootContainerInstance);\n\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n return !!props.autoFocus;\n\n case 'img':\n return true;\n\n default:\n return false;\n }\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n {\n var hostContextDev = hostContext;\n\n if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n var string = '' + newProps.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n }\n\n return diffProperties(domElement, type, oldProps, newProps);\n}\nfunction shouldSetTextContent(type, props) {\n return type === 'textarea' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n {\n var hostContextDev = hostContext;\n validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n }\n\n var textNode = createTextNode(text, rootContainerInstance);\n precacheFiberNode(internalInstanceHandle, textNode);\n return textNode;\n}\nfunction getCurrentEventPriority() {\n var currentEvent = window.event;\n\n if (currentEvent === undefined) {\n return DefaultEventPriority;\n }\n\n return getEventPriority(currentEvent.type);\n}\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1;\nvar localPromise = typeof Promise === 'function' ? Promise : undefined; \nvar scheduleMicrotask = typeof queueMicrotask === 'function' ? queueMicrotask : typeof localPromise !== 'undefined' ? function (callback) {\n return localPromise.resolve(null).then(callback).catch(handleErrorInNextTick);\n} : scheduleTimeout; \n\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n} \nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n if (newProps.autoFocus) {\n domElement.focus();\n }\n\n return;\n\n case 'img':\n {\n if (newProps.src) {\n domElement.src = newProps.src;\n }\n\n return;\n }\n }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n updateProperties(domElement, updatePayload, type, oldProps, newProps); \n\n updateFiberProps(domElement, newProps);\n}\nfunction resetTextContent(domElement) {\n setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n var parentNode;\n\n if (container.nodeType === COMMENT_NODE) {\n parentNode = container.parentNode;\n parentNode.insertBefore(child, container);\n } else {\n parentNode = container;\n parentNode.appendChild(child);\n } \n\n\n var reactRootContainer = container._reactRootContainer;\n\n if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n trapClickOnNonInteractiveElement(parentNode);\n }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, beforeChild);\n } else {\n container.insertBefore(child, beforeChild);\n }\n}\n\nfunction removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.removeChild(child);\n } else {\n container.removeChild(child);\n }\n}\nfunction clearSuspenseBoundary(parentInstance, suspenseInstance) {\n var node = suspenseInstance; \n\n var depth = 0;\n\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n\n if (nextNode && nextNode.nodeType === COMMENT_NODE) {\n var data = nextNode.data;\n\n if (data === SUSPENSE_END_DATA) {\n if (depth === 0) {\n parentInstance.removeChild(nextNode); \n\n retryIfBlockedOn(suspenseInstance);\n return;\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_PENDING_START_DATA || data === SUSPENSE_FALLBACK_START_DATA) {\n depth++;\n }\n }\n\n node = nextNode;\n } while (node); \n\n\n retryIfBlockedOn(suspenseInstance);\n}\nfunction clearSuspenseBoundaryFromContainer(container, suspenseInstance) {\n if (container.nodeType === COMMENT_NODE) {\n clearSuspenseBoundary(container.parentNode, suspenseInstance);\n } else if (container.nodeType === ELEMENT_NODE) {\n clearSuspenseBoundary(container, suspenseInstance);\n } \n\n\n retryIfBlockedOn(container);\n}\nfunction hideInstance(instance) {\n instance = instance;\n var style = instance.style;\n\n if (typeof style.setProperty === 'function') {\n style.setProperty('display', 'none', 'important');\n } else {\n style.display = 'none';\n }\n}\nfunction hideTextInstance(textInstance) {\n textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n instance = instance;\n var styleProp = props[STYLE$1];\n var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n}\nfunction clearContainer(container) {\n if (container.nodeType === ELEMENT_NODE) {\n container.textContent = '';\n } else if (container.nodeType === DOCUMENT_NODE) {\n if (container.documentElement) {\n container.removeChild(container.documentElement);\n }\n }\n} \nfunction canHydrateInstance(instance, type, props) {\n if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n return null;\n } \n\n\n return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n if (text === '' || instance.nodeType !== TEXT_NODE) {\n return null;\n } \n\n\n return instance;\n}\nfunction canHydrateSuspenseInstance(instance) {\n if (instance.nodeType !== COMMENT_NODE) {\n return null;\n } \n\n\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\nfunction getSuspenseInstanceFallbackErrorDetails(instance) {\n var dataset = instance.nextSibling && instance.nextSibling.dataset;\n var digest, message, stack;\n\n if (dataset) {\n digest = dataset.dgst;\n\n {\n message = dataset.msg;\n stack = dataset.stck;\n }\n }\n\n {\n return {\n message: message,\n digest: digest,\n stack: stack\n };\n } \n\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n instance._reactRetry = callback;\n}\n\nfunction getNextHydratable(node) {\n for (; node != null; node = node.nextSibling) {\n var nodeType = node.nodeType;\n\n if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n break;\n }\n\n if (nodeType === COMMENT_NODE) {\n var nodeData = node.data;\n\n if (nodeData === SUSPENSE_START_DATA || nodeData === SUSPENSE_FALLBACK_START_DATA || nodeData === SUSPENSE_PENDING_START_DATA) {\n break;\n }\n\n if (nodeData === SUSPENSE_END_DATA) {\n return null;\n }\n }\n }\n\n return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n return getNextHydratable(parentInstance.firstChild);\n}\nfunction getFirstHydratableChildWithinContainer(parentContainer) {\n return getNextHydratable(parentContainer.firstChild);\n}\nfunction getFirstHydratableChildWithinSuspenseInstance(parentInstance) {\n return getNextHydratable(parentInstance.nextSibling);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle, shouldWarnDev) {\n precacheFiberNode(internalInstanceHandle, instance); \n\n updateFiberProps(instance, props);\n var parentNamespace;\n\n {\n var hostContextDev = hostContext;\n parentNamespace = hostContextDev.namespace;\n } \n\n\n var isConcurrentMode = (internalInstanceHandle.mode & ConcurrentMode) !== NoMode;\n return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance, isConcurrentMode, shouldWarnDev);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle, shouldWarnDev) {\n precacheFiberNode(internalInstanceHandle, textInstance); \n\n var isConcurrentMode = (internalInstanceHandle.mode & ConcurrentMode) !== NoMode;\n return diffHydratedText(textInstance, text);\n}\nfunction hydrateSuspenseInstance(suspenseInstance, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, suspenseInstance);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n var node = suspenseInstance.nextSibling; \n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_END_DATA) {\n if (depth === 0) {\n return getNextHydratableSibling(node);\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n depth++;\n }\n }\n\n node = node.nextSibling;\n } \n\n\n return null;\n} \n\nfunction getParentSuspenseInstance(targetInstance) {\n var node = targetInstance.previousSibling; \n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n if (depth === 0) {\n return node;\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_END_DATA) {\n depth++;\n }\n }\n\n node = node.previousSibling;\n }\n\n return null;\n}\nfunction commitHydratedContainer(container) {\n retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n retryIfBlockedOn(suspenseInstance);\n}\nfunction shouldDeleteUnhydratedTailInstances(parentType) {\n return parentType !== 'head' && parentType !== 'body';\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text, isConcurrentMode) {\n var shouldWarnDev = true;\n checkForUnmatchedText(textInstance.nodeValue, text, isConcurrentMode, shouldWarnDev);\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text, isConcurrentMode) {\n if (parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n var shouldWarnDev = true;\n checkForUnmatchedText(textInstance.nodeValue, text, isConcurrentMode, shouldWarnDev);\n }\n}\nfunction didNotHydrateInstanceWithinContainer(parentContainer, instance) {\n {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentContainer, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentContainer, instance);\n }\n }\n}\nfunction didNotHydrateInstanceWithinSuspenseInstance(parentInstance, instance) {\n {\n var parentNode = parentInstance.parentNode;\n\n if (parentNode !== null) {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentNode, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentNode, instance);\n }\n }\n }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance, isConcurrentMode) {\n {\n if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentInstance, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentInstance, instance);\n }\n }\n }\n}\nfunction didNotFindHydratableInstanceWithinContainer(parentContainer, type, props) {\n {\n warnForInsertedHydratedElement(parentContainer, type);\n }\n}\nfunction didNotFindHydratableTextInstanceWithinContainer(parentContainer, text) {\n {\n warnForInsertedHydratedText(parentContainer, text);\n }\n}\nfunction didNotFindHydratableInstanceWithinSuspenseInstance(parentInstance, type, props) {\n {\n var parentNode = parentInstance.parentNode;\n if (parentNode !== null) warnForInsertedHydratedElement(parentNode, type);\n }\n}\nfunction didNotFindHydratableTextInstanceWithinSuspenseInstance(parentInstance, text) {\n {\n var parentNode = parentInstance.parentNode;\n if (parentNode !== null) warnForInsertedHydratedText(parentNode, text);\n }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props, isConcurrentMode) {\n {\n if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedElement(parentInstance, type);\n }\n }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text, isConcurrentMode) {\n {\n if (isConcurrentMode || parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedText(parentInstance, text);\n }\n }\n}\nfunction errorHydratingContainer(parentContainer) {\n {\n error('An error occurred during hydration. The server HTML was replaced with client content in <%s>.', parentContainer.nodeName.toLowerCase());\n }\n}\nfunction preparePortalMount(portalInstance) {\n listenToAllSupportedEvents(portalInstance);\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactFiber$' + randomKey;\nvar internalPropsKey = '__reactProps$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainer$' + randomKey;\nvar internalEventHandlersKey = '__reactEvents$' + randomKey;\nvar internalEventHandlerListenersKey = '__reactListeners$' + randomKey;\nvar internalEventHandlesSetKey = '__reactHandles$' + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction precacheFiberNode(hostInst, node) {\n node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n return !!node[internalContainerInstanceKey];\n} \n\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n\n if (targetInst) {\n return targetInst;\n } \n\n\n var parentNode = targetNode.parentNode;\n\n while (parentNode) {\n targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n if (targetInst) {\n var alternate = targetInst.alternate;\n\n if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n while (suspenseInstance !== null) {\n var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n if (targetSuspenseInst) {\n return targetSuspenseInst;\n } \n\n\n suspenseInstance = getParentSuspenseInstance(suspenseInstance); \n }\n }\n\n return targetInst;\n }\n\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n\n return null;\n}\n\nfunction getInstanceFromNode(node) {\n var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n if (inst) {\n if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n return inst;\n } else {\n return null;\n }\n }\n\n return null;\n}\n\nfunction getNodeFromInstance(inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n return inst.stateNode;\n } \n\n\n throw new Error('getNodeFromInstance: Invalid argument.');\n}\nfunction getFiberCurrentPropsFromNode(node) {\n return node[internalPropsKey] || null;\n}\nfunction updateFiberProps(node, props) {\n node[internalPropsKey] = props;\n}\nfunction getEventListenerSet(node) {\n var elementListenerSet = node[internalEventHandlersKey];\n\n if (elementListenerSet === undefined) {\n elementListenerSet = node[internalEventHandlersKey] = new Set();\n }\n\n return elementListenerSet;\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; \n\n try {\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n return {\n current: defaultValue\n };\n}\n\nfunction pop(cursor, fiber) {\n if (index < 0) {\n {\n error('Unexpected pop.');\n }\n\n return;\n }\n\n {\n if (fiber !== fiberStack[index]) {\n error('Unexpected Fiber popped.');\n }\n }\n\n cursor.current = valueStack[index];\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n}\n\nfunction push(cursor, value, fiber) {\n index++;\n valueStack[index] = cursor.current;\n\n {\n fiberStack[index] = fiber;\n }\n\n cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n Object.freeze(emptyContextObject);\n} \n\n\nvar contextStackCursor = createCursor(emptyContextObject); \n\nvar didPerformWorkStackCursor = createCursor(false); \n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n {\n if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n return previousContext;\n }\n\n return contextStackCursor.current;\n }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n {\n var instance = workInProgress.stateNode;\n instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n {\n var type = workInProgress.type;\n var contextTypes = type.contextTypes;\n\n if (!contextTypes) {\n return emptyContextObject;\n } \n\n\n var instance = workInProgress.stateNode;\n\n if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n return instance.__reactInternalMemoizedMaskedChildContext;\n }\n\n var context = {};\n\n for (var key in contextTypes) {\n context[key] = unmaskedContext[key];\n }\n\n {\n var name = getComponentNameFromFiber(workInProgress) || 'Unknown';\n checkPropTypes(contextTypes, context, 'context', name);\n } \n\n\n if (instance) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return context;\n }\n}\n\nfunction hasContextChanged() {\n {\n return didPerformWorkStackCursor.current;\n }\n}\n\nfunction isContextProvider(type) {\n {\n var childContextTypes = type.childContextTypes;\n return childContextTypes !== null && childContextTypes !== undefined;\n }\n}\n\nfunction popContext(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction popTopLevelContextObject(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n {\n if (contextStackCursor.current !== emptyContextObject) {\n throw new Error('Unexpected context found on stack. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n push(contextStackCursor, context, fiber);\n push(didPerformWorkStackCursor, didChange, fiber);\n }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n {\n var instance = fiber.stateNode;\n var childContextTypes = type.childContextTypes; \n\n if (typeof instance.getChildContext !== 'function') {\n {\n var componentName = getComponentNameFromFiber(fiber) || 'Unknown';\n\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n\n error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n }\n }\n\n return parentContext;\n }\n\n var childContext = instance.getChildContext();\n\n for (var contextKey in childContext) {\n if (!(contextKey in childContextTypes)) {\n throw new Error((getComponentNameFromFiber(fiber) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\");\n }\n }\n\n {\n var name = getComponentNameFromFiber(fiber) || 'Unknown';\n checkPropTypes(childContextTypes, childContext, 'child context', name);\n }\n\n return assign({}, parentContext, childContext);\n }\n}\n\nfunction pushContextProvider(workInProgress) {\n {\n var instance = workInProgress.stateNode; \n\n var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; \n\n previousContext = contextStackCursor.current;\n push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n return true;\n }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n {\n var instance = workInProgress.stateNode;\n\n if (!instance) {\n throw new Error('Expected to have an instance by this point. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n if (didChange) {\n var mergedContext = processChildContext(workInProgress, type, previousContext);\n instance.__reactInternalMemoizedMergedChildContext = mergedContext; \n\n pop(didPerformWorkStackCursor, workInProgress);\n pop(contextStackCursor, workInProgress); \n\n push(contextStackCursor, mergedContext, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n } else {\n pop(didPerformWorkStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n }\n }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n {\n if (!isFiberMounted(fiber) || fiber.tag !== ClassComponent) {\n throw new Error('Expected subtree parent to be a mounted class component. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n var node = fiber;\n\n do {\n switch (node.tag) {\n case HostRoot:\n return node.stateNode.context;\n\n case ClassComponent:\n {\n var Component = node.type;\n\n if (isContextProvider(Component)) {\n return node.stateNode.__reactInternalMemoizedMergedChildContext;\n }\n\n break;\n }\n }\n\n node = node.return;\n } while (node !== null);\n\n throw new Error('Found unexpected detached subtree parent. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n}\n\nvar LegacyRoot = 0;\nvar ConcurrentRoot = 1;\n\nvar syncQueue = null;\nvar includesLegacySyncCallbacks = false;\nvar isFlushingSyncQueue = false;\nfunction scheduleSyncCallback(callback) {\n if (syncQueue === null) {\n syncQueue = [callback];\n } else {\n syncQueue.push(callback);\n }\n}\nfunction scheduleLegacySyncCallback(callback) {\n includesLegacySyncCallbacks = true;\n scheduleSyncCallback(callback);\n}\nfunction flushSyncCallbacksOnlyInLegacyMode() {\n if (includesLegacySyncCallbacks) {\n flushSyncCallbacks();\n }\n}\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && syncQueue !== null) {\n isFlushingSyncQueue = true;\n var i = 0;\n var previousUpdatePriority = getCurrentUpdatePriority();\n\n try {\n var isSync = true;\n var queue = syncQueue; \n\n setCurrentUpdatePriority(DiscreteEventPriority);\n\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(isSync);\n } while (callback !== null);\n }\n\n syncQueue = null;\n includesLegacySyncCallbacks = false;\n } catch (error) {\n if (syncQueue !== null) {\n syncQueue = syncQueue.slice(i + 1);\n } \n\n\n scheduleCallback(ImmediatePriority, flushSyncCallbacks);\n throw error;\n } finally {\n setCurrentUpdatePriority(previousUpdatePriority);\n isFlushingSyncQueue = false;\n }\n }\n\n return null;\n}\n\nvar forkStack = [];\nvar forkStackIndex = 0;\nvar treeForkProvider = null;\nvar treeForkCount = 0;\nvar idStack = [];\nvar idStackIndex = 0;\nvar treeContextProvider = null;\nvar treeContextId = 1;\nvar treeContextOverflow = '';\nfunction isForkedChild(workInProgress) {\n warnIfNotHydrating();\n return (workInProgress.flags & Forked) !== NoFlags;\n}\nfunction getForksAtLevel(workInProgress) {\n warnIfNotHydrating();\n return treeForkCount;\n}\nfunction getTreeId() {\n var overflow = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n var id = idWithLeadingBit & ~getLeadingBit(idWithLeadingBit);\n return id.toString(32) + overflow;\n}\nfunction pushTreeFork(workInProgress, totalChildren) {\n warnIfNotHydrating();\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n warnIfNotHydrating();\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n var baseOverflow = treeContextOverflow; \n\n var baseLength = getBitLength(baseIdWithLeadingBit) - 1;\n var baseId = baseIdWithLeadingBit & ~(1 << baseLength);\n var slot = index + 1;\n var length = getBitLength(totalChildren) + baseLength; \n\n if (length > 30) {\n var numberOfOverflowBits = baseLength - baseLength % 5; \n\n var newOverflowBits = (1 << numberOfOverflowBits) - 1; \n\n var newOverflow = (baseId & newOverflowBits).toString(32); \n\n var restOfBaseId = baseId >> numberOfOverflowBits;\n var restOfBaseLength = baseLength - numberOfOverflowBits; \n\n var restOfLength = getBitLength(totalChildren) + restOfBaseLength;\n var restOfNewBits = slot << restOfBaseLength;\n var id = restOfNewBits | restOfBaseId;\n var overflow = newOverflow + baseOverflow;\n treeContextId = 1 << restOfLength | id;\n treeContextOverflow = overflow;\n } else {\n var newBits = slot << baseLength;\n\n var _id = newBits | baseId;\n\n var _overflow = baseOverflow;\n treeContextId = 1 << length | _id;\n treeContextOverflow = _overflow;\n }\n}\nfunction pushMaterializedTreeId(workInProgress) {\n warnIfNotHydrating(); \n\n var returnFiber = workInProgress.return;\n\n if (returnFiber !== null) {\n var numberOfForks = 1;\n var slotIndex = 0;\n pushTreeFork(workInProgress, numberOfForks);\n pushTreeId(workInProgress, numberOfForks, slotIndex);\n }\n}\n\nfunction getBitLength(number) {\n return 32 - clz32(number);\n}\n\nfunction getLeadingBit(id) {\n return 1 << getBitLength(id) - 1;\n}\n\nfunction popTreeContext(workInProgress) {\n while (workInProgress === treeForkProvider) {\n treeForkProvider = forkStack[--forkStackIndex];\n forkStack[forkStackIndex] = null;\n treeForkCount = forkStack[--forkStackIndex];\n forkStack[forkStackIndex] = null;\n }\n\n while (workInProgress === treeContextProvider) {\n treeContextProvider = idStack[--idStackIndex];\n idStack[idStackIndex] = null;\n treeContextOverflow = idStack[--idStackIndex];\n idStack[idStackIndex] = null;\n treeContextId = idStack[--idStackIndex];\n idStack[idStackIndex] = null;\n }\n}\nfunction getSuspendedTreeContext() {\n warnIfNotHydrating();\n\n if (treeContextProvider !== null) {\n return {\n id: treeContextId,\n overflow: treeContextOverflow\n };\n } else {\n return null;\n }\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n warnIfNotHydrating();\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\n\nfunction warnIfNotHydrating() {\n {\n if (!getIsHydrating()) {\n error('Expected to be hydrating. This is a bug in React. Please file ' + 'an issue.');\n }\n }\n}\n\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false; \n\nvar didSuspendOrErrorDEV = false; \n\nvar hydrationErrors = null;\n\nfunction warnIfHydrating() {\n {\n if (isHydrating) {\n error('We should not be hydrating here. This is a bug in React. Please file a bug.');\n }\n }\n}\n\nfunction markDidThrowWhileHydratingDEV() {\n {\n didSuspendOrErrorDEV = true;\n }\n}\nfunction didSuspendOrErrorWhileHydratingDEV() {\n {\n return didSuspendOrErrorDEV;\n }\n}\n\nfunction enterHydrationState(fiber) {\n\n var parentInstance = fiber.stateNode.containerInfo;\n nextHydratableInstance = getFirstHydratableChildWithinContainer(parentInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n hydrationErrors = null;\n didSuspendOrErrorDEV = false;\n return true;\n}\n\nfunction reenterHydrationStateFromDehydratedSuspenseInstance(fiber, suspenseInstance, treeContext) {\n\n nextHydratableInstance = getFirstHydratableChildWithinSuspenseInstance(suspenseInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n hydrationErrors = null;\n didSuspendOrErrorDEV = false;\n\n if (treeContext !== null) {\n restoreSuspendedTreeContext(fiber, treeContext);\n }\n\n return true;\n}\n\nfunction warnUnhydratedInstance(returnFiber, instance) {\n {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n didNotHydrateInstanceWithinContainer(returnFiber.stateNode.containerInfo, instance);\n break;\n }\n\n case HostComponent:\n {\n var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance, \n isConcurrentMode);\n break;\n }\n\n case SuspenseComponent:\n {\n var suspenseState = returnFiber.memoizedState;\n if (suspenseState.dehydrated !== null) didNotHydrateInstanceWithinSuspenseInstance(suspenseState.dehydrated, instance);\n break;\n }\n }\n }\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n warnUnhydratedInstance(returnFiber, instance);\n var childToDelete = createFiberFromHostInstanceForDeletion();\n childToDelete.stateNode = instance;\n childToDelete.return = returnFiber;\n var deletions = returnFiber.deletions;\n\n if (deletions === null) {\n returnFiber.deletions = [childToDelete];\n returnFiber.flags |= ChildDeletion;\n } else {\n deletions.push(childToDelete);\n }\n}\n\nfunction warnNonhydratedInstance(returnFiber, fiber) {\n {\n if (didSuspendOrErrorDEV) {\n return;\n }\n\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n\n switch (fiber.tag) {\n case HostComponent:\n var type = fiber.type;\n var props = fiber.pendingProps;\n didNotFindHydratableInstanceWithinContainer(parentContainer, type);\n break;\n\n case HostText:\n var text = fiber.pendingProps;\n didNotFindHydratableTextInstanceWithinContainer(parentContainer, text);\n break;\n }\n\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n\n switch (fiber.tag) {\n case HostComponent:\n {\n var _type = fiber.type;\n var _props = fiber.pendingProps;\n var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props, \n isConcurrentMode);\n break;\n }\n\n case HostText:\n {\n var _text = fiber.pendingProps;\n\n var _isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n\n didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text, \n _isConcurrentMode);\n break;\n }\n }\n\n break;\n }\n\n case SuspenseComponent:\n {\n var suspenseState = returnFiber.memoizedState;\n var _parentInstance = suspenseState.dehydrated;\n if (_parentInstance !== null) switch (fiber.tag) {\n case HostComponent:\n var _type2 = fiber.type;\n var _props2 = fiber.pendingProps;\n didNotFindHydratableInstanceWithinSuspenseInstance(_parentInstance, _type2);\n break;\n\n case HostText:\n var _text2 = fiber.pendingProps;\n didNotFindHydratableTextInstanceWithinSuspenseInstance(_parentInstance, _text2);\n break;\n }\n break;\n }\n\n default:\n return;\n }\n }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n fiber.flags = fiber.flags & ~Hydrating | Placement;\n warnNonhydratedInstance(returnFiber, fiber);\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n switch (fiber.tag) {\n case HostComponent:\n {\n var type = fiber.type;\n var props = fiber.pendingProps;\n var instance = canHydrateInstance(nextInstance, type);\n\n if (instance !== null) {\n fiber.stateNode = instance;\n hydrationParentFiber = fiber;\n nextHydratableInstance = getFirstHydratableChild(instance);\n return true;\n }\n\n return false;\n }\n\n case HostText:\n {\n var text = fiber.pendingProps;\n var textInstance = canHydrateTextInstance(nextInstance, text);\n\n if (textInstance !== null) {\n fiber.stateNode = textInstance;\n hydrationParentFiber = fiber; \n\n nextHydratableInstance = null;\n return true;\n }\n\n return false;\n }\n\n case SuspenseComponent:\n {\n var suspenseInstance = canHydrateSuspenseInstance(nextInstance);\n\n if (suspenseInstance !== null) {\n var suspenseState = {\n dehydrated: suspenseInstance,\n treeContext: getSuspendedTreeContext(),\n retryLane: OffscreenLane\n };\n fiber.memoizedState = suspenseState; \n\n var dehydratedFragment = createFiberFromDehydratedFragment(suspenseInstance);\n dehydratedFragment.return = fiber;\n fiber.child = dehydratedFragment;\n hydrationParentFiber = fiber; \n\n nextHydratableInstance = null;\n return true;\n }\n\n return false;\n }\n\n default:\n return false;\n }\n}\n\nfunction shouldClientRenderOnMismatch(fiber) {\n return (fiber.mode & ConcurrentMode) !== NoMode && (fiber.flags & DidCapture) === NoFlags;\n}\n\nfunction throwOnHydrationMismatch(fiber) {\n throw new Error('Hydration failed because the initial UI does not match what was ' + 'rendered on the server.');\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n if (!isHydrating) {\n return;\n }\n\n var nextInstance = nextHydratableInstance;\n\n if (!nextInstance) {\n if (shouldClientRenderOnMismatch(fiber)) {\n warnNonhydratedInstance(hydrationParentFiber, fiber);\n throwOnHydrationMismatch();\n } \n\n\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n\n var firstAttemptedInstance = nextInstance;\n\n if (!tryHydrate(fiber, nextInstance)) {\n if (shouldClientRenderOnMismatch(fiber)) {\n warnNonhydratedInstance(hydrationParentFiber, fiber);\n throwOnHydrationMismatch();\n } \n\n\n nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n var prevHydrationParentFiber = hydrationParentFiber;\n\n if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n } \n\n\n deleteHydratableInstance(prevHydrationParentFiber, firstAttemptedInstance);\n }\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n var instance = fiber.stateNode;\n var shouldWarnIfMismatchDev = !didSuspendOrErrorDEV;\n var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber, shouldWarnIfMismatchDev); \n\n fiber.updateQueue = updatePayload; \n\n if (updatePayload !== null) {\n return true;\n }\n\n return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n var textInstance = fiber.stateNode;\n var textContent = fiber.memoizedProps;\n var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n if (shouldUpdate) {\n var returnFiber = hydrationParentFiber;\n\n if (returnFiber !== null) {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n var isConcurrentMode = (returnFiber.mode & ConcurrentMode) !== NoMode;\n didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent, \n isConcurrentMode);\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n\n var _isConcurrentMode2 = (returnFiber.mode & ConcurrentMode) !== NoMode;\n\n didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent, \n _isConcurrentMode2);\n break;\n }\n }\n }\n }\n\n return shouldUpdate;\n}\n\nfunction prepareToHydrateHostSuspenseInstance(fiber) {\n\n var suspenseState = fiber.memoizedState;\n var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n if (!suspenseInstance) {\n throw new Error('Expected to have a hydrated suspense instance. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n hydrateSuspenseInstance(suspenseInstance, fiber);\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n var suspenseState = fiber.memoizedState;\n var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n if (!suspenseInstance) {\n throw new Error('Expected to have a hydrated suspense instance. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n var parent = fiber.return;\n\n while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n parent = parent.return;\n }\n\n hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n if (fiber !== hydrationParentFiber) {\n return false;\n }\n\n if (!isHydrating) {\n popToNextHostParent(fiber);\n isHydrating = true;\n return false;\n } \n\n\n if (fiber.tag !== HostRoot && (fiber.tag !== HostComponent || shouldDeleteUnhydratedTailInstances(fiber.type) && !shouldSetTextContent(fiber.type, fiber.memoizedProps))) {\n var nextInstance = nextHydratableInstance;\n\n if (nextInstance) {\n if (shouldClientRenderOnMismatch(fiber)) {\n warnIfUnhydratedTailNodes(fiber);\n throwOnHydrationMismatch();\n } else {\n while (nextInstance) {\n deleteHydratableInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n }\n }\n }\n\n popToNextHostParent(fiber);\n\n if (fiber.tag === SuspenseComponent) {\n nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n } else {\n nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n }\n\n return true;\n}\n\nfunction hasUnhydratedTailNodes() {\n return isHydrating && nextHydratableInstance !== null;\n}\n\nfunction warnIfUnhydratedTailNodes(fiber) {\n var nextInstance = nextHydratableInstance;\n\n while (nextInstance) {\n warnUnhydratedInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n}\n\nfunction resetHydrationState() {\n\n hydrationParentFiber = null;\n nextHydratableInstance = null;\n isHydrating = false;\n didSuspendOrErrorDEV = false;\n}\n\nfunction upgradeHydrationErrorsToRecoverable() {\n if (hydrationErrors !== null) {\n queueRecoverableErrors(hydrationErrors);\n hydrationErrors = null;\n }\n}\n\nfunction getIsHydrating() {\n return isHydrating;\n}\n\nfunction queueHydrationError(error) {\n if (hydrationErrors === null) {\n hydrationErrors = [error];\n } else {\n hydrationErrors.push(error);\n }\n}\n\nvar ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar NoTransition = null;\nfunction requestCurrentTransition() {\n return ReactCurrentBatchConfig$1.transition;\n}\n\nvar ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function (fiber, instance) {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n};\n\n{\n var findStrictRoot = function (fiber) {\n var maybeStrictRoot = null;\n var node = fiber;\n\n while (node !== null) {\n if (node.mode & StrictLegacyMode) {\n maybeStrictRoot = node;\n }\n\n node = node.return;\n }\n\n return maybeStrictRoot;\n };\n\n var setToSortedString = function (set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(', ');\n };\n\n var pendingComponentWillMountWarnings = [];\n var pendingUNSAFE_ComponentWillMountWarnings = [];\n var pendingComponentWillReceivePropsWarnings = [];\n var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n var pendingComponentWillUpdateWarnings = [];\n var pendingUNSAFE_ComponentWillUpdateWarnings = []; \n\n var didWarnAboutUnsafeLifecycles = new Set();\n\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n return;\n }\n\n if (typeof instance.componentWillMount === 'function' && \n instance.componentWillMount.__suppressDeprecationWarning !== true) {\n pendingComponentWillMountWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n pendingComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n pendingComponentWillUpdateWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictLegacyMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n var componentWillMountUniqueNames = new Set();\n\n if (pendingComponentWillMountWarnings.length > 0) {\n pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillMountWarnings = [];\n }\n\n var UNSAFE_componentWillMountUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillMountWarnings = [];\n }\n\n var componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingComponentWillReceivePropsWarnings.length > 0) {\n pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillReceivePropsWarnings = [];\n }\n\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n }\n\n var componentWillUpdateUniqueNames = new Set();\n\n if (pendingComponentWillUpdateWarnings.length > 0) {\n pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillUpdateWarnings = [];\n }\n\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n } \n\n\n if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n }\n\n if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n }\n\n if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n }\n\n if (componentWillMountUniqueNames.size > 0) {\n var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n }\n\n if (componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n }\n\n if (componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n }\n };\n\n var pendingLegacyContextWarning = new Map(); \n\n var didWarnAboutLegacyContext = new Set();\n\n ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n var strictRoot = findStrictRoot(fiber);\n\n if (strictRoot === null) {\n error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n return;\n } \n\n\n if (didWarnAboutLegacyContext.has(fiber.type)) {\n return;\n }\n\n var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n if (warningsForRoot === undefined) {\n warningsForRoot = [];\n pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n }\n\n warningsForRoot.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n if (fiberArray.length === 0) {\n return;\n }\n\n var firstFiber = fiberArray[0];\n var uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentNameFromFiber(fiber) || 'Component');\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n\n try {\n setCurrentFiber(firstFiber);\n\n error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context', sortedNames);\n } finally {\n resetCurrentFiber();\n }\n });\n };\n\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child, returnFiber) {};\n\n{\n didWarnAboutMaps = false;\n didWarnAboutGenerators = false;\n didWarnAboutStringRefs = {};\n\n ownerHasKeyUseWarning = {};\n ownerHasFunctionTypeWarning = {};\n\n warnForMissingKey = function (child, returnFiber) {\n if (child === null || typeof child !== 'object') {\n return;\n }\n\n if (!child._store || child._store.validated || child.key != null) {\n return;\n }\n\n if (typeof child._store !== 'object') {\n throw new Error('React Component in warnForMissingKey should have a _store. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n\n child._store.validated = true;\n var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n if (ownerHasKeyUseWarning[componentName]) {\n return;\n }\n\n ownerHasKeyUseWarning[componentName] = true;\n\n error('Each child in a list should have a unique ' + '\"key\" prop. See https://reactjs.org/link/warning-keys for ' + 'more information.');\n };\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction coerceRef(returnFiber, current, element) {\n var mixedRef = element.ref;\n\n if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n {\n if ((returnFiber.mode & StrictLegacyMode || warnAboutStringRefs) && \n !(element._owner && element._self && element._owner.stateNode !== element._self) && \n !(element._owner && element._owner.tag !== ClassComponent) && \n !(typeof element.type === 'function' && !isReactClass(element.type)) && \n element._owner) {\n var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n if (!didWarnAboutStringRefs[componentName]) {\n {\n error('Component \"%s\" contains the string ref \"%s\". Support for string refs ' + 'will be removed in a future major release. We recommend using ' + 'useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, mixedRef);\n }\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n\n if (element._owner) {\n var owner = element._owner;\n var inst;\n\n if (owner) {\n var ownerFiber = owner;\n\n if (ownerFiber.tag !== ClassComponent) {\n throw new Error('Function components cannot have string refs. ' + 'We recommend using useRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref');\n }\n\n inst = ownerFiber.stateNode;\n }\n\n if (!inst) {\n throw new Error(\"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a \" + 'bug in React. Please file an issue.');\n } \n\n\n var resolvedInst = inst;\n\n {\n checkPropStringCoercion(mixedRef, 'ref');\n }\n\n var stringRef = '' + mixedRef; \n\n if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n return current.ref;\n }\n\n var ref = function (value) {\n var refs = resolvedInst.refs;\n\n if (value === null) {\n delete refs[stringRef];\n } else {\n refs[stringRef] = value;\n }\n };\n\n ref._stringRef = stringRef;\n return ref;\n } else {\n if (typeof mixedRef !== 'string') {\n throw new Error('Expected ref to be a function, a string, an object returned by React.createRef(), or null.');\n }\n\n if (!element._owner) {\n throw new Error(\"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of\" + ' the following reasons:\\n' + '1. You may be adding a ref to a function component\\n' + \"2. You may be adding a ref to a component that was not created inside a component's render method\\n\" + '3. You have multiple copies of React loaded\\n' + 'See https://reactjs.org/link/refs-must-have-owner for more information.');\n }\n }\n }\n\n return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n var childString = Object.prototype.toString.call(newChild);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childString === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : childString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n}\n\nfunction warnOnFunctionType(returnFiber) {\n {\n var componentName = getComponentNameFromFiber(returnFiber) || 'Component';\n\n if (ownerHasFunctionTypeWarning[componentName]) {\n return;\n }\n\n ownerHasFunctionTypeWarning[componentName] = true;\n\n error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n }\n}\n\nfunction resolveLazy(lazyType) {\n var payload = lazyType._payload;\n var init = lazyType._init;\n return init(payload);\n} \n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (!shouldTrackSideEffects) {\n return;\n }\n\n var deletions = returnFiber.deletions;\n\n if (deletions === null) {\n returnFiber.deletions = [childToDelete];\n returnFiber.flags |= ChildDeletion;\n } else {\n deletions.push(childToDelete);\n }\n }\n\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) {\n return null;\n } \n\n\n var childToDelete = currentFirstChild;\n\n while (childToDelete !== null) {\n deleteChild(returnFiber, childToDelete);\n childToDelete = childToDelete.sibling;\n }\n\n return null;\n }\n\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n var existingChildren = new Map();\n var existingChild = currentFirstChild;\n\n while (existingChild !== null) {\n if (existingChild.key !== null) {\n existingChildren.set(existingChild.key, existingChild);\n } else {\n existingChildren.set(existingChild.index, existingChild);\n }\n\n existingChild = existingChild.sibling;\n }\n\n return existingChildren;\n }\n\n function useFiber(fiber, pendingProps) {\n var clone = createWorkInProgress(fiber, pendingProps);\n clone.index = 0;\n clone.sibling = null;\n return clone;\n }\n\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n\n if (!shouldTrackSideEffects) {\n newFiber.flags |= Forked;\n return lastPlacedIndex;\n }\n\n var current = newFiber.alternate;\n\n if (current !== null) {\n var oldIndex = current.index;\n\n if (oldIndex < lastPlacedIndex) {\n newFiber.flags |= Placement;\n return lastPlacedIndex;\n } else {\n return oldIndex;\n }\n } else {\n newFiber.flags |= Placement;\n return lastPlacedIndex;\n }\n }\n\n function placeSingleChild(newFiber) {\n if (shouldTrackSideEffects && newFiber.alternate === null) {\n newFiber.flags |= Placement;\n }\n\n return newFiber;\n }\n\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (current === null || current.tag !== HostText) {\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n var existing = useFiber(current, textContent);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n\n if (elementType === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, current, element.props.children, lanes, element.key);\n }\n\n if (current !== null) {\n if (current.elementType === elementType || ( \n isCompatibleFamilyForHotReloading(current, element) ) || \n typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type) {\n var existing = useFiber(current, element.props);\n existing.ref = coerceRef(returnFiber, current, element);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n } \n\n\n var created = createFiberFromElement(element, returnFiber.mode, lanes);\n created.ref = coerceRef(returnFiber, current, element);\n created.return = returnFiber;\n return created;\n }\n\n function updatePortal(returnFiber, current, portal, lanes) {\n if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n var existing = useFiber(current, portal.children || []);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (current === null || current.tag !== Fragment) {\n var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);\n created.return = returnFiber;\n return created;\n } else {\n var existing = useFiber(current, fragment);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function createChild(returnFiber, newChild, lanes) {\n if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n var created = createFiberFromText('' + newChild, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _created = createFiberFromElement(newChild, returnFiber.mode, lanes);\n\n _created.ref = coerceRef(returnFiber, null, newChild);\n _created.return = returnFiber;\n return _created;\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _created2 = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n\n _created2.return = returnFiber;\n return _created2;\n }\n\n case REACT_LAZY_TYPE:\n {\n var payload = newChild._payload;\n var init = newChild._init;\n return createChild(returnFiber, init(payload), lanes);\n }\n }\n\n if (isArray(newChild) || getIteratorFn(newChild)) {\n var _created3 = createFiberFromFragment(newChild, returnFiber.mode, lanes, null);\n\n _created3.return = returnFiber;\n return _created3;\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = oldFiber !== null ? oldFiber.key : null;\n\n if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n if (key !== null) {\n return null;\n }\n\n return updateTextNode(returnFiber, oldFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.key === key) {\n return updateElement(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n\n case REACT_PORTAL_TYPE:\n {\n if (newChild.key === key) {\n return updatePortal(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n\n case REACT_LAZY_TYPE:\n {\n var payload = newChild._payload;\n var init = newChild._init;\n return updateSlot(returnFiber, oldFiber, init(payload), lanes);\n }\n }\n\n if (isArray(newChild) || getIteratorFn(newChild)) {\n if (key !== null) {\n return null;\n }\n\n return updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) {\n if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n var matchedFiber = existingChildren.get(newIdx) || null;\n return updateTextNode(returnFiber, matchedFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n return updateElement(returnFiber, _matchedFiber, newChild, lanes);\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n return updatePortal(returnFiber, _matchedFiber2, newChild, lanes);\n }\n\n case REACT_LAZY_TYPE:\n var payload = newChild._payload;\n var init = newChild._init;\n return updateFromMap(existingChildren, returnFiber, newIdx, init(payload), lanes);\n }\n\n if (isArray(newChild) || getIteratorFn(newChild)) {\n var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n return updateFragment(returnFiber, _matchedFiber3, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n\n function warnOnInvalidKey(child, knownKeys, returnFiber) {\n {\n if (typeof child !== 'object' || child === null) {\n return knownKeys;\n }\n\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(child, returnFiber);\n var key = child.key;\n\n if (typeof key !== 'string') {\n break;\n }\n\n if (knownKeys === null) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n\n error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n break;\n\n case REACT_LAZY_TYPE:\n var payload = child._payload;\n var init = child._init;\n warnOnInvalidKey(init(payload), knownKeys, returnFiber);\n break;\n }\n }\n\n return knownKeys;\n }\n\n function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) {\n {\n var knownKeys = null;\n\n for (var i = 0; i < newChildren.length; i++) {\n var child = newChildren[i];\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n\n for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes);\n\n if (newFiber === null) {\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = newFiber;\n } else {\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (newIdx === newChildren.length) {\n deleteRemainingChildren(returnFiber, oldFiber);\n\n if (getIsHydrating()) {\n var numberOfForks = newIdx;\n pushTreeFork(returnFiber, numberOfForks);\n }\n\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber = createChild(returnFiber, newChildren[newIdx], lanes);\n\n if (_newFiber === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber;\n } else {\n previousNewFiber.sibling = _newFiber;\n }\n\n previousNewFiber = _newFiber;\n }\n\n if (getIsHydrating()) {\n var _numberOfForks = newIdx;\n pushTreeFork(returnFiber, _numberOfForks);\n }\n\n return resultingFirstChild;\n } \n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); \n\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], lanes);\n\n if (_newFiber2 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber2.alternate !== null) {\n existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber2;\n } else {\n previousNewFiber.sibling = _newFiber2;\n }\n\n previousNewFiber = _newFiber2;\n }\n }\n\n if (shouldTrackSideEffects) {\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n if (getIsHydrating()) {\n var _numberOfForks2 = newIdx;\n pushTreeFork(returnFiber, _numberOfForks2);\n }\n\n return resultingFirstChild;\n }\n\n function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n\n if (typeof iteratorFn !== 'function') {\n throw new Error('An object is not an iterable. This error is likely caused by a bug in ' + 'React. Please file an issue.');\n }\n\n {\n if (typeof Symbol === 'function' && \n newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n if (!didWarnAboutGenerators) {\n error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n }\n\n didWarnAboutGenerators = true;\n } \n\n\n if (newChildrenIterable.entries === iteratorFn) {\n if (!didWarnAboutMaps) {\n error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n } \n\n\n var _newChildren = iteratorFn.call(newChildrenIterable);\n\n if (_newChildren) {\n var knownKeys = null;\n\n var _step = _newChildren.next();\n\n for (; !_step.done; _step = _newChildren.next()) {\n var child = _step.value;\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n }\n\n var newChildren = iteratorFn.call(newChildrenIterable);\n\n if (newChildren == null) {\n throw new Error('An iterable object provided no iterator.');\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n var step = newChildren.next();\n\n for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n\n if (newFiber === null) {\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = newFiber;\n } else {\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (step.done) {\n deleteRemainingChildren(returnFiber, oldFiber);\n\n if (getIsHydrating()) {\n var numberOfForks = newIdx;\n pushTreeFork(returnFiber, numberOfForks);\n }\n\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber3 = createChild(returnFiber, step.value, lanes);\n\n if (_newFiber3 === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber3;\n } else {\n previousNewFiber.sibling = _newFiber3;\n }\n\n previousNewFiber = _newFiber3;\n }\n\n if (getIsHydrating()) {\n var _numberOfForks3 = newIdx;\n pushTreeFork(returnFiber, _numberOfForks3);\n }\n\n return resultingFirstChild;\n } \n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); \n\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, lanes);\n\n if (_newFiber4 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber4.alternate !== null) {\n existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber4;\n } else {\n previousNewFiber.sibling = _newFiber4;\n }\n\n previousNewFiber = _newFiber4;\n }\n }\n\n if (shouldTrackSideEffects) {\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n if (getIsHydrating()) {\n var _numberOfForks4 = newIdx;\n pushTreeFork(returnFiber, _numberOfForks4);\n }\n\n return resultingFirstChild;\n }\n\n function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, lanes) {\n if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n var existing = useFiber(currentFirstChild, textContent);\n existing.return = returnFiber;\n return existing;\n } \n\n\n deleteRemainingChildren(returnFiber, currentFirstChild);\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n function reconcileSingleElement(returnFiber, currentFirstChild, element, lanes) {\n var key = element.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n if (child.key === key) {\n var elementType = element.type;\n\n if (elementType === REACT_FRAGMENT_TYPE) {\n if (child.tag === Fragment) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, element.props.children);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n } else {\n if (child.elementType === elementType || ( \n isCompatibleFamilyForHotReloading(child, element) ) || \n typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === child.type) {\n deleteRemainingChildren(returnFiber, child.sibling);\n\n var _existing = useFiber(child, element.props);\n\n _existing.ref = coerceRef(returnFiber, child, element);\n _existing.return = returnFiber;\n\n {\n _existing._debugSource = element._source;\n _existing._debugOwner = element._owner;\n }\n\n return _existing;\n }\n } \n\n\n deleteRemainingChildren(returnFiber, child);\n break;\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n if (element.type === REACT_FRAGMENT_TYPE) {\n var created = createFiberFromFragment(element.props.children, returnFiber.mode, lanes, element.key);\n created.return = returnFiber;\n return created;\n } else {\n var _created4 = createFiberFromElement(element, returnFiber.mode, lanes);\n\n _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n _created4.return = returnFiber;\n return _created4;\n }\n }\n\n function reconcileSinglePortal(returnFiber, currentFirstChild, portal, lanes) {\n var key = portal.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n if (child.key === key) {\n if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, portal.children || []);\n existing.return = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } \n\n\n function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) {\n var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n if (isUnkeyedTopLevelFragment) {\n newChild = newChild.props.children;\n } \n\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, lanes));\n\n case REACT_PORTAL_TYPE:\n return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, lanes));\n\n case REACT_LAZY_TYPE:\n var payload = newChild._payload;\n var init = newChild._init; \n\n return reconcileChildFibers(returnFiber, currentFirstChild, init(payload), lanes);\n }\n\n if (isArray(newChild)) {\n return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (getIteratorFn(newChild)) {\n return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n if (typeof newChild === 'string' && newChild !== '' || typeof newChild === 'number') {\n return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, lanes));\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n } \n\n\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n\n return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n if (current !== null && workInProgress.child !== current.child) {\n throw new Error('Resuming work not yet implemented.');\n }\n\n if (workInProgress.child === null) {\n return;\n }\n\n var currentChild = workInProgress.child;\n var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n workInProgress.child = newChild;\n newChild.return = workInProgress;\n\n while (currentChild.sibling !== null) {\n currentChild = currentChild.sibling;\n newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n newChild.return = workInProgress;\n }\n\n newChild.sibling = null;\n} \n\nfunction resetChildFibers(workInProgress, lanes) {\n var child = workInProgress.child;\n\n while (child !== null) {\n resetWorkInProgress(child, lanes);\n child = child.sibling;\n }\n}\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastFullyObservedContext = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n currentlyRenderingFiber = null;\n lastContextDependency = null;\n lastFullyObservedContext = null;\n\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction enterDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = true;\n }\n}\nfunction exitDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction pushProvider(providerFiber, context, nextValue) {\n {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n }\n\n context._currentRenderer = rendererSigil;\n }\n }\n}\nfunction popProvider(context, providerFiber) {\n var currentValue = valueCursor.current;\n pop(valueCursor, providerFiber);\n\n {\n {\n context._currentValue = currentValue;\n }\n }\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n var node = parent;\n\n while (node !== null) {\n var alternate = node.alternate;\n\n if (!isSubsetOfLanes(node.childLanes, renderLanes)) {\n node.childLanes = mergeLanes(node.childLanes, renderLanes);\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n }\n } else if (alternate !== null && !isSubsetOfLanes(alternate.childLanes, renderLanes)) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n }\n\n if (node === propagationRoot) {\n break;\n }\n\n node = node.return;\n }\n\n {\n if (node !== propagationRoot) {\n error('Expected to find the propagation root when scheduling context work. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n}\nfunction propagateContextChange(workInProgress, context, renderLanes) {\n {\n propagateContextChange_eager(workInProgress, context, renderLanes);\n }\n}\n\nfunction propagateContextChange_eager(workInProgress, context, renderLanes) {\n\n var fiber = workInProgress.child;\n\n if (fiber !== null) {\n fiber.return = workInProgress;\n }\n\n while (fiber !== null) {\n var nextFiber = void 0; \n\n var list = fiber.dependencies;\n\n if (list !== null) {\n nextFiber = fiber.child;\n var dependency = list.firstContext;\n\n while (dependency !== null) {\n if (dependency.context === context) {\n if (fiber.tag === ClassComponent) {\n var lane = pickArbitraryLane(renderLanes);\n var update = createUpdate(NoTimestamp, lane);\n update.tag = ForceUpdate; \n\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) ; else {\n var sharedQueue = updateQueue.shared;\n var pending = sharedQueue.pending;\n\n if (pending === null) {\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n sharedQueue.pending = update;\n }\n }\n\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, workInProgress); \n\n list.lanes = mergeLanes(list.lanes, renderLanes); \n\n break;\n }\n\n dependency = dependency.next;\n }\n } else if (fiber.tag === ContextProvider) {\n nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n } else if (fiber.tag === DehydratedFragment) {\n var parentSuspense = fiber.return;\n\n if (parentSuspense === null) {\n throw new Error('We just came from a parent so we must have had a parent. This is a bug in React.');\n }\n\n parentSuspense.lanes = mergeLanes(parentSuspense.lanes, renderLanes);\n var _alternate = parentSuspense.alternate;\n\n if (_alternate !== null) {\n _alternate.lanes = mergeLanes(_alternate.lanes, renderLanes);\n } \n\n\n scheduleContextWorkOnParentPath(parentSuspense, renderLanes, workInProgress);\n nextFiber = fiber.sibling;\n } else {\n nextFiber = fiber.child;\n }\n\n if (nextFiber !== null) {\n nextFiber.return = fiber;\n } else {\n nextFiber = fiber;\n\n while (nextFiber !== null) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n\n var sibling = nextFiber.sibling;\n\n if (sibling !== null) {\n sibling.return = nextFiber.return;\n nextFiber = sibling;\n break;\n } \n\n\n nextFiber = nextFiber.return;\n }\n }\n\n fiber = nextFiber;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n lastFullyObservedContext = null;\n var dependencies = workInProgress.dependencies;\n\n if (dependencies !== null) {\n {\n var firstContext = dependencies.firstContext;\n\n if (firstContext !== null) {\n if (includesSomeLane(dependencies.lanes, renderLanes)) {\n markWorkInProgressReceivedUpdate();\n } \n\n\n dependencies.firstContext = null;\n }\n }\n }\n}\nfunction readContext(context) {\n {\n if (isDisallowedContextReadInDEV) {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n }\n }\n\n var value = context._currentValue ;\n\n if (lastFullyObservedContext === context) ; else {\n var contextItem = {\n context: context,\n memoizedValue: value,\n next: null\n };\n\n if (lastContextDependency === null) {\n if (currentlyRenderingFiber === null) {\n throw new Error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n } \n\n\n lastContextDependency = contextItem;\n currentlyRenderingFiber.dependencies = {\n lanes: NoLanes,\n firstContext: contextItem\n };\n } else {\n lastContextDependency = lastContextDependency.next = contextItem;\n }\n }\n\n return value;\n}\n\n\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n if (concurrentQueues === null) {\n concurrentQueues = [queue];\n } else {\n concurrentQueues.push(queue);\n }\n}\nfunction finishQueueingConcurrentUpdates() {\n if (concurrentQueues !== null) {\n for (var i = 0; i < concurrentQueues.length; i++) {\n var queue = concurrentQueues[i];\n var lastInterleavedUpdate = queue.interleaved;\n\n if (lastInterleavedUpdate !== null) {\n queue.interleaved = null;\n var firstInterleavedUpdate = lastInterleavedUpdate.next;\n var lastPendingUpdate = queue.pending;\n\n if (lastPendingUpdate !== null) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n lastInterleavedUpdate.next = firstPendingUpdate;\n }\n\n queue.pending = lastInterleavedUpdate;\n }\n }\n\n concurrentQueues = null;\n }\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n\n if (interleaved === null) {\n update.next = update; \n\n pushConcurrentUpdateQueue(queue);\n } else {\n update.next = interleaved.next;\n interleaved.next = update;\n }\n\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction enqueueConcurrentHookUpdateAndEagerlyBailout(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n\n if (interleaved === null) {\n update.next = update; \n\n pushConcurrentUpdateQueue(queue);\n } else {\n update.next = interleaved.next;\n interleaved.next = update;\n }\n\n queue.interleaved = update;\n}\nfunction enqueueConcurrentClassUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n\n if (interleaved === null) {\n update.next = update; \n\n pushConcurrentUpdateQueue(queue);\n } else {\n update.next = interleaved.next;\n interleaved.next = update;\n }\n\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n} \n\nvar unsafe_markUpdateLaneFromFiberToRoot = markUpdateLaneFromFiberToRoot;\n\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, lane);\n var alternate = sourceFiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, lane);\n }\n\n {\n if (alternate === null && (sourceFiber.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n } \n\n\n var node = sourceFiber;\n var parent = sourceFiber.return;\n\n while (parent !== null) {\n parent.childLanes = mergeLanes(parent.childLanes, lane);\n alternate = parent.alternate;\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, lane);\n } else {\n {\n if ((parent.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n }\n }\n\n node = parent;\n parent = parent.return;\n }\n\n if (node.tag === HostRoot) {\n var root = node.stateNode;\n return root;\n } else {\n return null;\n }\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; \n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n didWarnUpdateInsideUpdate = false;\n currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n var queue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null,\n interleaved: null,\n lanes: NoLanes\n },\n effects: null\n };\n fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n var queue = workInProgress.updateQueue;\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n var clone = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: currentQueue.firstBaseUpdate,\n lastBaseUpdate: currentQueue.lastBaseUpdate,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = clone;\n }\n}\nfunction createUpdate(eventTime, lane) {\n var update = {\n eventTime: eventTime,\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n return update;\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) {\n return null;\n }\n\n var sharedQueue = updateQueue.shared;\n\n {\n if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n didWarnUpdateInsideUpdate = true;\n }\n }\n\n if (isUnsafeClassRenderPhaseUpdate()) {\n var pending = sharedQueue.pending;\n\n if (pending === null) {\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n sharedQueue.pending = update; \n\n return unsafe_markUpdateLaneFromFiberToRoot(fiber, lane);\n } else {\n return enqueueConcurrentClassUpdate(fiber, sharedQueue, update, lane);\n }\n}\nfunction entangleTransitions(root, fiber, lane) {\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) {\n return;\n }\n\n var sharedQueue = updateQueue.shared;\n\n if (isTransitionLane(lane)) {\n var queueLanes = sharedQueue.lanes; \n\n queueLanes = intersectLanes(queueLanes, root.pendingLanes); \n\n var newQueueLanes = mergeLanes(queueLanes, lane);\n sharedQueue.lanes = newQueueLanes; \n\n markRootEntangled(root, newQueueLanes);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue; \n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n var newFirst = null;\n var newLast = null;\n var firstBaseUpdate = queue.firstBaseUpdate;\n\n if (firstBaseUpdate !== null) {\n var update = firstBaseUpdate;\n\n do {\n var clone = {\n eventTime: update.eventTime,\n lane: update.lane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLast === null) {\n newFirst = newLast = clone;\n } else {\n newLast.next = clone;\n newLast = clone;\n }\n\n update = update.next;\n } while (update !== null); \n\n\n if (newLast === null) {\n newFirst = newLast = capturedUpdate;\n } else {\n newLast.next = capturedUpdate;\n newLast = capturedUpdate;\n }\n } else {\n newFirst = newLast = capturedUpdate;\n }\n\n queue = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n } \n\n\n var lastBaseUpdate = queue.lastBaseUpdate;\n\n if (lastBaseUpdate === null) {\n queue.firstBaseUpdate = capturedUpdate;\n } else {\n lastBaseUpdate.next = capturedUpdate;\n }\n\n queue.lastBaseUpdate = capturedUpdate;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n switch (update.tag) {\n case ReplaceState:\n {\n var payload = update.payload;\n\n if (typeof payload === 'function') {\n {\n enterDisallowedContextReadInDEV();\n }\n\n var nextState = payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n payload.call(instance, prevState, nextProps);\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n\n return nextState;\n } \n\n\n return payload;\n }\n\n case CaptureUpdate:\n {\n workInProgress.flags = workInProgress.flags & ~ShouldCapture | DidCapture;\n }\n\n case UpdateState:\n {\n var _payload = update.payload;\n var partialState;\n\n if (typeof _payload === 'function') {\n {\n enterDisallowedContextReadInDEV();\n }\n\n partialState = _payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n _payload.call(instance, prevState, nextProps);\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n } else {\n partialState = _payload;\n }\n\n if (partialState === null || partialState === undefined) {\n return prevState;\n } \n\n\n return assign({}, prevState, partialState);\n }\n\n case ForceUpdate:\n {\n hasForceUpdate = true;\n return prevState;\n }\n }\n\n return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderLanes) {\n var queue = workInProgress.updateQueue;\n hasForceUpdate = false;\n\n {\n currentlyProcessingQueue = queue.shared;\n }\n\n var firstBaseUpdate = queue.firstBaseUpdate;\n var lastBaseUpdate = queue.lastBaseUpdate; \n\n var pendingQueue = queue.shared.pending;\n\n if (pendingQueue !== null) {\n queue.shared.pending = null; \n\n var lastPendingUpdate = pendingQueue;\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null; \n\n if (lastBaseUpdate === null) {\n firstBaseUpdate = firstPendingUpdate;\n } else {\n lastBaseUpdate.next = firstPendingUpdate;\n }\n\n lastBaseUpdate = lastPendingUpdate; \n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n var currentQueue = current.updateQueue;\n var currentLastBaseUpdate = currentQueue.lastBaseUpdate;\n\n if (currentLastBaseUpdate !== lastBaseUpdate) {\n if (currentLastBaseUpdate === null) {\n currentQueue.firstBaseUpdate = firstPendingUpdate;\n } else {\n currentLastBaseUpdate.next = firstPendingUpdate;\n }\n\n currentQueue.lastBaseUpdate = lastPendingUpdate;\n }\n }\n } \n\n\n if (firstBaseUpdate !== null) {\n var newState = queue.baseState; \n\n var newLanes = NoLanes;\n var newBaseState = null;\n var newFirstBaseUpdate = null;\n var newLastBaseUpdate = null;\n var update = firstBaseUpdate;\n\n do {\n var updateLane = update.lane;\n var updateEventTime = update.eventTime;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n var clone = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLastBaseUpdate === null) {\n newFirstBaseUpdate = newLastBaseUpdate = clone;\n newBaseState = newState;\n } else {\n newLastBaseUpdate = newLastBaseUpdate.next = clone;\n } \n\n\n newLanes = mergeLanes(newLanes, updateLane);\n } else {\n if (newLastBaseUpdate !== null) {\n var _clone = {\n eventTime: updateEventTime,\n lane: NoLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n newLastBaseUpdate = newLastBaseUpdate.next = _clone;\n } \n\n\n newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n var callback = update.callback;\n\n if (callback !== null && \n update.lane !== NoLane) {\n workInProgress.flags |= Callback;\n var effects = queue.effects;\n\n if (effects === null) {\n queue.effects = [update];\n } else {\n effects.push(update);\n }\n }\n }\n\n update = update.next;\n\n if (update === null) {\n pendingQueue = queue.shared.pending;\n\n if (pendingQueue === null) {\n break;\n } else {\n var _lastPendingUpdate = pendingQueue; \n\n var _firstPendingUpdate = _lastPendingUpdate.next;\n _lastPendingUpdate.next = null;\n update = _firstPendingUpdate;\n queue.lastBaseUpdate = _lastPendingUpdate;\n queue.shared.pending = null;\n }\n }\n } while (true);\n\n if (newLastBaseUpdate === null) {\n newBaseState = newState;\n }\n\n queue.baseState = newBaseState;\n queue.firstBaseUpdate = newFirstBaseUpdate;\n queue.lastBaseUpdate = newLastBaseUpdate; \n\n var lastInterleaved = queue.shared.interleaved;\n\n if (lastInterleaved !== null) {\n var interleaved = lastInterleaved;\n\n do {\n newLanes = mergeLanes(newLanes, interleaved.lane);\n interleaved = interleaved.next;\n } while (interleaved !== lastInterleaved);\n } else if (firstBaseUpdate === null) {\n queue.shared.lanes = NoLanes;\n } \n\n\n markSkippedUpdateLanes(newLanes);\n workInProgress.lanes = newLanes;\n workInProgress.memoizedState = newState;\n }\n\n {\n currentlyProcessingQueue = null;\n }\n}\n\nfunction callCallback(callback, context) {\n if (typeof callback !== 'function') {\n throw new Error('Invalid argument passed as callback. Expected a function. Instead ' + (\"received: \" + callback));\n }\n\n callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n var effects = finishedQueue.effects;\n finishedQueue.effects = null;\n\n if (effects !== null) {\n for (var i = 0; i < effects.length; i++) {\n var effect = effects[i];\n var callback = effect.callback;\n\n if (callback !== null) {\n effect.callback = null;\n callCallback(callback, instance);\n }\n }\n }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n if (c === NO_CONTEXT) {\n throw new Error('Expected host context to exist. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n }\n\n return c;\n}\n\nfunction getRootHostContainer() {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance, fiber); \n\n push(contextFiberStackCursor, fiber, fiber); \n\n push(contextStackCursor$1, NO_CONTEXT, fiber);\n var nextRootContext = getRootHostContext(nextRootInstance); \n\n pop(contextStackCursor$1, fiber);\n push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n var context = requiredContext(contextStackCursor$1.current);\n return context;\n}\n\nfunction pushHostContext(fiber) {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var nextContext = getChildHostContext(context, fiber.type); \n\n if (context === nextContext) {\n return;\n } \n\n\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n if (contextFiberStackCursor.current !== fiber) {\n return;\n }\n\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; \n\nvar SubtreeSuspenseContextMask = 1; \n\nvar InvisibleParentSuspenseContext = 1; \n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n var nextState = workInProgress.memoizedState;\n\n if (nextState !== null) {\n if (nextState.dehydrated !== null) {\n return true;\n }\n\n return false;\n }\n\n var props = workInProgress.memoizedProps; \n\n {\n return true;\n } \n}\nfunction findFirstSuspended(row) {\n var node = row;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n var dehydrated = state.dehydrated;\n\n if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n return node;\n }\n }\n } else if (node.tag === SuspenseListComponent && \n node.memoizedProps.revealOrder !== undefined) {\n var didSuspend = (node.flags & DidCapture) !== NoFlags;\n\n if (didSuspend) {\n return node;\n }\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === row) {\n return null;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === row) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n\n return null;\n}\n\nvar NoFlags$1 =\n0; \n\nvar HasEffect =\n1; \n\nvar Insertion =\n2;\nvar Layout =\n4;\nvar Passive$1 =\n8;\n\n\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++) {\n var mutableSource = workInProgressSources[i];\n\n {\n mutableSource._workInProgressVersionPrimary = null;\n }\n }\n\n workInProgressSources.length = 0;\n}\n\nfunction registerMutableSourceForHydration(root, mutableSource) {\n var getVersion = mutableSource._getVersion;\n var version = getVersion(mutableSource._source); \n\n if (root.mutableSourceEagerHydrationData == null) {\n root.mutableSourceEagerHydrationData = [mutableSource, version];\n } else {\n root.mutableSourceEagerHydrationData.push(mutableSource, version);\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\nvar didWarnUncachedGetSnapshot;\n\n{\n didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\nvar renderLanes = NoLanes; \n\nvar currentlyRenderingFiber$1 = null; \n\nvar currentHook = null;\nvar workInProgressHook = null; \n\nvar didScheduleRenderPhaseUpdate = false; \n\nvar didScheduleRenderPhaseUpdateDuringThisPass = false; \n\nvar localIdCounter = 0; \n\nvar globalClientIdCounter = 0;\nvar RE_RENDER_LIMIT = 25; \n\nvar currentHookNameInDev = null; \n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; \n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev === null) {\n hookTypesDev = [hookName];\n } else {\n hookTypesDev.push(hookName);\n }\n }\n}\n\nfunction updateHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev !== null) {\n hookTypesUpdateIndexDev++;\n\n if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n warnOnHookMismatchInDev(hookName);\n }\n }\n }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n {\n if (deps !== undefined && deps !== null && !isArray(deps)) {\n error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n }\n }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n {\n var componentName = getComponentNameFromFiber(currentlyRenderingFiber$1);\n\n if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n if (hookTypesDev !== null) {\n var table = '';\n var secondColumnStart = 30;\n\n for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i];\n var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n var row = i + 1 + \". \" + oldHookName; \n\n while (row.length < secondColumnStart) {\n row += ' ';\n }\n\n row += newHookName + '\\n';\n table += row;\n }\n\n error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n' + ' Previous render Next render\\n' + ' ------------------------------------------------------\\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n }\n }\n }\n}\n\nfunction throwInvalidHookError() {\n throw new Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n {\n if (ignorePreviousDependencies) {\n return false;\n }\n }\n\n if (prevDeps === null) {\n {\n error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n\n return false;\n }\n\n {\n if (nextDeps.length !== prevDeps.length) {\n error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n }\n }\n\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (objectIs(nextDeps[i], prevDeps[i])) {\n continue;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n\n {\n hookTypesDev = current !== null ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1; \n\n ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n }\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = NoLanes; \n\n {\n if (current !== null && current.memoizedState !== null) {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n } else if (hookTypesDev !== null) {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n } else {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n }\n }\n\n var children = Component(props, secondArg); \n\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n var numberOfReRenders = 0;\n\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n localIdCounter = 0;\n\n if (numberOfReRenders >= RE_RENDER_LIMIT) {\n throw new Error('Too many re-renders. React limits the number of renders to prevent ' + 'an infinite loop.');\n }\n\n numberOfReRenders += 1;\n\n {\n ignorePreviousDependencies = false;\n } \n\n\n currentHook = null;\n workInProgressHook = null;\n workInProgress.updateQueue = null;\n\n {\n hookTypesUpdateIndexDev = -1;\n }\n\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerenderInDEV ;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n } \n\n\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n {\n workInProgress._debugHookTypes = hookTypesDev;\n } \n\n\n var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n currentHookNameInDev = null;\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1; \n\n if (current !== null && (current.flags & StaticMask) !== (workInProgress.flags & StaticMask) && \n (current.mode & ConcurrentMode) !== NoMode) {\n error('Internal React error: Expected static flag was missing. Please ' + 'notify the React team.');\n }\n }\n\n didScheduleRenderPhaseUpdate = false; \n\n if (didRenderTooFewHooks) {\n throw new Error('Rendered fewer hooks than expected. This may be caused by an accidental ' + 'early return statement.');\n }\n\n return children;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = localIdCounter !== 0;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue; \n\n if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n workInProgress.flags &= ~(MountPassiveDev | MountLayoutDev | Passive | Update);\n } else {\n workInProgress.flags &= ~(Passive | Update);\n }\n\n current.lanes = removeLanes(current.lanes, lanes);\n}\nfunction resetHooksAfterThrow() {\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n if (didScheduleRenderPhaseUpdate) {\n var hook = currentlyRenderingFiber$1.memoizedState;\n\n while (hook !== null) {\n var queue = hook.queue;\n\n if (queue !== null) {\n queue.pending = null;\n }\n\n hook = hook.next;\n }\n\n didScheduleRenderPhaseUpdate = false;\n }\n\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n isUpdatingOpaqueValueInRenderPhase = false;\n }\n\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n localIdCounter = 0;\n}\n\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n\n if (workInProgressHook === null) {\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n } else {\n workInProgressHook = workInProgressHook.next = hook;\n }\n\n return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n var nextCurrentHook;\n\n if (currentHook === null) {\n var current = currentlyRenderingFiber$1.alternate;\n\n if (current !== null) {\n nextCurrentHook = current.memoizedState;\n } else {\n nextCurrentHook = null;\n }\n } else {\n nextCurrentHook = currentHook.next;\n }\n\n var nextWorkInProgressHook;\n\n if (workInProgressHook === null) {\n nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n } else {\n nextWorkInProgressHook = workInProgressHook.next;\n }\n\n if (nextWorkInProgressHook !== null) {\n workInProgressHook = nextWorkInProgressHook;\n nextWorkInProgressHook = workInProgressHook.next;\n currentHook = nextCurrentHook;\n } else {\n if (nextCurrentHook === null) {\n throw new Error('Rendered more hooks than during the previous render.');\n }\n\n currentHook = nextCurrentHook;\n var newHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n\n if (workInProgressHook === null) {\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n } else {\n workInProgressHook = workInProgressHook.next = newHook;\n }\n }\n\n return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n return {\n lastEffect: null,\n stores: null\n };\n}\n\nfunction basicStateReducer(state, action) {\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n var initialState;\n\n if (init !== undefined) {\n initialState = init(initialArg);\n } else {\n initialState = initialArg;\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = {\n pending: null,\n interleaved: null,\n lanes: NoLanes,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = queue;\n var dispatch = queue.dispatch = dispatchReducerAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (queue === null) {\n throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');\n }\n\n queue.lastRenderedReducer = reducer;\n var current = currentHook; \n\n var baseQueue = current.baseQueue; \n\n var pendingQueue = queue.pending;\n\n if (pendingQueue !== null) {\n if (baseQueue !== null) {\n var baseFirst = baseQueue.next;\n var pendingFirst = pendingQueue.next;\n baseQueue.next = pendingFirst;\n pendingQueue.next = baseFirst;\n }\n\n {\n if (current.baseQueue !== baseQueue) {\n error('Internal error: Expected work-in-progress queue to be a clone. ' + 'This is a bug in React.');\n }\n }\n\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n\n if (baseQueue !== null) {\n var first = baseQueue.next;\n var newState = current.baseState;\n var newBaseState = null;\n var newBaseQueueFirst = null;\n var newBaseQueueLast = null;\n var update = first;\n\n do {\n var updateLane = update.lane;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n\n if (newBaseQueueLast === null) {\n newBaseQueueFirst = newBaseQueueLast = clone;\n newBaseState = newState;\n } else {\n newBaseQueueLast = newBaseQueueLast.next = clone;\n } \n\n\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, updateLane);\n markSkippedUpdateLanes(updateLane);\n } else {\n if (newBaseQueueLast !== null) {\n var _clone = {\n lane: NoLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n newBaseQueueLast = newBaseQueueLast.next = _clone;\n } \n\n\n if (update.hasEagerState) {\n newState = update.eagerState;\n } else {\n var action = update.action;\n newState = reducer(newState, action);\n }\n }\n\n update = update.next;\n } while (update !== null && update !== first);\n\n if (newBaseQueueLast === null) {\n newBaseState = newState;\n } else {\n newBaseQueueLast.next = newBaseQueueFirst;\n } \n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState;\n hook.baseState = newBaseState;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = newState;\n } \n\n\n var lastInterleaved = queue.interleaved;\n\n if (lastInterleaved !== null) {\n var interleaved = lastInterleaved;\n\n do {\n var interleavedLane = interleaved.lane;\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, interleavedLane);\n markSkippedUpdateLanes(interleavedLane);\n interleaved = interleaved.next;\n } while (interleaved !== lastInterleaved);\n } else if (baseQueue === null) {\n queue.lanes = NoLanes;\n }\n\n var dispatch = queue.dispatch;\n return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (queue === null) {\n throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');\n }\n\n queue.lastRenderedReducer = reducer; \n\n var dispatch = queue.dispatch;\n var lastRenderPhaseUpdate = queue.pending;\n var newState = hook.memoizedState;\n\n if (lastRenderPhaseUpdate !== null) {\n queue.pending = null;\n var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n var update = firstRenderPhaseUpdate;\n\n do {\n var action = update.action;\n newState = reducer(newState, action);\n update = update.next;\n } while (update !== firstRenderPhaseUpdate); \n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState; \n\n if (hook.baseQueue === null) {\n hook.baseState = newState;\n }\n\n queue.lastRenderedState = newState;\n }\n\n return [newState, dispatch];\n}\n\nfunction mountMutableSource(source, getSnapshot, subscribe) {\n {\n return undefined;\n }\n}\n\nfunction updateMutableSource(source, getSnapshot, subscribe) {\n {\n return undefined;\n }\n}\n\nfunction mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1;\n var hook = mountWorkInProgressHook();\n var nextSnapshot;\n var isHydrating = getIsHydrating();\n\n if (isHydrating) {\n if (getServerSnapshot === undefined) {\n throw new Error('Missing getServerSnapshot, which is required for ' + 'server-rendered content. Will revert to client rendering.');\n }\n\n nextSnapshot = getServerSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n if (nextSnapshot !== getServerSnapshot()) {\n error('The result of getServerSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n } else {\n nextSnapshot = getSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedSnapshot = getSnapshot();\n\n if (!objectIs(nextSnapshot, cachedSnapshot)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n } \n\n\n var root = getWorkInProgressRoot();\n\n if (root === null) {\n throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');\n }\n\n if (!includesBlockingLane(root, renderLanes)) {\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n } \n\n\n hook.memoizedState = nextSnapshot;\n var inst = {\n value: nextSnapshot,\n getSnapshot: getSnapshot\n };\n hook.queue = inst; \n\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); \n\n fiber.flags |= Passive;\n pushEffect(HasEffect | Passive$1, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null);\n return nextSnapshot;\n}\n\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1;\n var hook = updateWorkInProgressHook(); \n\n var nextSnapshot = getSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedSnapshot = getSnapshot();\n\n if (!objectIs(nextSnapshot, cachedSnapshot)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n var prevSnapshot = hook.memoizedState;\n var snapshotChanged = !objectIs(prevSnapshot, nextSnapshot);\n\n if (snapshotChanged) {\n hook.memoizedState = nextSnapshot;\n markWorkInProgressReceivedUpdate();\n }\n\n var inst = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); \n\n if (inst.getSnapshot !== getSnapshot || snapshotChanged || \n workInProgressHook !== null && workInProgressHook.memoizedState.tag & HasEffect) {\n fiber.flags |= Passive;\n pushEffect(HasEffect | Passive$1, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null); \n\n var root = getWorkInProgressRoot();\n\n if (root === null) {\n throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');\n }\n\n if (!includesBlockingLane(root, renderLanes)) {\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n }\n\n return nextSnapshot;\n}\n\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= StoreConsistency;\n var check = {\n getSnapshot: getSnapshot,\n value: renderedSnapshot\n };\n var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n if (componentUpdateQueue === null) {\n componentUpdateQueue = createFunctionComponentUpdateQueue();\n currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n componentUpdateQueue.stores = [check];\n } else {\n var stores = componentUpdateQueue.stores;\n\n if (stores === null) {\n componentUpdateQueue.stores = [check];\n } else {\n stores.push(check);\n }\n }\n}\n\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot; \n\n if (checkIfSnapshotChanged(inst)) {\n forceStoreRerender(fiber);\n }\n}\n\nfunction subscribeToStore(fiber, inst, subscribe) {\n var handleStoreChange = function () {\n if (checkIfSnapshotChanged(inst)) {\n forceStoreRerender(fiber);\n }\n }; \n\n\n return subscribe(handleStoreChange);\n}\n\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n var prevValue = inst.value;\n\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n}\n\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n\n if (typeof initialState === 'function') {\n initialState = initialState();\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = {\n pending: null,\n interleaved: null,\n lanes: NoLanes,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = queue;\n var dispatch = queue.dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n var effect = {\n tag: tag,\n create: create,\n destroy: destroy,\n deps: deps,\n next: null\n };\n var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n if (componentUpdateQueue === null) {\n componentUpdateQueue = createFunctionComponentUpdateQueue();\n currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var lastEffect = componentUpdateQueue.lastEffect;\n\n if (lastEffect === null) {\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var firstEffect = lastEffect.next;\n lastEffect.next = effect;\n effect.next = firstEffect;\n componentUpdateQueue.lastEffect = effect;\n }\n }\n\n return effect;\n}\n\nfunction mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n\n {\n var _ref2 = {\n current: initialValue\n };\n hook.memoizedState = _ref2;\n return _ref2;\n }\n}\n\nfunction updateRef(initialValue) {\n var hook = updateWorkInProgressHook();\n return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var destroy = undefined;\n\n if (currentHook !== null) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n\n if (nextDeps !== null) {\n var prevDeps = prevEffect.deps;\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, nextDeps);\n return;\n }\n }\n }\n\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n return mountEffectImpl(MountPassiveDev | Passive | PassiveStatic, Passive$1, create, deps);\n } else {\n return mountEffectImpl(Passive | PassiveStatic, Passive$1, create, deps);\n }\n}\n\nfunction updateEffect(create, deps) {\n return updateEffectImpl(Passive, Passive$1, create, deps);\n}\n\nfunction mountInsertionEffect(create, deps) {\n return mountEffectImpl(Update, Insertion, create, deps);\n}\n\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(Update, Insertion, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n var fiberFlags = Update;\n\n {\n fiberFlags |= LayoutStatic;\n }\n\n if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n fiberFlags |= MountLayoutDev;\n }\n\n return mountEffectImpl(fiberFlags, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n if (typeof ref === 'function') {\n var refCallback = ref;\n\n var _inst = create();\n\n refCallback(_inst);\n return function () {\n refCallback(null);\n };\n } else if (ref !== null && ref !== undefined) {\n var refObject = ref;\n\n {\n if (!refObject.hasOwnProperty('current')) {\n error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n }\n }\n\n var _inst2 = create();\n\n refObject.current = _inst2;\n return function () {\n refObject.current = null;\n };\n }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } \n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n var fiberFlags = Update;\n\n {\n fiberFlags |= LayoutStatic;\n }\n\n if ( (currentlyRenderingFiber$1.mode & StrictEffectsMode) !== NoMode) {\n fiberFlags |= MountLayoutDev;\n }\n\n return mountEffectImpl(fiberFlags, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } \n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction mountDeferredValue(value) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = value;\n return value;\n}\n\nfunction updateDeferredValue(value) {\n var hook = updateWorkInProgressHook();\n var resolvedCurrentHook = currentHook;\n var prevValue = resolvedCurrentHook.memoizedState;\n return updateDeferredValueImpl(hook, prevValue, value);\n}\n\nfunction rerenderDeferredValue(value) {\n var hook = updateWorkInProgressHook();\n\n if (currentHook === null) {\n hook.memoizedState = value;\n return value;\n } else {\n var prevValue = currentHook.memoizedState;\n return updateDeferredValueImpl(hook, prevValue, value);\n }\n}\n\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n var shouldDeferValue = !includesOnlyNonUrgentLanes(renderLanes);\n\n if (shouldDeferValue) {\n if (!objectIs(value, prevValue)) {\n var deferredLane = claimNextTransitionLane();\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, deferredLane);\n markSkippedUpdateLanes(deferredLane); \n\n hook.baseState = true;\n } \n\n\n return prevValue;\n } else {\n if (hook.baseState) {\n hook.baseState = false;\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = value;\n return value;\n }\n}\n\nfunction startTransition(setPending, callback, options) {\n var previousPriority = getCurrentUpdatePriority();\n setCurrentUpdatePriority(higherEventPriority(previousPriority, ContinuousEventPriority));\n setPending(true);\n var prevTransition = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = {};\n var currentTransition = ReactCurrentBatchConfig$2.transition;\n\n {\n ReactCurrentBatchConfig$2.transition._updatedFibers = new Set();\n }\n\n try {\n setPending(false);\n callback();\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig$2.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nfunction mountTransition() {\n var _mountState = mountState(false),\n isPending = _mountState[0],\n setPending = _mountState[1]; \n\n\n var start = startTransition.bind(null, setPending);\n var hook = mountWorkInProgressHook();\n hook.memoizedState = start;\n return [isPending, start];\n}\n\nfunction updateTransition() {\n var _updateState = updateState(),\n isPending = _updateState[0];\n\n var hook = updateWorkInProgressHook();\n var start = hook.memoizedState;\n return [isPending, start];\n}\n\nfunction rerenderTransition() {\n var _rerenderState = rerenderState(),\n isPending = _rerenderState[0];\n\n var hook = updateWorkInProgressHook();\n var start = hook.memoizedState;\n return [isPending, start];\n}\n\nvar isUpdatingOpaqueValueInRenderPhase = false;\nfunction getIsUpdatingOpaqueValueInRenderPhaseInDEV() {\n {\n return isUpdatingOpaqueValueInRenderPhase;\n }\n}\n\nfunction mountId() {\n var hook = mountWorkInProgressHook();\n var root = getWorkInProgressRoot(); \n\n var identifierPrefix = root.identifierPrefix;\n var id;\n\n if (getIsHydrating()) {\n var treeId = getTreeId(); \n\n id = ':' + identifierPrefix + 'R' + treeId; \n\n var localId = localIdCounter++;\n\n if (localId > 0) {\n id += 'H' + localId.toString(32);\n }\n\n id += ':';\n } else {\n var globalClientId = globalClientIdCounter++;\n id = ':' + identifierPrefix + 'r' + globalClientId.toString(32) + ':';\n }\n\n hook.memoizedState = id;\n return id;\n}\n\nfunction updateId() {\n var hook = updateWorkInProgressHook();\n var id = hook.memoizedState;\n return id;\n}\n\nfunction dispatchReducerAction(fiber, queue, action) {\n {\n if (typeof arguments[3] === 'function') {\n error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n }\n }\n\n var lane = requestUpdateLane(fiber);\n var update = {\n lane: lane,\n action: action,\n hasEagerState: false,\n eagerState: null,\n next: null\n };\n\n if (isRenderPhaseUpdate(fiber)) {\n enqueueRenderPhaseUpdate(queue, update);\n } else {\n var root = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n\n if (root !== null) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n entangleTransitionUpdate(root, queue, lane);\n }\n }\n\n markUpdateInDevTools(fiber, lane);\n}\n\nfunction dispatchSetState(fiber, queue, action) {\n {\n if (typeof arguments[3] === 'function') {\n error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n }\n }\n\n var lane = requestUpdateLane(fiber);\n var update = {\n lane: lane,\n action: action,\n hasEagerState: false,\n eagerState: null,\n next: null\n };\n\n if (isRenderPhaseUpdate(fiber)) {\n enqueueRenderPhaseUpdate(queue, update);\n } else {\n var alternate = fiber.alternate;\n\n if (fiber.lanes === NoLanes && (alternate === null || alternate.lanes === NoLanes)) {\n var lastRenderedReducer = queue.lastRenderedReducer;\n\n if (lastRenderedReducer !== null) {\n var prevDispatcher;\n\n {\n prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n }\n\n try {\n var currentState = queue.lastRenderedState;\n var eagerState = lastRenderedReducer(currentState, action); \n\n update.hasEagerState = true;\n update.eagerState = eagerState;\n\n if (objectIs(eagerState, currentState)) {\n enqueueConcurrentHookUpdateAndEagerlyBailout(fiber, queue, update, lane);\n return;\n }\n } catch (error) {\n } finally {\n {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n }\n }\n }\n\n var root = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n\n if (root !== null) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n entangleTransitionUpdate(root, queue, lane);\n }\n }\n\n markUpdateInDevTools(fiber, lane);\n}\n\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1;\n}\n\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true;\n var pending = queue.pending;\n\n if (pending === null) {\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n queue.pending = update;\n} \n\n\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (isTransitionLane(lane)) {\n var queueLanes = queue.lanes; \n\n queueLanes = intersectLanes(queueLanes, root.pendingLanes); \n\n var newQueueLanes = mergeLanes(queueLanes, lane);\n queue.lanes = newQueueLanes; \n\n markRootEntangled(root, newQueueLanes);\n }\n}\n\nfunction markUpdateInDevTools(fiber, lane, action) {\n\n {\n markStateUpdateScheduled(fiber, lane);\n }\n}\n\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: enableNewReconciler\n};\n\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n var warnInvalidContextAccess = function () {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n };\n\n var warnInvalidHookAccess = function () {\n error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks');\n };\n\n HooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n mountHookTypesDev();\n return mountMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n mountHookTypesDev();\n return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n mountHookTypesDev();\n return mountId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n updateHookTypesDev();\n return mountInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return mountMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n updateHookTypesDev();\n return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n updateHookTypesDev();\n return mountId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n updateHookTypesDev();\n return updateInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n updateHookTypesDev();\n return updateSyncExternalStore(subscribe, getSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n updateHookTypesDev();\n return updateId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n updateHookTypesDev();\n return updateInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n updateHookTypesDev();\n return updateSyncExternalStore(subscribe, getSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n updateHookTypesDev();\n return updateId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(subscribe, getSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = 'useInsertionEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateInsertionEffect(create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource();\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n currentHookNameInDev = 'useSyncExternalStore';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(subscribe, getSnapshot);\n },\n useId: function () {\n currentHookNameInDev = 'useId';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateId();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar layoutEffectStartTime = -1;\nvar profilerStartTime = -1;\nvar passiveEffectStartTime = -1;\n\nvar currentUpdateIsNested = false;\nvar nestedUpdateScheduled = false;\n\nfunction isCurrentUpdateNested() {\n return currentUpdateIsNested;\n}\n\nfunction markNestedUpdateScheduled() {\n {\n nestedUpdateScheduled = true;\n }\n}\n\nfunction resetNestedUpdateFlag() {\n {\n currentUpdateIsNested = false;\n nestedUpdateScheduled = false;\n }\n}\n\nfunction syncNestedUpdateFlag() {\n {\n currentUpdateIsNested = nestedUpdateScheduled;\n nestedUpdateScheduled = false;\n }\n}\n\nfunction getCommitTime() {\n return commitTime;\n}\n\nfunction recordCommitTime() {\n\n commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n profilerStartTime = now$1();\n\n if (fiber.actualStartTime < 0) {\n fiber.actualStartTime = now$1();\n }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n if (profilerStartTime >= 0) {\n var elapsedTime = now$1() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n\n if (overrideBaseTime) {\n fiber.selfBaseDuration = elapsedTime;\n }\n\n profilerStartTime = -1;\n }\n}\n\nfunction recordLayoutEffectDuration(fiber) {\n\n if (layoutEffectStartTime >= 0) {\n var elapsedTime = now$1() - layoutEffectStartTime;\n layoutEffectStartTime = -1; \n\n var parentFiber = fiber.return;\n\n while (parentFiber !== null) {\n switch (parentFiber.tag) {\n case HostRoot:\n var root = parentFiber.stateNode;\n root.effectDuration += elapsedTime;\n return;\n\n case Profiler:\n var parentStateNode = parentFiber.stateNode;\n parentStateNode.effectDuration += elapsedTime;\n return;\n }\n\n parentFiber = parentFiber.return;\n }\n }\n}\n\nfunction recordPassiveEffectDuration(fiber) {\n\n if (passiveEffectStartTime >= 0) {\n var elapsedTime = now$1() - passiveEffectStartTime;\n passiveEffectStartTime = -1; \n\n var parentFiber = fiber.return;\n\n while (parentFiber !== null) {\n switch (parentFiber.tag) {\n case HostRoot:\n var root = parentFiber.stateNode;\n\n if (root !== null) {\n root.passiveEffectDuration += elapsedTime;\n }\n\n return;\n\n case Profiler:\n var parentStateNode = parentFiber.stateNode;\n\n if (parentStateNode !== null) {\n parentStateNode.passiveEffectDuration += elapsedTime;\n }\n\n return;\n }\n\n parentFiber = parentFiber.return;\n }\n }\n}\n\nfunction startLayoutEffectTimer() {\n\n layoutEffectStartTime = now$1();\n}\n\nfunction startPassiveEffectTimer() {\n\n passiveEffectStartTime = now$1();\n}\n\nfunction transferActualDuration(fiber) {\n var child = fiber.child;\n\n while (child) {\n fiber.actualDuration += child.actualDuration;\n child = child.sibling;\n }\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n var props = assign({}, baseProps);\n var defaultProps = Component.defaultProps;\n\n for (var propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n }\n\n return baseProps;\n}\n\nvar fakeInternalInstance = {};\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\nvar didWarnAboutLegacyContext$1;\n\n{\n didWarnAboutStateAssignmentForComponent = new Set();\n didWarnAboutUninitializedState = new Set();\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n didWarnAboutDirectlyAssigningPropsToState = new Set();\n didWarnAboutUndefinedDerivedState = new Set();\n didWarnAboutContextTypeAndContextTypes = new Set();\n didWarnAboutInvalidateContextType = new Set();\n didWarnAboutLegacyContext$1 = new Set();\n var didWarnOnInvalidCallback = new Set();\n\n warnOnInvalidCallback = function (callback, callerName) {\n if (callback === null || typeof callback === 'function') {\n return;\n }\n\n var key = callerName + '_' + callback;\n\n if (!didWarnOnInvalidCallback.has(key)) {\n didWarnOnInvalidCallback.add(key);\n\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n };\n\n warnOnUndefinedDerivedState = function (type, partialState) {\n if (partialState === undefined) {\n var componentName = getComponentNameFromType(type) || 'Component';\n\n if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n didWarnAboutUndefinedDerivedState.add(componentName);\n\n error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n }\n }\n }; \n\n\n Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n enumerable: false,\n value: function () {\n throw new Error('_processChildContext is not available in React 16+. This likely ' + 'means you have multiple copies of React and are attempting to nest ' + 'a React 15 tree inside a React 16 tree using ' + \"unstable_renderSubtreeIntoContainer, which isn't supported. Try \" + 'to make sure you have only one copy of React (and ideally, switch ' + 'to ReactDOM.createPortal).');\n }\n });\n Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n var prevState = workInProgress.memoizedState;\n var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n {\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n partialState = getDerivedStateFromProps(nextProps, prevState);\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n warnOnUndefinedDerivedState(ctor, partialState);\n } \n\n\n var memoizedState = partialState === null || partialState === undefined ? prevState : assign({}, prevState, partialState);\n workInProgress.memoizedState = memoizedState; \n\n if (workInProgress.lanes === NoLanes) {\n var updateQueue = workInProgress.updateQueue;\n updateQueue.baseState = memoizedState;\n }\n}\n\nvar classComponentUpdater = {\n isMounted: isMounted,\n enqueueSetState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'setState');\n }\n\n update.callback = callback;\n }\n\n var root = enqueueUpdate(fiber, update, lane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n entangleTransitions(root, fiber, lane);\n }\n\n {\n markStateUpdateScheduled(fiber, lane);\n }\n },\n enqueueReplaceState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ReplaceState;\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'replaceState');\n }\n\n update.callback = callback;\n }\n\n var root = enqueueUpdate(fiber, update, lane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n entangleTransitions(root, fiber, lane);\n }\n\n {\n markStateUpdateScheduled(fiber, lane);\n }\n },\n enqueueForceUpdate: function (inst, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ForceUpdate;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'forceUpdate');\n }\n\n update.callback = callback;\n }\n\n var root = enqueueUpdate(fiber, update, lane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n entangleTransitions(root, fiber, lane);\n }\n\n {\n markForceUpdateScheduled(fiber, lane);\n }\n }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n var instance = workInProgress.stateNode;\n\n if (typeof instance.shouldComponentUpdate === 'function') {\n var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n\n {\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n if (shouldUpdate === undefined) {\n error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentNameFromType(ctor) || 'Component');\n }\n }\n\n return shouldUpdate;\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n }\n\n return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n var instance = workInProgress.stateNode;\n\n {\n var name = getComponentNameFromType(ctor) || 'Component';\n var renderPresent = instance.render;\n\n if (!renderPresent) {\n if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n } else {\n error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n }\n }\n\n if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n }\n\n if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n }\n\n if (instance.propTypes) {\n error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n }\n\n if (instance.contextType) {\n error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n }\n\n {\n if (ctor.childContextTypes && !didWarnAboutLegacyContext$1.has(ctor) && \n (workInProgress.mode & StrictLegacyMode) === NoMode) {\n didWarnAboutLegacyContext$1.add(ctor);\n\n error('%s uses the legacy childContextTypes API which is no longer ' + 'supported and will be removed in the next major release. Use ' + 'React.createContext() instead\\n\\n.' + 'Learn more about this warning here: https://reactjs.org/link/legacy-context', name);\n }\n\n if (ctor.contextTypes && !didWarnAboutLegacyContext$1.has(ctor) && \n (workInProgress.mode & StrictLegacyMode) === NoMode) {\n didWarnAboutLegacyContext$1.add(ctor);\n\n error('%s uses the legacy contextTypes API which is no longer supported ' + 'and will be removed in the next major release. Use ' + 'React.createContext() with static contextType instead.\\n\\n' + 'Learn more about this warning here: https://reactjs.org/link/legacy-context', name);\n }\n\n if (instance.contextTypes) {\n error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n }\n\n if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n }\n }\n\n if (typeof instance.componentShouldUpdate === 'function') {\n error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentNameFromType(ctor) || 'A pure component');\n }\n\n if (typeof instance.componentDidUnmount === 'function') {\n error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n }\n\n if (typeof instance.componentDidReceiveProps === 'function') {\n error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n }\n\n if (typeof instance.componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n }\n\n if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n }\n\n var hasMutatedProps = instance.props !== newProps;\n\n if (instance.props !== undefined && hasMutatedProps) {\n error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n }\n\n if (instance.defaultProps) {\n error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentNameFromType(ctor));\n }\n\n if (typeof instance.getDerivedStateFromProps === 'function') {\n error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof instance.getDerivedStateFromError === 'function') {\n error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n }\n\n var _state = instance.state;\n\n if (_state && (typeof _state !== 'object' || isArray(_state))) {\n error('%s.state: must be set to an object or null', name);\n }\n\n if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n }\n }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n instance.updater = classComponentUpdater;\n workInProgress.stateNode = instance; \n\n set(instance, workInProgress);\n\n {\n instance._reactInternalInstance = fakeInternalInstance;\n }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = false;\n var unmaskedContext = emptyContextObject;\n var context = emptyContextObject;\n var contextType = ctor.contextType;\n\n {\n if ('contextType' in ctor) {\n var isValid = \n contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; \n\n if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n didWarnAboutInvalidateContextType.add(ctor);\n var addendum = '';\n\n if (contextType === undefined) {\n addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n } else if (typeof contextType !== 'object') {\n addendum = ' However, it is set to a ' + typeof contextType + '.';\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = ' Did you accidentally pass the Context.Provider instead?';\n } else if (contextType._context !== undefined) {\n addendum = ' Did you accidentally pass the Context.Consumer instead?';\n } else {\n addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n }\n\n error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentNameFromType(ctor) || 'Component', addendum);\n }\n }\n }\n\n if (typeof contextType === 'object' && contextType !== null) {\n context = readContext(contextType);\n } else {\n unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n var contextTypes = ctor.contextTypes;\n isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n }\n\n var instance = new ctor(props, context); \n\n {\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n instance = new ctor(props, context); \n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n }\n\n var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n adoptClassInstance(workInProgress, instance);\n\n {\n if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n var componentName = getComponentNameFromType(ctor) || 'Component';\n\n if (!didWarnAboutUninitializedState.has(componentName)) {\n didWarnAboutUninitializedState.add(componentName);\n\n error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n }\n } \n\n\n if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n foundWillMountName = 'componentWillMount';\n } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var _componentName = getComponentNameFromType(ctor) || 'Component';\n\n var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n \" + foundWillUpdateName : '');\n }\n }\n }\n } \n\n\n if (isLegacyContextConsumer) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n\n if (oldState !== instance.state) {\n {\n error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentNameFromFiber(workInProgress) || 'Component');\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillReceiveProps === 'function') {\n instance.componentWillReceiveProps(newProps, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n }\n\n if (instance.state !== oldState) {\n {\n var componentName = getComponentNameFromFiber(workInProgress) || 'Component';\n\n if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n didWarnAboutStateAssignmentForComponent.add(componentName);\n\n error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n }\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n} \n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n {\n checkClassInstance(workInProgress, ctor, newProps);\n }\n\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = {};\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n\n if (typeof contextType === 'object' && contextType !== null) {\n instance.context = readContext(contextType);\n } else {\n var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n instance.context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n {\n if (instance.state === newProps) {\n var componentName = getComponentNameFromType(ctor) || 'Component';\n\n if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n }\n }\n\n if (workInProgress.mode & StrictLegacyMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n }\n\n {\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n }\n }\n\n instance.state = workInProgress.memoizedState;\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n instance.state = workInProgress.memoizedState;\n } \n\n\n if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n callComponentWillMount(workInProgress, instance); \n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n }\n\n if (typeof instance.componentDidMount === 'function') {\n var fiberFlags = Update;\n\n {\n fiberFlags |= LayoutStatic;\n }\n\n if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n fiberFlags |= MountLayoutDev;\n }\n\n workInProgress.flags |= fiberFlags;\n }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n var oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; \n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (oldProps !== newProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n if (typeof instance.componentDidMount === 'function') {\n var fiberFlags = Update;\n\n {\n fiberFlags |= LayoutStatic;\n }\n\n if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n fiberFlags |= MountLayoutDev;\n }\n\n workInProgress.flags |= fiberFlags;\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n }\n\n if (typeof instance.componentDidMount === 'function') {\n var _fiberFlags = Update;\n\n {\n _fiberFlags |= LayoutStatic;\n }\n\n if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n _fiberFlags |= MountLayoutDev;\n }\n\n workInProgress.flags |= _fiberFlags;\n }\n } else {\n if (typeof instance.componentDidMount === 'function') {\n var _fiberFlags2 = Update;\n\n {\n _fiberFlags2 |= LayoutStatic;\n }\n\n if ( (workInProgress.mode & StrictEffectsMode) !== NoMode) {\n _fiberFlags2 |= MountLayoutDev;\n }\n\n workInProgress.flags |= _fiberFlags2;\n } \n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } \n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n} \n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n var unresolvedOldProps = workInProgress.memoizedProps;\n var oldProps = workInProgress.type === workInProgress.elementType ? unresolvedOldProps : resolveDefaultProps(workInProgress.type, unresolvedOldProps);\n instance.props = oldProps;\n var unresolvedNewProps = workInProgress.pendingProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; \n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (unresolvedOldProps !== unresolvedNewProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (unresolvedOldProps === unresolvedNewProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing() && !(enableLazyContextPropagation )) {\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) || \n enableLazyContextPropagation ;\n\n if (shouldUpdate) {\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n if (typeof instance.componentWillUpdate === 'function') {\n instance.componentWillUpdate(newProps, newState, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n }\n }\n\n if (typeof instance.componentDidUpdate === 'function') {\n workInProgress.flags |= Update;\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n workInProgress.flags |= Snapshot;\n }\n } else {\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n } \n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } \n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n}\n\nfunction createCapturedValueAtFiber(value, source) {\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source),\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: stack != null ? stack : null,\n digest: digest != null ? digest : null\n };\n}\n\nfunction showErrorDialog(boundary, errorInfo) {\n return true;\n}\n\nfunction logCapturedError(boundary, errorInfo) {\n try {\n var logError = showErrorDialog(boundary, errorInfo); \n\n if (logError === false) {\n return;\n }\n\n var error = errorInfo.value;\n\n if (true) {\n var source = errorInfo.source;\n var stack = errorInfo.stack;\n var componentStack = stack !== null ? stack : ''; \n\n if (error != null && error._suppressLogging) {\n if (boundary.tag === ClassComponent) {\n return;\n } \n\n\n console['error'](error); \n }\n\n var componentName = source ? getComponentNameFromFiber(source) : null;\n var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n var errorBoundaryMessage;\n\n if (boundary.tag === HostRoot) {\n errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';\n } else {\n var errorBoundaryName = getComponentNameFromFiber(boundary) || 'Anonymous';\n errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n }\n\n var combinedMessage = componentNameMessage + \"\\n\" + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); \n\n console['error'](combinedMessage); \n } else {\n console['error'](error); \n }\n } catch (e) {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane); \n\n update.tag = CaptureUpdate; \n\n update.payload = {\n element: null\n };\n var error = errorInfo.value;\n\n update.callback = function () {\n onUncaughtError(error);\n logCapturedError(fiber, errorInfo);\n };\n\n return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane);\n update.tag = CaptureUpdate;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n if (typeof getDerivedStateFromError === 'function') {\n var error$1 = errorInfo.value;\n\n update.payload = function () {\n return getDerivedStateFromError(error$1);\n };\n\n update.callback = function () {\n {\n markFailedErrorBoundaryForHotReloading(fiber);\n }\n\n logCapturedError(fiber, errorInfo);\n };\n }\n\n var inst = fiber.stateNode;\n\n if (inst !== null && typeof inst.componentDidCatch === 'function') {\n update.callback = function callback() {\n {\n markFailedErrorBoundaryForHotReloading(fiber);\n }\n\n logCapturedError(fiber, errorInfo);\n\n if (typeof getDerivedStateFromError !== 'function') {\n markLegacyErrorBoundaryAsFailed(this);\n }\n\n var error$1 = errorInfo.value;\n var stack = errorInfo.stack;\n this.componentDidCatch(error$1, {\n componentStack: stack !== null ? stack : ''\n });\n\n {\n if (typeof getDerivedStateFromError !== 'function') {\n if (!includesSomeLane(fiber.lanes, SyncLane)) {\n error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentNameFromFiber(fiber) || 'Unknown');\n }\n }\n }\n };\n }\n\n return update;\n}\n\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n var threadIDs;\n\n if (pingCache === null) {\n pingCache = root.pingCache = new PossiblyWeakMap$1();\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else {\n threadIDs = pingCache.get(wakeable);\n\n if (threadIDs === undefined) {\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n }\n }\n\n if (!threadIDs.has(lanes)) {\n threadIDs.add(lanes);\n var ping = pingSuspendedRoot.bind(null, root, wakeable, lanes);\n\n {\n if (isDevToolsPresent) {\n restorePendingUpdaters(root, lanes);\n }\n }\n\n wakeable.then(ping, ping);\n }\n}\n\nfunction attachRetryListener(suspenseBoundary, root, wakeable, lanes) {\n var wakeables = suspenseBoundary.updateQueue;\n\n if (wakeables === null) {\n var updateQueue = new Set();\n updateQueue.add(wakeable);\n suspenseBoundary.updateQueue = updateQueue;\n } else {\n wakeables.add(wakeable);\n }\n}\n\nfunction resetSuspendedComponent(sourceFiber, rootRenderLanes) {\n\n\n var tag = sourceFiber.tag;\n\n if ((sourceFiber.mode & ConcurrentMode) === NoMode && (tag === FunctionComponent || tag === ForwardRef || tag === SimpleMemoComponent)) {\n var currentSource = sourceFiber.alternate;\n\n if (currentSource) {\n sourceFiber.updateQueue = currentSource.updateQueue;\n sourceFiber.memoizedState = currentSource.memoizedState;\n sourceFiber.lanes = currentSource.lanes;\n } else {\n sourceFiber.updateQueue = null;\n sourceFiber.memoizedState = null;\n }\n }\n}\n\nfunction getNearestSuspenseBoundaryToCapture(returnFiber) {\n var node = returnFiber;\n\n do {\n if (node.tag === SuspenseComponent && shouldCaptureSuspense(node)) {\n return node;\n } \n\n\n node = node.return;\n } while (node !== null);\n\n return null;\n}\n\nfunction markSuspenseBoundaryShouldCapture(suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes) {\n if ((suspenseBoundary.mode & ConcurrentMode) === NoMode) {\n if (suspenseBoundary === returnFiber) {\n suspenseBoundary.flags |= ShouldCapture;\n } else {\n suspenseBoundary.flags |= DidCapture;\n sourceFiber.flags |= ForceUpdateForLegacySuspense; \n\n sourceFiber.flags &= ~(LifecycleEffectMask | Incomplete);\n\n if (sourceFiber.tag === ClassComponent) {\n var currentSourceFiber = sourceFiber.alternate;\n\n if (currentSourceFiber === null) {\n sourceFiber.tag = IncompleteClassComponent;\n } else {\n var update = createUpdate(NoTimestamp, SyncLane);\n update.tag = ForceUpdate;\n enqueueUpdate(sourceFiber, update, SyncLane);\n }\n } \n\n\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, SyncLane);\n }\n\n return suspenseBoundary;\n } \n\n\n suspenseBoundary.flags |= ShouldCapture; \n\n suspenseBoundary.lanes = rootRenderLanes;\n return suspenseBoundary;\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, rootRenderLanes) {\n sourceFiber.flags |= Incomplete;\n\n {\n if (isDevToolsPresent) {\n restorePendingUpdaters(root, rootRenderLanes);\n }\n }\n\n if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n var wakeable = value;\n resetSuspendedComponent(sourceFiber);\n\n {\n if (getIsHydrating() && sourceFiber.mode & ConcurrentMode) {\n markDidThrowWhileHydratingDEV();\n }\n }\n\n\n var suspenseBoundary = getNearestSuspenseBoundaryToCapture(returnFiber);\n\n if (suspenseBoundary !== null) {\n suspenseBoundary.flags &= ~ForceClientRender;\n markSuspenseBoundaryShouldCapture(suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes); \n\n if (suspenseBoundary.mode & ConcurrentMode) {\n attachPingListener(root, wakeable, rootRenderLanes);\n }\n\n attachRetryListener(suspenseBoundary, root, wakeable);\n return;\n } else {\n if (!includesSyncLane(rootRenderLanes)) {\n attachPingListener(root, wakeable, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return;\n } \n\n\n var uncaughtSuspenseError = new Error('A component suspended while responding to synchronous input. This ' + 'will cause the UI to be replaced with a loading indicator. To ' + 'fix, updates that suspend should be wrapped ' + 'with startTransition.'); \n\n value = uncaughtSuspenseError;\n }\n } else {\n if (getIsHydrating() && sourceFiber.mode & ConcurrentMode) {\n markDidThrowWhileHydratingDEV();\n\n var _suspenseBoundary = getNearestSuspenseBoundaryToCapture(returnFiber); \n\n\n if (_suspenseBoundary !== null) {\n if ((_suspenseBoundary.flags & ShouldCapture) === NoFlags) {\n _suspenseBoundary.flags |= ForceClientRender;\n }\n\n markSuspenseBoundaryShouldCapture(_suspenseBoundary, returnFiber, sourceFiber, root, rootRenderLanes); \n\n queueHydrationError(createCapturedValueAtFiber(value, sourceFiber));\n return;\n }\n }\n }\n\n value = createCapturedValueAtFiber(value, sourceFiber);\n renderDidError(value); \n\n var workInProgress = returnFiber;\n\n do {\n switch (workInProgress.tag) {\n case HostRoot:\n {\n var _errorInfo = value;\n workInProgress.flags |= ShouldCapture;\n var lane = pickArbitraryLane(rootRenderLanes);\n workInProgress.lanes = mergeLanes(workInProgress.lanes, lane);\n var update = createRootErrorUpdate(workInProgress, _errorInfo, lane);\n enqueueCapturedUpdate(workInProgress, update);\n return;\n }\n\n case ClassComponent:\n var errorInfo = value;\n var ctor = workInProgress.type;\n var instance = workInProgress.stateNode;\n\n if ((workInProgress.flags & DidCapture) === NoFlags && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n workInProgress.flags |= ShouldCapture;\n\n var _lane = pickArbitraryLane(rootRenderLanes);\n\n workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); \n\n var _update = createClassErrorUpdate(workInProgress, errorInfo, _lane);\n\n enqueueCapturedUpdate(workInProgress, _update);\n return;\n }\n\n break;\n }\n\n workInProgress = workInProgress.return;\n } while (workInProgress !== null);\n}\n\nfunction getSuspendedCache() {\n {\n return null;\n } \n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\nvar didWarnAboutDefaultPropsOnFunctionComponent;\n\n{\n didWarnAboutBadClass = {};\n didWarnAboutModulePatternComponent = {};\n didWarnAboutContextTypeOnFunctionComponent = {};\n didWarnAboutGetDerivedStateOnFunctionComponent = {};\n didWarnAboutFunctionRefs = {};\n didWarnAboutReassigningProps = false;\n didWarnAboutRevealOrder = {};\n didWarnAboutTailOptions = {};\n didWarnAboutDefaultPropsOnFunctionComponent = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n if (current === null) {\n workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes);\n }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes); \n\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, \n 'prop', getComponentNameFromType(Component));\n }\n }\n }\n\n var render = Component.render;\n var ref = workInProgress.ref; \n\n var nextChildren;\n var hasId;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n markComponentRenderStarted(workInProgress);\n }\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n hasId = checkDidRenderIdHook();\n\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n hasId = checkDidRenderIdHook();\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n setIsRendering(false);\n }\n\n {\n markComponentRenderStopped();\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n if (getIsHydrating() && hasId) {\n pushMaterializedTreeId(workInProgress);\n } \n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, renderLanes) {\n if (current === null) {\n var type = Component.type;\n\n if (isSimpleFunctionComponent(type) && Component.compare === null && \n Component.defaultProps === undefined) {\n var resolvedType = type;\n\n {\n resolvedType = resolveFunctionForHotReloading(type);\n } \n\n\n workInProgress.tag = SimpleMemoComponent;\n workInProgress.type = resolvedType;\n\n {\n validateFunctionComponentInDev(workInProgress, type);\n }\n\n return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, renderLanes);\n }\n\n {\n var innerPropTypes = type.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, \n 'prop', getComponentNameFromType(type));\n }\n\n if ( Component.defaultProps !== undefined) {\n var componentName = getComponentNameFromType(type) || 'Unknown';\n\n if (!didWarnAboutDefaultPropsOnFunctionComponent[componentName]) {\n error('%s: Support for defaultProps will be removed from memo components ' + 'in a future major release. Use JavaScript default parameters instead.', componentName);\n\n didWarnAboutDefaultPropsOnFunctionComponent[componentName] = true;\n }\n }\n }\n\n var child = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes);\n child.ref = workInProgress.ref;\n child.return = workInProgress;\n workInProgress.child = child;\n return child;\n }\n\n {\n var _type = Component.type;\n var _innerPropTypes = _type.propTypes;\n\n if (_innerPropTypes) {\n checkPropTypes(_innerPropTypes, nextProps, \n 'prop', getComponentNameFromType(_type));\n }\n }\n\n var currentChild = current.child; \n\n var hasScheduledUpdateOrContext = checkScheduledUpdateOrContext(current, renderLanes);\n\n if (!hasScheduledUpdateOrContext) {\n var prevProps = currentChild.memoizedProps; \n\n var compare = Component.compare;\n compare = compare !== null ? compare : shallowEqual;\n\n if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } \n\n\n workInProgress.flags |= PerformedWork;\n var newChild = createWorkInProgress(currentChild, nextProps);\n newChild.ref = workInProgress.ref;\n newChild.return = workInProgress;\n workInProgress.child = newChild;\n return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerMemoType = workInProgress.elementType;\n\n if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n var lazyComponent = outerMemoType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n outerMemoType = init(payload);\n } catch (x) {\n outerMemoType = null;\n } \n\n\n var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, nextProps, \n 'prop', getComponentNameFromType(outerMemoType));\n }\n }\n }\n }\n\n if (current !== null) {\n var prevProps = current.memoizedProps;\n\n if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( \n workInProgress.type === current.type )) {\n didReceiveUpdate = false; \n\n workInProgress.pendingProps = nextProps = prevProps;\n\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n workInProgress.lanes = current.lanes;\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n didReceiveUpdate = true;\n }\n }\n }\n\n return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes);\n}\n\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n var prevState = current !== null ? current.memoizedState : null;\n\n if (nextProps.mode === 'hidden' || enableLegacyHidden ) {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n var nextState = {\n baseLanes: NoLanes,\n cachePool: null,\n transitions: null\n };\n workInProgress.memoizedState = nextState;\n\n pushRenderLanes(workInProgress, renderLanes);\n } else if (!includesSomeLane(renderLanes, OffscreenLane)) {\n var spawnedCachePool = null; \n\n var nextBaseLanes;\n\n if (prevState !== null) {\n var prevBaseLanes = prevState.baseLanes;\n nextBaseLanes = mergeLanes(prevBaseLanes, renderLanes);\n } else {\n nextBaseLanes = renderLanes;\n } \n\n\n workInProgress.lanes = workInProgress.childLanes = laneToLanes(OffscreenLane);\n var _nextState = {\n baseLanes: nextBaseLanes,\n cachePool: spawnedCachePool,\n transitions: null\n };\n workInProgress.memoizedState = _nextState;\n workInProgress.updateQueue = null;\n\n\n pushRenderLanes(workInProgress, nextBaseLanes);\n\n return null;\n } else {\n var _nextState2 = {\n baseLanes: NoLanes,\n cachePool: null,\n transitions: null\n };\n workInProgress.memoizedState = _nextState2; \n\n var subtreeRenderLanes = prevState !== null ? prevState.baseLanes : renderLanes;\n\n pushRenderLanes(workInProgress, subtreeRenderLanes);\n }\n } else {\n var _subtreeRenderLanes;\n\n if (prevState !== null) {\n _subtreeRenderLanes = mergeLanes(prevState.baseLanes, renderLanes);\n\n workInProgress.memoizedState = null;\n } else {\n _subtreeRenderLanes = renderLanes;\n }\n\n pushRenderLanes(workInProgress, _subtreeRenderLanes);\n }\n\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n} \n\nfunction updateFragment(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderLanes) {\n {\n workInProgress.flags |= Update;\n\n {\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n }\n\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n\n if (current === null && ref !== null || current !== null && current.ref !== ref) {\n workInProgress.flags |= Ref;\n\n {\n workInProgress.flags |= RefStatic;\n }\n }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, \n 'prop', getComponentNameFromType(Component));\n }\n }\n }\n\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n var nextChildren;\n var hasId;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n markComponentRenderStarted(workInProgress);\n }\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n hasId = checkDidRenderIdHook();\n\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n hasId = checkDidRenderIdHook();\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n setIsRendering(false);\n }\n\n {\n markComponentRenderStopped();\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n if (getIsHydrating() && hasId) {\n pushMaterializedTreeId(workInProgress);\n } \n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n switch (shouldError(workInProgress)) {\n case false:\n {\n var _instance = workInProgress.stateNode;\n var ctor = workInProgress.type; \n\n var tempInstance = new ctor(workInProgress.memoizedProps, _instance.context);\n var state = tempInstance.state;\n\n _instance.updater.enqueueSetState(_instance, state, null);\n\n break;\n }\n\n case true:\n {\n workInProgress.flags |= DidCapture;\n workInProgress.flags |= ShouldCapture; \n\n var error$1 = new Error('Simulated error coming from DevTools');\n var lane = pickArbitraryLane(renderLanes);\n workInProgress.lanes = mergeLanes(workInProgress.lanes, lane); \n\n var update = createClassErrorUpdate(workInProgress, createCapturedValueAtFiber(error$1, workInProgress), lane);\n enqueueCapturedUpdate(workInProgress, update);\n break;\n }\n }\n\n if (workInProgress.type !== workInProgress.elementType) {\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, \n 'prop', getComponentNameFromType(Component));\n }\n }\n } \n\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var instance = workInProgress.stateNode;\n var shouldUpdate;\n\n if (instance === null) {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); \n\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n shouldUpdate = true;\n } else if (current === null) {\n shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderLanes);\n } else {\n shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);\n }\n\n var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);\n\n {\n var inst = workInProgress.stateNode;\n\n if (shouldUpdate && inst.props !== nextProps) {\n if (!didWarnAboutReassigningProps) {\n error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentNameFromFiber(workInProgress) || 'a component');\n }\n\n didWarnAboutReassigningProps = true;\n }\n }\n\n return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) {\n markRef(current, workInProgress);\n var didCaptureError = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (!shouldUpdate && !didCaptureError) {\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, false);\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var instance = workInProgress.stateNode; \n\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren;\n\n if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n nextChildren = null;\n\n {\n stopProfilerTimerIfRunning();\n }\n } else {\n {\n markComponentRenderStarted(workInProgress);\n }\n\n {\n setIsRendering(true);\n nextChildren = instance.render();\n\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n instance.render();\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n\n setIsRendering(false);\n }\n\n {\n markComponentRenderStopped();\n }\n } \n\n\n workInProgress.flags |= PerformedWork;\n\n if (current !== null && didCaptureError) {\n forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n } \n\n\n workInProgress.memoizedState = instance.state; \n\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, true);\n }\n\n return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n\n if (root.pendingContext) {\n pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n } else if (root.context) {\n pushTopLevelContextObject(workInProgress, root.context, false);\n }\n\n pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderLanes) {\n pushHostRootContext(workInProgress);\n\n if (current === null) {\n throw new Error('Should have a current fiber. This is a bug in React.');\n }\n\n var nextProps = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n var prevChildren = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n var root = workInProgress.stateNode;\n\n\n var nextChildren = nextState.element;\n\n if ( prevState.isDehydrated) {\n var overrideState = {\n element: nextChildren,\n isDehydrated: false,\n cache: nextState.cache,\n pendingSuspenseBoundaries: nextState.pendingSuspenseBoundaries,\n transitions: nextState.transitions\n };\n var updateQueue = workInProgress.updateQueue; \n\n updateQueue.baseState = overrideState;\n workInProgress.memoizedState = overrideState;\n\n if (workInProgress.flags & ForceClientRender) {\n var recoverableError = createCapturedValueAtFiber(new Error('There was an error while hydrating. Because the error happened outside ' + 'of a Suspense boundary, the entire root will switch to ' + 'client rendering.'), workInProgress);\n return mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, recoverableError);\n } else if (nextChildren !== prevChildren) {\n var _recoverableError = createCapturedValueAtFiber(new Error('This root received an early update, before anything was able ' + 'hydrate. Switched the entire root to client rendering.'), workInProgress);\n\n return mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, _recoverableError);\n } else {\n enterHydrationState(workInProgress);\n\n var child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n workInProgress.child = child;\n var node = child;\n\n while (node) {\n node.flags = node.flags & ~Placement | Hydrating;\n node = node.sibling;\n }\n }\n } else {\n resetHydrationState();\n\n if (nextChildren === prevChildren) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n }\n\n return workInProgress.child;\n}\n\nfunction mountHostRootWithoutHydrating(current, workInProgress, nextChildren, renderLanes, recoverableError) {\n resetHydrationState();\n queueHydrationError(recoverableError);\n workInProgress.flags |= ForceClientRender;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderLanes) {\n pushHostContext(workInProgress);\n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n\n var type = workInProgress.type;\n var nextProps = workInProgress.pendingProps;\n var prevProps = current !== null ? current.memoizedProps : null;\n var nextChildren = nextProps.children;\n var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n if (isDirectTextChild) {\n nextChildren = null;\n } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n workInProgress.flags |= ContentReset;\n }\n\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n } \n\n\n return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, renderLanes) {\n resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress);\n var props = workInProgress.pendingProps;\n var lazyComponent = elementType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n var Component = init(payload); \n\n workInProgress.type = Component;\n var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n var resolvedProps = resolveDefaultProps(Component, props);\n var child;\n\n switch (resolvedTag) {\n case FunctionComponent:\n {\n {\n validateFunctionComponentInDev(workInProgress, Component);\n workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n }\n\n child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ClassComponent:\n {\n {\n workInProgress.type = Component = resolveClassForHotReloading(Component);\n }\n\n child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ForwardRef:\n {\n {\n workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n }\n\n child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case MemoComponent:\n {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = Component.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, resolvedProps, \n 'prop', getComponentNameFromType(Component));\n }\n }\n }\n\n child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), \n renderLanes);\n return child;\n }\n }\n\n var hint = '';\n\n {\n if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n hint = ' Did you wrap a component in React.lazy() more than once?';\n }\n } \n\n\n throw new Error(\"Element type is invalid. Received a promise that resolves to: \" + Component + \". \" + (\"Lazy element type must resolve to a class or function.\" + hint));\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderLanes) {\n resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress); \n\n workInProgress.tag = ClassComponent; \n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderLanes) {\n resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress);\n var props = workInProgress.pendingProps;\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var value;\n var hasId;\n\n {\n markComponentRenderStarted(workInProgress);\n }\n\n {\n if (Component.prototype && typeof Component.prototype.render === 'function') {\n var componentName = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutBadClass[componentName]) {\n error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n didWarnAboutBadClass[componentName] = true;\n }\n }\n\n if (workInProgress.mode & StrictLegacyMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n }\n\n setIsRendering(true);\n ReactCurrentOwner$1.current = workInProgress;\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n hasId = checkDidRenderIdHook();\n setIsRendering(false);\n }\n\n {\n markComponentRenderStopped();\n } \n\n\n workInProgress.flags |= PerformedWork;\n\n {\n if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n var _componentName = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n didWarnAboutModulePatternComponent[_componentName] = true;\n }\n }\n }\n\n if ( \n typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n {\n var _componentName2 = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName2]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2);\n\n didWarnAboutModulePatternComponent[_componentName2] = true;\n }\n } \n\n\n workInProgress.tag = ClassComponent; \n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null; \n\n var hasContext = false;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n initializeUpdateQueue(workInProgress);\n adoptClassInstance(workInProgress, value);\n mountClassInstance(workInProgress, Component, props, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n } else {\n workInProgress.tag = FunctionComponent;\n\n {\n\n if ( workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(true);\n\n try {\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n hasId = checkDidRenderIdHook();\n } finally {\n setIsStrictModeForDevtools(false);\n }\n }\n }\n\n if (getIsHydrating() && hasId) {\n pushMaterializedTreeId(workInProgress);\n }\n\n reconcileChildren(null, workInProgress, value, renderLanes);\n\n {\n validateFunctionComponentInDev(workInProgress, Component);\n }\n\n return workInProgress.child;\n }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n {\n if (Component) {\n if (Component.childContextTypes) {\n error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n }\n }\n\n if (workInProgress.ref !== null) {\n var info = '';\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n var warningKey = ownerName || '';\n var debugSource = workInProgress._debugSource;\n\n if (debugSource) {\n warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n }\n\n if (!didWarnAboutFunctionRefs[warningKey]) {\n didWarnAboutFunctionRefs[warningKey] = true;\n\n error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n }\n }\n\n if ( Component.defaultProps !== undefined) {\n var componentName = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutDefaultPropsOnFunctionComponent[componentName]) {\n error('%s: Support for defaultProps will be removed from function components ' + 'in a future major release. Use JavaScript default parameters instead.', componentName);\n\n didWarnAboutDefaultPropsOnFunctionComponent[componentName] = true;\n }\n }\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n var _componentName3 = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n error('%s: Function components do not support getDerivedStateFromProps.', _componentName3);\n\n didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n }\n }\n\n if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n var _componentName4 = getComponentNameFromType(Component) || 'Unknown';\n\n if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n error('%s: Function components do not support contextType.', _componentName4);\n\n didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n }\n }\n }\n}\n\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: NoLane\n};\n\nfunction mountSuspenseOffscreenState(renderLanes) {\n return {\n baseLanes: renderLanes,\n cachePool: getSuspendedCache(),\n transitions: null\n };\n}\n\nfunction updateSuspenseOffscreenState(prevOffscreenState, renderLanes) {\n var cachePool = null;\n\n return {\n baseLanes: mergeLanes(prevOffscreenState.baseLanes, renderLanes),\n cachePool: cachePool,\n transitions: prevOffscreenState.transitions\n };\n} \n\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress, renderLanes) {\n if (current !== null) {\n var suspenseState = current.memoizedState;\n\n if (suspenseState === null) {\n return false;\n }\n } \n\n\n return hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n}\n\nfunction getRemainingWorkInPrimaryTree(current, renderLanes) {\n return removeLanes(current.childLanes, renderLanes);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps; \n\n {\n if (shouldSuspend(workInProgress)) {\n workInProgress.flags |= DidCapture;\n }\n }\n\n var suspenseContext = suspenseStackCursor.current;\n var showFallback = false;\n var didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n showFallback = true;\n workInProgress.flags &= ~DidCapture;\n } else {\n if (current === null || current.memoizedState !== null) {\n {\n suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n }\n }\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n pushSuspenseContext(workInProgress, suspenseContext); \n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress); \n\n var suspenseState = workInProgress.memoizedState;\n\n if (suspenseState !== null) {\n var dehydrated = suspenseState.dehydrated;\n\n if (dehydrated !== null) {\n return mountDehydratedSuspenseComponent(workInProgress, dehydrated);\n }\n }\n\n var nextPrimaryChildren = nextProps.children;\n var nextFallbackChildren = nextProps.fallback;\n\n if (showFallback) {\n var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n var primaryChildFragment = workInProgress.child;\n primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n\n return fallbackFragment;\n } else {\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n } else {\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n var _dehydrated = prevState.dehydrated;\n\n if (_dehydrated !== null) {\n return updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, _dehydrated, prevState, renderLanes);\n }\n }\n\n if (showFallback) {\n var _nextFallbackChildren = nextProps.fallback;\n var _nextPrimaryChildren = nextProps.children;\n var fallbackChildFragment = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren, _nextFallbackChildren, renderLanes);\n var _primaryChildFragment2 = workInProgress.child;\n var prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment2.memoizedState = prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(prevOffscreenState, renderLanes);\n\n _primaryChildFragment2.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return fallbackChildFragment;\n } else {\n var _nextPrimaryChildren2 = nextProps.children;\n\n var _primaryChildFragment3 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren2, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment3;\n }\n }\n}\n\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren, renderLanes) {\n var mode = workInProgress.mode;\n var primaryChildProps = {\n mode: 'visible',\n children: primaryChildren\n };\n var primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, mode);\n primaryChildFragment.return = workInProgress;\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackChildren(workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var progressedPrimaryFragment = workInProgress.child;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n var fallbackChildFragment;\n\n if ((mode & ConcurrentMode) === NoMode && progressedPrimaryFragment !== null) {\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = 0;\n primaryChildFragment.treeBaseDuration = 0;\n }\n\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n } else {\n primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, mode);\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n }\n\n primaryChildFragment.return = workInProgress;\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode, renderLanes) {\n return createFiberFromOffscreen(offscreenProps, mode, NoLanes, null);\n}\n\nfunction updateWorkInProgressOffscreenFiber(current, offscreenProps) {\n return createWorkInProgress(current, offscreenProps);\n}\n\nfunction updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) {\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildFragment = updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment, {\n mode: 'visible',\n children: primaryChildren\n });\n\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n primaryChildFragment.lanes = renderLanes;\n }\n\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = null;\n\n if (currentFallbackChildFragment !== null) {\n var deletions = workInProgress.deletions;\n\n if (deletions === null) {\n workInProgress.deletions = [currentFallbackChildFragment];\n workInProgress.flags |= ChildDeletion;\n } else {\n deletions.push(currentFallbackChildFragment);\n }\n }\n\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction updateSuspenseFallbackChildren(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n\n if ( \n (mode & ConcurrentMode) === NoMode && \n workInProgress.child !== currentPrimaryChildFragment) {\n var progressedPrimaryFragment = workInProgress.child;\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration;\n primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration;\n } \n\n\n workInProgress.deletions = null;\n } else {\n primaryChildFragment = updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment, primaryChildProps); \n\n primaryChildFragment.subtreeFlags = currentPrimaryChildFragment.subtreeFlags & StaticMask;\n }\n\n var fallbackChildFragment;\n\n if (currentFallbackChildFragment !== null) {\n fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren);\n } else {\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null); \n\n fallbackChildFragment.flags |= Placement;\n }\n\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, recoverableError) {\n if (recoverableError !== null) {\n queueHydrationError(recoverableError);\n } \n\n\n reconcileChildFibers(workInProgress, current.child, null, renderLanes); \n\n var nextProps = workInProgress.pendingProps;\n var primaryChildren = nextProps.children;\n var primaryChildFragment = mountSuspensePrimaryChildren(workInProgress, primaryChildren); \n\n primaryChildFragment.flags |= Placement;\n workInProgress.memoizedState = null;\n return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackAfterRetryWithoutHydrating(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var fiberMode = workInProgress.mode;\n var primaryChildProps = {\n mode: 'visible',\n children: primaryChildren\n };\n var primaryChildFragment = mountWorkInProgressOffscreenFiber(primaryChildProps, fiberMode);\n var fallbackChildFragment = createFiberFromFragment(fallbackChildren, fiberMode, renderLanes, null); \n\n fallbackChildFragment.flags |= Placement;\n primaryChildFragment.return = workInProgress;\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n\n if ((workInProgress.mode & ConcurrentMode) !== NoMode) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n }\n\n return fallbackChildFragment;\n}\n\nfunction mountDehydratedSuspenseComponent(workInProgress, suspenseInstance, renderLanes) {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n {\n error('Cannot hydrate Suspense in legacy mode. Switch from ' + 'ReactDOM.hydrate(element, container) to ' + 'ReactDOMClient.hydrateRoot(container, <App />)' + '.render(element) or remove the Suspense components from ' + 'the server rendered components.');\n }\n\n workInProgress.lanes = laneToLanes(SyncLane);\n } else if (isSuspenseInstanceFallback(suspenseInstance)) {\n workInProgress.lanes = laneToLanes(DefaultHydrationLane);\n } else {\n workInProgress.lanes = laneToLanes(OffscreenLane);\n }\n\n return null;\n}\n\nfunction updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, suspenseInstance, suspenseState, renderLanes) {\n if (!didSuspend) {\n warnIfHydrating();\n\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, \n null);\n }\n\n if (isSuspenseInstanceFallback(suspenseInstance)) {\n var digest, message, stack;\n\n {\n var _getSuspenseInstanceF = getSuspenseInstanceFallbackErrorDetails(suspenseInstance);\n\n digest = _getSuspenseInstanceF.digest;\n message = _getSuspenseInstanceF.message;\n stack = _getSuspenseInstanceF.stack;\n }\n\n var error;\n\n if (message) {\n error = new Error(message);\n } else {\n error = new Error('The server could not finish this Suspense boundary, likely ' + 'due to an error during server rendering. Switched to ' + 'client rendering.');\n }\n\n var capturedValue = createCapturedValue(error, digest, stack);\n return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, capturedValue);\n }\n\n\n var hasContextChanged = includesSomeLane(renderLanes, current.childLanes);\n\n if (didReceiveUpdate || hasContextChanged) {\n var root = getWorkInProgressRoot();\n\n if (root !== null) {\n var attemptHydrationAtLane = getBumpedLaneForHydration(root, renderLanes);\n\n if (attemptHydrationAtLane !== NoLane && attemptHydrationAtLane !== suspenseState.retryLane) {\n suspenseState.retryLane = attemptHydrationAtLane; \n\n var eventTime = NoTimestamp;\n enqueueConcurrentRenderForLane(current, attemptHydrationAtLane);\n scheduleUpdateOnFiber(root, current, attemptHydrationAtLane, eventTime);\n }\n } \n\n\n renderDidSuspendDelayIfPossible();\n\n var _capturedValue = createCapturedValue(new Error('This Suspense boundary received an update before it finished ' + 'hydrating. This caused the boundary to switch to client rendering. ' + 'The usual way to fix this is to wrap the original update ' + 'in startTransition.'));\n\n return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, _capturedValue);\n } else if (isSuspenseInstancePending(suspenseInstance)) {\n workInProgress.flags |= DidCapture; \n\n workInProgress.child = current.child; \n\n var retry = retryDehydratedSuspenseBoundary.bind(null, current);\n registerSuspenseInstanceRetry(suspenseInstance, retry);\n return null;\n } else {\n reenterHydrationStateFromDehydratedSuspenseInstance(workInProgress, suspenseInstance, suspenseState.treeContext);\n var primaryChildren = nextProps.children;\n var primaryChildFragment = mountSuspensePrimaryChildren(workInProgress, primaryChildren); \n\n primaryChildFragment.flags |= Hydrating;\n return primaryChildFragment;\n }\n } else {\n if (workInProgress.flags & ForceClientRender) {\n workInProgress.flags &= ~ForceClientRender;\n\n var _capturedValue2 = createCapturedValue(new Error('There was an error while hydrating this Suspense boundary. ' + 'Switched to client rendering.'));\n\n return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, _capturedValue2);\n } else if (workInProgress.memoizedState !== null) {\n workInProgress.child = current.child; \n\n workInProgress.flags |= DidCapture;\n return null;\n } else {\n var nextPrimaryChildren = nextProps.children;\n var nextFallbackChildren = nextProps.fallback;\n var fallbackChildFragment = mountSuspenseFallbackAfterRetryWithoutHydrating(current, workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n var _primaryChildFragment4 = workInProgress.child;\n _primaryChildFragment4.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return fallbackChildFragment;\n }\n }\n}\n\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderLanes) {\n var node = firstChild;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n scheduleSuspenseWorkOnFiber(node, renderLanes, workInProgress);\n }\n } else if (node.tag === SuspenseListComponent) {\n scheduleSuspenseWorkOnFiber(node, renderLanes, workInProgress);\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction findLastContentRow(firstChild) {\n var row = firstChild;\n var lastContentRow = null;\n\n while (row !== null) {\n var currentRow = row.alternate; \n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n lastContentRow = row;\n }\n\n row = row.sibling;\n }\n\n return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n {\n if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n didWarnAboutRevealOrder[revealOrder] = true;\n\n if (typeof revealOrder === 'string') {\n switch (revealOrder.toLowerCase()) {\n case 'together':\n case 'forwards':\n case 'backwards':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n case 'forward':\n case 'backward':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n default:\n error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n break;\n }\n } else {\n error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n }\n }\n }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n {\n if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n }\n }\n }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n {\n var isAnArray = isArray(childSlot);\n var isIterable = !isAnArray && typeof getIteratorFn(childSlot) === 'function';\n\n if (isAnArray || isIterable) {\n var type = isAnArray ? 'array' : 'iterable';\n\n error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n {\n if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n if (!validateSuspenseListNestedChild(children[i], i)) {\n return;\n }\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var childrenIterator = iteratorFn.call(children);\n\n if (childrenIterator) {\n var step = childrenIterator.next();\n var _i = 0;\n\n for (; !step.done; step = childrenIterator.next()) {\n if (!validateSuspenseListNestedChild(step.value, _i)) {\n return;\n }\n\n _i++;\n }\n }\n } else {\n error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n }\n }\n }\n }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode) {\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n };\n } else {\n renderState.isBackwards = isBackwards;\n renderState.rendering = null;\n renderState.renderingStartTime = 0;\n renderState.last = lastContentRow;\n renderState.tail = tail;\n renderState.tailMode = tailMode;\n }\n} \n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var revealOrder = nextProps.revealOrder;\n var tailMode = nextProps.tail;\n var newChildren = nextProps.children;\n validateRevealOrder(revealOrder);\n validateTailOptions(tailMode, revealOrder);\n validateSuspenseListChildren(newChildren, revealOrder);\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n var suspenseContext = suspenseStackCursor.current;\n var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n if (shouldForceFallback) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n workInProgress.flags |= DidCapture;\n } else {\n var didSuspendBefore = current !== null && (current.flags & DidCapture) !== NoFlags;\n\n if (didSuspendBefore) {\n propagateSuspenseContextChange(workInProgress, workInProgress.child, renderLanes);\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext);\n\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n workInProgress.memoizedState = null;\n } else {\n switch (revealOrder) {\n case 'forwards':\n {\n var lastContentRow = findLastContentRow(workInProgress.child);\n var tail;\n\n if (lastContentRow === null) {\n tail = workInProgress.child;\n workInProgress.child = null;\n } else {\n tail = lastContentRow.sibling;\n lastContentRow.sibling = null;\n }\n\n initSuspenseListRenderState(workInProgress, false, \n tail, lastContentRow, tailMode);\n break;\n }\n\n case 'backwards':\n {\n var _tail = null;\n var row = workInProgress.child;\n workInProgress.child = null;\n\n while (row !== null) {\n var currentRow = row.alternate; \n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n workInProgress.child = row;\n break;\n }\n\n var nextRow = row.sibling;\n row.sibling = _tail;\n _tail = row;\n row = nextRow;\n } \n\n\n initSuspenseListRenderState(workInProgress, true, \n _tail, null, \n tailMode);\n break;\n }\n\n case 'together':\n {\n initSuspenseListRenderState(workInProgress, false, \n null, \n null, \n undefined);\n break;\n }\n\n default:\n {\n workInProgress.memoizedState = null;\n }\n }\n }\n\n return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderLanes) {\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n var nextChildren = workInProgress.pendingProps;\n\n if (current === null) {\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n }\n\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingNoValuePropOnContextProvider = false;\n\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var providerType = workInProgress.type;\n var context = providerType._context;\n var newProps = workInProgress.pendingProps;\n var oldProps = workInProgress.memoizedProps;\n var newValue = newProps.value;\n\n {\n if (!('value' in newProps)) {\n if (!hasWarnedAboutUsingNoValuePropOnContextProvider) {\n hasWarnedAboutUsingNoValuePropOnContextProvider = true;\n\n error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');\n }\n }\n\n var providerPropTypes = workInProgress.type.propTypes;\n\n if (providerPropTypes) {\n checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider');\n }\n }\n\n pushProvider(workInProgress, context, newValue);\n\n {\n if (oldProps !== null) {\n var oldValue = oldProps.value;\n\n if (objectIs(oldValue, newValue)) {\n if (oldProps.children === newProps.children && !hasContextChanged()) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } else {\n propagateContextChange(workInProgress, context, renderLanes);\n }\n }\n }\n\n var newChildren = newProps.children;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderLanes) {\n var context = workInProgress.type; \n\n {\n if (context._context === undefined) {\n if (context !== context.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n\n error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n }\n } else {\n context = context._context;\n }\n }\n\n var newProps = workInProgress.pendingProps;\n var render = newProps.children;\n\n {\n if (typeof render !== 'function') {\n error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n }\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var newValue = readContext(context);\n\n {\n markComponentRenderStarted(workInProgress);\n }\n\n var newChildren;\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n newChildren = render(newValue);\n setIsRendering(false);\n }\n\n {\n markComponentRenderStopped();\n } \n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n didReceiveUpdate = true;\n}\n\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n if (current !== null) {\n current.alternate = null;\n workInProgress.alternate = null; \n\n workInProgress.flags |= Placement;\n }\n }\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n if (current !== null) {\n workInProgress.dependencies = current.dependencies;\n }\n\n {\n stopProfilerTimerIfRunning();\n }\n\n markSkippedUpdateLanes(workInProgress.lanes); \n\n if (!includesSomeLane(renderLanes, workInProgress.childLanes)) {\n {\n return null;\n }\n } \n\n\n cloneChildFibers(current, workInProgress);\n return workInProgress.child;\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n {\n var returnFiber = oldWorkInProgress.return;\n\n if (returnFiber === null) {\n throw new Error('Cannot swap the root fiber.');\n } \n\n\n current.alternate = null;\n oldWorkInProgress.alternate = null; \n\n newWorkInProgress.index = oldWorkInProgress.index;\n newWorkInProgress.sibling = oldWorkInProgress.sibling;\n newWorkInProgress.return = oldWorkInProgress.return;\n newWorkInProgress.ref = oldWorkInProgress.ref; \n\n if (oldWorkInProgress === returnFiber.child) {\n returnFiber.child = newWorkInProgress;\n } else {\n var prevSibling = returnFiber.child;\n\n if (prevSibling === null) {\n throw new Error('Expected parent to have a child.');\n }\n\n while (prevSibling.sibling !== oldWorkInProgress) {\n prevSibling = prevSibling.sibling;\n\n if (prevSibling === null) {\n throw new Error('Expected to find the previous sibling.');\n }\n }\n\n prevSibling.sibling = newWorkInProgress;\n } \n\n\n var deletions = returnFiber.deletions;\n\n if (deletions === null) {\n returnFiber.deletions = [current];\n returnFiber.flags |= ChildDeletion;\n } else {\n deletions.push(current);\n }\n\n newWorkInProgress.flags |= Placement; \n\n return newWorkInProgress;\n }\n}\n\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n var updateLanes = current.lanes;\n\n if (includesSomeLane(updateLanes, renderLanes)) {\n return true;\n } \n\n return false;\n}\n\nfunction attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes) {\n switch (workInProgress.tag) {\n case HostRoot:\n pushHostRootContext(workInProgress);\n var root = workInProgress.stateNode;\n\n resetHydrationState();\n break;\n\n case HostComponent:\n pushHostContext(workInProgress);\n break;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n pushContextProvider(workInProgress);\n }\n\n break;\n }\n\n case HostPortal:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n\n case ContextProvider:\n {\n var newValue = workInProgress.memoizedProps.value;\n var context = workInProgress.type._context;\n pushProvider(workInProgress, context, newValue);\n break;\n }\n\n case Profiler:\n {\n var hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (hasChildWork) {\n workInProgress.flags |= Update;\n }\n\n {\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n }\n\n break;\n\n case SuspenseComponent:\n {\n var state = workInProgress.memoizedState;\n\n if (state !== null) {\n if (state.dehydrated !== null) {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); \n\n workInProgress.flags |= DidCapture; \n\n return null;\n } \n\n\n var primaryChildFragment = workInProgress.child;\n var primaryChildLanes = primaryChildFragment.childLanes;\n\n if (includesSomeLane(renderLanes, primaryChildLanes)) {\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n } else {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); \n\n var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n\n if (child !== null) {\n return child.sibling;\n } else {\n return null;\n }\n }\n } else {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n }\n\n break;\n }\n\n case SuspenseListComponent:\n {\n var didSuspendBefore = (current.flags & DidCapture) !== NoFlags;\n\n var _hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (didSuspendBefore) {\n if (_hasChildWork) {\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n } \n\n\n workInProgress.flags |= DidCapture;\n } \n\n\n var renderState = workInProgress.memoizedState;\n\n if (renderState !== null) {\n renderState.rendering = null;\n renderState.tail = null;\n renderState.lastEffect = null;\n }\n\n pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n if (_hasChildWork) {\n break;\n } else {\n return null;\n }\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n workInProgress.lanes = NoLanes;\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\n\nfunction beginWork(current, workInProgress, renderLanes) {\n {\n if (workInProgress._debugNeedsRemount && current !== null) {\n return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes));\n }\n }\n\n if (current !== null) {\n var oldProps = current.memoizedProps;\n var newProps = workInProgress.pendingProps;\n\n if (oldProps !== newProps || hasContextChanged() || ( \n workInProgress.type !== current.type )) {\n didReceiveUpdate = true;\n } else {\n var hasScheduledUpdateOrContext = checkScheduledUpdateOrContext(current, renderLanes);\n\n if (!hasScheduledUpdateOrContext && \n (workInProgress.flags & DidCapture) === NoFlags) {\n didReceiveUpdate = false;\n return attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes);\n }\n\n if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n didReceiveUpdate = true;\n } else {\n didReceiveUpdate = false;\n }\n }\n } else {\n didReceiveUpdate = false;\n\n if (getIsHydrating() && isForkedChild(workInProgress)) {\n var slotIndex = workInProgress.index;\n var numberOfForks = getForksAtLevel();\n pushTreeId(workInProgress, numberOfForks, slotIndex);\n }\n } \n\n\n workInProgress.lanes = NoLanes;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n {\n return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderLanes);\n }\n\n case LazyComponent:\n {\n var elementType = workInProgress.elementType;\n return mountLazyComponent(current, workInProgress, elementType, renderLanes);\n }\n\n case FunctionComponent:\n {\n var Component = workInProgress.type;\n var unresolvedProps = workInProgress.pendingProps;\n var resolvedProps = workInProgress.elementType === Component ? unresolvedProps : resolveDefaultProps(Component, unresolvedProps);\n return updateFunctionComponent(current, workInProgress, Component, resolvedProps, renderLanes);\n }\n\n case ClassComponent:\n {\n var _Component = workInProgress.type;\n var _unresolvedProps = workInProgress.pendingProps;\n\n var _resolvedProps = workInProgress.elementType === _Component ? _unresolvedProps : resolveDefaultProps(_Component, _unresolvedProps);\n\n return updateClassComponent(current, workInProgress, _Component, _resolvedProps, renderLanes);\n }\n\n case HostRoot:\n return updateHostRoot(current, workInProgress, renderLanes);\n\n case HostComponent:\n return updateHostComponent(current, workInProgress, renderLanes);\n\n case HostText:\n return updateHostText(current, workInProgress);\n\n case SuspenseComponent:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n\n case HostPortal:\n return updatePortalComponent(current, workInProgress, renderLanes);\n\n case ForwardRef:\n {\n var type = workInProgress.type;\n var _unresolvedProps2 = workInProgress.pendingProps;\n\n var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderLanes);\n }\n\n case Fragment:\n return updateFragment(current, workInProgress, renderLanes);\n\n case Mode:\n return updateMode(current, workInProgress, renderLanes);\n\n case Profiler:\n return updateProfiler(current, workInProgress, renderLanes);\n\n case ContextProvider:\n return updateContextProvider(current, workInProgress, renderLanes);\n\n case ContextConsumer:\n return updateContextConsumer(current, workInProgress, renderLanes);\n\n case MemoComponent:\n {\n var _type2 = workInProgress.type;\n var _unresolvedProps3 = workInProgress.pendingProps; \n\n var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = _type2.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, _resolvedProps3, \n 'prop', getComponentNameFromType(_type2));\n }\n }\n }\n\n _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, renderLanes);\n }\n\n case SimpleMemoComponent:\n {\n return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, renderLanes);\n }\n\n case IncompleteClassComponent:\n {\n var _Component2 = workInProgress.type;\n var _unresolvedProps4 = workInProgress.pendingProps;\n\n var _resolvedProps4 = workInProgress.elementType === _Component2 ? _unresolvedProps4 : resolveDefaultProps(_Component2, _unresolvedProps4);\n\n return mountIncompleteClassComponent(current, workInProgress, _Component2, _resolvedProps4, renderLanes);\n }\n\n case SuspenseListComponent:\n {\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case OffscreenComponent:\n {\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n }\n\n throw new Error(\"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in \" + 'React. Please file an issue.');\n}\n\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n workInProgress.flags |= Ref;\n\n {\n workInProgress.flags |= RefStatic;\n }\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n var node = workInProgress.child;\n\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendInitialChild(parent, node.stateNode);\n } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n };\n\n updateHostContainer = function (current, workInProgress) {\n };\n\n updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n var oldProps = current.memoizedProps;\n\n if (oldProps === newProps) {\n return;\n } \n\n\n var instance = workInProgress.stateNode;\n var currentHostContext = getHostContext(); \n\n var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); \n\n workInProgress.updateQueue = updatePayload; \n\n if (updatePayload) {\n markUpdate(workInProgress);\n }\n };\n\n updateHostText$1 = function (current, workInProgress, oldText, newText) {\n if (oldText !== newText) {\n markUpdate(workInProgress);\n }\n };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (getIsHydrating()) {\n return;\n }\n\n switch (renderState.tailMode) {\n case 'hidden':\n {\n var tailNode = renderState.tail;\n var lastTailNode = null;\n\n while (tailNode !== null) {\n if (tailNode.alternate !== null) {\n lastTailNode = tailNode;\n }\n\n tailNode = tailNode.sibling;\n } \n\n\n if (lastTailNode === null) {\n renderState.tail = null;\n } else {\n lastTailNode.sibling = null;\n }\n\n break;\n }\n\n case 'collapsed':\n {\n var _tailNode = renderState.tail;\n var _lastTailNode = null;\n\n while (_tailNode !== null) {\n if (_tailNode.alternate !== null) {\n _lastTailNode = _tailNode;\n }\n\n _tailNode = _tailNode.sibling;\n } \n\n\n if (_lastTailNode === null) {\n if (!hasRenderedATailFallback && renderState.tail !== null) {\n renderState.tail.sibling = null;\n } else {\n renderState.tail = null;\n }\n } else {\n _lastTailNode.sibling = null;\n }\n\n break;\n }\n }\n}\n\nfunction bubbleProperties(completedWork) {\n var didBailout = completedWork.alternate !== null && completedWork.alternate.child === completedWork.child;\n var newChildLanes = NoLanes;\n var subtreeFlags = NoFlags;\n\n if (!didBailout) {\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n var actualDuration = completedWork.actualDuration;\n var treeBaseDuration = completedWork.selfBaseDuration;\n var child = completedWork.child;\n\n while (child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(child.lanes, child.childLanes));\n subtreeFlags |= child.subtreeFlags;\n subtreeFlags |= child.flags; \n\n actualDuration += child.actualDuration;\n treeBaseDuration += child.treeBaseDuration;\n child = child.sibling;\n }\n\n completedWork.actualDuration = actualDuration;\n completedWork.treeBaseDuration = treeBaseDuration;\n } else {\n var _child = completedWork.child;\n\n while (_child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child.lanes, _child.childLanes));\n subtreeFlags |= _child.subtreeFlags;\n subtreeFlags |= _child.flags; \n\n _child.return = completedWork;\n _child = _child.sibling;\n }\n }\n\n completedWork.subtreeFlags |= subtreeFlags;\n } else {\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n var _treeBaseDuration = completedWork.selfBaseDuration;\n var _child2 = completedWork.child;\n\n while (_child2 !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child2.lanes, _child2.childLanes)); \n\n subtreeFlags |= _child2.subtreeFlags & StaticMask;\n subtreeFlags |= _child2.flags & StaticMask;\n _treeBaseDuration += _child2.treeBaseDuration;\n _child2 = _child2.sibling;\n }\n\n completedWork.treeBaseDuration = _treeBaseDuration;\n } else {\n var _child3 = completedWork.child;\n\n while (_child3 !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child3.lanes, _child3.childLanes)); \n\n subtreeFlags |= _child3.subtreeFlags & StaticMask;\n subtreeFlags |= _child3.flags & StaticMask; \n\n _child3.return = completedWork;\n _child3 = _child3.sibling;\n }\n }\n\n completedWork.subtreeFlags |= subtreeFlags;\n }\n\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\n\nfunction completeDehydratedSuspenseBoundary(current, workInProgress, nextState) {\n if (hasUnhydratedTailNodes() && (workInProgress.mode & ConcurrentMode) !== NoMode && (workInProgress.flags & DidCapture) === NoFlags) {\n warnIfUnhydratedTailNodes(workInProgress);\n resetHydrationState();\n workInProgress.flags |= ForceClientRender | Incomplete | ShouldCapture;\n return false;\n }\n\n var wasHydrated = popHydrationState(workInProgress);\n\n if (nextState !== null && nextState.dehydrated !== null) {\n if (current === null) {\n if (!wasHydrated) {\n throw new Error('A dehydrated suspense component was completed without a hydrated node. ' + 'This is probably a bug in React.');\n }\n\n prepareToHydrateHostSuspenseInstance(workInProgress);\n bubbleProperties(workInProgress);\n\n {\n if ((workInProgress.mode & ProfileMode) !== NoMode) {\n var isTimedOutSuspense = nextState !== null;\n\n if (isTimedOutSuspense) {\n var primaryChildFragment = workInProgress.child;\n\n if (primaryChildFragment !== null) {\n workInProgress.treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n }\n }\n }\n }\n\n return false;\n } else {\n resetHydrationState();\n\n if ((workInProgress.flags & DidCapture) === NoFlags) {\n workInProgress.memoizedState = null;\n } \n\n\n workInProgress.flags |= Update;\n bubbleProperties(workInProgress);\n\n {\n if ((workInProgress.mode & ProfileMode) !== NoMode) {\n var _isTimedOutSuspense = nextState !== null;\n\n if (_isTimedOutSuspense) {\n var _primaryChildFragment = workInProgress.child;\n\n if (_primaryChildFragment !== null) {\n workInProgress.treeBaseDuration -= _primaryChildFragment.treeBaseDuration;\n }\n }\n }\n }\n\n return false;\n }\n } else {\n upgradeHydrationErrorsToRecoverable(); \n\n return true;\n }\n}\n\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps; \n\n popTreeContext(workInProgress);\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case LazyComponent:\n case SimpleMemoComponent:\n case FunctionComponent:\n case ForwardRef:\n case Fragment:\n case Mode:\n case Profiler:\n case ContextConsumer:\n case MemoComponent:\n bubbleProperties(workInProgress);\n return null;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n case HostRoot:\n {\n var fiberRoot = workInProgress.stateNode;\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n\n if (fiberRoot.pendingContext) {\n fiberRoot.context = fiberRoot.pendingContext;\n fiberRoot.pendingContext = null;\n }\n\n if (current === null || current.child === null) {\n var wasHydrated = popHydrationState(workInProgress);\n\n if (wasHydrated) {\n markUpdate(workInProgress);\n } else {\n if (current !== null) {\n var prevState = current.memoizedState;\n\n if ( \n !prevState.isDehydrated || \n (workInProgress.flags & ForceClientRender) !== NoFlags) {\n workInProgress.flags |= Snapshot; \n\n upgradeHydrationErrorsToRecoverable();\n }\n }\n }\n }\n\n updateHostContainer(current, workInProgress);\n bubbleProperties(workInProgress);\n\n return null;\n }\n\n case HostComponent:\n {\n popHostContext(workInProgress);\n var rootContainerInstance = getRootHostContainer();\n var type = workInProgress.type;\n\n if (current !== null && workInProgress.stateNode != null) {\n updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n if (current.ref !== workInProgress.ref) {\n markRef$1(workInProgress);\n }\n } else {\n if (!newProps) {\n if (workInProgress.stateNode === null) {\n throw new Error('We must have new props for new mounts. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n } \n\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n var currentHostContext = getHostContext(); \n\n var _wasHydrated = popHydrationState(workInProgress);\n\n if (_wasHydrated) {\n if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n markUpdate(workInProgress);\n }\n } else {\n var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n appendAllChildren(instance, workInProgress, false, false);\n workInProgress.stateNode = instance; \n\n if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n }\n\n if (workInProgress.ref !== null) {\n markRef$1(workInProgress);\n }\n }\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n case HostText:\n {\n var newText = newProps;\n\n if (current && workInProgress.stateNode != null) {\n var oldText = current.memoizedProps; \n\n updateHostText$1(current, workInProgress, oldText, newText);\n } else {\n if (typeof newText !== 'string') {\n if (workInProgress.stateNode === null) {\n throw new Error('We must have new props for new mounts. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n } \n\n }\n\n var _rootContainerInstance = getRootHostContainer();\n\n var _currentHostContext = getHostContext();\n\n var _wasHydrated2 = popHydrationState(workInProgress);\n\n if (_wasHydrated2) {\n if (prepareToHydrateHostTextInstance(workInProgress)) {\n markUpdate(workInProgress);\n }\n } else {\n workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n }\n }\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n var nextState = workInProgress.memoizedState; \n\n if (current === null || current.memoizedState !== null && current.memoizedState.dehydrated !== null) {\n var fallthroughToNormalSuspensePath = completeDehydratedSuspenseBoundary(current, workInProgress, nextState);\n\n if (!fallthroughToNormalSuspensePath) {\n if (workInProgress.flags & ShouldCapture) {\n return workInProgress;\n } else {\n return null;\n }\n } \n\n }\n\n if ((workInProgress.flags & DidCapture) !== NoFlags) {\n workInProgress.lanes = renderLanes; \n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n } \n\n\n return workInProgress;\n }\n\n var nextDidTimeout = nextState !== null;\n var prevDidTimeout = current !== null && current.memoizedState !== null;\n\n\n if (nextDidTimeout !== prevDidTimeout) {\n\n\n if (nextDidTimeout) {\n var _offscreenFiber2 = workInProgress.child;\n _offscreenFiber2.flags |= Visibility; \n\n if ((workInProgress.mode & ConcurrentMode) !== NoMode) {\n var hasInvisibleChildContext = current === null && (workInProgress.memoizedProps.unstable_avoidThisFallback !== true || !enableSuspenseAvoidThisFallback);\n\n if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n renderDidSuspend();\n } else {\n renderDidSuspendDelayIfPossible();\n }\n }\n }\n }\n\n var wakeables = workInProgress.updateQueue;\n\n if (wakeables !== null) {\n workInProgress.flags |= Update;\n }\n\n bubbleProperties(workInProgress);\n\n {\n if ((workInProgress.mode & ProfileMode) !== NoMode) {\n if (nextDidTimeout) {\n var primaryChildFragment = workInProgress.child;\n\n if (primaryChildFragment !== null) {\n workInProgress.treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n }\n }\n }\n }\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n updateHostContainer(current, workInProgress);\n\n if (current === null) {\n preparePortalMount(workInProgress.stateNode.containerInfo);\n }\n\n bubbleProperties(workInProgress);\n return null;\n\n case ContextProvider:\n var context = workInProgress.type._context;\n popProvider(context, workInProgress);\n bubbleProperties(workInProgress);\n return null;\n\n case IncompleteClassComponent:\n {\n var _Component = workInProgress.type;\n\n if (isContextProvider(_Component)) {\n popContext(workInProgress);\n }\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress);\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n bubbleProperties(workInProgress);\n return null;\n }\n\n var didSuspendAlready = (workInProgress.flags & DidCapture) !== NoFlags;\n var renderedTail = renderState.rendering;\n\n if (renderedTail === null) {\n if (!didSuspendAlready) {\n var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.flags & DidCapture) === NoFlags);\n\n if (!cannotBeSuspended) {\n var row = workInProgress.child;\n\n while (row !== null) {\n var suspended = findFirstSuspended(row);\n\n if (suspended !== null) {\n didSuspendAlready = true;\n workInProgress.flags |= DidCapture;\n cutOffTailIfNeeded(renderState, false); \n\n var newThenables = suspended.updateQueue;\n\n if (newThenables !== null) {\n workInProgress.updateQueue = newThenables;\n workInProgress.flags |= Update;\n } \n\n\n workInProgress.subtreeFlags = NoFlags;\n resetChildFibers(workInProgress, renderLanes); \n\n pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback)); \n\n return workInProgress.child;\n }\n\n row = row.sibling;\n }\n }\n\n if (renderState.tail !== null && now() > getRenderTargetTime()) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); \n\n workInProgress.lanes = SomeRetryLane;\n }\n } else {\n cutOffTailIfNeeded(renderState, false);\n } \n\n } else {\n if (!didSuspendAlready) {\n var _suspended = findFirstSuspended(renderedTail);\n\n if (_suspended !== null) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true; \n\n var _newThenables = _suspended.updateQueue;\n\n if (_newThenables !== null) {\n workInProgress.updateQueue = _newThenables;\n workInProgress.flags |= Update;\n }\n\n cutOffTailIfNeeded(renderState, true); \n\n if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate && !getIsHydrating() \n ) {\n bubbleProperties(workInProgress);\n return null;\n }\n } else if ( \n now() * 2 - renderState.renderingStartTime > getRenderTargetTime() && renderLanes !== OffscreenLane) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); \n\n workInProgress.lanes = SomeRetryLane;\n }\n }\n\n if (renderState.isBackwards) {\n renderedTail.sibling = workInProgress.child;\n workInProgress.child = renderedTail;\n } else {\n var previousSibling = renderState.last;\n\n if (previousSibling !== null) {\n previousSibling.sibling = renderedTail;\n } else {\n workInProgress.child = renderedTail;\n }\n\n renderState.last = renderedTail;\n }\n }\n\n if (renderState.tail !== null) {\n var next = renderState.tail;\n renderState.rendering = next;\n renderState.tail = next.sibling;\n renderState.renderingStartTime = now();\n next.sibling = null; \n\n var suspenseContext = suspenseStackCursor.current;\n\n if (didSuspendAlready) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n } else {\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext); \n\n return next;\n }\n\n bubbleProperties(workInProgress);\n return null;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n popRenderLanes(workInProgress);\n var _nextState = workInProgress.memoizedState;\n var nextIsHidden = _nextState !== null;\n\n if (current !== null) {\n var _prevState = current.memoizedState;\n var prevIsHidden = _prevState !== null;\n\n if (prevIsHidden !== nextIsHidden && ( \n !enableLegacyHidden )) {\n workInProgress.flags |= Visibility;\n }\n }\n\n if (!nextIsHidden || (workInProgress.mode & ConcurrentMode) === NoMode) {\n bubbleProperties(workInProgress);\n } else {\n if (includesSomeLane(subtreeRenderLanes, OffscreenLane)) {\n bubbleProperties(workInProgress);\n\n {\n if ( workInProgress.subtreeFlags & (Placement | Update)) {\n workInProgress.flags |= Visibility;\n }\n }\n }\n }\n return null;\n }\n\n case CacheComponent:\n {\n\n return null;\n }\n\n case TracingMarkerComponent:\n {\n\n return null;\n }\n }\n\n throw new Error(\"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in \" + 'React. Please file an issue.');\n}\n\nfunction unwindWork(current, workInProgress, renderLanes) {\n popTreeContext(workInProgress);\n\n switch (workInProgress.tag) {\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n var flags = workInProgress.flags;\n\n if (flags & ShouldCapture) {\n workInProgress.flags = flags & ~ShouldCapture | DidCapture;\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case HostRoot:\n {\n var root = workInProgress.stateNode;\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var _flags = workInProgress.flags;\n\n if ((_flags & ShouldCapture) !== NoFlags && (_flags & DidCapture) === NoFlags) {\n workInProgress.flags = _flags & ~ShouldCapture | DidCapture;\n return workInProgress;\n } \n\n\n return null;\n }\n\n case HostComponent:\n {\n popHostContext(workInProgress);\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n var suspenseState = workInProgress.memoizedState;\n\n if (suspenseState !== null && suspenseState.dehydrated !== null) {\n if (workInProgress.alternate === null) {\n throw new Error('Threw in newly mounted dehydrated component. This is likely a bug in ' + 'React. Please file an issue.');\n }\n\n resetHydrationState();\n }\n\n var _flags2 = workInProgress.flags;\n\n if (_flags2 & ShouldCapture) {\n workInProgress.flags = _flags2 & ~ShouldCapture | DidCapture; \n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress); \n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n return null;\n\n case ContextProvider:\n var context = workInProgress.type._context;\n popProvider(context, workInProgress);\n return null;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(workInProgress);\n return null;\n\n case CacheComponent:\n\n return null;\n\n default:\n return null;\n }\n}\n\nfunction unwindInterruptedWork(current, interruptedWork, renderLanes) {\n popTreeContext(interruptedWork);\n\n switch (interruptedWork.tag) {\n case ClassComponent:\n {\n var childContextTypes = interruptedWork.type.childContextTypes;\n\n if (childContextTypes !== null && childContextTypes !== undefined) {\n popContext(interruptedWork);\n }\n\n break;\n }\n\n case HostRoot:\n {\n var root = interruptedWork.stateNode;\n popHostContainer(interruptedWork);\n popTopLevelContextObject(interruptedWork);\n resetWorkInProgressVersions();\n break;\n }\n\n case HostComponent:\n {\n popHostContext(interruptedWork);\n break;\n }\n\n case HostPortal:\n popHostContainer(interruptedWork);\n break;\n\n case SuspenseComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case SuspenseListComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case ContextProvider:\n var context = interruptedWork.type._context;\n popProvider(context, interruptedWork);\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(interruptedWork);\n break;\n }\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n} \n\n\nvar offscreenSubtreeIsHidden = false;\nvar offscreenSubtreeWasHidden = false;\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\nvar nextEffect = null; \n\nvar inProgressLanes = null;\nvar inProgressRoot = null;\nfunction reportUncaughtErrorInDEV(error) {\n {\n invokeGuardedCallback(null, function () {\n throw error;\n });\n clearCaughtError();\n }\n}\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n instance.props = current.memoizedProps;\n instance.state = current.memoizedState;\n\n if ( current.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n instance.componentWillUnmount();\n } finally {\n recordLayoutEffectDuration(current);\n }\n } else {\n instance.componentWillUnmount();\n }\n}; \n\n\nfunction safelyCallCommitHookLayoutEffectListMount(current, nearestMountedAncestor) {\n try {\n commitHookEffectListMount(Layout, current);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n} \n\n\nfunction safelyCallComponentWillUnmount(current, nearestMountedAncestor, instance) {\n try {\n callComponentWillUnmountWithTimer(current, instance);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n} \n\n\nfunction safelyCallComponentDidMount(current, nearestMountedAncestor, instance) {\n try {\n instance.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n} \n\n\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n commitAttachRef(current);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\n\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n\n if (ref !== null) {\n if (typeof ref === 'function') {\n var retVal;\n\n try {\n if (enableProfilerTimer && enableProfilerCommitHooks && current.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n retVal = ref(null);\n } finally {\n recordLayoutEffectDuration(current);\n }\n } else {\n retVal = ref(null);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n\n {\n if (typeof retVal === 'function') {\n error('Unexpected return value from a callback ref in %s. ' + 'A callback ref should not return a function.', getComponentNameFromFiber(current));\n }\n }\n } else {\n ref.current = null;\n }\n }\n}\n\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\n\nvar focusedInstanceHandle = null;\nvar shouldFireAfterActiveInstanceBlur = false;\nfunction commitBeforeMutationEffects(root, firstChild) {\n focusedInstanceHandle = prepareForCommit(root.containerInfo);\n nextEffect = firstChild;\n commitBeforeMutationEffects_begin(); \n\n var shouldFire = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = false;\n focusedInstanceHandle = null;\n return shouldFire;\n}\n\nfunction commitBeforeMutationEffects_begin() {\n while (nextEffect !== null) {\n var fiber = nextEffect; \n\n var child = fiber.child;\n\n if ((fiber.subtreeFlags & BeforeMutationMask) !== NoFlags && child !== null) {\n child.return = fiber;\n nextEffect = child;\n } else {\n commitBeforeMutationEffects_complete();\n }\n }\n}\n\nfunction commitBeforeMutationEffects_complete() {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n setCurrentFiber(fiber);\n\n try {\n commitBeforeMutationEffectsOnFiber(fiber);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n resetCurrentFiber();\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction commitBeforeMutationEffectsOnFiber(finishedWork) {\n var current = finishedWork.alternate;\n var flags = finishedWork.flags;\n\n if ((flags & Snapshot) !== NoFlags) {\n setCurrentFiber(finishedWork);\n\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n break;\n }\n\n case ClassComponent:\n {\n if (current !== null) {\n var prevProps = current.memoizedProps;\n var prevState = current.memoizedState;\n var instance = finishedWork.stateNode; \n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n }\n }\n\n var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n {\n var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n didWarnSet.add(finishedWork.type);\n\n error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentNameFromFiber(finishedWork));\n }\n }\n\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n\n break;\n }\n\n case HostRoot:\n {\n {\n var root = finishedWork.stateNode;\n clearContainer(root.containerInfo);\n }\n\n break;\n }\n\n case HostComponent:\n case HostText:\n case HostPortal:\n case IncompleteClassComponent:\n break;\n\n default:\n {\n throw new Error('This unit of work tag should not have side-effects. This error is ' + 'likely caused by a bug in React. Please file an issue.');\n }\n }\n\n resetCurrentFiber();\n }\n}\n\nfunction commitHookEffectListUnmount(flags, finishedWork, nearestMountedAncestor) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = undefined;\n\n if (destroy !== undefined) {\n {\n if ((flags & Passive$1) !== NoFlags$1) {\n markComponentPassiveEffectUnmountStarted(finishedWork);\n } else if ((flags & Layout) !== NoFlags$1) {\n markComponentLayoutEffectUnmountStarted(finishedWork);\n }\n }\n\n {\n if ((flags & Insertion) !== NoFlags$1) {\n setIsRunningInsertionEffect(true);\n }\n }\n\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n\n {\n if ((flags & Insertion) !== NoFlags$1) {\n setIsRunningInsertionEffect(false);\n }\n }\n\n {\n if ((flags & Passive$1) !== NoFlags$1) {\n markComponentPassiveEffectUnmountStopped();\n } else if ((flags & Layout) !== NoFlags$1) {\n markComponentLayoutEffectUnmountStopped();\n }\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitHookEffectListMount(flags, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & flags) === flags) {\n {\n if ((flags & Passive$1) !== NoFlags$1) {\n markComponentPassiveEffectMountStarted(finishedWork);\n } else if ((flags & Layout) !== NoFlags$1) {\n markComponentLayoutEffectMountStarted(finishedWork);\n }\n } \n\n\n var create = effect.create;\n\n {\n if ((flags & Insertion) !== NoFlags$1) {\n setIsRunningInsertionEffect(true);\n }\n }\n\n effect.destroy = create();\n\n {\n if ((flags & Insertion) !== NoFlags$1) {\n setIsRunningInsertionEffect(false);\n }\n }\n\n {\n if ((flags & Passive$1) !== NoFlags$1) {\n markComponentPassiveEffectMountStopped();\n } else if ((flags & Layout) !== NoFlags$1) {\n markComponentLayoutEffectMountStopped();\n }\n }\n\n {\n var destroy = effect.destroy;\n\n if (destroy !== undefined && typeof destroy !== 'function') {\n var hookName = void 0;\n\n if ((effect.tag & Layout) !== NoFlags) {\n hookName = 'useLayoutEffect';\n } else if ((effect.tag & Insertion) !== NoFlags) {\n hookName = 'useInsertionEffect';\n } else {\n hookName = 'useEffect';\n }\n\n var addendum = void 0;\n\n if (destroy === null) {\n addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n } else if (typeof destroy.then === 'function') {\n addendum = '\\n\\nIt looks like you wrote ' + hookName + '(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + hookName + '(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n' + ' fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';\n } else {\n addendum = ' You returned: ' + destroy;\n }\n\n error('%s must not return anything besides a function, ' + 'which is used for clean-up.%s', hookName, addendum);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitPassiveEffectDurations(finishedRoot, finishedWork) {\n {\n if ((finishedWork.flags & Update) !== NoFlags) {\n switch (finishedWork.tag) {\n case Profiler:\n {\n var passiveEffectDuration = finishedWork.stateNode.passiveEffectDuration;\n var _finishedWork$memoize = finishedWork.memoizedProps,\n id = _finishedWork$memoize.id,\n onPostCommit = _finishedWork$memoize.onPostCommit; \n\n var commitTime = getCommitTime();\n var phase = finishedWork.alternate === null ? 'mount' : 'update';\n\n {\n if (isCurrentUpdateNested()) {\n phase = 'nested-update';\n }\n }\n\n if (typeof onPostCommit === 'function') {\n onPostCommit(id, phase, passiveEffectDuration, commitTime);\n } \n\n\n var parentFiber = finishedWork.return;\n\n outer: while (parentFiber !== null) {\n switch (parentFiber.tag) {\n case HostRoot:\n var root = parentFiber.stateNode;\n root.passiveEffectDuration += passiveEffectDuration;\n break outer;\n\n case Profiler:\n var parentStateNode = parentFiber.stateNode;\n parentStateNode.passiveEffectDuration += passiveEffectDuration;\n break outer;\n }\n\n parentFiber = parentFiber.return;\n }\n\n break;\n }\n }\n }\n }\n}\n\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork, committedLanes) {\n if ((finishedWork.flags & LayoutMask) !== NoFlags) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n if ( !offscreenSubtreeWasHidden) {\n if ( finishedWork.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n commitHookEffectListMount(Layout | HasEffect, finishedWork);\n } finally {\n recordLayoutEffectDuration(finishedWork);\n }\n } else {\n commitHookEffectListMount(Layout | HasEffect, finishedWork);\n }\n }\n\n break;\n }\n\n case ClassComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (finishedWork.flags & Update) {\n if (!offscreenSubtreeWasHidden) {\n if (current === null) {\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n }\n }\n\n if ( finishedWork.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n instance.componentDidMount();\n } finally {\n recordLayoutEffectDuration(finishedWork);\n }\n } else {\n instance.componentDidMount();\n }\n } else {\n var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n var prevState = current.memoizedState; \n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n }\n }\n\n if ( finishedWork.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n } finally {\n recordLayoutEffectDuration(finishedWork);\n }\n } else {\n instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n }\n }\n }\n } \n\n\n var updateQueue = finishedWork.updateQueue;\n\n if (updateQueue !== null) {\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance');\n }\n }\n } \n\n\n commitUpdateQueue(finishedWork, updateQueue, instance);\n }\n\n break;\n }\n\n case HostRoot:\n {\n var _updateQueue = finishedWork.updateQueue;\n\n if (_updateQueue !== null) {\n var _instance = null;\n\n if (finishedWork.child !== null) {\n switch (finishedWork.child.tag) {\n case HostComponent:\n _instance = getPublicInstance(finishedWork.child.stateNode);\n break;\n\n case ClassComponent:\n _instance = finishedWork.child.stateNode;\n break;\n }\n }\n\n commitUpdateQueue(finishedWork, _updateQueue, _instance);\n }\n\n break;\n }\n\n case HostComponent:\n {\n var _instance2 = finishedWork.stateNode; \n\n if (current === null && finishedWork.flags & Update) {\n var type = finishedWork.type;\n var props = finishedWork.memoizedProps;\n commitMount(_instance2, type, props);\n }\n\n break;\n }\n\n case HostText:\n {\n break;\n }\n\n case HostPortal:\n {\n break;\n }\n\n case Profiler:\n {\n {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n onCommit = _finishedWork$memoize2.onCommit,\n onRender = _finishedWork$memoize2.onRender;\n var effectDuration = finishedWork.stateNode.effectDuration;\n var commitTime = getCommitTime();\n var phase = current === null ? 'mount' : 'update';\n\n {\n if (isCurrentUpdateNested()) {\n phase = 'nested-update';\n }\n }\n\n if (typeof onRender === 'function') {\n onRender(finishedWork.memoizedProps.id, phase, finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime);\n }\n\n {\n if (typeof onCommit === 'function') {\n onCommit(finishedWork.memoizedProps.id, phase, effectDuration, commitTime);\n } \n\n\n enqueuePendingPassiveProfilerEffect(finishedWork); \n\n var parentFiber = finishedWork.return;\n\n outer: while (parentFiber !== null) {\n switch (parentFiber.tag) {\n case HostRoot:\n var root = parentFiber.stateNode;\n root.effectDuration += effectDuration;\n break outer;\n\n case Profiler:\n var parentStateNode = parentFiber.stateNode;\n parentStateNode.effectDuration += effectDuration;\n break outer;\n }\n\n parentFiber = parentFiber.return;\n }\n }\n }\n\n break;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n }\n\n case SuspenseListComponent:\n case IncompleteClassComponent:\n case ScopeComponent:\n case OffscreenComponent:\n case LegacyHiddenComponent:\n case TracingMarkerComponent:\n {\n break;\n }\n\n default:\n throw new Error('This unit of work tag should not have side-effects. This error is ' + 'likely caused by a bug in React. Please file an issue.');\n }\n }\n\n if ( !offscreenSubtreeWasHidden) {\n {\n if (finishedWork.flags & Ref) {\n commitAttachRef(finishedWork);\n }\n }\n }\n}\n\nfunction reappearLayoutEffectsOnFiber(node) {\n switch (node.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n if ( node.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n safelyCallCommitHookLayoutEffectListMount(node, node.return);\n } finally {\n recordLayoutEffectDuration(node);\n }\n } else {\n safelyCallCommitHookLayoutEffectListMount(node, node.return);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n var instance = node.stateNode;\n\n if (typeof instance.componentDidMount === 'function') {\n safelyCallComponentDidMount(node, node.return, instance);\n }\n\n safelyAttachRef(node, node.return);\n break;\n }\n\n case HostComponent:\n {\n safelyAttachRef(node, node.return);\n break;\n }\n }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n var hostSubtreeRoot = null;\n\n {\n var node = finishedWork;\n\n while (true) {\n if (node.tag === HostComponent) {\n if (hostSubtreeRoot === null) {\n hostSubtreeRoot = node;\n\n try {\n var instance = node.stateNode;\n\n if (isHidden) {\n hideInstance(instance);\n } else {\n unhideInstance(node.stateNode, node.memoizedProps);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n } else if (node.tag === HostText) {\n if (hostSubtreeRoot === null) {\n try {\n var _instance3 = node.stateNode;\n\n if (isHidden) {\n hideTextInstance(_instance3);\n } else {\n unhideTextInstance(_instance3, node.memoizedProps);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n } else if ((node.tag === OffscreenComponent || node.tag === LegacyHiddenComponent) && node.memoizedState !== null && node !== finishedWork) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === finishedWork) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === finishedWork) {\n return;\n }\n\n if (hostSubtreeRoot === node) {\n hostSubtreeRoot = null;\n }\n\n node = node.return;\n }\n\n if (hostSubtreeRoot === node) {\n hostSubtreeRoot = null;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n}\n\nfunction commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n\n if (ref !== null) {\n var instance = finishedWork.stateNode;\n var instanceToUse;\n\n switch (finishedWork.tag) {\n case HostComponent:\n instanceToUse = getPublicInstance(instance);\n break;\n\n default:\n instanceToUse = instance;\n } \n\n if (typeof ref === 'function') {\n var retVal;\n\n if ( finishedWork.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n retVal = ref(instanceToUse);\n } finally {\n recordLayoutEffectDuration(finishedWork);\n }\n } else {\n retVal = ref(instanceToUse);\n }\n\n {\n if (typeof retVal === 'function') {\n error('Unexpected return value from a callback ref in %s. ' + 'A callback ref should not return a function.', getComponentNameFromFiber(finishedWork));\n }\n }\n } else {\n {\n if (!ref.hasOwnProperty('current')) {\n error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().', getComponentNameFromFiber(finishedWork));\n }\n }\n\n ref.current = instanceToUse;\n }\n }\n}\n\nfunction detachFiberMutation(fiber) {\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.return = null;\n }\n\n fiber.return = null;\n}\n\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n fiber.alternate = null;\n detachFiberAfterEffects(alternate);\n } \n\n\n {\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null; \n\n if (fiber.tag === HostComponent) {\n var hostInstance = fiber.stateNode;\n\n if (hostInstance !== null) {\n detachDeletedInstance(hostInstance);\n }\n }\n\n fiber.stateNode = null; \n\n {\n fiber._debugOwner = null;\n }\n\n {\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null; \n\n fiber.updateQueue = null;\n }\n }\n}\n\nfunction getHostParentFiber(fiber) {\n var parent = fiber.return;\n\n while (parent !== null) {\n if (isHostParent(parent)) {\n return parent;\n }\n\n parent = parent.return;\n }\n\n throw new Error('Expected to find a host parent. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n}\n\nfunction isHostParent(fiber) {\n return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n var node = fiber;\n\n siblings: while (true) {\n while (node.sibling === null) {\n if (node.return === null || isHostParent(node.return)) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n\n while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n if (node.flags & Placement) {\n continue siblings;\n } \n\n\n if (node.child === null || node.tag === HostPortal) {\n continue siblings;\n } else {\n node.child.return = node;\n node = node.child;\n }\n } \n\n\n if (!(node.flags & Placement)) {\n return node.stateNode;\n }\n }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n var parentFiber = getHostParentFiber(finishedWork); \n\n switch (parentFiber.tag) {\n case HostComponent:\n {\n var parent = parentFiber.stateNode;\n\n if (parentFiber.flags & ContentReset) {\n resetTextContent(parent); \n\n parentFiber.flags &= ~ContentReset;\n }\n\n var before = getHostSibling(finishedWork); \n\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n }\n\n case HostRoot:\n case HostPortal:\n {\n var _parent = parentFiber.stateNode.containerInfo;\n\n var _before = getHostSibling(finishedWork);\n\n insertOrAppendPlacementNodeIntoContainer(finishedWork, _before, _parent);\n break;\n }\n\n default:\n throw new Error('Invalid host parent fiber. This error is likely caused by a bug ' + 'in React. Please file an issue.');\n }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost) {\n var stateNode = node.stateNode;\n\n if (before) {\n insertInContainerBefore(parent, stateNode, before);\n } else {\n appendChildToContainer(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost) {\n var stateNode = node.stateNode;\n\n if (before) {\n insertBefore(parent, stateNode, before);\n } else {\n appendChild(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNode(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNode(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n} \n\n\nvar hostParent = null;\nvar hostParentIsContainer = false;\n\nfunction commitDeletionEffects(root, returnFiber, deletedFiber) {\n {\n var parent = returnFiber;\n\n findParent: while (parent !== null) {\n switch (parent.tag) {\n case HostComponent:\n {\n hostParent = parent.stateNode;\n hostParentIsContainer = false;\n break findParent;\n }\n\n case HostRoot:\n {\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = true;\n break findParent;\n }\n\n case HostPortal:\n {\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = true;\n break findParent;\n }\n }\n\n parent = parent.return;\n }\n\n if (hostParent === null) {\n throw new Error('Expected to find a host parent. This error is likely caused by ' + 'a bug in React. Please file an issue.');\n }\n\n commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);\n hostParent = null;\n hostParentIsContainer = false;\n }\n\n detachFiberMutation(deletedFiber);\n}\n\nfunction recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, parent) {\n var child = parent.child;\n\n while (child !== null) {\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, child);\n child = child.sibling;\n }\n}\n\nfunction commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, deletedFiber) {\n onCommitUnmount(deletedFiber); \n\n switch (deletedFiber.tag) {\n case HostComponent:\n {\n if (!offscreenSubtreeWasHidden) {\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n } \n\n }\n\n case HostText:\n {\n {\n var prevHostParent = hostParent;\n var prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n\n if (hostParent !== null) {\n if (hostParentIsContainer) {\n removeChildFromContainer(hostParent, deletedFiber.stateNode);\n } else {\n removeChild(hostParent, deletedFiber.stateNode);\n }\n }\n }\n\n return;\n }\n\n case DehydratedFragment:\n {\n\n\n {\n if (hostParent !== null) {\n if (hostParentIsContainer) {\n clearSuspenseBoundaryFromContainer(hostParent, deletedFiber.stateNode);\n } else {\n clearSuspenseBoundary(hostParent, deletedFiber.stateNode);\n }\n }\n }\n\n return;\n }\n\n case HostPortal:\n {\n {\n var _prevHostParent = hostParent;\n var _prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = true;\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n hostParent = _prevHostParent;\n hostParentIsContainer = _prevHostParentIsContainer;\n }\n\n return;\n }\n\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if (!offscreenSubtreeWasHidden) {\n var updateQueue = deletedFiber.updateQueue;\n\n if (updateQueue !== null) {\n var lastEffect = updateQueue.lastEffect;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect = effect,\n destroy = _effect.destroy,\n tag = _effect.tag;\n\n if (destroy !== undefined) {\n if ((tag & Insertion) !== NoFlags$1) {\n safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n } else if ((tag & Layout) !== NoFlags$1) {\n {\n markComponentLayoutEffectUnmountStarted(deletedFiber);\n }\n\n if ( deletedFiber.mode & ProfileMode) {\n startLayoutEffectTimer();\n safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n recordLayoutEffectDuration(deletedFiber);\n } else {\n safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy);\n }\n\n {\n markComponentLayoutEffectUnmountStopped();\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n }\n }\n\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n return;\n }\n\n case ClassComponent:\n {\n if (!offscreenSubtreeWasHidden) {\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var instance = deletedFiber.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(deletedFiber, nearestMountedAncestor, instance);\n }\n }\n\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n return;\n }\n\n case ScopeComponent:\n {\n\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n return;\n }\n\n case OffscreenComponent:\n {\n if ( \n deletedFiber.mode & ConcurrentMode) {\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || deletedFiber.memoizedState !== null;\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n } else {\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n }\n\n break;\n }\n\n default:\n {\n recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber);\n return;\n }\n }\n}\n\nfunction commitSuspenseCallback(finishedWork) {\n var newState = finishedWork.memoizedState;\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n var newState = finishedWork.memoizedState;\n\n if (newState === null) {\n var current = finishedWork.alternate;\n\n if (current !== null) {\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n var suspenseInstance = prevState.dehydrated;\n\n if (suspenseInstance !== null) {\n commitHydratedSuspenseInstance(suspenseInstance);\n }\n }\n }\n }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n\n if (wakeables !== null) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n\n if (retryCache === null) {\n retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n }\n\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n\n {\n if (isDevToolsPresent) {\n if (inProgressLanes !== null && inProgressRoot !== null) {\n restorePendingUpdaters(inProgressRoot, inProgressLanes);\n } else {\n throw Error('Expected finished root and lanes to be set. This is a bug in React.');\n }\n }\n }\n\n wakeable.then(retry, retry);\n }\n });\n }\n} \nfunction commitMutationEffects(root, finishedWork, committedLanes) {\n inProgressLanes = committedLanes;\n inProgressRoot = root;\n setCurrentFiber(finishedWork);\n commitMutationEffectsOnFiber(finishedWork, root);\n setCurrentFiber(finishedWork);\n inProgressLanes = null;\n inProgressRoot = null;\n}\n\nfunction recursivelyTraverseMutationEffects(root, parentFiber, lanes) {\n var deletions = parentFiber.deletions;\n\n if (deletions !== null) {\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n\n try {\n commitDeletionEffects(root, parentFiber, childToDelete);\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n }\n\n var prevDebugFiber = getCurrentFiber();\n\n if (parentFiber.subtreeFlags & MutationMask) {\n var child = parentFiber.child;\n\n while (child !== null) {\n setCurrentFiber(child);\n commitMutationEffectsOnFiber(child, root);\n child = child.sibling;\n }\n }\n\n setCurrentFiber(prevDebugFiber);\n}\n\nfunction commitMutationEffectsOnFiber(finishedWork, root, lanes) {\n var current = finishedWork.alternate;\n var flags = finishedWork.flags; \n\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Update) {\n try {\n commitHookEffectListUnmount(Insertion | HasEffect, finishedWork, finishedWork.return);\n commitHookEffectListMount(Insertion | HasEffect, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n } \n\n\n if ( finishedWork.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n commitHookEffectListUnmount(Layout | HasEffect, finishedWork, finishedWork.return);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n\n recordLayoutEffectDuration(finishedWork);\n } else {\n try {\n commitHookEffectListUnmount(Layout | HasEffect, finishedWork, finishedWork.return);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n\n return;\n }\n\n case ClassComponent:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Ref) {\n if (current !== null) {\n safelyDetachRef(current, current.return);\n }\n }\n\n return;\n }\n\n case HostComponent:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Ref) {\n if (current !== null) {\n safelyDetachRef(current, current.return);\n }\n }\n\n {\n if (finishedWork.flags & ContentReset) {\n var instance = finishedWork.stateNode;\n\n try {\n resetTextContent(instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n\n if (flags & Update) {\n var _instance4 = finishedWork.stateNode;\n\n if (_instance4 != null) {\n var newProps = finishedWork.memoizedProps; \n\n var oldProps = current !== null ? current.memoizedProps : newProps;\n var type = finishedWork.type; \n\n var updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n\n if (updatePayload !== null) {\n try {\n commitUpdate(_instance4, updatePayload, type, oldProps, newProps, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n }\n }\n\n return;\n }\n\n case HostText:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Update) {\n {\n if (finishedWork.stateNode === null) {\n throw new Error('This should have a text node initialized. This error is likely ' + 'caused by a bug in React. Please file an issue.');\n }\n\n var textInstance = finishedWork.stateNode;\n var newText = finishedWork.memoizedProps; \n\n var oldText = current !== null ? current.memoizedProps : newText;\n\n try {\n commitTextUpdate(textInstance, oldText, newText);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n\n return;\n }\n\n case HostRoot:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Update) {\n {\n if (current !== null) {\n var prevRootState = current.memoizedState;\n\n if (prevRootState.isDehydrated) {\n try {\n commitHydratedContainer(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n }\n }\n\n return;\n }\n\n case HostPortal:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n return;\n }\n\n case SuspenseComponent:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n var offscreenFiber = finishedWork.child;\n\n if (offscreenFiber.flags & Visibility) {\n var offscreenInstance = offscreenFiber.stateNode;\n var newState = offscreenFiber.memoizedState;\n var isHidden = newState !== null; \n\n offscreenInstance.isHidden = isHidden;\n\n if (isHidden) {\n var wasHidden = offscreenFiber.alternate !== null && offscreenFiber.alternate.memoizedState !== null;\n\n if (!wasHidden) {\n markCommitTimeOfFallback();\n }\n }\n }\n\n if (flags & Update) {\n try {\n commitSuspenseCallback(finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n\n attachSuspenseRetryListeners(finishedWork);\n }\n\n return;\n }\n\n case OffscreenComponent:\n {\n var _wasHidden = current !== null && current.memoizedState !== null;\n\n if ( \n finishedWork.mode & ConcurrentMode) {\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || _wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n } else {\n recursivelyTraverseMutationEffects(root, finishedWork);\n }\n\n commitReconciliationEffects(finishedWork);\n\n if (flags & Visibility) {\n var _offscreenInstance = finishedWork.stateNode;\n var _newState = finishedWork.memoizedState;\n\n var _isHidden = _newState !== null;\n\n var offscreenBoundary = finishedWork; \n\n _offscreenInstance.isHidden = _isHidden;\n\n {\n if (_isHidden) {\n if (!_wasHidden) {\n if ((offscreenBoundary.mode & ConcurrentMode) !== NoMode) {\n nextEffect = offscreenBoundary;\n var offscreenChild = offscreenBoundary.child;\n\n while (offscreenChild !== null) {\n nextEffect = offscreenChild;\n disappearLayoutEffects_begin(offscreenChild);\n offscreenChild = offscreenChild.sibling;\n }\n }\n }\n }\n }\n\n {\n hideOrUnhideAllChildren(offscreenBoundary, _isHidden);\n }\n }\n\n return;\n }\n\n case SuspenseListComponent:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n\n if (flags & Update) {\n attachSuspenseRetryListeners(finishedWork);\n }\n\n return;\n }\n\n case ScopeComponent:\n {\n\n return;\n }\n\n default:\n {\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n return;\n }\n }\n}\n\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n\n if (flags & Placement) {\n try {\n commitPlacement(finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n } \n\n\n finishedWork.flags &= ~Placement;\n }\n\n if (flags & Hydrating) {\n finishedWork.flags &= ~Hydrating;\n }\n}\n\nfunction commitLayoutEffects(finishedWork, root, committedLanes) {\n inProgressLanes = committedLanes;\n inProgressRoot = root;\n nextEffect = finishedWork;\n commitLayoutEffects_begin(finishedWork, root, committedLanes);\n inProgressLanes = null;\n inProgressRoot = null;\n}\n\nfunction commitLayoutEffects_begin(subtreeRoot, root, committedLanes) {\n var isModernRoot = (subtreeRoot.mode & ConcurrentMode) !== NoMode;\n\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var firstChild = fiber.child;\n\n if ( fiber.tag === OffscreenComponent && isModernRoot) {\n var isHidden = fiber.memoizedState !== null;\n var newOffscreenSubtreeIsHidden = isHidden || offscreenSubtreeIsHidden;\n\n if (newOffscreenSubtreeIsHidden) {\n commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n continue;\n } else {\n var current = fiber.alternate;\n var wasHidden = current !== null && current.memoizedState !== null;\n var newOffscreenSubtreeWasHidden = wasHidden || offscreenSubtreeWasHidden;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; \n\n offscreenSubtreeIsHidden = newOffscreenSubtreeIsHidden;\n offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden;\n\n if (offscreenSubtreeWasHidden && !prevOffscreenSubtreeWasHidden) {\n nextEffect = fiber;\n reappearLayoutEffects_begin(fiber);\n }\n\n var child = firstChild;\n\n while (child !== null) {\n nextEffect = child;\n commitLayoutEffects_begin(child, \n root, committedLanes);\n child = child.sibling;\n } \n\n\n nextEffect = fiber;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n continue;\n }\n }\n\n if ((fiber.subtreeFlags & LayoutMask) !== NoFlags && firstChild !== null) {\n firstChild.return = fiber;\n nextEffect = firstChild;\n } else {\n commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);\n }\n }\n}\n\nfunction commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n\n if ((fiber.flags & LayoutMask) !== NoFlags) {\n var current = fiber.alternate;\n setCurrentFiber(fiber);\n\n try {\n commitLayoutEffectOnFiber(root, current, fiber, committedLanes);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n resetCurrentFiber();\n }\n\n if (fiber === subtreeRoot) {\n nextEffect = null;\n return;\n }\n\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction disappearLayoutEffects_begin(subtreeRoot) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var firstChild = fiber.child; \n\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if ( fiber.mode & ProfileMode) {\n try {\n startLayoutEffectTimer();\n commitHookEffectListUnmount(Layout, fiber, fiber.return);\n } finally {\n recordLayoutEffectDuration(fiber);\n }\n } else {\n commitHookEffectListUnmount(Layout, fiber, fiber.return);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n safelyDetachRef(fiber, fiber.return);\n var instance = fiber.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(fiber, fiber.return, instance);\n }\n\n break;\n }\n\n case HostComponent:\n {\n safelyDetachRef(fiber, fiber.return);\n break;\n }\n\n case OffscreenComponent:\n {\n var isHidden = fiber.memoizedState !== null;\n\n if (isHidden) {\n disappearLayoutEffects_complete(subtreeRoot);\n continue;\n }\n\n break;\n }\n } \n\n\n if (firstChild !== null) {\n firstChild.return = fiber;\n nextEffect = firstChild;\n } else {\n disappearLayoutEffects_complete(subtreeRoot);\n }\n }\n}\n\nfunction disappearLayoutEffects_complete(subtreeRoot) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n\n if (fiber === subtreeRoot) {\n nextEffect = null;\n return;\n }\n\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction reappearLayoutEffects_begin(subtreeRoot) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var firstChild = fiber.child;\n\n if (fiber.tag === OffscreenComponent) {\n var isHidden = fiber.memoizedState !== null;\n\n if (isHidden) {\n reappearLayoutEffects_complete(subtreeRoot);\n continue;\n }\n } \n\n\n if (firstChild !== null) {\n firstChild.return = fiber;\n nextEffect = firstChild;\n } else {\n reappearLayoutEffects_complete(subtreeRoot);\n }\n }\n}\n\nfunction reappearLayoutEffects_complete(subtreeRoot) {\n while (nextEffect !== null) {\n var fiber = nextEffect; \n\n setCurrentFiber(fiber);\n\n try {\n reappearLayoutEffectsOnFiber(fiber);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n resetCurrentFiber();\n\n if (fiber === subtreeRoot) {\n nextEffect = null;\n return;\n }\n\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction commitPassiveMountEffects(root, finishedWork, committedLanes, committedTransitions) {\n nextEffect = finishedWork;\n commitPassiveMountEffects_begin(finishedWork, root, committedLanes, committedTransitions);\n}\n\nfunction commitPassiveMountEffects_begin(subtreeRoot, root, committedLanes, committedTransitions) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var firstChild = fiber.child;\n\n if ((fiber.subtreeFlags & PassiveMask) !== NoFlags && firstChild !== null) {\n firstChild.return = fiber;\n nextEffect = firstChild;\n } else {\n commitPassiveMountEffects_complete(subtreeRoot, root, committedLanes, committedTransitions);\n }\n }\n}\n\nfunction commitPassiveMountEffects_complete(subtreeRoot, root, committedLanes, committedTransitions) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n\n if ((fiber.flags & Passive) !== NoFlags) {\n setCurrentFiber(fiber);\n\n try {\n commitPassiveMountOnFiber(root, fiber, committedLanes, committedTransitions);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n resetCurrentFiber();\n }\n\n if (fiber === subtreeRoot) {\n nextEffect = null;\n return;\n }\n\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction commitPassiveMountOnFiber(finishedRoot, finishedWork, committedLanes, committedTransitions) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n if ( finishedWork.mode & ProfileMode) {\n startPassiveEffectTimer();\n\n try {\n commitHookEffectListMount(Passive$1 | HasEffect, finishedWork);\n } finally {\n recordPassiveEffectDuration(finishedWork);\n }\n } else {\n commitHookEffectListMount(Passive$1 | HasEffect, finishedWork);\n }\n\n break;\n }\n }\n}\n\nfunction commitPassiveUnmountEffects(firstChild) {\n nextEffect = firstChild;\n commitPassiveUnmountEffects_begin();\n}\n\nfunction commitPassiveUnmountEffects_begin() {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var child = fiber.child;\n\n if ((nextEffect.flags & ChildDeletion) !== NoFlags) {\n var deletions = fiber.deletions;\n\n if (deletions !== null) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n nextEffect = fiberToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(fiberToDelete, fiber);\n }\n\n {\n var previousFiber = fiber.alternate;\n\n if (previousFiber !== null) {\n var detachedChild = previousFiber.child;\n\n if (detachedChild !== null) {\n previousFiber.child = null;\n\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (detachedChild !== null);\n }\n }\n }\n\n nextEffect = fiber;\n }\n }\n\n if ((fiber.subtreeFlags & PassiveMask) !== NoFlags && child !== null) {\n child.return = fiber;\n nextEffect = child;\n } else {\n commitPassiveUnmountEffects_complete();\n }\n }\n}\n\nfunction commitPassiveUnmountEffects_complete() {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n\n if ((fiber.flags & Passive) !== NoFlags) {\n setCurrentFiber(fiber);\n commitPassiveUnmountOnFiber(fiber);\n resetCurrentFiber();\n }\n\n var sibling = fiber.sibling;\n\n if (sibling !== null) {\n sibling.return = fiber.return;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = fiber.return;\n }\n}\n\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n if ( finishedWork.mode & ProfileMode) {\n startPassiveEffectTimer();\n commitHookEffectListUnmount(Passive$1 | HasEffect, finishedWork, finishedWork.return);\n recordPassiveEffectDuration(finishedWork);\n } else {\n commitHookEffectListUnmount(Passive$1 | HasEffect, finishedWork, finishedWork.return);\n }\n\n break;\n }\n }\n}\n\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(deletedSubtreeRoot, nearestMountedAncestor) {\n while (nextEffect !== null) {\n var fiber = nextEffect; \n\n setCurrentFiber(fiber);\n commitPassiveUnmountInsideDeletedTreeOnFiber(fiber, nearestMountedAncestor);\n resetCurrentFiber();\n var child = fiber.child; \n\n if (child !== null) {\n child.return = fiber;\n nextEffect = child;\n } else {\n commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot);\n }\n }\n}\n\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot) {\n while (nextEffect !== null) {\n var fiber = nextEffect;\n var sibling = fiber.sibling;\n var returnFiber = fiber.return;\n\n {\n detachFiberAfterEffects(fiber);\n\n if (fiber === deletedSubtreeRoot) {\n nextEffect = null;\n return;\n }\n }\n\n if (sibling !== null) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n return;\n }\n\n nextEffect = returnFiber;\n }\n}\n\nfunction commitPassiveUnmountInsideDeletedTreeOnFiber(current, nearestMountedAncestor) {\n switch (current.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n if ( current.mode & ProfileMode) {\n startPassiveEffectTimer();\n commitHookEffectListUnmount(Passive$1, current, nearestMountedAncestor);\n recordPassiveEffectDuration(current);\n } else {\n commitHookEffectListUnmount(Passive$1, current, nearestMountedAncestor);\n }\n\n break;\n }\n }\n} \n\n\nfunction invokeLayoutEffectMountInDEV(fiber) {\n {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n try {\n commitHookEffectListMount(Layout | HasEffect, fiber);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n var instance = fiber.stateNode;\n\n try {\n instance.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n break;\n }\n }\n }\n}\n\nfunction invokePassiveEffectMountInDEV(fiber) {\n {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n try {\n commitHookEffectListMount(Passive$1 | HasEffect, fiber);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n break;\n }\n }\n }\n}\n\nfunction invokeLayoutEffectUnmountInDEV(fiber) {\n {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n try {\n commitHookEffectListUnmount(Layout | HasEffect, fiber, fiber.return);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n var instance = fiber.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(fiber, fiber.return, instance);\n }\n\n break;\n }\n }\n }\n}\n\nfunction invokePassiveEffectUnmountInDEV(fiber) {\n {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n try {\n commitHookEffectListUnmount(Passive$1 | HasEffect, fiber, fiber.return);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n }\n }\n }\n}\n\nvar COMPONENT_TYPE = 0;\nvar HAS_PSEUDO_CLASS_TYPE = 1;\nvar ROLE_TYPE = 2;\nvar TEST_NAME_TYPE = 3;\nvar TEXT_TYPE = 4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n COMPONENT_TYPE = symbolFor('selector.component');\n HAS_PSEUDO_CLASS_TYPE = symbolFor('selector.has_pseudo_class');\n ROLE_TYPE = symbolFor('selector.role');\n TEST_NAME_TYPE = symbolFor('selector.test_id');\n TEXT_TYPE = symbolFor('selector.text');\n}\nvar commitHooks = [];\nfunction onCommitRoot$1() {\n {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n}\n\nvar ReactCurrentActQueue = ReactSharedInternals.ReactCurrentActQueue;\nfunction isLegacyActEnvironment(fiber) {\n {\n var isReactActEnvironmentGlobal = \n typeof IS_REACT_ACT_ENVIRONMENT !== 'undefined' ? IS_REACT_ACT_ENVIRONMENT : undefined; \n\n var jestIsDefined = typeof jest !== 'undefined';\n return jestIsDefined && isReactActEnvironmentGlobal !== false;\n }\n}\nfunction isConcurrentActEnvironment() {\n {\n var isReactActEnvironmentGlobal = \n typeof IS_REACT_ACT_ENVIRONMENT !== 'undefined' ? IS_REACT_ACT_ENVIRONMENT : undefined;\n\n if (!isReactActEnvironmentGlobal && ReactCurrentActQueue.current !== null) {\n error('The current testing environment is not configured to support ' + 'act(...)');\n }\n\n return isReactActEnvironmentGlobal;\n }\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$3 = ReactSharedInternals.ReactCurrentBatchConfig,\n ReactCurrentActQueue$1 = ReactSharedInternals.ReactCurrentActQueue;\nvar NoContext =\n0;\nvar BatchedContext =\n1;\nvar RenderContext =\n2;\nvar CommitContext =\n4;\nvar RootInProgress = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5;\nvar RootDidNotComplete = 6; \n\nvar executionContext = NoContext; \n\nvar workInProgressRoot = null; \n\nvar workInProgress = null; \n\nvar workInProgressRootRenderLanes = NoLanes; \n\nvar subtreeRenderLanes = NoLanes;\nvar subtreeRenderLanesCursor = createCursor(NoLanes); \n\nvar workInProgressRootExitStatus = RootInProgress; \n\nvar workInProgressRootFatalError = null; \n\nvar workInProgressRootIncludedLanes = NoLanes; \n\nvar workInProgressRootSkippedLanes = NoLanes; \n\nvar workInProgressRootInterleavedUpdatedLanes = NoLanes; \n\nvar workInProgressRootPingedLanes = NoLanes; \n\nvar workInProgressRootConcurrentErrors = null; \n\nvar workInProgressRootRecoverableErrors = null; \n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500; \n\nvar workInProgressRootRenderTargetTime = Infinity; \n\nvar RENDER_TIMEOUT_MS = 500;\nvar workInProgressTransitions = null;\n\nfunction resetRenderTimer() {\n workInProgressRootRenderTargetTime = now() + RENDER_TIMEOUT_MS;\n}\n\nfunction getRenderTargetTime() {\n return workInProgressRootRenderTargetTime;\n}\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null; \nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsLanes = NoLanes;\nvar pendingPassiveProfilerEffects = [];\nvar pendingPassiveTransitions = null; \n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar isFlushingPassiveEffects = false;\nvar didScheduleUpdateDuringPassiveEffects = false;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0;\nvar rootWithPassiveNestedUpdates = null; \n\nvar currentEventTime = NoTimestamp;\nvar currentEventTransitionLane = NoLanes;\nvar isRunningInsertionEffect = false;\nfunction getWorkInProgressRoot() {\n return workInProgressRoot;\n}\nfunction requestEventTime() {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n return now();\n } \n\n\n if (currentEventTime !== NoTimestamp) {\n return currentEventTime;\n } \n\n\n currentEventTime = now();\n return currentEventTime;\n}\nfunction requestUpdateLane(fiber) {\n var mode = fiber.mode;\n\n if ((mode & ConcurrentMode) === NoMode) {\n return SyncLane;\n } else if ( (executionContext & RenderContext) !== NoContext && workInProgressRootRenderLanes !== NoLanes) {\n return pickArbitraryLane(workInProgressRootRenderLanes);\n }\n\n var isTransition = requestCurrentTransition() !== NoTransition;\n\n if (isTransition) {\n if ( ReactCurrentBatchConfig$3.transition !== null) {\n var transition = ReactCurrentBatchConfig$3.transition;\n\n if (!transition._updatedFibers) {\n transition._updatedFibers = new Set();\n }\n\n transition._updatedFibers.add(fiber);\n } \n\n\n if (currentEventTransitionLane === NoLane) {\n currentEventTransitionLane = claimNextTransitionLane();\n }\n\n return currentEventTransitionLane;\n } \n\n\n var updateLane = getCurrentUpdatePriority();\n\n if (updateLane !== NoLane) {\n return updateLane;\n } \n\n\n var eventLane = getCurrentEventPriority();\n return eventLane;\n}\n\nfunction requestRetryLane(fiber) {\n var mode = fiber.mode;\n\n if ((mode & ConcurrentMode) === NoMode) {\n return SyncLane;\n }\n\n return claimNextRetryLane();\n}\n\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n checkForNestedUpdates();\n\n {\n if (isRunningInsertionEffect) {\n error('useInsertionEffect must not schedule updates.');\n }\n }\n\n {\n if (isFlushingPassiveEffects) {\n didScheduleUpdateDuringPassiveEffects = true;\n }\n } \n\n\n markRootUpdated(root, lane, eventTime);\n\n if ((executionContext & RenderContext) !== NoLanes && root === workInProgressRoot) {\n warnAboutRenderPhaseUpdatesInDEV(fiber); \n } else {\n {\n if (isDevToolsPresent) {\n addFiberToLanesMap(root, fiber, lane);\n }\n }\n\n warnIfUpdatesNotWrappedWithActDEV(fiber);\n\n if (root === workInProgressRoot) {\n if ( (executionContext & RenderContext) === NoContext) {\n workInProgressRootInterleavedUpdatedLanes = mergeLanes(workInProgressRootInterleavedUpdatedLanes, lane);\n }\n\n if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n markRootSuspended$1(root, workInProgressRootRenderLanes);\n }\n }\n\n ensureRootIsScheduled(root, eventTime);\n\n if (lane === SyncLane && executionContext === NoContext && (fiber.mode & ConcurrentMode) === NoMode && \n !( ReactCurrentActQueue$1.isBatchingLegacy)) {\n resetRenderTimer();\n flushSyncCallbacksOnlyInLegacyMode();\n }\n }\n}\nfunction scheduleInitialHydrationOnRoot(root, lane, eventTime) {\n var current = root.current;\n current.lanes = lane;\n markRootUpdated(root, lane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n}\nfunction isUnsafeClassRenderPhaseUpdate(fiber) {\n return (\n (executionContext & RenderContext) !== NoContext\n );\n} \n\nfunction ensureRootIsScheduled(root, currentTime) {\n var existingCallbackNode = root.callbackNode; \n\n markStarvedLanesAsExpired(root, currentTime); \n\n var nextLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n if (nextLanes === NoLanes) {\n if (existingCallbackNode !== null) {\n cancelCallback$1(existingCallbackNode);\n }\n\n root.callbackNode = null;\n root.callbackPriority = NoLane;\n return;\n } \n\n\n var newCallbackPriority = getHighestPriorityLane(nextLanes); \n\n var existingCallbackPriority = root.callbackPriority;\n\n if (existingCallbackPriority === newCallbackPriority && \n !( ReactCurrentActQueue$1.current !== null && existingCallbackNode !== fakeActCallbackNode)) {\n {\n if (existingCallbackNode == null && existingCallbackPriority !== SyncLane) {\n error('Expected scheduled callback to exist. This error is likely caused by a bug in React. Please file an issue.');\n }\n } \n\n\n return;\n }\n\n if (existingCallbackNode != null) {\n cancelCallback$1(existingCallbackNode);\n } \n\n\n var newCallbackNode;\n\n if (newCallbackPriority === SyncLane) {\n if (root.tag === LegacyRoot) {\n if ( ReactCurrentActQueue$1.isBatchingLegacy !== null) {\n ReactCurrentActQueue$1.didScheduleLegacyUpdate = true;\n }\n\n scheduleLegacySyncCallback(performSyncWorkOnRoot.bind(null, root));\n } else {\n scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n }\n\n {\n if ( ReactCurrentActQueue$1.current !== null) {\n ReactCurrentActQueue$1.current.push(flushSyncCallbacks);\n } else {\n scheduleMicrotask(function () {\n if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n flushSyncCallbacks();\n }\n });\n }\n }\n\n newCallbackNode = null;\n } else {\n var schedulerPriorityLevel;\n\n switch (lanesToEventPriority(nextLanes)) {\n case DiscreteEventPriority:\n schedulerPriorityLevel = ImmediatePriority;\n break;\n\n case ContinuousEventPriority:\n schedulerPriorityLevel = UserBlockingPriority;\n break;\n\n case DefaultEventPriority:\n schedulerPriorityLevel = NormalPriority;\n break;\n\n case IdleEventPriority:\n schedulerPriorityLevel = IdlePriority;\n break;\n\n default:\n schedulerPriorityLevel = NormalPriority;\n break;\n }\n\n newCallbackNode = scheduleCallback$1(schedulerPriorityLevel, performConcurrentWorkOnRoot.bind(null, root));\n }\n\n root.callbackPriority = newCallbackPriority;\n root.callbackNode = newCallbackNode;\n} \n\n\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n {\n resetNestedUpdateFlag();\n } \n\n\n currentEventTime = NoTimestamp;\n currentEventTransitionLane = NoLanes;\n\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n throw new Error('Should not already be working.');\n } \n\n\n var originalCallbackNode = root.callbackNode;\n var didFlushPassiveEffects = flushPassiveEffects();\n\n if (didFlushPassiveEffects) {\n if (root.callbackNode !== originalCallbackNode) {\n return null;\n }\n } \n\n\n var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n if (lanes === NoLanes) {\n return null;\n } \n\n\n var shouldTimeSlice = !includesBlockingLane(root, lanes) && !includesExpiredLane(root, lanes) && ( !didTimeout);\n var exitStatus = shouldTimeSlice ? renderRootConcurrent(root, lanes) : renderRootSync(root, lanes);\n\n if (exitStatus !== RootInProgress) {\n if (exitStatus === RootErrored) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (errorRetryLanes !== NoLanes) {\n lanes = errorRetryLanes;\n exitStatus = recoverFromConcurrentError(root, errorRetryLanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n }\n\n if (exitStatus === RootDidNotComplete) {\n markRootSuspended$1(root, lanes);\n } else {\n var renderWasConcurrent = !includesBlockingLane(root, lanes);\n var finishedWork = root.current.alternate;\n\n if (renderWasConcurrent && !isRenderConsistentWithExternalStores(finishedWork)) {\n exitStatus = renderRootSync(root, lanes); \n\n if (exitStatus === RootErrored) {\n var _errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (_errorRetryLanes !== NoLanes) {\n lanes = _errorRetryLanes;\n exitStatus = recoverFromConcurrentError(root, _errorRetryLanes); \n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var _fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw _fatalError;\n }\n } \n\n\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n finishConcurrentRender(root, exitStatus, lanes);\n }\n }\n\n ensureRootIsScheduled(root, now());\n\n if (root.callbackNode === originalCallbackNode) {\n return performConcurrentWorkOnRoot.bind(null, root);\n }\n\n return null;\n}\n\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n\n if (isRootDehydrated(root)) {\n var rootWorkInProgress = prepareFreshStack(root, errorRetryLanes);\n rootWorkInProgress.flags |= ForceClientRender;\n\n {\n errorHydratingContainer(root.containerInfo);\n }\n }\n\n var exitStatus = renderRootSync(root, errorRetryLanes);\n\n if (exitStatus !== RootErrored) {\n var errorsFromSecondAttempt = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = errorsFromFirstAttempt; \n\n if (errorsFromSecondAttempt !== null) {\n queueRecoverableErrors(errorsFromSecondAttempt);\n }\n }\n\n return exitStatus;\n}\n\nfunction queueRecoverableErrors(errors) {\n if (workInProgressRootRecoverableErrors === null) {\n workInProgressRootRecoverableErrors = errors;\n } else {\n workInProgressRootRecoverableErrors.push.apply(workInProgressRootRecoverableErrors, errors);\n }\n}\n\nfunction finishConcurrentRender(root, exitStatus, lanes) {\n switch (exitStatus) {\n case RootInProgress:\n case RootFatalErrored:\n {\n throw new Error('Root did not complete. This is a bug in React.');\n }\n\n case RootErrored:\n {\n commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n break;\n }\n\n case RootSuspended:\n {\n markRootSuspended$1(root, lanes); \n\n if (includesOnlyRetries(lanes) && \n !shouldForceFlushFallbacksInDEV()) {\n var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); \n\n if (msUntilTimeout > 10) {\n var nextLanes = getNextLanes(root, NoLanes);\n\n if (nextLanes !== NoLanes) {\n break;\n }\n\n var suspendedLanes = root.suspendedLanes;\n\n if (!isSubsetOfLanes(suspendedLanes, lanes)) {\n var eventTime = requestEventTime();\n markRootPinged(root, suspendedLanes);\n break;\n } \n\n\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), msUntilTimeout);\n break;\n }\n } \n\n\n commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n break;\n }\n\n case RootSuspendedWithDelay:\n {\n markRootSuspended$1(root, lanes);\n\n if (includesOnlyTransitions(lanes)) {\n break;\n }\n\n if (!shouldForceFlushFallbacksInDEV()) {\n var mostRecentEventTime = getMostRecentEventTime(root, lanes);\n var eventTimeMs = mostRecentEventTime;\n var timeElapsedMs = now() - eventTimeMs;\n\n var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; \n\n\n if (_msUntilTimeout > 10) {\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), _msUntilTimeout);\n break;\n }\n } \n\n\n commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n break;\n }\n\n case RootCompleted:\n {\n commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions);\n break;\n }\n\n default:\n {\n throw new Error('Unknown root exit status.');\n }\n }\n}\n\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n var node = finishedWork;\n\n while (true) {\n if (node.flags & StoreConsistency) {\n var updateQueue = node.updateQueue;\n\n if (updateQueue !== null) {\n var checks = updateQueue.stores;\n\n if (checks !== null) {\n for (var i = 0; i < checks.length; i++) {\n var check = checks[i];\n var getSnapshot = check.getSnapshot;\n var renderedValue = check.value;\n\n try {\n if (!objectIs(getSnapshot(), renderedValue)) {\n return false;\n }\n } catch (error) {\n return false;\n }\n }\n }\n }\n }\n\n var child = node.child;\n\n if (node.subtreeFlags & StoreConsistency && child !== null) {\n child.return = node;\n node = child;\n continue;\n }\n\n if (node === finishedWork) {\n return true;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === finishedWork) {\n return true;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } \n\n\n return true;\n}\n\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootPingedLanes);\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootInterleavedUpdatedLanes);\n markRootSuspended(root, suspendedLanes);\n} \n\n\nfunction performSyncWorkOnRoot(root) {\n {\n syncNestedUpdateFlag();\n }\n\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n throw new Error('Should not already be working.');\n }\n\n flushPassiveEffects();\n var lanes = getNextLanes(root, NoLanes);\n\n if (!includesSomeLane(lanes, SyncLane)) {\n ensureRootIsScheduled(root, now());\n return null;\n }\n\n var exitStatus = renderRootSync(root, lanes);\n\n if (root.tag !== LegacyRoot && exitStatus === RootErrored) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (errorRetryLanes !== NoLanes) {\n lanes = errorRetryLanes;\n exitStatus = recoverFromConcurrentError(root, errorRetryLanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n }\n\n if (exitStatus === RootDidNotComplete) {\n throw new Error('Root did not complete. This is a bug in React.');\n } \n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); \n\n ensureRootIsScheduled(root, now());\n return null;\n}\n\nfunction flushRoot(root, lanes) {\n if (lanes !== NoLanes) {\n markRootEntangled(root, mergeLanes(lanes, SyncLane));\n ensureRootIsScheduled(root, now());\n\n if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n resetRenderTimer();\n flushSyncCallbacks();\n }\n }\n}\nfunction batchedUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= BatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext; \n\n if (executionContext === NoContext && \n !( ReactCurrentActQueue$1.isBatchingLegacy)) {\n resetRenderTimer();\n flushSyncCallbacksOnlyInLegacyMode();\n }\n }\n}\nfunction discreteUpdates(fn, a, b, c, d) {\n var previousPriority = getCurrentUpdatePriority();\n var prevTransition = ReactCurrentBatchConfig$3.transition;\n\n try {\n ReactCurrentBatchConfig$3.transition = null;\n setCurrentUpdatePriority(DiscreteEventPriority);\n return fn(a, b, c, d);\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig$3.transition = prevTransition;\n\n if (executionContext === NoContext) {\n resetRenderTimer();\n }\n }\n} \n\nfunction flushSync(fn) {\n if (rootWithPendingPassiveEffects !== null && rootWithPendingPassiveEffects.tag === LegacyRoot && (executionContext & (RenderContext | CommitContext)) === NoContext) {\n flushPassiveEffects();\n }\n\n var prevExecutionContext = executionContext;\n executionContext |= BatchedContext;\n var prevTransition = ReactCurrentBatchConfig$3.transition;\n var previousPriority = getCurrentUpdatePriority();\n\n try {\n ReactCurrentBatchConfig$3.transition = null;\n setCurrentUpdatePriority(DiscreteEventPriority);\n\n if (fn) {\n return fn();\n } else {\n return undefined;\n }\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig$3.transition = prevTransition;\n executionContext = prevExecutionContext; \n\n if ((executionContext & (RenderContext | CommitContext)) === NoContext) {\n flushSyncCallbacks();\n }\n }\n}\nfunction isAlreadyRendering() {\n return (executionContext & (RenderContext | CommitContext)) !== NoContext;\n}\nfunction pushRenderLanes(fiber, lanes) {\n push(subtreeRenderLanesCursor, subtreeRenderLanes, fiber);\n subtreeRenderLanes = mergeLanes(subtreeRenderLanes, lanes);\n workInProgressRootIncludedLanes = mergeLanes(workInProgressRootIncludedLanes, lanes);\n}\nfunction popRenderLanes(fiber) {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor, fiber);\n}\n\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n var timeoutHandle = root.timeoutHandle;\n\n if (timeoutHandle !== noTimeout) {\n root.timeoutHandle = noTimeout; \n\n cancelTimeout(timeoutHandle);\n }\n\n if (workInProgress !== null) {\n var interruptedWork = workInProgress.return;\n\n while (interruptedWork !== null) {\n var current = interruptedWork.alternate;\n unwindInterruptedWork(current, interruptedWork);\n interruptedWork = interruptedWork.return;\n }\n }\n\n workInProgressRoot = root;\n var rootWorkInProgress = createWorkInProgress(root.current, null);\n workInProgress = rootWorkInProgress;\n workInProgressRootRenderLanes = subtreeRenderLanes = workInProgressRootIncludedLanes = lanes;\n workInProgressRootExitStatus = RootInProgress;\n workInProgressRootFatalError = null;\n workInProgressRootSkippedLanes = NoLanes;\n workInProgressRootInterleavedUpdatedLanes = NoLanes;\n workInProgressRootPingedLanes = NoLanes;\n workInProgressRootConcurrentErrors = null;\n workInProgressRootRecoverableErrors = null;\n finishQueueingConcurrentUpdates();\n\n {\n ReactStrictModeWarnings.discardPendingWarnings();\n }\n\n return rootWorkInProgress;\n}\n\nfunction handleError(root, thrownValue) {\n do {\n var erroredWork = workInProgress;\n\n try {\n resetContextDependencies();\n resetHooksAfterThrow();\n resetCurrentFiber(); \n\n ReactCurrentOwner$2.current = null;\n\n if (erroredWork === null || erroredWork.return === null) {\n workInProgressRootExitStatus = RootFatalErrored;\n workInProgressRootFatalError = thrownValue; \n\n workInProgress = null;\n return;\n }\n\n if (enableProfilerTimer && erroredWork.mode & ProfileMode) {\n stopProfilerTimerIfRunningAndRecordDelta(erroredWork, true);\n }\n\n if (enableSchedulingProfiler) {\n markComponentRenderStopped();\n\n if (thrownValue !== null && typeof thrownValue === 'object' && typeof thrownValue.then === 'function') {\n var wakeable = thrownValue;\n markComponentSuspended(erroredWork, wakeable, workInProgressRootRenderLanes);\n } else {\n markComponentErrored(erroredWork, thrownValue, workInProgressRootRenderLanes);\n }\n }\n\n throwException(root, erroredWork.return, erroredWork, thrownValue, workInProgressRootRenderLanes);\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n\n if (workInProgress === erroredWork && erroredWork !== null) {\n erroredWork = erroredWork.return;\n workInProgress = erroredWork;\n } else {\n erroredWork = workInProgress;\n }\n\n continue;\n } \n\n\n return;\n } while (true);\n}\n\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n\n if (prevDispatcher === null) {\n return ContextOnlyDispatcher;\n } else {\n return prevDispatcher;\n }\n}\n\nfunction popDispatcher(prevDispatcher) {\n ReactCurrentDispatcher$2.current = prevDispatcher;\n}\n\nfunction markCommitTimeOfFallback() {\n globalMostRecentFallbackTime = now();\n}\nfunction markSkippedUpdateLanes(lane) {\n workInProgressRootSkippedLanes = mergeLanes(lane, workInProgressRootSkippedLanes);\n}\nfunction renderDidSuspend() {\n if (workInProgressRootExitStatus === RootInProgress) {\n workInProgressRootExitStatus = RootSuspended;\n }\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (workInProgressRootExitStatus === RootInProgress || workInProgressRootExitStatus === RootSuspended || workInProgressRootExitStatus === RootErrored) {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n } \n\n\n if (workInProgressRoot !== null && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootInterleavedUpdatedLanes))) {\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n }\n}\nfunction renderDidError(error) {\n if (workInProgressRootExitStatus !== RootSuspendedWithDelay) {\n workInProgressRootExitStatus = RootErrored;\n }\n\n if (workInProgressRootConcurrentErrors === null) {\n workInProgressRootConcurrentErrors = [error];\n } else {\n workInProgressRootConcurrentErrors.push(error);\n }\n} \n\nfunction renderHasNotSuspendedYet() {\n return workInProgressRootExitStatus === RootInProgress;\n}\n\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); \n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n\n if (memoizedUpdaters.size > 0) {\n restorePendingUpdaters(root, workInProgressRootRenderLanes);\n memoizedUpdaters.clear();\n } \n\n\n movePendingFibersToMemoized(root, lanes);\n }\n }\n\n workInProgressTransitions = getTransitionsForLanes();\n prepareFreshStack(root, lanes);\n }\n\n {\n markRenderStarted(lanes);\n }\n\n do {\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n executionContext = prevExecutionContext;\n popDispatcher(prevDispatcher);\n\n if (workInProgress !== null) {\n throw new Error('Cannot commit an incomplete root. This error is likely caused by a ' + 'bug in React. Please file an issue.');\n }\n\n {\n markRenderStopped();\n } \n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes;\n return workInProgressRootExitStatus;\n} \n\n\n\nfunction workLoopSync() {\n while (workInProgress !== null) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); \n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n\n if (memoizedUpdaters.size > 0) {\n restorePendingUpdaters(root, workInProgressRootRenderLanes);\n memoizedUpdaters.clear();\n } \n\n\n movePendingFibersToMemoized(root, lanes);\n }\n }\n\n workInProgressTransitions = getTransitionsForLanes();\n resetRenderTimer();\n prepareFreshStack(root, lanes);\n }\n\n {\n markRenderStarted(lanes);\n }\n\n do {\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n popDispatcher(prevDispatcher);\n executionContext = prevExecutionContext;\n\n\n if (workInProgress !== null) {\n {\n markRenderYielded();\n }\n\n return RootInProgress;\n } else {\n {\n markRenderStopped();\n } \n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes; \n\n return workInProgressRootExitStatus;\n }\n}\n\n\nfunction workLoopConcurrent() {\n while (workInProgress !== null && !shouldYield()) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n var current = unitOfWork.alternate;\n setCurrentFiber(unitOfWork);\n var next;\n\n if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n startProfilerTimer(unitOfWork);\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n } else {\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n }\n\n resetCurrentFiber();\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n if (next === null) {\n completeUnitOfWork(unitOfWork);\n } else {\n workInProgress = next;\n }\n\n ReactCurrentOwner$2.current = null;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n\n do {\n var current = completedWork.alternate;\n var returnFiber = completedWork.return; \n\n if ((completedWork.flags & Incomplete) === NoFlags) {\n setCurrentFiber(completedWork);\n var next = void 0;\n\n if ( (completedWork.mode & ProfileMode) === NoMode) {\n next = completeWork(current, completedWork, subtreeRenderLanes);\n } else {\n startProfilerTimer(completedWork);\n next = completeWork(current, completedWork, subtreeRenderLanes); \n\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false);\n }\n\n resetCurrentFiber();\n\n if (next !== null) {\n workInProgress = next;\n return;\n }\n } else {\n var _next = unwindWork(current, completedWork); \n\n\n if (_next !== null) {\n _next.flags &= HostEffectMask;\n workInProgress = _next;\n return;\n }\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false); \n\n var actualDuration = completedWork.actualDuration;\n var child = completedWork.child;\n\n while (child !== null) {\n actualDuration += child.actualDuration;\n child = child.sibling;\n }\n\n completedWork.actualDuration = actualDuration;\n }\n\n if (returnFiber !== null) {\n returnFiber.flags |= Incomplete;\n returnFiber.subtreeFlags = NoFlags;\n returnFiber.deletions = null;\n } else {\n workInProgressRootExitStatus = RootDidNotComplete;\n workInProgress = null;\n return;\n }\n }\n\n var siblingFiber = completedWork.sibling;\n\n if (siblingFiber !== null) {\n workInProgress = siblingFiber;\n return;\n } \n\n\n completedWork = returnFiber; \n\n workInProgress = completedWork;\n } while (completedWork !== null); \n\n\n if (workInProgressRootExitStatus === RootInProgress) {\n workInProgressRootExitStatus = RootCompleted;\n }\n}\n\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = getCurrentUpdatePriority();\n var prevTransition = ReactCurrentBatchConfig$3.transition;\n\n try {\n ReactCurrentBatchConfig$3.transition = null;\n setCurrentUpdatePriority(DiscreteEventPriority);\n commitRootImpl(root, recoverableErrors, transitions, previousUpdateLanePriority);\n } finally {\n ReactCurrentBatchConfig$3.transition = prevTransition;\n setCurrentUpdatePriority(previousUpdateLanePriority);\n }\n\n return null;\n}\n\nfunction commitRootImpl(root, recoverableErrors, transitions, renderPriorityLevel) {\n do {\n flushPassiveEffects();\n } while (rootWithPendingPassiveEffects !== null);\n\n flushRenderPhaseStrictModeWarningsInDEV();\n\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n throw new Error('Should not already be working.');\n }\n\n var finishedWork = root.finishedWork;\n var lanes = root.finishedLanes;\n\n {\n markCommitStarted(lanes);\n }\n\n if (finishedWork === null) {\n\n {\n markCommitStopped();\n }\n\n return null;\n } else {\n {\n if (lanes === NoLanes) {\n error('root.finishedLanes should not be empty during a commit. This is a ' + 'bug in React.');\n }\n }\n }\n\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n\n if (finishedWork === root.current) {\n throw new Error('Cannot commit the same tree as before. This error is likely caused by ' + 'a bug in React. Please file an issue.');\n } \n\n\n root.callbackNode = null;\n root.callbackPriority = NoLane; \n\n var remainingLanes = mergeLanes(finishedWork.lanes, finishedWork.childLanes);\n markRootFinished(root, remainingLanes);\n\n if (root === workInProgressRoot) {\n workInProgressRoot = null;\n workInProgress = null;\n workInProgressRootRenderLanes = NoLanes;\n } \n\n\n if ((finishedWork.subtreeFlags & PassiveMask) !== NoFlags || (finishedWork.flags & PassiveMask) !== NoFlags) {\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n\n pendingPassiveTransitions = transitions;\n scheduleCallback$1(NormalPriority, function () {\n flushPassiveEffects(); \n\n return null;\n });\n }\n } \n\n\n var subtreeHasEffects = (finishedWork.subtreeFlags & (BeforeMutationMask | MutationMask | LayoutMask | PassiveMask)) !== NoFlags;\n var rootHasEffect = (finishedWork.flags & (BeforeMutationMask | MutationMask | LayoutMask | PassiveMask)) !== NoFlags;\n\n if (subtreeHasEffects || rootHasEffect) {\n var prevTransition = ReactCurrentBatchConfig$3.transition;\n ReactCurrentBatchConfig$3.transition = null;\n var previousPriority = getCurrentUpdatePriority();\n setCurrentUpdatePriority(DiscreteEventPriority);\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext; \n\n ReactCurrentOwner$2.current = null; \n\n var shouldFireAfterActiveInstanceBlur = commitBeforeMutationEffects(root, finishedWork);\n\n {\n recordCommitTime();\n }\n\n\n commitMutationEffects(root, finishedWork, lanes);\n\n resetAfterCommit(root.containerInfo); \n\n root.current = finishedWork; \n\n {\n markLayoutEffectsStarted(lanes);\n }\n\n commitLayoutEffects(finishedWork, root, lanes);\n\n {\n markLayoutEffectsStopped();\n }\n\n\n requestPaint();\n executionContext = prevExecutionContext; \n\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig$3.transition = prevTransition;\n } else {\n root.current = finishedWork; \n\n {\n recordCommitTime();\n }\n }\n\n var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n if (rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = false;\n rootWithPendingPassiveEffects = root;\n pendingPassiveEffectsLanes = lanes;\n } else {\n\n {\n nestedPassiveUpdateCount = 0;\n rootWithPassiveNestedUpdates = null;\n }\n } \n\n\n remainingLanes = root.pendingLanes; \n\n if (remainingLanes === NoLanes) {\n legacyErrorBoundariesThatAlreadyFailed = null;\n }\n\n {\n if (!rootDidHavePassiveEffects) {\n commitDoubleInvokeEffectsInDEV(root.current, false);\n }\n }\n\n onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n\n {\n if (isDevToolsPresent) {\n root.memoizedUpdaters.clear();\n }\n }\n\n {\n onCommitRoot$1();\n } \n\n\n ensureRootIsScheduled(root, now());\n\n if (recoverableErrors !== null) {\n var onRecoverableError = root.onRecoverableError;\n\n for (var i = 0; i < recoverableErrors.length; i++) {\n var recoverableError = recoverableErrors[i];\n var componentStack = recoverableError.stack;\n var digest = recoverableError.digest;\n onRecoverableError(recoverableError.value, {\n componentStack: componentStack,\n digest: digest\n });\n }\n }\n\n if (hasUncaughtError) {\n hasUncaughtError = false;\n var error$1 = firstUncaughtError;\n firstUncaughtError = null;\n throw error$1;\n } \n\n\n if (includesSomeLane(pendingPassiveEffectsLanes, SyncLane) && root.tag !== LegacyRoot) {\n flushPassiveEffects();\n } \n\n\n remainingLanes = root.pendingLanes;\n\n if (includesSomeLane(remainingLanes, SyncLane)) {\n {\n markNestedUpdateScheduled();\n } \n\n\n if (root === rootWithNestedUpdates) {\n nestedUpdateCount++;\n } else {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = root;\n }\n } else {\n nestedUpdateCount = 0;\n } \n\n\n flushSyncCallbacks();\n\n {\n markCommitStopped();\n }\n\n return null;\n}\n\nfunction flushPassiveEffects() {\n if (rootWithPendingPassiveEffects !== null) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes);\n var priority = lowerEventPriority(DefaultEventPriority, renderPriority);\n var prevTransition = ReactCurrentBatchConfig$3.transition;\n var previousPriority = getCurrentUpdatePriority();\n\n try {\n ReactCurrentBatchConfig$3.transition = null;\n setCurrentUpdatePriority(priority);\n return flushPassiveEffectsImpl();\n } finally {\n setCurrentUpdatePriority(previousPriority);\n ReactCurrentBatchConfig$3.transition = prevTransition; \n }\n }\n\n return false;\n}\nfunction enqueuePendingPassiveProfilerEffect(fiber) {\n {\n pendingPassiveProfilerEffects.push(fiber);\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback$1(NormalPriority, function () {\n flushPassiveEffects();\n return null;\n });\n }\n }\n}\n\nfunction flushPassiveEffectsImpl() {\n if (rootWithPendingPassiveEffects === null) {\n return false;\n } \n\n\n var transitions = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root = rootWithPendingPassiveEffects;\n var lanes = pendingPassiveEffectsLanes;\n rootWithPendingPassiveEffects = null; \n\n pendingPassiveEffectsLanes = NoLanes;\n\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n throw new Error('Cannot flush passive effects while already rendering.');\n }\n\n {\n isFlushingPassiveEffects = true;\n didScheduleUpdateDuringPassiveEffects = false;\n }\n\n {\n markPassiveEffectsStarted(lanes);\n }\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n commitPassiveUnmountEffects(root.current);\n commitPassiveMountEffects(root, root.current, lanes, transitions); \n\n {\n var profilerEffects = pendingPassiveProfilerEffects;\n pendingPassiveProfilerEffects = [];\n\n for (var i = 0; i < profilerEffects.length; i++) {\n var _fiber = profilerEffects[i];\n commitPassiveEffectDurations(root, _fiber);\n }\n }\n\n {\n markPassiveEffectsStopped();\n }\n\n {\n commitDoubleInvokeEffectsInDEV(root.current, true);\n }\n\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n\n {\n if (didScheduleUpdateDuringPassiveEffects) {\n if (root === rootWithPassiveNestedUpdates) {\n nestedPassiveUpdateCount++;\n } else {\n nestedPassiveUpdateCount = 0;\n rootWithPassiveNestedUpdates = root;\n }\n } else {\n nestedPassiveUpdateCount = 0;\n }\n\n isFlushingPassiveEffects = false;\n didScheduleUpdateDuringPassiveEffects = false;\n } \n\n\n onPostCommitRoot(root);\n\n {\n var stateNode = root.current.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n if (legacyErrorBoundariesThatAlreadyFailed === null) {\n legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n } else {\n legacyErrorBoundariesThatAlreadyFailed.add(instance);\n }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n if (!hasUncaughtError) {\n hasUncaughtError = true;\n firstUncaughtError = error;\n }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n var errorInfo = createCapturedValueAtFiber(error, sourceFiber);\n var update = createRootErrorUpdate(rootFiber, errorInfo, SyncLane);\n var root = enqueueUpdate(rootFiber, update, SyncLane);\n var eventTime = requestEventTime();\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n }\n}\n\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error$1) {\n {\n reportUncaughtErrorInDEV(error$1);\n setIsRunningInsertionEffect(false);\n }\n\n if (sourceFiber.tag === HostRoot) {\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error$1);\n return;\n }\n\n var fiber = null;\n\n {\n fiber = nearestMountedAncestor;\n }\n\n while (fiber !== null) {\n if (fiber.tag === HostRoot) {\n captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error$1);\n return;\n } else if (fiber.tag === ClassComponent) {\n var ctor = fiber.type;\n var instance = fiber.stateNode;\n\n if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n var errorInfo = createCapturedValueAtFiber(error$1, sourceFiber);\n var update = createClassErrorUpdate(fiber, errorInfo, SyncLane);\n var root = enqueueUpdate(fiber, update, SyncLane);\n var eventTime = requestEventTime();\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n }\n\n return;\n }\n }\n\n fiber = fiber.return;\n }\n\n {\n error('Internal React error: Attempted to capture a commit phase error ' + 'inside a detached tree. This indicates a bug in React. Likely ' + 'causes include deleting the same fiber more than once, committing an ' + 'already-finished tree, or an inconsistent return pointer.\\n\\n' + 'Error message:\\n\\n%s', error$1);\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n\n if (pingCache !== null) {\n pingCache.delete(wakeable);\n }\n\n var eventTime = requestEventTime();\n markRootPinged(root, pingedLanes);\n warnIfSuspenseResolutionNotWrappedWithActDEV(root);\n\n if (workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes)) {\n if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n prepareFreshStack(root, NoLanes);\n } else {\n workInProgressRootPingedLanes = mergeLanes(workInProgressRootPingedLanes, pingedLanes);\n }\n }\n\n ensureRootIsScheduled(root, eventTime);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n if (retryLane === NoLane) {\n retryLane = requestRetryLane(boundaryFiber);\n } \n\n\n var eventTime = requestEventTime();\n var root = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n\n if (root !== null) {\n markRootUpdated(root, retryLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n }\n}\n\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState;\n var retryLane = NoLane;\n\n if (suspenseState !== null) {\n retryLane = suspenseState.retryLane;\n }\n\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = NoLane; \n\n var retryCache;\n\n switch (boundaryFiber.tag) {\n case SuspenseComponent:\n retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n\n if (suspenseState !== null) {\n retryLane = suspenseState.retryLane;\n }\n\n break;\n\n case SuspenseListComponent:\n retryCache = boundaryFiber.stateNode;\n break;\n\n default:\n throw new Error('Pinged unknown suspense boundary type. ' + 'This is probably a bug in React.');\n }\n\n if (retryCache !== null) {\n retryCache.delete(wakeable);\n }\n\n retryTimedOutBoundary(boundaryFiber, retryLane);\n} \n\nfunction jnd(timeElapsed) {\n return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction checkForNestedUpdates() {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = null;\n throw new Error('Maximum update depth exceeded. This can happen when a component ' + 'repeatedly calls setState inside componentWillUpdate or ' + 'componentDidUpdate. React limits the number of nested updates to ' + 'prevent infinite loops.');\n }\n\n {\n if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n nestedPassiveUpdateCount = 0;\n rootWithPassiveNestedUpdates = null;\n\n error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n }\n }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n {\n ReactStrictModeWarnings.flushLegacyContextWarning();\n\n {\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n }\n }\n}\n\nfunction commitDoubleInvokeEffectsInDEV(fiber, hasPassiveEffects) {\n {\n setCurrentFiber(fiber);\n invokeEffectsInDev(fiber, MountLayoutDev, invokeLayoutEffectUnmountInDEV);\n\n if (hasPassiveEffects) {\n invokeEffectsInDev(fiber, MountPassiveDev, invokePassiveEffectUnmountInDEV);\n }\n\n invokeEffectsInDev(fiber, MountLayoutDev, invokeLayoutEffectMountInDEV);\n\n if (hasPassiveEffects) {\n invokeEffectsInDev(fiber, MountPassiveDev, invokePassiveEffectMountInDEV);\n }\n\n resetCurrentFiber();\n }\n}\n\nfunction invokeEffectsInDev(firstChild, fiberFlags, invokeEffectFn) {\n {\n var current = firstChild;\n var subtreeRoot = null;\n\n while (current !== null) {\n var primarySubtreeFlag = current.subtreeFlags & fiberFlags;\n\n if (current !== subtreeRoot && current.child !== null && primarySubtreeFlag !== NoFlags) {\n current = current.child;\n } else {\n if ((current.flags & fiberFlags) !== NoFlags) {\n invokeEffectFn(current);\n }\n\n if (current.sibling !== null) {\n current = current.sibling;\n } else {\n current = subtreeRoot = current.return;\n }\n }\n }\n }\n}\n\nvar didWarnStateUpdateForNotYetMountedComponent = null;\nfunction warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n return;\n }\n\n if (!(fiber.mode & ConcurrentMode)) {\n return;\n }\n\n var tag = fiber.tag;\n\n if (tag !== IndeterminateComponent && tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent) {\n return;\n } \n\n\n var componentName = getComponentNameFromFiber(fiber) || 'ReactComponent';\n\n if (didWarnStateUpdateForNotYetMountedComponent !== null) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForNotYetMountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForNotYetMountedComponent = new Set([componentName]);\n }\n\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on a component that hasn't mounted yet. \" + 'This indicates that you have a side-effect in your render function that ' + 'asynchronously later calls tries to update the component. Move this work to ' + 'useEffect instead.');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n}\nvar beginWork$1;\n\n{\n var dummyFiber = null;\n\n beginWork$1 = function (current, unitOfWork, lanes) {\n var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n try {\n return beginWork(current, unitOfWork, lanes);\n } catch (originalError) {\n if (didSuspendOrErrorWhileHydratingDEV() || originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n throw originalError;\n } \n\n\n resetContextDependencies();\n resetHooksAfterThrow(); \n\n unwindInterruptedWork(current, unitOfWork); \n\n assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n if ( unitOfWork.mode & ProfileMode) {\n startProfilerTimer(unitOfWork);\n } \n\n\n invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);\n\n if (hasCaughtError()) {\n var replayError = clearCaughtError();\n\n if (typeof replayError === 'object' && replayError !== null && replayError._suppressLogging && typeof originalError === 'object' && originalError !== null && !originalError._suppressLogging) {\n originalError._suppressLogging = true;\n }\n } \n\n\n throw originalError;\n }\n };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n {\n if (isRendering && !getIsUpdatingOpaqueValueInRenderPhaseInDEV()) {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n var renderingComponentName = workInProgress && getComponentNameFromFiber(workInProgress) || 'Unknown'; \n\n var dedupeKey = renderingComponentName;\n\n if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n var setStateComponentName = getComponentNameFromFiber(fiber) || 'Unknown';\n\n error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://reactjs.org/link/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n if (!didWarnAboutUpdateInRender) {\n error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n didWarnAboutUpdateInRender = true;\n }\n\n break;\n }\n }\n }\n }\n}\n\nfunction restorePendingUpdaters(root, lanes) {\n {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n memoizedUpdaters.forEach(function (schedulingFiber) {\n addFiberToLanesMap(root, schedulingFiber, lanes);\n }); \n }\n }\n}\nvar fakeActCallbackNode = {};\n\nfunction scheduleCallback$1(priorityLevel, callback) {\n {\n var actQueue = ReactCurrentActQueue$1.current;\n\n if (actQueue !== null) {\n actQueue.push(callback);\n return fakeActCallbackNode;\n } else {\n return scheduleCallback(priorityLevel, callback);\n }\n }\n}\n\nfunction cancelCallback$1(callbackNode) {\n if ( callbackNode === fakeActCallbackNode) {\n return;\n } \n\n\n return cancelCallback(callbackNode);\n}\n\nfunction shouldForceFlushFallbacksInDEV() {\n return ReactCurrentActQueue$1.current !== null;\n}\n\nfunction warnIfUpdatesNotWrappedWithActDEV(fiber) {\n {\n if (fiber.mode & ConcurrentMode) {\n if (!isConcurrentActEnvironment()) {\n return;\n }\n } else {\n if (!isLegacyActEnvironment()) {\n return;\n }\n\n if (executionContext !== NoContext) {\n return;\n }\n\n if (fiber.tag !== FunctionComponent && fiber.tag !== ForwardRef && fiber.tag !== SimpleMemoComponent) {\n return;\n }\n }\n\n if (ReactCurrentActQueue$1.current === null) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentNameFromFiber(fiber));\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nfunction warnIfSuspenseResolutionNotWrappedWithActDEV(root) {\n {\n if (root.tag !== LegacyRoot && isConcurrentActEnvironment() && ReactCurrentActQueue$1.current === null) {\n error('A suspended resource finished loading inside a test, but the event ' + 'was not wrapped in act(...).\\n\\n' + 'When testing, code that resolves suspended data should be wrapped ' + 'into act(...):\\n\\n' + 'act(() => {\\n' + ' /* finish loading suspended data */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act');\n }\n }\n}\n\nfunction setIsRunningInsertionEffect(isRunning) {\n {\n isRunningInsertionEffect = isRunning;\n }\n}\n\nvar resolveFamily = null; \n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n {\n resolveFamily = handler;\n }\n};\nfunction resolveFunctionForHotReloading(type) {\n {\n if (resolveFamily === null) {\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n return type;\n } \n\n\n return family.current;\n }\n}\nfunction resolveClassForHotReloading(type) {\n return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n {\n if (resolveFamily === null) {\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n if (type !== null && type !== undefined && typeof type.render === 'function') {\n var currentRender = resolveFunctionForHotReloading(type.render);\n\n if (type.render !== currentRender) {\n var syntheticType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: currentRender\n };\n\n if (type.displayName !== undefined) {\n syntheticType.displayName = type.displayName;\n }\n\n return syntheticType;\n }\n }\n\n return type;\n } \n\n\n return family.current;\n }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n {\n if (resolveFamily === null) {\n return false;\n }\n\n var prevType = fiber.elementType;\n var nextType = element.type; \n\n var needsCompareFamilies = false;\n var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n switch (fiber.tag) {\n case ClassComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case FunctionComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case ForwardRef:\n {\n if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if ($$typeofNextType === REACT_MEMO_TYPE) {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n default:\n return false;\n } \n\n\n if (needsCompareFamilies) {\n var prevFamily = resolveFamily(prevType);\n\n if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n return true;\n }\n }\n\n return false;\n }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n {\n if (resolveFamily === null) {\n return;\n }\n\n if (typeof WeakSet !== 'function') {\n return;\n }\n\n if (failedBoundaries === null) {\n failedBoundaries = new WeakSet();\n }\n\n failedBoundaries.add(fiber);\n }\n}\nvar scheduleRefresh = function (root, update) {\n {\n if (resolveFamily === null) {\n return;\n }\n\n var staleFamilies = update.staleFamilies,\n updatedFamilies = update.updatedFamilies;\n flushPassiveEffects();\n flushSync(function () {\n scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n });\n }\n};\nvar scheduleRoot = function (root, element) {\n {\n if (root.context !== emptyContextObject) {\n return;\n }\n\n flushPassiveEffects();\n flushSync(function () {\n updateContainer(element, root, null, null);\n });\n }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n {\n var alternate = fiber.alternate,\n child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n if (resolveFamily === null) {\n throw new Error('Expected resolveFamily to be set during hot reload.');\n }\n\n var needsRender = false;\n var needsRemount = false;\n\n if (candidateType !== null) {\n var family = resolveFamily(candidateType);\n\n if (family !== undefined) {\n if (staleFamilies.has(family)) {\n needsRemount = true;\n } else if (updatedFamilies.has(family)) {\n if (tag === ClassComponent) {\n needsRemount = true;\n } else {\n needsRender = true;\n }\n }\n }\n }\n\n if (failedBoundaries !== null) {\n if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n needsRemount = true;\n }\n }\n\n if (needsRemount) {\n fiber._debugNeedsRemount = true;\n }\n\n if (needsRemount || needsRender) {\n var _root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (_root !== null) {\n scheduleUpdateOnFiber(_root, fiber, SyncLane, NoTimestamp);\n }\n }\n\n if (child !== null && !needsRemount) {\n scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n }\n\n if (sibling !== null) {\n scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n }\n }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n {\n var hostInstances = new Set();\n var types = new Set(families.map(function (family) {\n return family.current;\n }));\n findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n return hostInstances;\n }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n {\n var child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n var didMatch = false;\n\n if (candidateType !== null) {\n if (types.has(candidateType)) {\n didMatch = true;\n }\n }\n\n if (didMatch) {\n findHostInstancesForFiberShallowly(fiber, hostInstances);\n } else {\n if (child !== null) {\n findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n }\n }\n\n if (sibling !== null) {\n findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n }\n }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n if (foundHostInstances) {\n return;\n } \n\n\n var node = fiber;\n\n while (true) {\n switch (node.tag) {\n case HostComponent:\n hostInstances.add(node.stateNode);\n return;\n\n case HostPortal:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n\n case HostRoot:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n }\n\n if (node.return === null) {\n throw new Error('Expected to reach root first.');\n }\n\n node = node.return;\n }\n }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var node = fiber;\n var foundHostInstances = false;\n\n while (true) {\n if (node.tag === HostComponent) {\n foundHostInstances = true;\n hostInstances.add(node.stateNode); \n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === fiber) {\n return foundHostInstances;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === fiber) {\n return foundHostInstances;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n\n return false;\n}\n\nvar hasBadMapPolyfill;\n\n{\n hasBadMapPolyfill = false;\n\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n } catch (e) {\n hasBadMapPolyfill = true;\n }\n}\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.elementType = null;\n this.type = null;\n this.stateNode = null; \n\n this.return = null;\n this.child = null;\n this.sibling = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.memoizedProps = null;\n this.updateQueue = null;\n this.memoizedState = null;\n this.dependencies = null;\n this.mode = mode; \n\n this.flags = NoFlags;\n this.subtreeFlags = NoFlags;\n this.deletions = null;\n this.lanes = NoLanes;\n this.childLanes = NoLanes;\n this.alternate = null;\n\n {\n this.actualDuration = Number.NaN;\n this.actualStartTime = Number.NaN;\n this.selfBaseDuration = Number.NaN;\n this.treeBaseDuration = Number.NaN; \n\n this.actualDuration = 0;\n this.actualStartTime = -1;\n this.selfBaseDuration = 0;\n this.treeBaseDuration = 0;\n }\n\n {\n this._debugSource = null;\n this._debugOwner = null;\n this._debugNeedsRemount = false;\n this._debugHookTypes = null;\n\n if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n Object.preventExtensions(this);\n }\n }\n} \n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct$1(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n return typeof type === 'function' && !shouldConstruct$1(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n if (typeof Component === 'function') {\n return shouldConstruct$1(Component) ? ClassComponent : FunctionComponent;\n } else if (Component !== undefined && Component !== null) {\n var $$typeof = Component.$$typeof;\n\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n return ForwardRef;\n }\n\n if ($$typeof === REACT_MEMO_TYPE) {\n return MemoComponent;\n }\n }\n\n return IndeterminateComponent;\n} \n\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n\n if (workInProgress === null) {\n workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n workInProgress.elementType = current.elementType;\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n\n {\n workInProgress._debugSource = current._debugSource;\n workInProgress._debugOwner = current._debugOwner;\n workInProgress._debugHookTypes = current._debugHookTypes;\n }\n\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps; \n\n workInProgress.type = current.type; \n\n workInProgress.flags = NoFlags; \n\n workInProgress.subtreeFlags = NoFlags;\n workInProgress.deletions = null;\n\n {\n workInProgress.actualDuration = 0;\n workInProgress.actualStartTime = -1;\n }\n } \n\n\n workInProgress.flags = current.flags & StaticMask;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; \n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n }; \n\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n\n {\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n\n {\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case FunctionComponent:\n case SimpleMemoComponent:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n\n case ClassComponent:\n workInProgress.type = resolveClassForHotReloading(current.type);\n break;\n\n case ForwardRef:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n break;\n }\n }\n\n return workInProgress;\n} \n\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= StaticMask | Placement; \n\n var current = workInProgress.alternate;\n\n if (current === null) {\n workInProgress.childLanes = NoLanes;\n workInProgress.lanes = renderLanes;\n workInProgress.child = null;\n workInProgress.subtreeFlags = NoFlags;\n workInProgress.memoizedProps = null;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.dependencies = null;\n workInProgress.stateNode = null;\n\n {\n workInProgress.selfBaseDuration = 0;\n workInProgress.treeBaseDuration = 0;\n }\n } else {\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.subtreeFlags = NoFlags;\n workInProgress.deletions = null;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; \n\n workInProgress.type = current.type; \n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n };\n\n {\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n }\n\n return workInProgress;\n}\nfunction createHostRootFiber(tag, isStrictMode, concurrentUpdatesByDefaultOverride) {\n var mode;\n\n if (tag === ConcurrentRoot) {\n mode = ConcurrentMode;\n\n if (isStrictMode === true) {\n mode |= StrictLegacyMode;\n\n {\n mode |= StrictEffectsMode;\n }\n }\n } else {\n mode = NoMode;\n }\n\n if ( isDevToolsPresent) {\n mode |= ProfileMode;\n }\n\n return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, \nkey, pendingProps, owner, mode, lanes) {\n var fiberTag = IndeterminateComponent; \n\n var resolvedType = type;\n\n if (typeof type === 'function') {\n if (shouldConstruct$1(type)) {\n fiberTag = ClassComponent;\n\n {\n resolvedType = resolveClassForHotReloading(resolvedType);\n }\n } else {\n {\n resolvedType = resolveFunctionForHotReloading(resolvedType);\n }\n }\n } else if (typeof type === 'string') {\n fiberTag = HostComponent;\n } else {\n getTag: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n\n case REACT_STRICT_MODE_TYPE:\n fiberTag = Mode;\n mode |= StrictLegacyMode;\n\n if ( (mode & ConcurrentMode) !== NoMode) {\n mode |= StrictEffectsMode;\n }\n\n break;\n\n case REACT_PROFILER_TYPE:\n return createFiberFromProfiler(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_TYPE:\n return createFiberFromSuspense(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_LIST_TYPE:\n return createFiberFromSuspenseList(pendingProps, mode, lanes, key);\n\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n\n case REACT_LEGACY_HIDDEN_TYPE:\n\n\n case REACT_SCOPE_TYPE:\n\n\n case REACT_CACHE_TYPE:\n\n\n case REACT_TRACING_MARKER_TYPE:\n\n\n case REACT_DEBUG_TRACING_MODE_TYPE:\n\n\n default:\n {\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = ContextProvider;\n break getTag;\n\n case REACT_CONTEXT_TYPE:\n fiberTag = ContextConsumer;\n break getTag;\n\n case REACT_FORWARD_REF_TYPE:\n fiberTag = ForwardRef;\n\n {\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n }\n\n break getTag;\n\n case REACT_MEMO_TYPE:\n fiberTag = MemoComponent;\n break getTag;\n\n case REACT_LAZY_TYPE:\n fiberTag = LazyComponent;\n resolvedType = null;\n break getTag;\n }\n }\n\n var info = '';\n\n {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n }\n\n var ownerName = owner ? getComponentNameFromFiber(owner) : null;\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n\n throw new Error('Element type is invalid: expected a string (for built-in ' + 'components) or a class/function (for composite components) ' + (\"but got: \" + (type == null ? type : typeof type) + \".\" + info));\n }\n }\n }\n\n var fiber = createFiber(fiberTag, pendingProps, key, mode);\n fiber.elementType = type;\n fiber.type = resolvedType;\n fiber.lanes = lanes;\n\n {\n fiber._debugOwner = owner;\n }\n\n return fiber;\n}\nfunction createFiberFromElement(element, mode, lanes) {\n var owner = null;\n\n {\n owner = element._owner;\n }\n\n var type = element.type;\n var key = element.key;\n var pendingProps = element.props;\n var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes);\n\n {\n fiber._debugSource = element._source;\n fiber._debugOwner = element._owner;\n }\n\n return fiber;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n var fiber = createFiber(Fragment, elements, key, mode);\n fiber.lanes = lanes;\n return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, lanes, key) {\n {\n if (typeof pendingProps.id !== 'string') {\n error('Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.', typeof pendingProps.id);\n }\n }\n\n var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode);\n fiber.elementType = REACT_PROFILER_TYPE;\n fiber.lanes = lanes;\n\n {\n fiber.stateNode = {\n effectDuration: 0,\n passiveEffectDuration: 0\n };\n }\n\n return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseComponent, pendingProps, key, mode);\n fiber.elementType = REACT_SUSPENSE_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n var fiber = createFiber(OffscreenComponent, pendingProps, key, mode);\n fiber.elementType = REACT_OFFSCREEN_TYPE;\n fiber.lanes = lanes;\n var primaryChildInstance = {\n isHidden: false\n };\n fiber.stateNode = primaryChildInstance;\n return fiber;\n}\nfunction createFiberFromText(content, mode, lanes) {\n var fiber = createFiber(HostText, content, null, mode);\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n var fiber = createFiber(HostComponent, null, null, NoMode);\n fiber.elementType = 'DELETED';\n return fiber;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiber(DehydratedFragment, null, null, NoMode);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n var pendingProps = portal.children !== null ? portal.children : [];\n var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n fiber.lanes = lanes;\n fiber.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return fiber;\n} \n\nfunction assignFiberPropertiesInDEV(target, source) {\n if (target === null) {\n target = createFiber(IndeterminateComponent, null, null, NoMode);\n } \n\n\n target.tag = source.tag;\n target.key = source.key;\n target.elementType = source.elementType;\n target.type = source.type;\n target.stateNode = source.stateNode;\n target.return = source.return;\n target.child = source.child;\n target.sibling = source.sibling;\n target.index = source.index;\n target.ref = source.ref;\n target.pendingProps = source.pendingProps;\n target.memoizedProps = source.memoizedProps;\n target.updateQueue = source.updateQueue;\n target.memoizedState = source.memoizedState;\n target.dependencies = source.dependencies;\n target.mode = source.mode;\n target.flags = source.flags;\n target.subtreeFlags = source.subtreeFlags;\n target.deletions = source.deletions;\n target.lanes = source.lanes;\n target.childLanes = source.childLanes;\n target.alternate = source.alternate;\n\n {\n target.actualDuration = source.actualDuration;\n target.actualStartTime = source.actualStartTime;\n target.selfBaseDuration = source.selfBaseDuration;\n target.treeBaseDuration = source.treeBaseDuration;\n }\n\n target._debugSource = source._debugSource;\n target._debugOwner = source._debugOwner;\n target._debugNeedsRemount = source._debugNeedsRemount;\n target._debugHookTypes = source._debugHookTypes;\n return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.pendingChildren = null;\n this.current = null;\n this.pingCache = null;\n this.finishedWork = null;\n this.timeoutHandle = noTimeout;\n this.context = null;\n this.pendingContext = null;\n this.callbackNode = null;\n this.callbackPriority = NoLane;\n this.eventTimes = createLaneMap(NoLanes);\n this.expirationTimes = createLaneMap(NoTimestamp);\n this.pendingLanes = NoLanes;\n this.suspendedLanes = NoLanes;\n this.pingedLanes = NoLanes;\n this.expiredLanes = NoLanes;\n this.mutableReadLanes = NoLanes;\n this.finishedLanes = NoLanes;\n this.entangledLanes = NoLanes;\n this.entanglements = createLaneMap(NoLanes);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n\n {\n this.mutableSourceEagerHydrationData = null;\n }\n\n {\n this.effectDuration = 0;\n this.passiveEffectDuration = 0;\n }\n\n {\n this.memoizedUpdaters = new Set();\n var pendingUpdatersLaneMap = this.pendingUpdatersLaneMap = [];\n\n for (var _i = 0; _i < TotalLanes; _i++) {\n pendingUpdatersLaneMap.push(new Set());\n }\n }\n\n {\n switch (tag) {\n case ConcurrentRoot:\n this._debugRootType = hydrate ? 'hydrateRoot()' : 'createRoot()';\n break;\n\n case LegacyRoot:\n this._debugRootType = hydrate ? 'hydrate()' : 'render()';\n break;\n }\n }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, \nidentifierPrefix, onRecoverableError, transitionCallbacks) {\n var root = new FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError);\n\n\n var uninitializedFiber = createHostRootFiber(tag, isStrictMode);\n root.current = uninitializedFiber;\n uninitializedFiber.stateNode = root;\n\n {\n var _initialState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n uninitializedFiber.memoizedState = _initialState;\n }\n\n initializeUpdateQueue(uninitializedFiber);\n return root;\n}\n\nvar ReactVersion = '18.3.1';\n\nfunction createPortal(children, containerInfo, \nimplementation) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n {\n checkKeyStringCoercion(key);\n }\n\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: key == null ? null : '' + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n didWarnAboutNestedUpdates = false;\n didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) {\n return emptyContextObject;\n }\n\n var fiber = get(parentComponent);\n var parentContext = findCurrentUnmaskedContext(fiber);\n\n if (fiber.tag === ClassComponent) {\n var Component = fiber.type;\n\n if (isContextProvider(Component)) {\n return processChildContext(fiber, Component, parentContext);\n }\n }\n\n return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n {\n var fiber = get(component);\n\n if (fiber === undefined) {\n if (typeof component.render === 'function') {\n throw new Error('Unable to find node on an unmounted component.');\n } else {\n var keys = Object.keys(component).join(',');\n throw new Error(\"Argument appears to not be a ReactComponent. Keys: \" + keys);\n }\n }\n\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.mode & StrictLegacyMode) {\n var componentName = getComponentNameFromFiber(fiber) || 'Component';\n\n if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n didWarnAboutFindNodeInStrictMode[componentName] = true;\n var previousFiber = current;\n\n try {\n setCurrentFiber(hostFiber);\n\n if (fiber.mode & StrictLegacyMode) {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n } else {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n }\n } finally {\n if (previousFiber) {\n setCurrentFiber(previousFiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n\n return hostFiber.stateNode;\n }\n}\n\nfunction createContainer(containerInfo, tag, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks) {\n var hydrate = false;\n var initialChildren = null;\n return createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n}\nfunction createHydrationContainer(initialChildren, \ncallback, containerInfo, tag, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks) {\n var hydrate = true;\n var root = createFiberRoot(containerInfo, tag, hydrate, initialChildren, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError); \n\n root.context = getContextForSubtree(null); \n\n var current = root.current;\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(current);\n var update = createUpdate(eventTime, lane);\n update.callback = callback !== undefined && callback !== null ? callback : null;\n enqueueUpdate(current, update, lane);\n scheduleInitialHydrationOnRoot(root, lane, eventTime);\n return root;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n {\n onScheduleRoot(container, element);\n }\n\n var current$1 = container.current;\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(current$1);\n\n {\n markRenderScheduled(lane);\n }\n\n var context = getContextForSubtree(parentComponent);\n\n if (container.context === null) {\n container.context = context;\n } else {\n container.pendingContext = context;\n }\n\n {\n if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n didWarnAboutNestedUpdates = true;\n\n error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentNameFromFiber(current) || 'Unknown');\n }\n }\n\n var update = createUpdate(eventTime, lane); \n\n update.payload = {\n element: element\n };\n callback = callback === undefined ? null : callback;\n\n if (callback !== null) {\n {\n if (typeof callback !== 'function') {\n error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n }\n }\n\n update.callback = callback;\n }\n\n var root = enqueueUpdate(current$1, update, lane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, current$1, lane, eventTime);\n entangleTransitions(root, current$1, lane);\n }\n\n return lane;\n}\nfunction getPublicRootInstance(container) {\n var containerFiber = container.current;\n\n if (!containerFiber.child) {\n return null;\n }\n\n switch (containerFiber.child.tag) {\n case HostComponent:\n return getPublicInstance(containerFiber.child.stateNode);\n\n default:\n return containerFiber.child.stateNode;\n }\n}\nfunction attemptSynchronousHydration$1(fiber) {\n switch (fiber.tag) {\n case HostRoot:\n {\n var root = fiber.stateNode;\n\n if (isRootDehydrated(root)) {\n var lanes = getHighestPriorityPendingLanes(root);\n flushRoot(root, lanes);\n }\n\n break;\n }\n\n case SuspenseComponent:\n {\n flushSync(function () {\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(root, fiber, SyncLane, eventTime);\n }\n }); \n\n var retryLane = SyncLane;\n markRetryLaneIfNotHydrated(fiber, retryLane);\n break;\n }\n }\n}\n\nfunction markRetryLaneImpl(fiber, retryLane) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState !== null && suspenseState.dehydrated !== null) {\n suspenseState.retryLane = higherPriorityLane(suspenseState.retryLane, retryLane);\n }\n} \n\n\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n var alternate = fiber.alternate;\n\n if (alternate) {\n markRetryLaneImpl(alternate, retryLane);\n }\n}\nfunction attemptContinuousHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n return;\n }\n\n var lane = SelectiveHydrationLane;\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n\n if (root !== null) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n }\n\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n return;\n }\n\n var lane = requestUpdateLane(fiber);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n\n if (root !== null) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(root, fiber, lane, eventTime);\n }\n\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n return hostFiber.stateNode;\n}\n\nvar shouldErrorImpl = function (fiber) {\n return null;\n};\n\nfunction shouldError(fiber) {\n return shouldErrorImpl(fiber);\n}\n\nvar shouldSuspendImpl = function (fiber) {\n return false;\n};\n\nfunction shouldSuspend(fiber) {\n return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideHookStateDeletePath = null;\nvar overrideHookStateRenamePath = null;\nvar overrideProps = null;\nvar overridePropsDeletePath = null;\nvar overridePropsRenamePath = null;\nvar scheduleUpdate = null;\nvar setErrorHandler = null;\nvar setSuspenseHandler = null;\n\n{\n var copyWithDeleteImpl = function (obj, path, index) {\n var key = path[index];\n var updated = isArray(obj) ? obj.slice() : assign({}, obj);\n\n if (index + 1 === path.length) {\n if (isArray(updated)) {\n updated.splice(key, 1);\n } else {\n delete updated[key];\n }\n\n return updated;\n } \n\n\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n };\n\n var copyWithDelete = function (obj, path) {\n return copyWithDeleteImpl(obj, path, 0);\n };\n\n var copyWithRenameImpl = function (obj, oldPath, newPath, index) {\n var oldKey = oldPath[index];\n var updated = isArray(obj) ? obj.slice() : assign({}, obj);\n\n if (index + 1 === oldPath.length) {\n var newKey = newPath[index]; \n\n updated[newKey] = updated[oldKey];\n\n if (isArray(updated)) {\n updated.splice(oldKey, 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n updated[oldKey] = copyWithRenameImpl( \n obj[oldKey], oldPath, newPath, index + 1);\n }\n\n return updated;\n };\n\n var copyWithRename = function (obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length) {\n warn('copyWithRename() expects paths of the same length');\n\n return;\n } else {\n for (var i = 0; i < newPath.length - 1; i++) {\n if (oldPath[i] !== newPath[i]) {\n warn('copyWithRename() expects paths to be the same except for the deepest key');\n\n return;\n }\n }\n }\n\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n };\n\n var copyWithSetImpl = function (obj, path, index, value) {\n if (index >= path.length) {\n return value;\n }\n\n var key = path[index];\n var updated = isArray(obj) ? obj.slice() : assign({}, obj); \n\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n };\n\n var copyWithSet = function (obj, path, value) {\n return copyWithSetImpl(obj, path, 0, value);\n };\n\n var findHook = function (fiber, id) {\n var currentHook = fiber.memoizedState;\n\n while (currentHook !== null && id > 0) {\n currentHook = currentHook.next;\n id--;\n }\n\n return currentHook;\n }; \n\n\n overrideHookState = function (fiber, id, path, value) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithSet(hook.memoizedState, path, value);\n hook.memoizedState = newState;\n hook.baseState = newState; \n\n fiber.memoizedProps = assign({}, fiber.memoizedProps);\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n }\n };\n\n overrideHookStateDeletePath = function (fiber, id, path) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithDelete(hook.memoizedState, path);\n hook.memoizedState = newState;\n hook.baseState = newState; \n\n fiber.memoizedProps = assign({}, fiber.memoizedProps);\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n }\n };\n\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithRename(hook.memoizedState, oldPath, newPath);\n hook.memoizedState = newState;\n hook.baseState = newState; \n\n fiber.memoizedProps = assign({}, fiber.memoizedProps);\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n }\n }; \n\n\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n };\n\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDelete(fiber.memoizedProps, path);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n };\n\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n };\n\n scheduleUpdate = function (fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, SyncLane);\n\n if (root !== null) {\n scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp);\n }\n };\n\n setErrorHandler = function (newShouldErrorImpl) {\n shouldErrorImpl = newShouldErrorImpl;\n };\n\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n}\n\nfunction findHostInstanceByFiber(fiber) {\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n return hostFiber.stateNode;\n}\n\nfunction emptyFindFiberByHostInstance(instance) {\n return null;\n}\n\nfunction getCurrentFiberForDevTools() {\n return current;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n return injectInternals({\n bundleType: devToolsConfig.bundleType,\n version: devToolsConfig.version,\n rendererPackageName: devToolsConfig.rendererPackageName,\n rendererConfig: devToolsConfig.rendererConfig,\n overrideHookState: overrideHookState,\n overrideHookStateDeletePath: overrideHookStateDeletePath,\n overrideHookStateRenamePath: overrideHookStateRenamePath,\n overrideProps: overrideProps,\n overridePropsDeletePath: overridePropsDeletePath,\n overridePropsRenamePath: overridePropsRenamePath,\n setErrorHandler: setErrorHandler,\n setSuspenseHandler: setSuspenseHandler,\n scheduleUpdate: scheduleUpdate,\n currentDispatcherRef: ReactCurrentDispatcher,\n findHostInstanceByFiber: findHostInstanceByFiber,\n findFiberByHostInstance: findFiberByHostInstance || emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: findHostInstancesForRefresh ,\n scheduleRefresh: scheduleRefresh ,\n scheduleRoot: scheduleRoot ,\n setRefreshHandler: setRefreshHandler ,\n getCurrentFiber: getCurrentFiberForDevTools ,\n reconcilerVersion: ReactVersion\n });\n}\n\n\nvar defaultOnRecoverableError = typeof reportError === 'function' ? \nreportError : function (error) {\n console['error'](error);\n};\n\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\n\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render = function (children) {\n var root = this._internalRoot;\n\n if (root === null) {\n throw new Error('Cannot update an unmounted root.');\n }\n\n {\n if (typeof arguments[1] === 'function') {\n error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n } else if (isValidContainer(arguments[1])) {\n error('You passed a container to the second argument of root.render(...). ' + \"You don't need to pass it again since you already passed it to create the root.\");\n } else if (typeof arguments[1] !== 'undefined') {\n error('You passed a second argument to root.render(...) but it only accepts ' + 'one argument.');\n }\n\n var container = root.containerInfo;\n\n if (container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n }\n }\n }\n }\n\n updateContainer(children, root, null, null);\n};\n\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount = function () {\n {\n if (typeof arguments[0] === 'function') {\n error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n }\n\n var root = this._internalRoot;\n\n if (root !== null) {\n this._internalRoot = null;\n var container = root.containerInfo;\n\n {\n if (isAlreadyRendering()) {\n error('Attempted to synchronously unmount a root while React was already ' + 'rendering. React cannot finish unmounting the root until the ' + 'current render has completed, which may lead to a race condition.');\n }\n }\n\n flushSync(function () {\n updateContainer(null, root, null, null);\n });\n unmarkContainerAsRoot(container);\n }\n};\n\nfunction createRoot(container, options) {\n if (!isValidContainer(container)) {\n throw new Error('createRoot(...): Target container is not a DOM element.');\n }\n\n warnIfReactDOMContainerInDEV(container);\n var isStrictMode = false;\n var concurrentUpdatesByDefaultOverride = false;\n var identifierPrefix = '';\n var onRecoverableError = defaultOnRecoverableError;\n var transitionCallbacks = null;\n\n if (options !== null && options !== undefined) {\n {\n if (options.hydrate) {\n warn('hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.');\n } else {\n if (typeof options === 'object' && options !== null && options.$$typeof === REACT_ELEMENT_TYPE) {\n error('You passed a JSX element to createRoot. You probably meant to ' + 'call root.render instead. ' + 'Example usage:\\n\\n' + ' let root = createRoot(domContainer);\\n' + ' root.render(<App />);');\n }\n }\n }\n\n if (options.unstable_strictMode === true) {\n isStrictMode = true;\n }\n\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix;\n }\n\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError;\n }\n\n if (options.transitionCallbacks !== undefined) {\n transitionCallbacks = options.transitionCallbacks;\n }\n }\n\n var root = createContainer(container, ConcurrentRoot, null, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n markContainerAsRoot(root.current, container);\n var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n listenToAllSupportedEvents(rootContainerElement);\n return new ReactDOMRoot(root);\n}\n\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\n\nfunction scheduleHydration(target) {\n if (target) {\n queueExplicitHydrationTarget(target);\n }\n}\n\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = scheduleHydration;\nfunction hydrateRoot(container, initialChildren, options) {\n if (!isValidContainer(container)) {\n throw new Error('hydrateRoot(...): Target container is not a DOM element.');\n }\n\n warnIfReactDOMContainerInDEV(container);\n\n {\n if (initialChildren === undefined) {\n error('Must provide initial children as second argument to hydrateRoot. ' + 'Example usage: hydrateRoot(domContainer, <App />)');\n }\n } \n\n\n var hydrationCallbacks = options != null ? options : null; \n\n var mutableSources = options != null && options.hydratedSources || null;\n var isStrictMode = false;\n var concurrentUpdatesByDefaultOverride = false;\n var identifierPrefix = '';\n var onRecoverableError = defaultOnRecoverableError;\n\n if (options !== null && options !== undefined) {\n if (options.unstable_strictMode === true) {\n isStrictMode = true;\n }\n\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix;\n }\n\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError;\n }\n }\n\n var root = createHydrationContainer(initialChildren, null, container, ConcurrentRoot, hydrationCallbacks, isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError);\n markContainerAsRoot(root.current, container); \n\n listenToAllSupportedEvents(container);\n\n if (mutableSources) {\n for (var i = 0; i < mutableSources.length; i++) {\n var mutableSource = mutableSources[i];\n registerMutableSourceForHydration(root, mutableSource);\n }\n }\n\n return new ReactDOMHydrationRoot(root);\n}\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || !disableCommentsAsDOMContainers ));\n} \n\nfunction isValidContainerLegacy(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nfunction warnIfReactDOMContainerInDEV(container) {\n {\n if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n error('createRoot(): Creating roots directly with document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try using a container element created ' + 'for your app.');\n }\n\n if (isContainerMarkedAsRoot(container)) {\n if (container._reactRootContainer) {\n error('You are calling ReactDOMClient.createRoot() on a container that was previously ' + 'passed to ReactDOM.render(). This is not supported.');\n } else {\n error('You are calling ReactDOMClient.createRoot() on a container that ' + 'has already been passed to createRoot() before. Instead, call ' + 'root.render() on the existing root instead if you want to update it.');\n }\n }\n }\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\n\n{\n topLevelUpdateWarnings = function (container) {\n if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n }\n }\n }\n\n var isRootRenderedBySomeReact = !!container._reactRootContainer;\n var rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(rootEl && getInstanceFromNode(rootEl));\n\n if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n }\n\n if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n }\n };\n}\n\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOCUMENT_NODE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction noopOnRecoverableError() {\n}\n\nfunction legacyCreateRootFromDOMContainer(container, initialChildren, parentComponent, callback, isHydrationContainer) {\n if (isHydrationContainer) {\n if (typeof callback === 'function') {\n var originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(root);\n originalCallback.call(instance);\n };\n }\n\n var root = createHydrationContainer(initialChildren, callback, container, LegacyRoot, null, \n false, \n false, \n '', \n noopOnRecoverableError);\n container._reactRootContainer = root;\n markContainerAsRoot(root.current, container);\n var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n listenToAllSupportedEvents(rootContainerElement);\n flushSync();\n return root;\n } else {\n var rootSibling;\n\n while (rootSibling = container.lastChild) {\n container.removeChild(rootSibling);\n }\n\n if (typeof callback === 'function') {\n var _originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(_root);\n\n _originalCallback.call(instance);\n };\n }\n\n var _root = createContainer(container, LegacyRoot, null, \n false, \n false, \n '', \n noopOnRecoverableError);\n\n container._reactRootContainer = _root;\n markContainerAsRoot(_root.current, container);\n\n var _rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n\n listenToAllSupportedEvents(_rootContainerElement); \n\n flushSync(function () {\n updateContainer(initialChildren, _root, parentComponent, callback);\n });\n return _root;\n }\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n {\n if (callback !== null && typeof callback !== 'function') {\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n {\n topLevelUpdateWarnings(container);\n warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n }\n\n var maybeRoot = container._reactRootContainer;\n var root;\n\n if (!maybeRoot) {\n root = legacyCreateRootFromDOMContainer(container, children, parentComponent, callback, forceHydrate);\n } else {\n root = maybeRoot;\n\n if (typeof callback === 'function') {\n var originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(root);\n originalCallback.call(instance);\n };\n } \n\n\n updateContainer(children, root, parentComponent, callback);\n }\n\n return getPublicRootInstance(root);\n}\n\nvar didWarnAboutFindDOMNode = false;\nfunction findDOMNode(componentOrElement) {\n {\n if (!didWarnAboutFindDOMNode) {\n didWarnAboutFindDOMNode = true;\n\n error('findDOMNode is deprecated and will be removed in the next major ' + 'release. Instead, add a ref directly to the element you want ' + 'to reference. Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node');\n }\n\n var owner = ReactCurrentOwner$3.current;\n\n if (owner !== null && owner.stateNode !== null) {\n var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n if (!warnedAboutRefsInRender) {\n error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentNameFromType(owner.type) || 'A component');\n }\n\n owner.stateNode._warnedAboutRefsInRender = true;\n }\n }\n\n if (componentOrElement == null) {\n return null;\n }\n\n if (componentOrElement.nodeType === ELEMENT_NODE) {\n return componentOrElement;\n }\n\n {\n return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n }\n}\nfunction hydrate(element, container, callback) {\n {\n error('ReactDOM.hydrate is no longer supported in React 18. Use hydrateRoot ' + 'instead. Until you switch to the new API, your app will behave as ' + \"if it's running React 17. Learn \" + 'more: https://reactjs.org/link/switch-to-createroot');\n }\n\n if (!isValidContainerLegacy(container)) {\n throw new Error('Target container is not a DOM element.');\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. ' + 'Did you mean to call hydrateRoot(container, element)?');\n }\n } \n\n\n return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n {\n error('ReactDOM.render is no longer supported in React 18. Use createRoot ' + 'instead. Until you switch to the new API, your app will behave as ' + \"if it's running React 17. Learn \" + 'more: https://reactjs.org/link/switch-to-createroot');\n }\n\n if (!isValidContainerLegacy(container)) {\n throw new Error('Target container is not a DOM element.');\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n }\n }\n\n return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n {\n error('ReactDOM.unstable_renderSubtreeIntoContainer() is no longer supported ' + 'in React 18. Consider using a portal instead. Until you switch to ' + \"the createRoot API, your app will behave as if it's running React \" + '17. Learn more: https://reactjs.org/link/switch-to-createroot');\n }\n\n if (!isValidContainerLegacy(containerNode)) {\n throw new Error('Target container is not a DOM element.');\n }\n\n if (parentComponent == null || !has(parentComponent)) {\n throw new Error('parentComponent must be a valid React Component');\n }\n\n return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nvar didWarnAboutUnmountComponentAtNode = false;\nfunction unmountComponentAtNode(container) {\n {\n if (!didWarnAboutUnmountComponentAtNode) {\n didWarnAboutUnmountComponentAtNode = true;\n\n error('unmountComponentAtNode is deprecated and will be removed in the ' + 'next major release. Switch to the createRoot API. Learn ' + 'more: https://reactjs.org/link/switch-to-createroot');\n }\n }\n\n if (!isValidContainerLegacy(container)) {\n throw new Error('unmountComponentAtNode(...): Target container is not a DOM element.');\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n }\n }\n\n if (container._reactRootContainer) {\n {\n var rootEl = getReactRootElementInContainer(container);\n var renderedByDifferentReact = rootEl && !getInstanceFromNode(rootEl);\n\n if (renderedByDifferentReact) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n }\n } \n\n\n flushSync(function () {\n legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n container._reactRootContainer = null;\n unmarkContainerAsRoot(container);\n });\n }); \n\n return true;\n } else {\n {\n var _rootEl = getReactRootElementInContainer(container);\n\n var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode(_rootEl)); \n\n var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainerLegacy(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n if (hasNonRootReactChild) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n }\n }\n\n return false;\n }\n}\n\nsetAttemptSynchronousHydration(attemptSynchronousHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nsetGetCurrentUpdatePriority(getCurrentUpdatePriority);\nsetAttemptHydrationAtPriority(runWithPriority);\n\n{\n if (typeof Map !== 'function' || \n Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || \n Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates, flushSync);\n\nfunction createPortal$1(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!isValidContainer(container)) {\n throw new Error('Target container is not a DOM element.');\n } \n\n\n return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nvar Internals = {\n usingClientEntryPoint: false,\n Events: [getInstanceFromNode, getNodeFromInstance, getFiberCurrentPropsFromNode, enqueueStateRestore, restoreStateIfNeeded, batchedUpdates$1]\n};\n\nfunction createRoot$1(container, options) {\n {\n if (!Internals.usingClientEntryPoint && !false) {\n error('You are importing createRoot from \"react-dom\" which is not supported. ' + 'You should instead import it from \"react-dom/client\".');\n }\n }\n\n return createRoot(container, options);\n}\n\nfunction hydrateRoot$1(container, initialChildren, options) {\n {\n if (!Internals.usingClientEntryPoint && !false) {\n error('You are importing hydrateRoot from \"react-dom\" which is not supported. ' + 'You should instead import it from \"react-dom/client\".');\n }\n }\n\n return hydrateRoot(container, initialChildren, options);\n} \n\n\nfunction flushSync$1(fn) {\n {\n if (isAlreadyRendering()) {\n error('flushSync was called from inside a lifecycle method. React cannot ' + 'flush when React is already rendering. Consider moving this call to ' + 'a scheduler task or micro task.');\n }\n }\n\n return flushSync(fn);\n}\nvar foundDevTools = injectIntoDevTools({\n findFiberByHostInstance: getClosestInstanceFromNode,\n bundleType: 1 ,\n version: ReactVersion,\n rendererPackageName: 'react-dom'\n});\n\n{\n if (!foundDevTools && canUseDOM && window.top === window.self) {\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n var protocol = window.location.protocol; \n\n if (/^(https?|file):$/.test(protocol)) {\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://reactjs.org/link/react-devtools-faq' : ''), 'font-weight:bold');\n }\n }\n }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.createRoot = createRoot$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync$1;\nexports.hydrate = hydrate;\nexports.hydrateRoot = hydrateRoot$1;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n\n })();\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"_process\":1,\"react\":8,\"scheduler\":11}],3:[function(require,module,exports){\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n\n},{\"react\":8,\"scheduler\":11}],4:[function(require,module,exports){\n(function (process){(function (){\n'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"_process\":1,\"react-dom\":5}],5:[function(require,module,exports){\n(function (process){(function (){\n'use strict';\n\nfunction checkDCE() {\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('^_^');\n }\n try {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"./cjs/react-dom.development.js\":2,\"./cjs/react-dom.production.min.js\":3,\"_process\":1}],6:[function(require,module,exports){\n(function (process){(function (){\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var ReactVersion = '18.3.1';\n\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactCurrentDispatcher = {\n current: null\n};\n\nvar ReactCurrentBatchConfig = {\n transition: null\n};\n\nvar ReactCurrentActQueue = {\n current: null,\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false\n};\n\nvar ReactCurrentOwner = {\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; \n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; \n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } \n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n\nvar enableScopeAPI = false; \nvar enableCacheElement = false;\nvar enableTransitionTracing = false; \n\nvar enableLegacyHidden = false; \n\nvar enableDebugTracing = false; \n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } \n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); \n\n argsWithFormat.unshift('Warning: ' + format); \n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n\n\nvar ReactNoopUpdateQueue = {\n isMounted: function (publicInstance) {\n return false;\n },\n\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; \n\n this.refs = emptyObject; \n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n\nComponent.prototype.setState = function (partialState, callback) {\n if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; \n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; \n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar isArrayImpl = Array.isArray; \n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\nfunction typeName(value) {\n {\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} \n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); \n }\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} \n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} \n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: ref,\n props: props,\n _owner: owner\n };\n\n {\n element._store = {}; \n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); \n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); \n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\nfunction createElement(type, config, children) {\n var propName; \n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; \n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } \n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } \n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n\nfunction cloneElement(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n\n var propName; \n\n var props = assign({}, element.props); \n\n var key = element.key;\n var ref = element.ref; \n\n var self = element._self; \n\n var source = element._source; \n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n } \n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } \n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n\nfunction getElementKey(element, index) {\n if (typeof element === 'object' && element !== null && element.key != null) {\n {\n checkKeyStringCoercion(element.key);\n }\n\n return escape('' + element.key);\n } \n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); \n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n\n mappedChild = cloneAndReplaceKey(mappedChild, \n escapedPrefix + ( \n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? \n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; \n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n }\n }\n\n return subtreeCount;\n}\n\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; \n });\n return n;\n}\n\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); \n }, forEachContext);\n}\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error('React.Children.only expected to receive a single React element child.');\n }\n\n return children;\n}\n\nfunction createContext(defaultValue) {\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null,\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; \n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); \n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); \n\n thenable.then(function (moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function (error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n\n if (payload._status === Uninitialized) {\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n\n {\n if (moduleObject === undefined) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + \n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n }\n }\n\n {\n if (!('default' in moduleObject)) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + \n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n var defaultProps;\n var propTypes; \n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; \n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; \n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; \n\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } \n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || \n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; \n\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n {\n if (dispatcher === null) {\n error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n }\n } \n\n\n return dispatcher;\n}\nfunction useContext(Context) {\n var dispatcher = resolveDispatcher();\n\n {\n if (Context._context !== undefined) {\n var realContext = Context._context; \n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nfunction useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; \n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; \n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; \n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } \n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; \n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; \n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n }; \n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n if (sample && control && typeof sample.stack === 'string') {\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n if (sampleLines[s] !== controlLines[c]) {\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; \n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); \n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } \n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } \n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; \n\n try {\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; \n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || \n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; \n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); \n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); \n\n if (element == null) {\n return element;\n } \n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } \n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nfunction startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n var requireString = ('require' + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; \n\n enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n\n if (typeof MessageChannel === 'undefined') {\n error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n }\n }\n }\n\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n\n return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n {\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n\n if (ReactCurrentActQueue.current === null) {\n ReactCurrentActQueue.current = [];\n }\n\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var result;\n\n try {\n ReactCurrentActQueue.isBatchingLegacy = true;\n result = callback(); \n\n if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n flushActQueue(queue);\n }\n }\n } catch (error) {\n popActScope(prevActScopeDepth);\n throw error;\n } finally {\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n }\n\n if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n var thenableResult = result; \n\n var wasAwaited = false;\n var thenable = {\n then: function (resolve, reject) {\n wasAwaited = true;\n thenableResult.then(function (returnValue) {\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }, function (error) {\n popActScope(prevActScopeDepth);\n reject(error);\n });\n }\n };\n\n {\n if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n Promise.resolve().then(function () {}).then(function () {\n if (!wasAwaited) {\n didWarnNoAwaitAct = true;\n\n error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n }\n });\n }\n }\n\n return thenable;\n } else {\n var returnValue = result; \n\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n var _queue = ReactCurrentActQueue.current;\n\n if (_queue !== null) {\n flushActQueue(_queue);\n ReactCurrentActQueue.current = null;\n } \n\n\n var _thenable = {\n then: function (resolve, reject) {\n if (ReactCurrentActQueue.current === null) {\n ReactCurrentActQueue.current = [];\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }\n };\n return _thenable;\n } else {\n var _thenable2 = {\n then: function (resolve, reject) {\n resolve(returnValue);\n }\n };\n return _thenable2;\n }\n }\n }\n}\n\nfunction popActScope(prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n }\n\n actScopeDepth = prevActScopeDepth;\n }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n if (queue.length === 0) {\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n } else {\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n }\n });\n } catch (error) {\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n {\n if (!isFlushing) {\n isFlushing = true;\n var i = 0;\n\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(true);\n } while (callback !== null);\n }\n\n queue.length = 0;\n } catch (error) {\n queue = queue.slice(i + 1);\n throw error;\n } finally {\n isFlushing = false;\n }\n }\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.act = act;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n\n })();\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"_process\":1}],7:[function(require,module,exports){\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n\n},{}],8:[function(require,module,exports){\n(function (process){(function (){\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"./cjs/react.development.js\":6,\"./cjs/react.production.min.js\":7,\"_process\":1}],9:[function(require,module,exports){\n(function (process,setImmediate){(function (){\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var enableSchedulerDebugging = false;\nvar enableProfiling = false;\nvar frameYieldMs = 5;\n\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n return heap.length === 0 ? null : heap[0];\n}\nfunction pop(heap) {\n if (heap.length === 0) {\n return null;\n }\n\n var first = heap[0];\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n}\n\nfunction siftUp(heap, node, i) {\n var index = i;\n\n while (index > 0) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (compare(parent, node) > 0) {\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n return;\n }\n }\n}\n\nfunction siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n var halfLength = length >>> 1;\n\n while (index < halfLength) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; \n\n if (compare(left, node) < 0) {\n if (rightIndex < length && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (rightIndex < length && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n return;\n }\n }\n}\n\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n} \n\n\nvar maxSigned31BitInt = 1073741823; \n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; \n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; \n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; \n\nvar taskQueue = [];\nvar timerQueue = []; \n\nvar taskIdCounter = 1; \nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; \n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false; \n\nvar localSetTimeout = typeof setTimeout === 'function' ? setTimeout : null;\nvar localClearTimeout = typeof clearTimeout === 'function' ? clearTimeout : null;\nvar localSetImmediate = typeof setImmediate !== 'undefined' ? setImmediate : null; \n\nvar isInputPending = typeof navigator !== 'undefined' && navigator.scheduling !== undefined && navigator.scheduling.isInputPending !== undefined ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null;\n\nfunction advanceTimers(currentTime) {\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n return;\n }\n\n timer = peek(timerQueue);\n }\n}\n\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !(enableSchedulerDebugging )) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } \n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n priorityLevel = NormalPriority;\n break;\n\n default:\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n if (isHostTimeoutScheduled) {\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } \n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n}\n\nfunction unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n\n\n task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n}\n\nvar isMessageLoopRunning = false;\nvar scheduledHostCallback = null;\nvar taskTimeoutID = -1; \n\nvar frameInterval = frameYieldMs;\nvar startTime = -1;\n\nfunction shouldYieldToHost() {\n var timeElapsed = exports.unstable_now() - startTime;\n\n if (timeElapsed < frameInterval) {\n return false;\n } \n\n\n return true;\n}\n\nfunction requestPaint() {\n\n}\n\nfunction forceFrameRate(fps) {\n if (fps < 0 || fps > 125) {\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n frameInterval = Math.floor(1000 / fps);\n } else {\n frameInterval = frameYieldMs;\n }\n}\n\nvar performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); \n\n startTime = currentTime;\n var hasTimeRemaining = true; \n\n var hasMoreWork = true;\n\n try {\n hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n } finally {\n if (hasMoreWork) {\n schedulePerformWorkUntilDeadline();\n } else {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n }\n }\n } else {\n isMessageLoopRunning = false;\n } \n};\n\nvar schedulePerformWorkUntilDeadline;\n\nif (typeof localSetImmediate === 'function') {\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\n} else if (typeof MessageChannel !== 'undefined') {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else {\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\n}\n\nfunction requestHostCallback(callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n schedulePerformWorkUntilDeadline();\n }\n}\n\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\n\nfunction cancelHostTimeout() {\n localClearTimeout(taskTimeoutID);\n taskTimeoutID = -1;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling = null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_forceFrameRate = forceFrameRate;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = unstable_wrapCallback;\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n\n })();\n}\n\n}).call(this)}).call(this,require('_process'),require(\"timers\").setImmediate)\n\n},{\"_process\":1,\"timers\":12}],10:[function(require,module,exports){\n(function (setImmediate){(function (){\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n\n}).call(this)}).call(this,require(\"timers\").setImmediate)\n\n},{\"timers\":12}],11:[function(require,module,exports){\n(function (process){(function (){\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n\n}).call(this)}).call(this,require('_process'))\n\n},{\"./cjs/scheduler.development.js\":9,\"./cjs/scheduler.production.min.js\":10,\"_process\":1}],12:[function(require,module,exports){\n(function (setImmediate,clearImmediate){(function (){\nvar nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n}).call(this)}).call(this,require(\"timers\").setImmediate,require(\"timers\").clearImmediate)\n\n},{\"process/browser.js\":1,\"timers\":12}],13:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.callApi = callApi;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction callApi(_x, _x2) {\n return _callApi.apply(this, arguments);\n} \nfunction _callApi() {\n _callApi = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(operation, table) {\n var data,\n method,\n apiData,\n url,\n queryParams,\n _queryParams,\n response,\n errorData,\n errorMessage,\n modal,\n contentType,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n data = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};\n method = _args.length > 3 && _args[3] !== undefined ? _args[3] : 'POST';\n console.log(\"operation\", operation);\n apiData = generateApiData(operation, table, data);\n console.log(\"apiData\", apiData);\n\n if (operation === 'update') {\n method = 'PUT';\n } else if (operation === 'delete') {\n method = 'DELETE';\n } else if (operation === 'read') {\n method = 'GET'; \n }\n\n url = \"\".concat(baseUrl, \"/api/data\");\n if (method === 'GET') {\n queryParams = new URLSearchParams(_objectSpread({\n tableName: table\n }, data)); \n url += \"?\".concat(queryParams.toString());\n } else if (method === 'DELETE') {\n _queryParams = new URLSearchParams(_objectSpread({\n tableName: table\n }, data));\n url += \"?\".concat(_queryParams.toString());\n }\n _context.prev = 8;\n _context.next = 11;\n return fetch(url, {\n method: method,\n headers: {\n 'Content-Type': 'application/json'\n },\n body: method === 'GET' || method === 'DELETE' ? null : JSON.stringify(apiData) \n });\n case 11:\n response = _context.sent;\n if (response.ok) {\n _context.next = 21;\n break;\n }\n console.log(\"CallApi response\", response);\n _context.next = 16;\n return response.json()[\"catch\"](function () {\n return null;\n });\n case 16:\n errorData = _context.sent;\n errorMessage = (errorData === null || errorData === void 0 ? void 0 : errorData.message) || response.statusText;\n modal = document.getElementById('course-modal');\n if (modal) {\n modal.style.display = 'none';\n }\n alert(errorData.message);\n case 21:\n contentType = response.headers.get('Content-Type');\n console.log(\"CallApi contentType\", contentType);\n if (!(contentType && contentType.includes('application/json'))) {\n _context.next = 28;\n break;\n }\n console.log(\"CallApi Response inside if\", response.json);\n return _context.abrupt(\"return\", response.json());\n case 28:\n console.log(\"CallApi Response text inside else\", response.text());\n return _context.abrupt(\"return\", response);\n case 30:\n _context.next = 36;\n break;\n case 32:\n _context.prev = 32;\n _context.t0 = _context[\"catch\"](8);\n console.error('API call failed:', _context.t0); \n throw _context.t0;\n case 36:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[8, 32]]);\n }));\n return _callApi.apply(this, arguments);\n}\nfunction generateApiData(operation, table) {\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var primaryKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'id';\n var apiData = {\n operation: operation,\n tableName: table,\n data: {}\n };\n if (operation === 'create') {\n apiData.data.columns = [];\n for (var key in data) {\n apiData.data.columns.push({\n name: key,\n value: data[key]\n });\n }\n } else if (operation === 'update') {\n if (data.hasOwnProperty(primaryKey)) {\n apiData.data[primaryKey] = data[primaryKey]; \n }\n apiData.data.columns = [];\n for (var _key in data) {\n if (_key !== primaryKey) {\n apiData.data.columns.push({\n name: _key,\n value: data[_key]\n });\n }\n }\n } else if (operation === 'delete') {\n if (data.hasOwnProperty(primaryKey)) {\n apiData.data[primaryKey] = data[primaryKey];\n }\n } else if (operation === 'read') {\n if (data.hasOwnProperty('where')) {\n apiData.data.where = data.where;\n } else if (data.hasOwnProperty(primaryKey)) {\n apiData.data[primaryKey] = data[primaryKey];\n }\n }\n return apiData;\n}\n\n\n\n\n\nfunction fetchCourses() {\n return _fetchCourses.apply(this, arguments);\n} \nfunction _fetchCourses() {\n _fetchCourses = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2() {\n var response, courses;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return fetch('/api/courses');\n case 3:\n response = _context2.sent;\n _context2.next = 6;\n return response.json();\n case 6:\n courses = _context2.sent;\n return _context2.abrupt(\"return\", courses);\n case 10:\n _context2.prev = 10;\n _context2.t0 = _context2[\"catch\"](0);\n console.error('Error fetching courses:', _context2.t0);\n return _context2.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 10]]);\n }));\n return _fetchCourses.apply(this, arguments);\n}\nfunction addCourse(_x3) {\n return _addCourse.apply(this, arguments);\n} \nfunction _addCourse() {\n _addCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee3(courseData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return fetch('/api/courses', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(courseData)\n });\n case 3:\n response = _context3.sent;\n _context3.next = 9;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.error('Error adding course:', _context3.t0);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n return _addCourse.apply(this, arguments);\n}\nfunction updateCourse(_x4, _x5) {\n return _updateCourse.apply(this, arguments);\n} \nfunction _updateCourse() {\n _updateCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee4(courseId, courseData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/courses/\").concat(courseId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(courseData)\n });\n case 3:\n response = _context4.sent;\n _context4.next = 9;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.error('Error updating course:', _context4.t0);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n return _updateCourse.apply(this, arguments);\n}\nfunction deleteCourse(_x6) {\n return _deleteCourse.apply(this, arguments);\n} \nfunction _deleteCourse() {\n _deleteCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee5(courseId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/courses/\").concat(courseId), {\n method: 'DELETE'\n });\n case 3:\n response = _context5.sent;\n _context5.next = 9;\n break;\n case 6:\n _context5.prev = 6;\n _context5.t0 = _context5[\"catch\"](0);\n console.error('Error deleting course:', _context5.t0);\n case 9:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 6]]);\n }));\n return _deleteCourse.apply(this, arguments);\n}\nfunction fetchLessons(_x7) {\n return _fetchLessons.apply(this, arguments);\n} \nfunction _fetchLessons() {\n _fetchLessons = _asyncToGenerator(_regeneratorRuntime().mark(function _callee6(courseId) {\n var response, lessons;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n _context6.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/lessons/\").concat(courseId));\n case 3:\n response = _context6.sent;\n _context6.next = 6;\n return response.json();\n case 6:\n lessons = _context6.sent;\n return _context6.abrupt(\"return\", lessons);\n case 10:\n _context6.prev = 10;\n _context6.t0 = _context6[\"catch\"](0);\n console.error('Error fetching lessons:', _context6.t0);\n return _context6.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 10]]);\n }));\n return _fetchLessons.apply(this, arguments);\n}\nfunction addLesson(_x8) {\n return _addLesson.apply(this, arguments);\n} \nfunction _addLesson() {\n _addLesson = _asyncToGenerator(_regeneratorRuntime().mark(function _callee7(lessonData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n _context7.next = 3;\n return fetch('/api/lessons', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(lessonData)\n });\n case 3:\n response = _context7.sent;\n _context7.next = 9;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n console.error('Error adding lesson:', _context7.t0);\n case 9:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 6]]);\n }));\n return _addLesson.apply(this, arguments);\n}\nfunction updateLesson(_x9, _x10) {\n return _updateLesson.apply(this, arguments);\n} \nfunction _updateLesson() {\n _updateLesson = _asyncToGenerator(_regeneratorRuntime().mark(function _callee8(lessonId, lessonData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n _context8.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/lessons/\").concat(lessonId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(lessonData)\n });\n case 3:\n response = _context8.sent;\n _context8.next = 9;\n break;\n case 6:\n _context8.prev = 6;\n _context8.t0 = _context8[\"catch\"](0);\n console.error('Error updating lesson:', _context8.t0);\n case 9:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 6]]);\n }));\n return _updateLesson.apply(this, arguments);\n}\nfunction deleteLesson(_x11) {\n return _deleteLesson.apply(this, arguments);\n} \nfunction _deleteLesson() {\n _deleteLesson = _asyncToGenerator(_regeneratorRuntime().mark(function _callee9(lessonId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n _context9.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/lessons/\").concat(lessonId), {\n method: 'DELETE'\n });\n case 3:\n response = _context9.sent;\n _context9.next = 9;\n break;\n case 6:\n _context9.prev = 6;\n _context9.t0 = _context9[\"catch\"](0);\n console.error('Error deleting lesson:', _context9.t0);\n case 9:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 6]]);\n }));\n return _deleteLesson.apply(this, arguments);\n}\nfunction fetchUnits(_x12) {\n return _fetchUnits.apply(this, arguments);\n} \nfunction _fetchUnits() {\n _fetchUnits = _asyncToGenerator(_regeneratorRuntime().mark(function _callee10(courseId) {\n var response, units;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n _context10.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/units/\").concat(courseId));\n case 3:\n response = _context10.sent;\n _context10.next = 6;\n return response.json();\n case 6:\n units = _context10.sent;\n return _context10.abrupt(\"return\", units);\n case 10:\n _context10.prev = 10;\n _context10.t0 = _context10[\"catch\"](0);\n console.error('Error fetching units:', _context10.t0);\n return _context10.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 10]]);\n }));\n return _fetchUnits.apply(this, arguments);\n}\nfunction addUnit(_x13) {\n return _addUnit.apply(this, arguments);\n} \nfunction _addUnit() {\n _addUnit = _asyncToGenerator(_regeneratorRuntime().mark(function _callee11(unitData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n _context11.next = 3;\n return fetch('/api/units', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(unitData)\n });\n case 3:\n response = _context11.sent;\n _context11.next = 9;\n break;\n case 6:\n _context11.prev = 6;\n _context11.t0 = _context11[\"catch\"](0);\n console.error('Error adding unit:', _context11.t0);\n case 9:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 6]]);\n }));\n return _addUnit.apply(this, arguments);\n}\nfunction updateUnit(_x14, _x15) {\n return _updateUnit.apply(this, arguments);\n} \nfunction _updateUnit() {\n _updateUnit = _asyncToGenerator(_regeneratorRuntime().mark(function _callee12(unitId, unitData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n _context12.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/units/\").concat(unitId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(unitData)\n });\n case 3:\n response = _context12.sent;\n _context12.next = 9;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.error('Error updating unit:', _context12.t0);\n case 9:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n return _updateUnit.apply(this, arguments);\n}\nfunction deleteUnit(_x16) {\n return _deleteUnit.apply(this, arguments);\n} \nfunction _deleteUnit() {\n _deleteUnit = _asyncToGenerator(_regeneratorRuntime().mark(function _callee13(unitId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n _context13.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/units/\").concat(unitId), {\n method: 'DELETE'\n });\n case 3:\n response = _context13.sent;\n _context13.next = 9;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.error('Error deleting unit:', _context13.t0);\n case 9:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n return _deleteUnit.apply(this, arguments);\n}\nfunction fetchUser(_x17) {\n return _fetchUser.apply(this, arguments);\n} \nfunction _fetchUser() {\n _fetchUser = _asyncToGenerator(_regeneratorRuntime().mark(function _callee14(userId) {\n var response, user;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n _context14.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/users/\").concat(userId));\n case 3:\n response = _context14.sent;\n _context14.next = 6;\n return response.json();\n case 6:\n user = _context14.sent;\n return _context14.abrupt(\"return\", user);\n case 10:\n _context14.prev = 10;\n _context14.t0 = _context14[\"catch\"](0);\n console.error('Error fetching user:', _context14.t0);\n return _context14.abrupt(\"return\", null);\n case 14:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 10]]);\n }));\n return _fetchUser.apply(this, arguments);\n}\nfunction addUser(_x18) {\n return _addUser.apply(this, arguments);\n} \nfunction _addUser() {\n _addUser = _asyncToGenerator(_regeneratorRuntime().mark(function _callee15(userData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n _context15.next = 3;\n return fetch('/api/users', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(userData)\n });\n case 3:\n response = _context15.sent;\n _context15.next = 9;\n break;\n case 6:\n _context15.prev = 6;\n _context15.t0 = _context15[\"catch\"](0);\n console.error('Error adding user:', _context15.t0);\n case 9:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 6]]);\n }));\n return _addUser.apply(this, arguments);\n}\nfunction fetchClasses(_x19) {\n return _fetchClasses.apply(this, arguments);\n} \nfunction _fetchClasses() {\n _fetchClasses = _asyncToGenerator(_regeneratorRuntime().mark(function _callee16(userId) {\n var response, classes;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n _context16.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classes/\").concat(userId));\n case 3:\n response = _context16.sent;\n _context16.next = 6;\n return response.json();\n case 6:\n classes = _context16.sent;\n return _context16.abrupt(\"return\", classes);\n case 10:\n _context16.prev = 10;\n _context16.t0 = _context16[\"catch\"](0);\n console.error('Error fetching classes:', _context16.t0);\n return _context16.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 10]]);\n }));\n return _fetchClasses.apply(this, arguments);\n}\nfunction addClass(_x20) {\n return _addClass.apply(this, arguments);\n} \nfunction _addClass() {\n _addClass = _asyncToGenerator(_regeneratorRuntime().mark(function _callee17(classData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n _context17.next = 3;\n return fetch('/api/classes', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(classData)\n });\n case 3:\n response = _context17.sent;\n _context17.next = 9;\n break;\n case 6:\n _context17.prev = 6;\n _context17.t0 = _context17[\"catch\"](0);\n console.error('Error adding class:', _context17.t0);\n case 9:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 6]]);\n }));\n return _addClass.apply(this, arguments);\n}\nfunction fetchContent(_x21, _x22) {\n return _fetchContent.apply(this, arguments);\n} \nfunction _fetchContent() {\n _fetchContent = _asyncToGenerator(_regeneratorRuntime().mark(function _callee18(lessonId, classId) {\n var response, content;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n _context18.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/content/\").concat(lessonId, \"/\").concat(classId));\n case 3:\n response = _context18.sent;\n _context18.next = 6;\n return response.json();\n case 6:\n content = _context18.sent;\n return _context18.abrupt(\"return\", content);\n case 10:\n _context18.prev = 10;\n _context18.t0 = _context18[\"catch\"](0);\n console.error('Error fetching content:', _context18.t0);\n return _context18.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 10]]);\n }));\n return _fetchContent.apply(this, arguments);\n}\nfunction addContent(_x23) {\n return _addContent.apply(this, arguments);\n} \nfunction _addContent() {\n _addContent = _asyncToGenerator(_regeneratorRuntime().mark(function _callee19(contentData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n _context19.next = 3;\n return fetch('/api/content', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(contentData)\n });\n case 3:\n response = _context19.sent;\n _context19.next = 9;\n break;\n case 6:\n _context19.prev = 6;\n _context19.t0 = _context19[\"catch\"](0);\n console.error('Error adding content:', _context19.t0);\n case 9:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 6]]);\n }));\n return _addContent.apply(this, arguments);\n}\nfunction fetchClassCourseSettings(_x24) {\n return _fetchClassCourseSettings.apply(this, arguments);\n} \nfunction _fetchClassCourseSettings() {\n _fetchClassCourseSettings = _asyncToGenerator(_regeneratorRuntime().mark(function _callee20(classId) {\n var response, settings;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n _context20.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classcoursesettings/\").concat(classId));\n case 3:\n response = _context20.sent;\n _context20.next = 6;\n return response.json();\n case 6:\n settings = _context20.sent;\n return _context20.abrupt(\"return\", settings);\n case 10:\n _context20.prev = 10;\n _context20.t0 = _context20[\"catch\"](0);\n console.error('Error fetching class course settings:', _context20.t0);\n return _context20.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 10]]);\n }));\n return _fetchClassCourseSettings.apply(this, arguments);\n}\nfunction addClassCourseSetting(_x25) {\n return _addClassCourseSetting.apply(this, arguments);\n} \nfunction _addClassCourseSetting() {\n _addClassCourseSetting = _asyncToGenerator(_regeneratorRuntime().mark(function _callee21(settingData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n _context21.next = 3;\n return fetch('/api/classcoursesettings', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(settingData)\n });\n case 3:\n response = _context21.sent;\n _context21.next = 9;\n break;\n case 6:\n _context21.prev = 6;\n _context21.t0 = _context21[\"catch\"](0);\n console.error('Error adding class course setting:', _context21.t0);\n case 9:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 6]]);\n }));\n return _addClassCourseSetting.apply(this, arguments);\n}\nfunction fetchOrganizations() {\n return _fetchOrganizations.apply(this, arguments);\n} \nfunction _fetchOrganizations() {\n _fetchOrganizations = _asyncToGenerator(_regeneratorRuntime().mark(function _callee22() {\n var response, organizations;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n _context22.next = 3;\n return fetch('/api/organizations');\n case 3:\n response = _context22.sent;\n _context22.next = 6;\n return response.json();\n case 6:\n organizations = _context22.sent;\n return _context22.abrupt(\"return\", organizations);\n case 10:\n _context22.prev = 10;\n _context22.t0 = _context22[\"catch\"](0);\n console.error('Error fetching organizations:', _context22.t0);\n return _context22.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 10]]);\n }));\n return _fetchOrganizations.apply(this, arguments);\n}\nfunction addOrganization(_x26) {\n return _addOrganization.apply(this, arguments);\n} \nfunction _addOrganization() {\n _addOrganization = _asyncToGenerator(_regeneratorRuntime().mark(function _callee23(organizationData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n _context23.next = 3;\n return fetch('/api/organizations', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(organizationData)\n });\n case 3:\n response = _context23.sent;\n _context23.next = 9;\n break;\n case 6:\n _context23.prev = 6;\n _context23.t0 = _context23[\"catch\"](0);\n console.error('Error adding organization:', _context23.t0);\n case 9:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 6]]);\n }));\n return _addOrganization.apply(this, arguments);\n}\nfunction fetchSchools(_x27) {\n return _fetchSchools.apply(this, arguments);\n} \nfunction _fetchSchools() {\n _fetchSchools = _asyncToGenerator(_regeneratorRuntime().mark(function _callee24(organizationId) {\n var response, schools;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n _context24.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/schools/\").concat(organizationId));\n case 3:\n response = _context24.sent;\n _context24.next = 6;\n return response.json();\n case 6:\n schools = _context24.sent;\n return _context24.abrupt(\"return\", schools);\n case 10:\n _context24.prev = 10;\n _context24.t0 = _context24[\"catch\"](0);\n console.error('Error fetching schools:', _context24.t0);\n return _context24.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 10]]);\n }));\n return _fetchSchools.apply(this, arguments);\n}\nfunction addSchool(_x28) {\n return _addSchool.apply(this, arguments);\n} \nfunction _addSchool() {\n _addSchool = _asyncToGenerator(_regeneratorRuntime().mark(function _callee25(schoolData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n _context25.next = 3;\n return fetch('/api/schools', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(schoolData)\n });\n case 3:\n response = _context25.sent;\n _context25.next = 9;\n break;\n case 6:\n _context25.prev = 6;\n _context25.t0 = _context25[\"catch\"](0);\n console.error('Error adding school:', _context25.t0);\n case 9:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 6]]);\n }));\n return _addSchool.apply(this, arguments);\n}\nfunction fetchTeacherCourses(_x29) {\n return _fetchTeacherCourses.apply(this, arguments);\n} \nfunction _fetchTeacherCourses() {\n _fetchTeacherCourses = _asyncToGenerator(_regeneratorRuntime().mark(function _callee26(userId) {\n var response, courses;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n _context26.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/teachercourses/\").concat(userId));\n case 3:\n response = _context26.sent;\n _context26.next = 6;\n return response.json();\n case 6:\n courses = _context26.sent;\n return _context26.abrupt(\"return\", courses);\n case 10:\n _context26.prev = 10;\n _context26.t0 = _context26[\"catch\"](0);\n console.error('Error fetching teacher courses:', _context26.t0);\n return _context26.abrupt(\"return\", []);\n case 14:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 10]]);\n }));\n return _fetchTeacherCourses.apply(this, arguments);\n}\nfunction addTeacherCourse(_x30) {\n return _addTeacherCourse.apply(this, arguments);\n} \nfunction _addTeacherCourse() {\n _addTeacherCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee27(teacherCourseData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n _context27.next = 3;\n return fetch('/api/teachercourses', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(teacherCourseData)\n });\n case 3:\n response = _context27.sent;\n _context27.next = 9;\n break;\n case 6:\n _context27.prev = 6;\n _context27.t0 = _context27[\"catch\"](0);\n console.error('Error adding teacher course:', _context27.t0);\n case 9:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 6]]);\n }));\n return _addTeacherCourse.apply(this, arguments);\n}\nfunction updateTeacherCourse(_x31, _x32) {\n return _updateTeacherCourse.apply(this, arguments);\n} \nfunction _updateTeacherCourse() {\n _updateTeacherCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee28(teacherCourseId, teacherCourseData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/teachercourses/\").concat(teacherCourseId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(teacherCourseData)\n });\n case 3:\n response = _context28.sent;\n _context28.next = 9;\n break;\n case 6:\n _context28.prev = 6;\n _context28.t0 = _context28[\"catch\"](0);\n console.error('Error updating teacher course:', _context28.t0);\n case 9:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 6]]);\n }));\n return _updateTeacherCourse.apply(this, arguments);\n}\nfunction deleteTeacherCourse(_x33) {\n return _deleteTeacherCourse.apply(this, arguments);\n} \nfunction _deleteTeacherCourse() {\n _deleteTeacherCourse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee29(teacherCourseId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n _context29.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/teachercourses/\").concat(teacherCourseId), {\n method: 'DELETE'\n });\n case 3:\n response = _context29.sent;\n _context29.next = 9;\n break;\n case 6:\n _context29.prev = 6;\n _context29.t0 = _context29[\"catch\"](0);\n console.error('Error deleting teacher course:', _context29.t0);\n case 9:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 6]]);\n }));\n return _deleteTeacherCourse.apply(this, arguments);\n}\nfunction updateUser(_x34, _x35) {\n return _updateUser.apply(this, arguments);\n}\nfunction _updateUser() {\n _updateUser = _asyncToGenerator(_regeneratorRuntime().mark(function _callee30(userId, userData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n _context30.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/users/\").concat(userId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(userData)\n });\n case 3:\n response = _context30.sent;\n _context30.next = 9;\n break;\n case 6:\n _context30.prev = 6;\n _context30.t0 = _context30[\"catch\"](0);\n console.error('Error updating user:', _context30.t0);\n case 9:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 6]]);\n }));\n return _updateUser.apply(this, arguments);\n}\nfunction deleteUser(_x36) {\n return _deleteUser.apply(this, arguments);\n} \nfunction _deleteUser() {\n _deleteUser = _asyncToGenerator(_regeneratorRuntime().mark(function _callee31(userId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n _context31.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/users/\").concat(userId), {\n method: 'DELETE'\n });\n case 3:\n response = _context31.sent;\n _context31.next = 9;\n break;\n case 6:\n _context31.prev = 6;\n _context31.t0 = _context31[\"catch\"](0);\n console.error('Error deleting user:', _context31.t0);\n case 9:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 6]]);\n }));\n return _deleteUser.apply(this, arguments);\n}\nfunction updateClass(_x37, _x38) {\n return _updateClass.apply(this, arguments);\n}\nfunction _updateClass() {\n _updateClass = _asyncToGenerator(_regeneratorRuntime().mark(function _callee32(classId, classData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.prev = 0;\n _context32.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classes/\").concat(classId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(classData)\n });\n case 3:\n response = _context32.sent;\n _context32.next = 9;\n break;\n case 6:\n _context32.prev = 6;\n _context32.t0 = _context32[\"catch\"](0);\n console.error('Error updating class:', _context32.t0);\n case 9:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32, null, [[0, 6]]);\n }));\n return _updateClass.apply(this, arguments);\n}\nfunction deleteClass(_x39) {\n return _deleteClass.apply(this, arguments);\n} \nfunction _deleteClass() {\n _deleteClass = _asyncToGenerator(_regeneratorRuntime().mark(function _callee33(classId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n _context33.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classes/\").concat(classId), {\n method: 'DELETE'\n });\n case 3:\n response = _context33.sent;\n _context33.next = 9;\n break;\n case 6:\n _context33.prev = 6;\n _context33.t0 = _context33[\"catch\"](0);\n console.error('Error deleting class:', _context33.t0);\n case 9:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 6]]);\n }));\n return _deleteClass.apply(this, arguments);\n}\nfunction updateContent(_x40, _x41) {\n return _updateContent.apply(this, arguments);\n}\nfunction _updateContent() {\n _updateContent = _asyncToGenerator(_regeneratorRuntime().mark(function _callee34(contentId, contentData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n _context34.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/content/\").concat(contentId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(contentData)\n });\n case 3:\n response = _context34.sent;\n _context34.next = 9;\n break;\n case 6:\n _context34.prev = 6;\n _context34.t0 = _context34[\"catch\"](0);\n console.error('Error updating content:', _context34.t0);\n case 9:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 6]]);\n }));\n return _updateContent.apply(this, arguments);\n}\nfunction deleteContent(_x42) {\n return _deleteContent.apply(this, arguments);\n} \nfunction _deleteContent() {\n _deleteContent = _asyncToGenerator(_regeneratorRuntime().mark(function _callee35(contentId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/content/\").concat(contentId), {\n method: 'DELETE'\n });\n case 3:\n response = _context35.sent;\n _context35.next = 9;\n break;\n case 6:\n _context35.prev = 6;\n _context35.t0 = _context35[\"catch\"](0);\n console.error('Error deleting content:', _context35.t0);\n case 9:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 6]]);\n }));\n return _deleteContent.apply(this, arguments);\n}\nfunction updateClassCourseSetting(_x43, _x44) {\n return _updateClassCourseSetting.apply(this, arguments);\n}\nfunction _updateClassCourseSetting() {\n _updateClassCourseSetting = _asyncToGenerator(_regeneratorRuntime().mark(function _callee36(classCourseSettingsId, settingData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classcoursesettings/\").concat(classCourseSettingsId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(settingData)\n });\n case 3:\n response = _context36.sent;\n _context36.next = 9;\n break;\n case 6:\n _context36.prev = 6;\n _context36.t0 = _context36[\"catch\"](0);\n console.error('Error updating class course setting:', _context36.t0);\n case 9:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 6]]);\n }));\n return _updateClassCourseSetting.apply(this, arguments);\n}\nfunction deleteClassCourseSetting(_x45) {\n return _deleteClassCourseSetting.apply(this, arguments);\n} \nfunction _deleteClassCourseSetting() {\n _deleteClassCourseSetting = _asyncToGenerator(_regeneratorRuntime().mark(function _callee37(classCourseSettingsId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/classcoursesettings/\").concat(classCourseSettingsId), {\n method: 'DELETE'\n });\n case 3:\n response = _context37.sent;\n _context37.next = 9;\n break;\n case 6:\n _context37.prev = 6;\n _context37.t0 = _context37[\"catch\"](0);\n console.error('Error deleting class course setting:', _context37.t0);\n case 9:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 6]]);\n }));\n return _deleteClassCourseSetting.apply(this, arguments);\n}\nfunction updateOrganization(_x46, _x47) {\n return _updateOrganization.apply(this, arguments);\n}\nfunction _updateOrganization() {\n _updateOrganization = _asyncToGenerator(_regeneratorRuntime().mark(function _callee38(organizationId, organizationData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee38$(_context38) {\n while (1) switch (_context38.prev = _context38.next) {\n case 0:\n _context38.prev = 0;\n _context38.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/organizations/\").concat(organizationId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(organizationData)\n });\n case 3:\n response = _context38.sent;\n _context38.next = 9;\n break;\n case 6:\n _context38.prev = 6;\n _context38.t0 = _context38[\"catch\"](0);\n console.error('Error updating organization:', _context38.t0);\n case 9:\n case \"end\":\n return _context38.stop();\n }\n }, _callee38, null, [[0, 6]]);\n }));\n return _updateOrganization.apply(this, arguments);\n}\nfunction deleteOrganization(_x48) {\n return _deleteOrganization.apply(this, arguments);\n} \nfunction _deleteOrganization() {\n _deleteOrganization = _asyncToGenerator(_regeneratorRuntime().mark(function _callee39(organizationId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee39$(_context39) {\n while (1) switch (_context39.prev = _context39.next) {\n case 0:\n _context39.prev = 0;\n _context39.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/organizations/\").concat(organizationId), {\n method: 'DELETE'\n });\n case 3:\n response = _context39.sent;\n _context39.next = 9;\n break;\n case 6:\n _context39.prev = 6;\n _context39.t0 = _context39[\"catch\"](0);\n console.error('Error deleting organization:', _context39.t0);\n case 9:\n case \"end\":\n return _context39.stop();\n }\n }, _callee39, null, [[0, 6]]);\n }));\n return _deleteOrganization.apply(this, arguments);\n}\nfunction updateSchool(_x49, _x50) {\n return _updateSchool.apply(this, arguments);\n}\nfunction _updateSchool() {\n _updateSchool = _asyncToGenerator(_regeneratorRuntime().mark(function _callee40(schoolId, schoolData) {\n var response;\n return _regeneratorRuntime().wrap(function _callee40$(_context40) {\n while (1) switch (_context40.prev = _context40.next) {\n case 0:\n _context40.prev = 0;\n _context40.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/schools/\").concat(schoolId), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(schoolData)\n });\n case 3:\n response = _context40.sent;\n _context40.next = 9;\n break;\n case 6:\n _context40.prev = 6;\n _context40.t0 = _context40[\"catch\"](0);\n console.error('Error updating school:', _context40.t0);\n case 9:\n case \"end\":\n return _context40.stop();\n }\n }, _callee40, null, [[0, 6]]);\n }));\n return _updateSchool.apply(this, arguments);\n}\nfunction deleteSchool(_x51) {\n return _deleteSchool.apply(this, arguments);\n}\nfunction _deleteSchool() {\n _deleteSchool = _asyncToGenerator(_regeneratorRuntime().mark(function _callee41(schoolId) {\n var response;\n return _regeneratorRuntime().wrap(function _callee41$(_context41) {\n while (1) switch (_context41.prev = _context41.next) {\n case 0:\n _context41.prev = 0;\n _context41.next = 3;\n return fetch(\"\".concat(baseUrl, \"/api/schools/\").concat(schoolId), {\n method: 'DELETE'\n });\n case 3:\n response = _context41.sent;\n _context41.next = 9;\n break;\n case 6:\n _context41.prev = 6;\n _context41.t0 = _context41[\"catch\"](0);\n console.error('Error deleting school:', _context41.t0);\n case 9:\n case \"end\":\n return _context41.stop();\n }\n }, _callee41, null, [[0, 6]]);\n }));\n return _deleteSchool.apply(this, arguments);\n}\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAIGeneratedDiscussionQuestions = createAIGeneratedDiscussionQuestions;\nexports.createAIGeneratedPersonalization = createAIGeneratedPersonalization;\nexports.createAIGeneratedSummaries = createAIGeneratedSummaries;\nexports.createApocryphaPseudepigraphaStudy = createApocryphaPseudepigraphaStudy;\nexports.createApplicativeReading = createApplicativeReading;\nexports.createAudioReading = createAudioReading;\nexports.createBibleArtJournaling = createBibleArtJournaling;\nexports.createBibleBasedBookClubs = createBibleBasedBookClubs;\nexports.createBibleBasedCreativeWriting = createBibleBasedCreativeWriting;\nexports.createBibleBasedFinancialStewardship = createBibleBasedFinancialStewardship;\nexports.createBibleBasedLeadershipDevelopment = createBibleBasedLeadershipDevelopment;\nexports.createBibleBasedMarriageEnrichment = createBibleBasedMarriageEnrichment;\nexports.createBibleBasedMusicPlaylists = createBibleBasedMusicPlaylists;\nexports.createBibleBasedParentingFamilyLife = createBibleBasedParentingFamilyLife;\nexports.createBibleBasedPodcastsSermons = createBibleBasedPodcastsSermons;\nexports.createBibleJournalingPrompts = createBibleJournalingPrompts;\nexports.createBibleStoryFormat = createBibleStoryFormat;\nexports.createBibleStudyGames = createBibleStudyGames;\nexports.createBiblicalArchaeologyStudy = createBiblicalArchaeologyStudy;\nexports.createBiblicalLanguagesStudy = createBiblicalLanguagesStudy;\nexports.createBiographicalStudy = createBiographicalStudy;\nexports.createBookByBookStudy = createBookByBookStudy;\nexports.createBookOverview = createBookOverview;\nexports.createCharacterFocusedReading = createCharacterFocusedReading;\nexports.createCharacterStudy = createCharacterStudy;\nexports.createChronologicalReading = createChronologicalReading;\nexports.createCommentaryAidedReading = createCommentaryAidedReading;\nexports.createComparativeTranslationReading = createComparativeTranslationReading;\nexports.createConcordanceStudy = createConcordanceStudy;\nexports.createCreativeContentReading = createCreativeContentReading;\nexports.createCreativeExpression = createCreativeExpression;\nexports.createCulturalSocialReading = createCulturalSocialReading;\nexports.createDevotionalReading = createDevotionalReading;\nexports.createDictionaryAidedReading = createDictionaryAidedReading;\nexports.createDiscussion = createDiscussion;\nexports.createEncouragementFocusedReading = createEncouragementFocusedReading;\nexports.createEnvironmentalStewardshipStudy = createEnvironmentalStewardshipStudy;\nexports.createExegeticalStudy = createExegeticalStudy;\nexports.createFigurativeLanguageStudy = createFigurativeLanguageStudy;\nexports.createGamifiedBibleQuizzes = createGamifiedBibleQuizzes;\nexports.createGenreFocusedReading = createGenreFocusedReading;\nexports.createGeographicalReading = createGeographicalReading;\nexports.createGroupBibleProjects = createGroupBibleProjects;\nexports.createGroupDiscussionGuides = createGroupDiscussionGuides;\nexports.createGroupStudy = createGroupStudy;\nexports.createGuidedReading = createGuidedReading;\nexports.createHermeneuticsStudy = createHermeneuticsStudy;\nexports.createHistoricalContextStudy = createHistoricalContextStudy;\nexports.createHistoricalCriticism = createHistoricalCriticism;\nexports.createHistoricalReading = createHistoricalReading;\nexports.createHopeFocusedReading = createHopeFocusedReading;\nexports.createImageGenerationReading = createImageGenerationReading;\nexports.createInductiveStudy = createInductiveStudy;\nexports.createInteractiveActivity = createInteractiveActivity;\nexports.createInteractiveReading = createInteractiveReading;\nexports.createInterfaithDialogueStudy = createInterfaithDialogueStudy;\nexports.createInvitationFocusedReading = createInvitationFocusedReading;\nexports.createLectioDivina = createLectioDivina;\nexports.createLinguisticReading = createLinguisticReading;\nexports.createLiteraryCriticism = createLiteraryCriticism;\nexports.createLiteraryReading = createLiteraryReading;\nexports.createLocationFocusedReading = createLocationFocusedReading;\nexports.createLoveFocusedReading = createLoveFocusedReading;\nexports.createMapAidedReading = createMapAidedReading;\nexports.createMeditativeReadingWithMusic = createMeditativeReadingWithMusic;\nexports.createMemoryVersePractice = createMemoryVersePractice;\nexports.createMultilingualReading = createMultilingualReading;\nexports.createNarrativeReading = createNarrativeReading;\nexports.createOnlineGroupReading = createOnlineGroupReading;\nexports.createParallelReading = createParallelReading;\nexports.createPersonalStudy = createPersonalStudy;\nexports.createPersonalizedStudyPlans = createPersonalizedStudyPlans;\nexports.createPilgrimageAndTravel = createPilgrimageAndTravel;\nexports.createPrayerJournaling = createPrayerJournaling;\nexports.createPrayerMeditationPrompts = createPrayerMeditationPrompts;\nexports.createPresentationBasedReading = createPresentationBasedReading;\nexports.createPromiseFocusedReading = createPromiseFocusedReading;\nexports.createQuestionDrivenReading = createQuestionDrivenReading;\nexports.createReadingInNature = createReadingInNature;\nexports.createReadingWithArt = createReadingWithArt;\nexports.createReadingWithAudioCommentary = createReadingWithAudioCommentary;\nexports.createReadingWithInstantTranslation = createReadingWithInstantTranslation;\nexports.createReadingWithPrayer = createReadingWithPrayer;\nexports.createSOAPMethod = createSOAPMethod;\nexports.createScriptureMemorySystems = createScriptureMemorySystems;\nexports.createScriptureWriting = createScriptureWriting;\nexports.createServiceAndOutreach = createServiceAndOutreach;\nexports.createSilentReading = createSilentReading;\nexports.createSocialCriticism = createSocialCriticism;\nexports.createSocialJusticeAdvocacyStudy = createSocialJusticeAdvocacyStudy;\nexports.createSocialSharingCommunityBuilding = createSocialSharingCommunityBuilding;\nexports.createStorytelling = createStorytelling;\nexports.createSymbolicReading = createSymbolicReading;\nexports.createTechnologyEnhanced = createTechnologyEnhanced;\nexports.createThematicStudy = createThematicStudy;\nexports.createTheologicalReading = createTheologicalReading;\nexports.createTimePeriodFocusedReading = createTimePeriodFocusedReading;\nexports.createTopicalReading = createTopicalReading;\nexports.createTopicalStudy = createTopicalStudy;\nexports.createTypologyStudy = createTypologyStudy;\nexports.createVerseByVerseStudy = createVerseByVerseStudy;\nexports.createVerseMapping = createVerseMapping;\nexports.createWordFocusedReading = createWordFocusedReading;\nexports.createWordStudy = createWordStudy;\n\nfunction createStorytelling(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var storyHeading = document.createElement('h3');\n storyHeading.textContent = 'Story';\n contentArea.appendChild(storyHeading);\n var storyElement = document.createElement(\"p\");\n storyElement.textContent = contentData.story;\n storyElement.classList.add(\"paragraph\");\n contentArea.appendChild(storyElement);\n\n if (contentData.keyVerses && contentData.keyVerses.length > 0) {\n var keyVersesHeading = document.createElement('h3');\n keyVersesHeading.textContent = 'Key Verses';\n contentArea.appendChild(keyVersesHeading);\n displayList(contentArea, null, contentData.keyVerses, 'ul');\n }\n\n if (contentData.characters && contentData.characters.length > 0) {\n var charactersHeading = document.createElement('h3');\n charactersHeading.textContent = 'Characters';\n contentArea.appendChild(charactersHeading);\n displayList(contentArea, null, contentData.characters, 'ul');\n }\n\n var mainMessageHeading = document.createElement('h3');\n mainMessageHeading.textContent = 'Main Message';\n contentArea.appendChild(mainMessageHeading);\n var mainMessageParagraph = document.createElement(\"p\");\n mainMessageParagraph.textContent = contentData.mainMessage;\n mainMessageParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(mainMessageParagraph);\n\n if (contentData.interactiveElements && contentData.interactiveElements.length > 0) {\n if (contentData.interactiveElements.some(function (element) {\n return element.type === 'question';\n })) {\n var questionsHeading = document.createElement('h3');\n questionsHeading.textContent = 'Questions for Reflection';\n contentArea.appendChild(questionsHeading);\n\n var questions = contentData.interactiveElements.filter(function (element) {\n return element.type === 'question';\n });\n displayList(contentArea, null, questions.map(function (q) {\n return q.content;\n }), 'ol');\n }\n\n if (contentData.interactiveElements.some(function (element) {\n return element.type === 'activity';\n })) {\n var activityHeading = document.createElement('h3');\n activityHeading.textContent = 'Activity';\n contentArea.appendChild(activityHeading);\n\n var activities = contentData.interactiveElements.filter(function (element) {\n return element.type === 'activity';\n });\n activities.forEach(function (activity) {\n var activityParagraph = document.createElement('p');\n activityParagraph.textContent = activity.content;\n activityParagraph.classList.add('paragraph');\n contentArea.appendChild(activityParagraph);\n });\n }\n }\n}\n\nfunction createDiscussion(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Discussion Questions', contentData.questions, 'ol');\n\n displayKeyValueList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayKeyValueList(contentArea, 'Themes', contentData.themes);\n}\n\nfunction createInteractiveActivity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var activityTypeHeading = document.createElement(\"h3\");\n activityTypeHeading.textContent = \"Activity Type: \".concat(contentData.activityType);\n contentArea.appendChild(activityTypeHeading);\n\n if (contentData.instructions) {\n var instructionsContainer = document.createElement('div');\n instructionsContainer.classList.add('instructions-container');\n var instructionsHeading = document.createElement('h3');\n instructionsHeading.textContent = 'Instructions';\n instructionsContainer.appendChild(instructionsHeading);\n if (Array.isArray(contentData.instructions)) {\n var instructionsList = document.createElement('ul');\n instructionsList.classList.add('interactive-instructions');\n contentData.instructions.forEach(function (instruction) {\n var listItem = document.createElement('li');\n var checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n listItem.appendChild(checkbox);\n listItem.appendChild(document.createTextNode(instruction));\n instructionsList.appendChild(listItem);\n });\n instructionsContainer.appendChild(instructionsList);\n } else {\n var instructionsParagraph = document.createElement('p');\n instructionsParagraph.textContent = contentData.instructions;\n instructionsParagraph.classList.add('paragraph');\n instructionsContainer.appendChild(instructionsParagraph);\n }\n contentArea.appendChild(instructionsContainer);\n }\n\n displayList(contentArea, \"Materials Needed\", contentData.materials);\n\n displayList(contentArea, \"Relevant Bible Verses\", contentData.bibleVerses);\n\n displayList(contentArea, \"Themes\", contentData.themes);\n\n if (contentData.questions || contentData.prompts) {\n var questionsOrPrompts = contentData.questions || contentData.prompts;\n questionsOrPrompts.forEach(function (questionOrPrompt, index) {\n var questionContainer = document.createElement('div');\n questionContainer.classList.add('question-container');\n var questionHeading = document.createElement('h4');\n questionHeading.textContent = \"Question/Prompt \".concat(index + 1);\n questionContainer.appendChild(questionHeading);\n var questionParagraph = document.createElement('p');\n questionParagraph.textContent = questionOrPrompt;\n questionParagraph.classList.add('paragraph');\n questionContainer.appendChild(questionParagraph);\n\n var answerArea = document.createElement('textarea');\n answerArea.placeholder = 'Your response...';\n answerArea.classList.add('answer-area');\n questionContainer.appendChild(answerArea);\n contentArea.appendChild(questionContainer);\n });\n }\n}\nfunction createTechnologyEnhanced(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Recommended Resources', contentData.resources, 'ul', function (item) {\n var resourceDiv = document.createElement('div');\n resourceDiv.classList.add('resource'); \n\n var titleHeading = document.createElement('h4');\n titleHeading.textContent = \"\".concat(item.title, \" (\").concat(item.resourceType, \")\");\n resourceDiv.appendChild(titleHeading);\n var descriptionParagraph = document.createElement('p');\n descriptionParagraph.textContent = item.description;\n descriptionParagraph.classList.add('paragraph');\n resourceDiv.appendChild(descriptionParagraph);\n var link = document.createElement('a');\n link.href = item.link;\n link.target = '_blank';\n link.textContent = item.link;\n link.classList.add('link');\n resourceDiv.appendChild(link);\n return resourceDiv;\n });\n}\n\nfunction createPersonalStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayKeyValueList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n displayList(contentArea, 'Journaling Prompts', contentData.journalingPrompts, 'ul');\n\n displayList(contentArea, 'Prayer Prompts', contentData.prayerPrompts, 'ul');\n}\n\nfunction createGroupStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Icebreaker Questions', contentData.icebreakerQuestions, 'ol');\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n displayList(contentArea, 'Group Activities', contentData.groupActivities, 'ul');\n\n displayList(contentArea, 'Further Study Suggestions', contentData.furtherStudy, 'ul');\n\n displayKeyValueList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayKeyValueList(contentArea, 'Themes', contentData.themes);\n}\n\nfunction createCreativeExpression(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var activityTitleHeading = document.createElement('h3');\n activityTitleHeading.textContent = \"Activity Title: \".concat(contentData.activityTitle);\n contentArea.appendChild(activityTitleHeading);\n var activityTypeHeading = document.createElement('h4');\n activityTypeHeading.textContent = \"Activity Type: \".concat(contentData.activityType);\n contentArea.appendChild(activityTypeHeading);\n\n displayList(contentArea, \"Instructions\", [contentData.instructions]); \n\n displayList(contentArea, \"Materials\", contentData.materials);\n\n displayList(contentArea, \"Bible Verses\", contentData.bibleVerses);\n\n displayList(contentArea, \"Themes\", contentData.themes);\n}\n\nfunction createServiceAndOutreach(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.activities.forEach(function (activity, index) {\n var activityHeading = document.createElement('h3');\n activityHeading.textContent = \"Activity \".concat(index + 1);\n contentArea.appendChild(activityHeading);\n\n displayList(contentArea, 'Instructions', [activity.instructions]);\n\n displayList(contentArea, 'Potential Impact', [activity.potentialImpact]);\n\n displayList(contentArea, 'Relevant Bible Verses', activity.bibleVerses);\n\n displayList(contentArea, 'Themes', activity.themes);\n });\n}\n\nfunction createTheologicalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n var definitions = document.createElement('p');\n definitions.textContent = \"Definitions: \".concat(contentData.definitions);\n definitions.classList.add('paragraph');\n contentArea.appendChild(definitions);\n\n if (contentData.historicalContext) {\n var historicalContext = document.createElement('p');\n historicalContext.textContent = \"Historical Context: \".concat(contentData.historicalContext);\n historicalContext.classList.add('paragraph');\n contentArea.appendChild(historicalContext);\n }\n\n if (contentData.discussionQuestions && contentData.discussionQuestions.length > 0) {\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n }\n}\n\nfunction createHistoricalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var timePeriod = document.createElement('p');\n timePeriod.textContent = \"Time Period: \".concat(contentData.timePeriod);\n timePeriod.classList.add('paragraph');\n contentArea.appendChild(timePeriod);\n\n if (contentData.customs && contentData.customs.length > 0) {\n displayList(contentArea, 'Customs', contentData.customs);\n }\n\n if (contentData.keyFigures && contentData.keyFigures.length > 0) {\n displayList(contentArea, 'Key Figures', contentData.keyFigures);\n }\n\n if (contentData.contextualInfluence) {\n var contextualInfluence = document.createElement('p');\n contextualInfluence.textContent = \"Contextual Influence: \".concat(contentData.contextualInfluence);\n contextualInfluence.classList.add('paragraph');\n contentArea.appendChild(contextualInfluence);\n }\n}\n\nfunction createLiteraryReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.literaryStyles && contentData.literaryStyles.length > 0) {\n displayList(contentArea, 'Literary Styles', contentData.literaryStyles);\n }\n\n if (contentData.metaphors && contentData.metaphors.length > 0) {\n displayKeyValueList(contentArea, 'Metaphors', contentData.metaphors);\n }\n\n if (contentData.symbolism && contentData.symbolism.length > 0) {\n displayKeyValueList(contentArea, 'Symbolism', contentData.symbolism);\n }\n\n if (contentData.otherDevices && contentData.otherDevices.length > 0) {\n displayKeyValueList(contentArea, 'Other Literary Devices', contentData.otherDevices);\n }\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n displayList(contentArea, 'Themes', contentData.themes);\n}\n\nfunction createApplicativeReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayKeyValueList(contentArea, 'Applications', contentData.applications);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n displayList(contentArea, 'Action Steps', contentData.actionSteps, 'ol');\n}\n\nfunction createSilentReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageElement = document.createElement('p');\n passageElement.textContent = contentData.passage;\n passageElement.classList.add('paragraph');\n contentArea.appendChild(passageElement);\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts);\n\n displayList(contentArea, 'Questions to Consider', contentData.questionsToConsider, 'ol');\n\n if (contentData.prayerSuggestions && contentData.prayerSuggestions.length > 0) {\n displayList(contentArea, 'Prayer Suggestions', contentData.prayerSuggestions);\n }\n\n if (contentData.meditationSuggestions && contentData.meditationSuggestions.length > 0) {\n displayList(contentArea, 'Meditation Suggestions', contentData.meditationSuggestions);\n }\n}\n\nfunction createTopicalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayKeyValueList(contentArea, 'Subtopics and Verses', contentData.subtopics);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n}\n\nfunction createNarrativeReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Plot Points', contentData.plotPoints);\n\n displayKeyValueList(contentArea, 'Characters and Their Roles', contentData.characters);\n\n var overarchingMessage = document.createElement('p');\n overarchingMessage.textContent = \"Overarching Message: \".concat(contentData.overarchingMessage);\n overarchingMessage.classList.add('paragraph');\n contentArea.appendChild(overarchingMessage);\n\n displayList(contentArea, 'Connection Questions', contentData.connectionQuestions, 'ol');\n}\n\nfunction createSymbolicReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n\n displayKeyValueList(contentArea, 'Symbols and Their Meanings', contentData.symbols);\n\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createMeditativeReadingWithMusic(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Recommended Music or Genre', contentData.musicSuggestions);\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts, 'ol');\n}\n\nfunction createReadingWithPrayer(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Prayer Before Reading', [contentData.prayerBeforeReading]);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Prayer After Reading', [contentData.prayerAfterReading]);\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts, 'ol');\n}\n\nfunction createMultilingualReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.originalLanguagePassage) {\n displayList(contentArea, 'Original Passage', [contentData.originalLanguagePassage]);\n }\n\n if (contentData.translations.length < 2) {\n displayErrorMessage(\"Error: At least 2 translations are required for Multilingual Reading.\");\n return;\n }\n\n contentData.translations.forEach(function (translation) {\n displayList(contentArea, \"Translation (\".concat(translation.language, \")\"), [translation.passage]);\n });\n\n displayList(contentArea, 'Comparison Prompts', contentData.comparisonPrompts, 'ol');\n\n displayList(contentArea, 'Insights or Observations', contentData.insights, 'ul');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createReadingWithArt(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Instructions', [contentData.instructions]);\n\n displayList(contentArea, 'Prompts', contentData.prompts, 'ul');\n\n displayList(contentArea, 'Techniques', contentData.techniques, 'ul');\n}\n\nfunction createReadingInNature(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Suggested Natural Settings', contentData.settingSuggestions, 'ul');\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts, 'ol');\n}\n\nfunction createCharacterFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var nameHeading = document.createElement('h3');\n nameHeading.textContent = \"Character: \".concat(contentData.characterName);\n contentArea.appendChild(nameHeading);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n contentData.timeline.forEach(function (event) {\n displayList(contentArea, event.event, [event.description]);\n });\n\n displayList(contentArea, 'Strengths', contentData.strengths);\n displayList(contentArea, 'Weaknesses', contentData.weaknesses);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\nfunction createTimePeriodFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var timePeriodHeading = document.createElement('h3');\n timePeriodHeading.textContent = \"Time Period: \".concat(contentData.timePeriod);\n contentArea.appendChild(timePeriodHeading);\n\n displayList(contentArea, 'Key Events', contentData.keyEvents, 'ul');\n\n displayList(contentArea, 'Cultural Context', [contentData.culturalContext]);\n\n displayList(contentArea, 'Political Context', [contentData.politicalContext]);\n\n displayList(contentArea, 'Social Context', [contentData.socialContext]);\n\n displayKeyValueList(contentArea, 'Relevant Passages', contentData.relevantPassages);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createGenreFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var genreHeading = document.createElement('h3');\n genreHeading.textContent = \"Genre: \".concat(contentData.genre || 'Not specified');\n contentArea.appendChild(genreHeading);\n\n if (contentData.specificBookOrPassage) {\n var passageElement = document.createElement('p');\n passageElement.textContent = \"Passage/Book: \".concat(contentData.specificBookOrPassage);\n passageElement.classList.add('paragraph');\n contentArea.appendChild(passageElement);\n }\n\n if (contentData.analysis) {\n var analysisContainer = document.createElement('div'); \n var analysisHeading = document.createElement('h3');\n analysisHeading.textContent = 'Analysis';\n analysisContainer.appendChild(analysisHeading);\n if (Array.isArray(contentData.analysis)) {\n contentData.analysis.forEach(function (point) {\n var analysisParagraph = document.createElement('p');\n analysisParagraph.textContent = point;\n analysisParagraph.classList.add('paragraph');\n analysisContainer.appendChild(analysisParagraph);\n });\n } else {\n var analysisParagraph = document.createElement('p');\n analysisParagraph.textContent = contentData.analysis;\n analysisParagraph.classList.add('paragraph');\n analysisContainer.appendChild(analysisParagraph);\n }\n contentArea.appendChild(analysisContainer);\n }\n\n displayList(contentArea, 'Characteristics of the Genre', contentData.characteristics, 'ul');\n\n contentData.otherExamples.forEach(function (example) {\n displayList(contentArea, example.genre, example.examples, 'ul');\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createLocationFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var locationHeading = document.createElement('h3');\n locationHeading.textContent = \"Location: \".concat(contentData.location);\n contentArea.appendChild(locationHeading);\n\n displayKeyValueList(contentArea, 'Relevant Passages', contentData.relevantPassages);\n\n displayList(contentArea, 'Significance of the Location', [contentData.significance]);\n\n contentData.keyLocations.forEach(function (locationData) {\n var locationContainer = document.createElement('div');\n locationContainer.classList.add('location');\n var locationName = document.createElement('h4');\n locationName.textContent = locationData.location;\n locationContainer.appendChild(locationName);\n var significance = document.createElement('p');\n significance.textContent = \"Significance: \".concat(locationData.significance);\n significance.classList.add('paragraph');\n locationContainer.appendChild(significance);\n\n if (locationData.mapOrImage) {\n var visualElement = document.createElement(locationData.mapOrImage.type === 'image' ? 'img' : 'iframe');\n visualElement.src = locationData.mapOrImage.url;\n if (locationData.mapOrImage.type === 'image') {\n visualElement.alt = 'Visual representation of the location';\n }\n visualElement.classList.add('visual');\n locationContainer.appendChild(visualElement);\n }\n contentArea.appendChild(locationContainer);\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createWordFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var wordHeading = document.createElement('h3');\n wordHeading.textContent = \"Word: \".concat(contentData.word);\n contentArea.appendChild(wordHeading);\n\n if (contentData.originalLanguage && contentData.originalMeaning) {\n var originalInfo = document.createElement('p');\n originalInfo.textContent = \"Original Language (\".concat(contentData.originalLanguage, \"): \").concat(contentData.originalMeaning);\n originalInfo.classList.add('paragraph');\n contentArea.appendChild(originalInfo);\n }\n\n displayList(contentArea, 'Definition & Synonyms', [contentData.definition], 'ul');\n if (contentData.synonyms && contentData.synonyms.length > 0) {\n displayList(contentArea, 'Synonyms', contentData.synonyms, 'ul');\n }\n\n displayKeyValueList(contentArea, 'Relevant Passages', contentData.relevantPassages);\n\n displayList(contentArea, 'Significance or Implications', [contentData.significance]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createDictionaryAidedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayKeyValueList(contentArea, 'Unfamiliar Words & Definitions', contentData.wordDefinitions);\n\n displayList(contentArea, 'Insights Gained', contentData.insights, 'ul');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createMapAidedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.keyLocations.forEach(function (locationData) {\n var locationContainer = document.createElement('div');\n locationContainer.classList.add('location');\n var locationName = document.createElement('h4');\n locationName.textContent = locationData.location;\n locationContainer.appendChild(locationName);\n var significance = document.createElement('p');\n significance.textContent = \"Significance: \".concat(locationData.significance);\n significance.classList.add('paragraph');\n locationContainer.appendChild(significance);\n\n if (locationData.mapOrImage) {\n var visualElement = document.createElement(locationData.mapOrImage.type === 'image' ? 'img' : 'iframe');\n visualElement.src = locationData.mapOrImage.url;\n if (locationData.mapOrImage.type === 'image') {\n visualElement.alt = 'Visual representation of the location';\n }\n visualElement.classList.add('visual');\n locationContainer.appendChild(visualElement);\n }\n contentArea.appendChild(locationContainer);\n });\n\n contentData.journeys.forEach(function (journeyData) {\n var journeyContainer = document.createElement('div');\n journeyContainer.classList.add('journey');\n var journeyDescription = document.createElement('p');\n journeyDescription.textContent = journeyData.description;\n journeyDescription.classList.add('paragraph');\n journeyContainer.appendChild(journeyDescription);\n var significance = document.createElement('p');\n significance.textContent = \"Significance: \".concat(journeyData.significance);\n significance.classList.add('paragraph');\n journeyContainer.appendChild(significance);\n\n if (journeyData.mapOrImage) {\n var visualElement = document.createElement(journeyData.mapOrImage.type === 'image' ? 'img' : 'iframe');\n visualElement.src = journeyData.mapOrImage.url;\n if (journeyData.mapOrImage.type === 'image') {\n visualElement.alt = 'Visual representation of the journey';\n }\n visualElement.classList.add('visual');\n journeyContainer.appendChild(visualElement);\n }\n contentArea.appendChild(journeyContainer);\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createCommentaryAidedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Commentary Excerpts', contentData.commentaryExcerpts.map(function (excerpt) {\n return \"\".concat(excerpt.source, \": \").concat(excerpt.excerpt);\n }), 'ul');\n\n displayList(contentArea, 'Insights Gained', contentData.insights, 'ul');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createGuidedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.guidingQuestions.forEach(function (question) {\n var questionDiv = document.createElement('div');\n questionDiv.classList.add('question');\n var questionText = document.createElement('p');\n questionText.textContent = question.question;\n questionText.classList.add('paragraph');\n questionDiv.appendChild(questionText);\n\n var answerArea = document.createElement('textarea');\n answerArea.placeholder = 'Your answer...';\n answerArea.classList.add('answer-area');\n questionDiv.appendChild(answerArea);\n contentArea.appendChild(questionDiv);\n });\n\n displayList(contentArea, 'Key Takeaways or Summary Points', contentData.keyTakeaways, 'ul');\n\n if (contentData.furtherReflection) {\n displayList(contentArea, 'Further Reflection Questions or Prompts', contentData.furtherReflection, 'ol');\n }\n}\n\nfunction createHistoricalCriticism(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.passage) {\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n } else {\n var noPassageMessage = document.createElement('p');\n noPassageMessage.textContent = 'Passage information is not available.';\n noPassageMessage.classList.add('paragraph');\n contentArea.appendChild(noPassageMessage);\n }\n\n var analysisItems = [];\n if (contentData.originalAudience) {\n analysisItems.push(\"Original Audience: \".concat(contentData.originalAudience));\n } else {\n analysisItems.push('Original Audience: Information not available.');\n }\n if (contentData.authorship) {\n analysisItems.unshift(\"Authorship: \".concat(contentData.authorship));\n }\n if (contentData.date) {\n analysisItems.splice(1, 0, \"Date: \".concat(contentData.date)); \n }\n displayList(contentArea, 'Authorship, Date, and Audience Analysis', analysisItems, 'ul');\n\n if (contentData.historicalContext) {\n displayList(contentArea, 'Historical and Cultural Context', [contentData.historicalContext]);\n }\n\n if (contentData.keyEventsOrFigures && contentData.keyEventsOrFigures.length > 0) {\n displayList(contentArea, 'Key Events or Figures', contentData.keyEventsOrFigures, 'ul');\n }\n\n if (contentData.insights && contentData.insights.length > 0) {\n displayList(contentArea, 'Insights and Implications', contentData.insights, 'ul');\n }\n\n if (contentData.researchResources && contentData.researchResources.length > 0) {\n displayList(contentArea, 'Research Resources', contentData.researchResources, 'ul');\n }\n\n if (contentData.cautions && contentData.cautions.length > 0) {\n displayList(contentArea, 'Cautions and Limitations', contentData.cautions, 'ul');\n }\n\n if (contentData.reflectionQuestions && contentData.reflectionQuestions.length > 0) {\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n }\n}\nfunction createLiteraryCriticism(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.literaryTechniques.forEach(function (techniqueData) {\n var techniqueContainer = document.createElement('div');\n techniqueContainer.classList.add('literary-technique'); \n\n var techniqueHeading = document.createElement('h3');\n techniqueHeading.textContent = \"Technique: \".concat(techniqueData.technique);\n techniqueContainer.appendChild(techniqueHeading);\n var analysisParagraph = document.createElement('p');\n analysisParagraph.textContent = \"Analysis: \".concat(techniqueData.analysis);\n analysisParagraph.classList.add('paragraph');\n techniqueContainer.appendChild(analysisParagraph);\n\n if (techniqueData.examples && techniqueData.examples.length > 0) {\n displayList(techniqueContainer, 'Examples', techniqueData.examples, 'ul');\n }\n contentArea.appendChild(techniqueContainer);\n });\n\n if (contentData.symbolismAndImagery && contentData.symbolismAndImagery.length > 0) {\n var symbolismContainer = document.createElement('div');\n symbolismContainer.classList.add('symbolism-imagery');\n var symbolismHeading = document.createElement('h3');\n symbolismHeading.textContent = 'Symbolism and Imagery';\n symbolismContainer.appendChild(symbolismHeading);\n displayKeyValueList(symbolismContainer, null, contentData.symbolismAndImagery);\n contentArea.appendChild(symbolismContainer);\n }\n\n if (contentData.narrativeStructure) {\n displayList(contentArea, 'Narrative Structure', [contentData.narrativeStructure]);\n }\n if (contentData.characterDevelopment) {\n displayList(contentArea, 'Character Development', [contentData.characterDevelopment]);\n }\n\n if (contentData.overallMessage) {\n displayList(contentArea, 'Overall Message', [contentData.overallMessage]);\n }\n}\n\nfunction createSocialCriticism(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Themes or Passages', contentData.keyThemesOrPassages, 'ul');\n\n displayList(contentArea, 'Historical Influence', [contentData.historicalInfluence]);\n\n displayList(contentArea, 'Contemporary Relevance', [contentData.contemporaryRelevance]);\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n}\n\nfunction createPromiseFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayKeyValueList(contentArea, 'Key Promises', contentData.keyPromises);\n\n if (contentData.conditions && contentData.conditions.length > 0) {\n displayKeyValueList(contentArea, 'Conditions or Requirements', contentData.conditions);\n }\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\n\nfunction createInvitationFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.invitations.forEach(function (invitationData) {\n var invitationContainer = document.createElement('div');\n invitationContainer.classList.add('invitation-container');\n var invitationHeading = document.createElement('h3');\n invitationHeading.textContent = \"Invitation: \".concat(invitationData.invitation);\n invitationContainer.appendChild(invitationHeading);\n var context = document.createElement('p');\n context.textContent = \"Context: \".concat(invitationData.context);\n context.classList.add('paragraph');\n invitationContainer.appendChild(context);\n var meaning = document.createElement('p');\n meaning.textContent = \"Meaning: \".concat(invitationData.meaning);\n meaning.classList.add('paragraph');\n invitationContainer.appendChild(meaning);\n contentArea.appendChild(invitationContainer);\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps, 'ol');\n}\n\nfunction createEncouragementFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Encouraging Verses', contentData.encouragingVerses, 'ul');\n\n contentData.applications.forEach(function (application) {\n displayList(contentArea, \"Encouragement: \".concat(application.encouragement), [\"Context: \".concat(application.context), \"Application: \".concat(application.application)], 'ul');\n });\n\n if (contentData.prayersOrAffirmations && contentData.prayersOrAffirmations.length > 0) {\n displayList(contentArea, 'Prayers or Affirmations', contentData.prayersOrAffirmations, 'ul');\n }\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createLoveFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayKeyValueList(contentArea, 'Expressions or Examples of Love', contentData.expressionsOfLove);\n\n displayList(contentArea, 'Types or Aspects of Love', contentData.loveTypes, 'ul'); \n\n displayList(contentArea, 'Application and Challenges', [contentData.application]);\n\n if (contentData.creativeActivitiesOrPrayers && contentData.creativeActivitiesOrPrayers.length > 0) {\n displayList(contentArea, 'Creative Activities or Prayers', contentData.creativeActivitiesOrPrayers, 'ul');\n }\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\nfunction createHopeFocusedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.passage) {\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n } else {\n var noPassageMessage = document.createElement('p');\n noPassageMessage.textContent = 'Passage information is not available.';\n noPassageMessage.classList.add('paragraph');\n contentArea.appendChild(noPassageMessage);\n }\n\n if (contentData.reasonsForHope && contentData.reasonsForHope.length > 0) {\n displayList(contentArea, 'Reasons for Hope', contentData.reasonsForHope, 'ul');\n } else {\n var noReasonsMessage = document.createElement('p');\n noReasonsMessage.textContent = 'Reasons for Hope are not available.';\n noReasonsMessage.classList.add('paragraph');\n contentArea.appendChild(noReasonsMessage);\n }\n\n if (contentData.challengesAndOvercoming && contentData.challengesAndOvercoming.length > 0) {\n displayKeyValueList(contentArea, 'Challenges to Hope and How to Overcome Them', contentData.challengesAndOvercoming);\n } else {\n var noChallengesMessage = document.createElement('p');\n noChallengesMessage.textContent = 'Challenges to Hope and How to Overcome Them are not available.';\n noChallengesMessage.classList.add('paragraph');\n contentArea.appendChild(noChallengesMessage);\n }\n\n if (contentData.application) {\n displayList(contentArea, 'Application and Encouragement', [contentData.application]);\n }\n\n if (contentData.reflectionQuestions && contentData.reflectionQuestions.length > 0) {\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n }\n}\nfunction createInteractiveReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.passage) {\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n } else {\n var noPassageMessage = document.createElement('p');\n noPassageMessage.textContent = 'Passage information is not available.';\n noPassageMessage.classList.add('paragraph');\n contentArea.appendChild(noPassageMessage);\n }\n\n displayList(contentArea, 'Recommended Apps or Websites', contentData.recommendedAppsOrWebsites, 'ul');\n\n if (contentData.usageTips && contentData.usageTips.length > 0) {\n displayList(contentArea, 'Usage Tips', contentData.usageTips, 'ol');\n }\n\n if (contentData.interactiveActivities && contentData.interactiveActivities.length > 0) {\n displayList(contentArea, 'Interactive Activities', contentData.interactiveActivities, 'ol');\n }\n}\n\nfunction createAudioReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n var audioPlayer = document.createElement('audio');\n audioPlayer.controls = true;\n audioPlayer.src = contentData.audioUrl; \n contentArea.appendChild(audioPlayer);\n\n displayList(contentArea, 'Reflection Questions or Prompts', contentData.reflectionPrompts, 'ol');\n}\n\nfunction createReadingWithInstantTranslation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.originalPassage) {\n var originalPassageHeading = document.createElement('h3');\n originalPassageHeading.textContent = 'Original Passage:';\n contentArea.appendChild(originalPassageHeading);\n var originalPassageParagraph = document.createElement('p');\n originalPassageParagraph.textContent = contentData.originalPassage;\n originalPassageParagraph.classList.add('paragraph', 'original-passage'); \n contentArea.appendChild(originalPassageParagraph);\n }\n\n displayList(contentArea, 'Recommended Bible Apps or Websites with Instant Translation', contentData.recommendedResources, 'ul');\n\n displayKeyValueList(contentArea, 'Difficult Words and Their Translations', contentData.difficultWords);\n\n displayList(contentArea, 'Tips on Using Instant Translation', contentData.usageTips, 'ol');\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n\n var translationFeaturePlaceholder = document.createElement('p');\n translationFeaturePlaceholder.textContent = '// TODO: Implement interactive translation feature here';\n translationFeaturePlaceholder.classList.add('paragraph');\n contentArea.appendChild(translationFeaturePlaceholder);\n}\nfunction createImageGenerationReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Image Prompts', contentData.imagePrompts);\n\n displayList(contentArea, 'Suggested AI Image Generation Tools', contentData.suggestedTools);\n\n if (contentData.usageIdeas && contentData.usageIdeas.length > 0) {\n displayList(contentArea, 'Ideas for Using Generated Images', contentData.usageIdeas);\n }\n\n var encouragement = document.createElement('p');\n encouragement.textContent = contentData.encouragement || \"Explore the visual representation of biblical concepts and see how it enhances your understanding!\";\n encouragement.classList.add('paragraph');\n contentArea.appendChild(encouragement);\n}\n\nfunction createOnlineGroupReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Recommended Online Platforms or Tools', contentData.recommendedPlatforms, 'ul');\n\n displayList(contentArea, 'Setup Guidelines', contentData.setupGuidelines, 'ol');\n\n displayList(contentArea, 'Moderation Guidelines', contentData.moderationGuidelines, 'ol');\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n if (contentData.interactiveActivities && contentData.interactiveActivities.length > 0) {\n displayList(contentArea, 'Interactive Activities', contentData.interactiveActivities, 'ol');\n }\n\n displayList(contentArea, 'Engagement Tips', contentData.engagementTips, 'ol');\n}\n\nfunction createReadingWithAudioCommentary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n var audioPlayer = document.createElement('audio');\n audioPlayer.controls = true;\n audioPlayer.src = contentData.audioCommentaryUrl; \n contentArea.appendChild(audioPlayer);\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts, 'ol');\n\n displayList(contentArea, 'Recording Guidelines', contentData.recordingGuidelines, 'ol');\n\n displayList(contentArea, 'Sharing Ideas', contentData.sharingIdeas, 'ul');\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\n\nfunction createCreativeContentReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Writing Prompts', contentData.writingPrompts, 'ol');\n\n if (contentData.visualArtSuggestions && contentData.visualArtSuggestions.length > 0) {\n displayList(contentArea, 'Visual Art Suggestions', contentData.visualArtSuggestions, 'ul');\n }\n\n displayList(contentArea, 'Sharing Guidelines', contentData.sharingGuidelines, 'ol');\n\n if (contentData.encouragement) {\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n }\n}\n\nfunction createPresentationBasedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrBookHeading = document.createElement('h3');\n passageOrBookHeading.textContent = \"Passage/Book: \".concat(contentData.passageOrBook);\n contentArea.appendChild(passageOrBookHeading);\n\n displayList(contentArea, 'Key Themes', contentData.keyThemes);\n\n contentData.presentationOutline.forEach(function (slideData, index) {\n var slideContainer = document.createElement('div');\n slideContainer.classList.add('slide-container');\n var slideHeading = document.createElement('h3');\n slideHeading.textContent = \"Slide \".concat(index + 1, \": \").concat(slideData.slideTitle);\n slideContainer.appendChild(slideHeading);\n displayList(slideContainer, 'Key Points', slideData.keyPoints);\n\n if (slideData.visuals && slideData.visuals.length > 0) {\n displayList(slideContainer, 'Visuals', slideData.visuals);\n }\n contentArea.appendChild(slideContainer);\n });\n\n displayList(contentArea, 'Presentation Tips', contentData.presentationTips, 'ol');\n\n displayList(contentArea, 'Multimedia Ideas', contentData.multimediaIdeas);\n\n displayList(contentArea, 'Discussion Questions or Interactive Elements', contentData.discussionQuestionsOrInteractiveElements, 'ol');\n}\n\nfunction createQuestionDrivenReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Questions', contentData.questions, 'ol');\n\n if (!contentData.reflectionSpace) {\n contentData.reflectionSpace = \"Use this space to write down your answers and reflections on each question.\";\n }\n var reflectionSpace = document.createElement('p');\n reflectionSpace.textContent = contentData.reflectionSpace;\n reflectionSpace.classList.add('paragraph');\n contentArea.appendChild(reflectionSpace);\n\n displayList(contentArea, 'Further Research Suggestions', contentData.furtherResearchSuggestions, 'ul');\n\n var encouragement = document.createElement('p');\n encouragement.textContent = contentData.encouragement || \"Keep asking questions and seeking understanding as you read the Bible!\";\n encouragement.classList.add('paragraph');\n contentArea.appendChild(encouragement);\n}\n\nfunction createComparativeTranslationReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.translations.forEach(function (translation) {\n var translationDiv = document.createElement('div');\n translationDiv.classList.add('translation-container');\n var translationHeading = document.createElement('h3');\n translationHeading.textContent = \"Translation (\".concat(translation.version, \"):\");\n translationDiv.appendChild(translationHeading);\n var translationText = document.createElement('p');\n translationText.textContent = translation.text;\n translationText.classList.add('paragraph');\n translationDiv.appendChild(translationText);\n contentArea.appendChild(translationDiv);\n });\n\n displayList(contentArea, 'Key Words or Phrases to Compare', contentData.keyWordsOrPhrases, 'ul');\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n displayList(contentArea, 'Insights', [contentData.insights]);\n}\n\nfunction createCulturalSocialReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.keyPractices.forEach(function (practiceData) {\n var practiceContainer = document.createElement('div');\n practiceContainer.classList.add('practice-container');\n\n var practiceHeading = document.createElement('h3');\n practiceHeading.textContent = practiceData.practice;\n practiceContainer.appendChild(practiceHeading);\n\n var explanation = document.createElement('p');\n explanation.textContent = \"Explanation: \".concat(practiceData.explanation);\n explanation.classList.add('paragraph');\n practiceContainer.appendChild(explanation);\n var biblicalSignificance = document.createElement('p');\n biblicalSignificance.textContent = \"Biblical Significance: \".concat(practiceData.biblicalSignificance);\n biblicalSignificance.classList.add('paragraph');\n practiceContainer.appendChild(biblicalSignificance);\n\n if (practiceData.comparison) {\n var comparison = document.createElement('p');\n comparison.textContent = \"Comparison: \".concat(practiceData.comparison);\n comparison.classList.add('paragraph');\n practiceContainer.appendChild(comparison);\n }\n contentArea.appendChild(practiceContainer);\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createGeographicalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTopic;\n contentArea.appendChild(passageOrThemeHeading);\n\n contentData.keyLocations.forEach(function (locationData) {\n var locationContainer = document.createElement('div');\n locationContainer.classList.add('location-container');\n\n var locationHeading = document.createElement('h3');\n locationHeading.textContent = locationData.location;\n locationContainer.appendChild(locationHeading);\n\n var description = document.createElement('p');\n description.textContent = locationData.description;\n description.classList.add('paragraph');\n locationContainer.appendChild(description);\n\n if (locationData.mapOrImage) {\n var image = document.createElement('img');\n image.src = locationData.mapOrImage;\n image.alt = \"Map or image of \".concat(locationData.location);\n locationContainer.appendChild(image);\n }\n contentArea.appendChild(locationContainer);\n });\n\n if (contentData.journeys && contentData.journeys.length > 0) {\n var journeysContainer = document.createElement('div');\n var journeysHeading = document.createElement('h3');\n journeysHeading.textContent = 'Journeys';\n journeysContainer.appendChild(journeysHeading);\n contentData.journeys.forEach(function (journeyData) {\n var journeyDiv = document.createElement('div');\n journeyDiv.classList.add('journey');\n var traveler = document.createElement('p');\n traveler.textContent = \"Traveler: \".concat(journeyData.traveler);\n traveler.classList.add('paragraph');\n journeyDiv.appendChild(traveler);\n displayList(journeyDiv, 'Route', journeyData.route);\n\n if (journeyData.mapOrImage) {\n var image = document.createElement('img');\n image.src = journeyData.mapOrImage;\n image.alt = \"Map or image of \".concat(journeyData.traveler, \"'s journey\");\n journeyDiv.appendChild(image);\n }\n journeysContainer.appendChild(journeyDiv);\n });\n contentArea.appendChild(journeysContainer);\n }\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n}\n\nfunction createLinguisticReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Original Language and its Features', [\"Original Language: \".concat(contentData.originalLanguage), \"Key Features: \".concat(contentData.languageFeatures.join(', '))], 'ul');\n\n contentData.keyWordsOrPhrases.forEach(function (wordData) {\n var wordContainer = document.createElement('div');\n wordContainer.classList.add('word-container');\n\n var wordHeading = document.createElement('h3');\n wordHeading.textContent = \"\".concat(wordData.original, \" (\").concat(wordData.translation, \")\");\n wordContainer.appendChild(wordHeading);\n\n var definition = document.createElement('p');\n definition.textContent = \"Definition: \".concat(wordData.definition);\n definition.classList.add('paragraph');\n wordContainer.appendChild(definition);\n\n if (wordData.grammaticalAnalysis) {\n var grammaticalAnalysis = document.createElement('p');\n grammaticalAnalysis.textContent = \"Grammatical Analysis: \".concat(wordData.grammaticalAnalysis);\n grammaticalAnalysis.classList.add('paragraph');\n wordContainer.appendChild(grammaticalAnalysis);\n }\n\n if (wordData.contextualUsage) {\n var contextualUsage = document.createElement('p');\n contextualUsage.textContent = \"Contextual Usage: \".concat(wordData.contextualUsage);\n contextualUsage.classList.add('paragraph');\n wordContainer.appendChild(contextualUsage);\n }\n contentArea.appendChild(wordContainer);\n });\n\n if (contentData.translationComparisons && contentData.translationComparisons.length > 0) {\n var comparisonsContainer = document.createElement('div');\n var comparisonsHeading = document.createElement('h3');\n comparisonsHeading.textContent = 'Translation Comparisons';\n comparisonsContainer.appendChild(comparisonsHeading);\n contentData.translationComparisons.forEach(function (comparisonData) {\n var comparisonDiv = document.createElement('div');\n comparisonDiv.classList.add('translation-comparison');\n var wordHeading = document.createElement('h4');\n wordHeading.textContent = comparisonData.wordOrPhrase;\n comparisonDiv.appendChild(wordHeading);\n comparisonData.translations.forEach(function (translationData) {\n var translation = document.createElement('p');\n translation.textContent = \"\".concat(translationData.version, \": \").concat(translationData.text);\n translation.classList.add('paragraph');\n comparisonDiv.appendChild(translation);\n });\n var nuances = document.createElement('p');\n nuances.textContent = \"Nuances: \".concat(comparisonData.nuances);\n nuances.classList.add('paragraph');\n comparisonDiv.appendChild(nuances);\n comparisonsContainer.appendChild(comparisonDiv);\n });\n contentArea.appendChild(comparisonsContainer);\n }\n\n if (contentData.insights) {\n var insights = document.createElement('p');\n insights.textContent = \"Insights: \".concat(contentData.insights);\n insights.classList.add('paragraph');\n contentArea.appendChild(insights);\n }\n}\n\nfunction createVerseMapping(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var verseContainer = document.createElement('div');\n verseContainer.classList.add('verse-container');\n if (contentData.verse.originalLanguage && contentData.verse.originalLanguageText) {\n var originalVerse = document.createElement('p');\n originalVerse.textContent = \"Original (\".concat(contentData.verse.originalLanguage, \"): \").concat(contentData.verse.originalLanguageText);\n originalVerse.classList.add('paragraph');\n verseContainer.appendChild(originalVerse);\n }\n contentData.verse.translations.forEach(function (translation) {\n var translationElement = document.createElement('p');\n translationElement.textContent = \"\".concat(translation.version, \": \").concat(translation.text);\n translationElement.classList.add('paragraph');\n verseContainer.appendChild(translationElement);\n });\n contentArea.appendChild(verseContainer);\n\n displayList(contentArea, 'Cross-References', contentData.crossReferences);\n\n displayList(contentArea, 'Contextual Notes', [contentData.contextualNotes]);\n\n contentData.wordStudies.forEach(function (wordStudy) {\n var wordStudyContainer = document.createElement('div');\n wordStudyContainer.classList.add('word-study');\n var wordHeading = document.createElement('h4');\n wordHeading.textContent = wordStudy.word;\n wordStudyContainer.appendChild(wordHeading);\n var originalMeaning = document.createElement('p');\n originalMeaning.textContent = \"Original Meaning: \".concat(wordStudy.originalMeaning);\n originalMeaning.classList.add('paragraph');\n wordStudyContainer.appendChild(originalMeaning);\n var explanation = document.createElement('p');\n explanation.textContent = \"Explanation: \".concat(wordStudy.explanation);\n explanation.classList.add('paragraph');\n wordStudyContainer.appendChild(explanation);\n contentArea.appendChild(wordStudyContainer);\n });\n\n displayList(contentArea, 'Personal Reflections', [contentData.personalReflections]);\n}\n\nfunction createTopicalStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.keyVerses.forEach(function (verseData) {\n var verseContainer = document.createElement('div');\n verseContainer.classList.add('verse-container');\n var verse = document.createElement('p');\n verse.textContent = \"Verse: \".concat(verseData.verse);\n verse.classList.add('paragraph');\n verseContainer.appendChild(verse);\n var context = document.createElement('p');\n context.textContent = \"Context: \".concat(verseData.context);\n context.classList.add('paragraph');\n verseContainer.appendChild(context);\n var meaning = document.createElement('p');\n meaning.textContent = \"Meaning: \".concat(verseData.meaning);\n meaning.classList.add('paragraph');\n verseContainer.appendChild(meaning);\n contentArea.appendChild(verseContainer);\n });\n\n var connections = document.createElement('p');\n connections.textContent = \"Connections and Comparisons: \".concat(contentData.connectionsAndComparisons);\n connections.classList.add('paragraph');\n contentArea.appendChild(connections);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createCharacterStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayKeyValueList(contentArea, 'Key Events and Relationships', contentData.keyEventsAndRelationships);\n\n displayList(contentArea, 'Personality Analysis', [contentData.personalityAnalysis]);\n\n displayList(contentArea, 'Strengths', contentData.strengths);\n displayList(contentArea, 'Weaknesses', contentData.weaknesses);\n\n var challenges = contentData.challengesAndOvercoming.map(function (challengeData) {\n return {\n key: challengeData.challenge,\n value: challengeData.howOvercame\n };\n });\n displayKeyValueList(contentArea, 'Challenges and How They Were Overcome', challenges);\n\n displayList(contentArea, 'Spiritual Journey', [contentData.spiritualJourney]);\n\n displayList(contentArea, 'Lessons and Applications', contentData.lessonsAndApplications, 'ol');\n}\n\nfunction createInductiveStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageElement = document.createElement('p');\n passageElement.textContent = \"Passage: \".concat(contentData.passage);\n passageElement.classList.add('paragraph');\n contentArea.appendChild(passageElement);\n\n displayList(contentArea, 'Observations', contentData.observations);\n\n displayList(contentArea, 'Interpretation', [contentData.interpretation]);\n\n var applicationContainer = document.createElement('div');\n applicationContainer.classList.add('application-container');\n var applicationHeading = document.createElement('h3');\n applicationHeading.textContent = 'Application';\n applicationContainer.appendChild(applicationHeading);\n var message = document.createElement('p');\n message.textContent = \"Message: \".concat(contentData.application.message);\n message.classList.add('paragraph');\n applicationContainer.appendChild(message);\n\n if (contentData.application.actionSteps && contentData.application.actionSteps.length > 0) {\n displayList(applicationContainer, 'Action Steps', contentData.application.actionSteps, 'ol');\n }\n contentArea.appendChild(applicationContainer);\n}\n\nfunction createSOAPMethod(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.entries.forEach(function (entryData, index) {\n var entryContainer = document.createElement('div');\n entryContainer.classList.add('soap-entry');\n var entryHeading = document.createElement('h3');\n entryHeading.textContent = \"Entry \".concat(index + 1);\n entryContainer.appendChild(entryHeading);\n\n displayList(entryContainer, 'Scripture', [entryData.scripture]);\n\n displayList(entryContainer, 'Observation', [entryData.observation]);\n\n displayList(entryContainer, 'Application', [entryData.application]);\n\n displayList(entryContainer, 'Prayer', [entryData.prayer]);\n contentArea.appendChild(entryContainer);\n });\n}\n\nfunction createLectioDivina(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageElement = document.createElement('p');\n passageElement.textContent = contentData.passage;\n passageElement.classList.add('paragraph');\n contentArea.appendChild(passageElement);\n\n var stages = ['lectio', 'meditatio', 'oratio', 'contemplatio'];\n stages.forEach(function (stage) {\n var stageContainer = document.createElement('div');\n stageContainer.classList.add('lectio-divina-stage');\n var stageHeading = document.createElement('h3');\n stageHeading.textContent = stage.charAt(0).toUpperCase() + stage.slice(1); \n stageContainer.appendChild(stageHeading);\n var guidance = document.createElement('p');\n guidance.textContent = \"Guidance: \".concat(contentData[stage].guidance);\n guidance.classList.add('paragraph');\n stageContainer.appendChild(guidance);\n if (stage === 'oratio') {\n displayList(stageContainer, 'Prayer Prompts', contentData[stage].prayerPrompts, 'ol');\n } else {\n displayList(stageContainer, 'Reflection Prompts', contentData[stage].reflectionPrompts, 'ol');\n }\n contentArea.appendChild(stageContainer);\n });\n\n if (contentData.personalNotes) {\n var personalNotes = document.createElement('p');\n personalNotes.textContent = \"Personal Notes: \".concat(contentData.personalNotes);\n personalNotes.classList.add('paragraph');\n contentArea.appendChild(personalNotes);\n }\n}\n\nfunction createChronologicalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.events.forEach(function (eventData) {\n var eventContainer = document.createElement('div');\n eventContainer.classList.add('event-container');\n\n var eventHeading = document.createElement('h3');\n eventHeading.textContent = \"\".concat(eventData.dateOrTimePeriod, \": \").concat(eventData.event);\n eventContainer.appendChild(eventHeading);\n\n var description = document.createElement('p');\n description.textContent = eventData.description;\n description.classList.add('paragraph');\n eventContainer.appendChild(description);\n\n if (eventData.passages && eventData.passages.length > 0) {\n displayList(eventContainer, 'Passages', eventData.passages);\n }\n contentArea.appendChild(eventContainer);\n });\n\n if (contentData.summaries) {\n displayList(contentArea, 'Event Summaries', contentData.summaries, 'ul');\n }\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createParallelReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var eventHeading = document.createElement('h3');\n eventHeading.textContent = \"Event/Story: \".concat(contentData.eventOrStory);\n contentArea.appendChild(eventHeading);\n\n contentData.gospelAccounts.forEach(function (accountData) {\n var accountContainer = document.createElement('div');\n accountContainer.classList.add('gospel-account');\n var accountHeading = document.createElement('h4');\n accountHeading.textContent = accountData.gospel;\n accountContainer.appendChild(accountHeading);\n var passage = document.createElement('p');\n passage.textContent = accountData.passage;\n passage.classList.add('paragraph');\n accountContainer.appendChild(passage);\n contentArea.appendChild(accountContainer);\n });\n\n var comparisonContainer = document.createElement('div');\n comparisonContainer.classList.add('comparison-container');\n contentArea.appendChild(comparisonContainer);\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n var insights = document.createElement('p');\n insights.textContent = \"Insights: \".concat(contentData.insights);\n insights.classList.add('paragraph');\n contentArea.appendChild(insights);\n}\n\nfunction createBookByBookStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var overviewContainer = document.createElement('div');\n overviewContainer.classList.add('overview-container');\n var overviewHeading = document.createElement('h3');\n overviewHeading.textContent = 'Book Overview';\n overviewContainer.appendChild(overviewHeading);\n var author = document.createElement('p');\n author.textContent = \"Author: \".concat(contentData.bookOverview.author);\n author.classList.add('paragraph');\n overviewContainer.appendChild(author);\n var historicalContext = document.createElement('p');\n historicalContext.textContent = \"Historical Context: \".concat(contentData.bookOverview.historicalContext);\n historicalContext.classList.add('paragraph');\n overviewContainer.appendChild(historicalContext);\n displayList(overviewContainer, 'Main Themes', contentData.bookOverview.mainThemes);\n contentArea.appendChild(overviewContainer);\n\n contentData.sectionsOrChapters.forEach(function (sectionData) {\n var sectionContainer = document.createElement('div');\n sectionContainer.classList.add('section-container');\n var sectionHeading = document.createElement('h3');\n sectionHeading.textContent = sectionData.title;\n sectionContainer.appendChild(sectionHeading);\n var summary = document.createElement('p');\n summary.textContent = \"Summary: \".concat(sectionData.summary);\n summary.classList.add('paragraph');\n sectionContainer.appendChild(summary);\n displayList(sectionContainer, 'Key Verses', sectionData.keyVerses);\n contentArea.appendChild(sectionContainer);\n });\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n if (contentData.furtherStudySuggestions && contentData.furtherStudySuggestions.length > 0) {\n displayList(contentArea, 'Further Study Suggestions', contentData.furtherStudySuggestions);\n }\n}\n\nfunction createWordStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var wordHeading = document.createElement('h3');\n wordHeading.textContent = \"Word/Phrase: \".concat(contentData.wordOrPhrase);\n contentArea.appendChild(wordHeading);\n\n if (contentData.originalWord && contentData.originalWordMeaning) {\n var originalInfo = document.createElement('p');\n originalInfo.textContent = \"Original Language (\".concat(contentData.originalLanguage, \"): \").concat(contentData.originalWordMeaning);\n originalInfo.classList.add('paragraph');\n contentArea.appendChild(originalInfo);\n }\n\n displayList(contentArea, 'Definitions', contentData.definitions);\n\n contentData.bibleVerses.forEach(function (verseData) {\n var verseContainer = document.createElement('div');\n verseContainer.classList.add('verse-container');\n var verse = document.createElement('p');\n verse.textContent = \"Verse: \".concat(verseData.verse);\n verse.classList.add('paragraph');\n verseContainer.appendChild(verse);\n var explanation = document.createElement('p');\n explanation.textContent = \"Explanation: \".concat(verseData.explanation);\n explanation.classList.add('paragraph');\n verseContainer.appendChild(explanation);\n contentArea.appendChild(verseContainer);\n });\n\n var significance = document.createElement('p');\n significance.textContent = \"Significance: \".concat(contentData.significance);\n significance.classList.add('paragraph');\n contentArea.appendChild(significance);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createPrayerJournaling(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayList(contentArea, 'Prayer Prompts', contentData.prayerPrompts, 'ol');\n\n displayList(contentArea, 'Reflection Prompts', contentData.reflectionPrompts, 'ol');\n\n if (contentData.creativeSuggestions && contentData.creativeSuggestions.length > 0) {\n displayList(contentArea, 'Creative Suggestions', contentData.creativeSuggestions, 'ul');\n }\n\n var journalArea = document.createElement('textarea');\n journalArea.placeholder = 'Your prayer journal...';\n journalArea.classList.add('journal-area');\n contentArea.appendChild(journalArea);\n}\n\nfunction createMemoryVersePractice(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n displayList(contentArea, 'Memorization Tips', contentData.memorizationTips, 'ol');\n\n displayList(contentArea, 'Creative Activities', contentData.creativeActivities, 'ul');\n\n displayList(contentArea, 'Review Suggestions', contentData.reviewSuggestions, 'ol');\n}\n\nfunction createBibleArtJournaling(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Art Techniques', contentData.artTechniques, 'ul');\n\n displayList(contentArea, 'Materials', contentData.materials, 'ul');\n\n displayList(contentArea, 'Journaling Ideas', contentData.journalingIdeas, 'ol');\n\n var reflectionArea = document.createElement('textarea');\n reflectionArea.placeholder = 'Your reflections or journaling...';\n reflectionArea.classList.add('reflection-area');\n contentArea.appendChild(reflectionArea);\n}\n\nfunction createBibleStudyGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n contentData.gameIdeas.forEach(function (game, index) {\n var gameContainer = document.createElement('div');\n gameContainer.classList.add('game-idea');\n var gameNameHeading = document.createElement('h3');\n gameNameHeading.textContent = \"Game \".concat(index + 1, \": \").concat(game.gameName);\n gameContainer.appendChild(gameNameHeading);\n displayList(gameContainer, 'Instructions', [game.instructions]);\n\n if (game.questionsOrPrompts && game.questionsOrPrompts.length > 0) {\n displayList(gameContainer, 'Questions or Prompts', game.questionsOrPrompts, 'ol');\n }\n\n if (game.adaptationSuggestions && game.adaptationSuggestions.length > 0) {\n displayList(gameContainer, 'Adaptation Suggestions', game.adaptationSuggestions, 'ul');\n }\n contentArea.appendChild(gameContainer);\n });\n}\n\nfunction createGroupBibleProjects(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n contentData.projectIdeas.forEach(function (project, index) {\n var projectContainer = document.createElement('div');\n projectContainer.classList.add('project-idea');\n var projectHeading = document.createElement('h3');\n projectHeading.textContent = \"Project \".concat(index + 1, \": \").concat(project.projectName);\n projectContainer.appendChild(projectHeading);\n displayList(projectContainer, 'Description or Overview', [project.description]);\n\n displayList(projectContainer, 'Steps Involved', project.steps, 'ol');\n\n displayList(projectContainer, 'Materials or Resources Needed', project.materials, 'ul');\n\n displayList(projectContainer, 'Tips for Implementation', project.implementationTips, 'ol');\n contentArea.appendChild(projectContainer);\n });\n}\n\nfunction createDevotionalReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.dailyReadings.forEach(function (readingData, index) {\n var readingContainer = document.createElement('div');\n readingContainer.classList.add('reading-container');\n var readingHeading = document.createElement('h3');\n readingHeading.textContent = \"Day \".concat(index + 1);\n readingContainer.appendChild(readingHeading);\n\n displayList(readingContainer, 'Passage', [readingData.passage]);\n\n displayList(readingContainer, 'Reflection Questions', readingData.reflectionQuestions, 'ol');\n\n if (readingData.prayerOrAffirmation) {\n displayList(readingContainer, 'Prayer/Affirmation', [readingData.prayerOrAffirmation]);\n }\n contentArea.appendChild(readingContainer);\n });\n\n if (contentData.routineSuggestions && contentData.routineSuggestions.length > 0) {\n displayList(contentArea, 'Suggestions for Incorporating into Your Routine', contentData.routineSuggestions);\n }\n}\n\nfunction createBibleStoryFormat(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var storyElement = document.createElement(\"p\");\n storyElement.textContent = contentData.story;\n storyElement.classList.add(\"paragraph\");\n contentArea.appendChild(storyElement);\n\n displayList(contentArea, 'Biblical Themes', contentData.biblicalThemes);\n\n displayList(contentArea, 'Biblical Characters', contentData.biblicalCharacters);\n\n displayList(contentArea, 'Underlying Message', [contentData.underlyingMessage]);\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n}\n\nfunction createVideoSummary2(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var titleElement = document.createElement(\"h3\");\n titleElement.textContent = contentData.title;\n contentArea.appendChild(titleElement);\n var videoLink = document.createElement(\"a\");\n videoLink.href = contentData.videoUrl;\n videoLink.target = \"_blank\";\n videoLink.textContent = contentData.videoUrl;\n videoLink.classList.add(\"link\");\n contentArea.appendChild(videoLink);\n\n displayList(contentArea, 'Summary', [contentData.summary]);\n\n displayList(contentArea, 'Biblical Connection', [contentData.biblicalConnection]);\n}\n\nfunction createPilgrimageAndTravel(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.sites.forEach(function (siteData) {\n var siteContainer = document.createElement('div');\n siteContainer.classList.add('site-container');\n var siteHeading = document.createElement('h3');\n siteHeading.textContent = siteData.name;\n siteContainer.appendChild(siteHeading);\n\n displayList(siteContainer, 'Description', [siteData.description]);\n\n displayList(siteContainer, 'Historical Significance', [siteData.historicalSignificance]);\n displayList(siteContainer, 'Biblical Significance', [siteData.biblicalSignificance]);\n\n displayList(siteContainer, 'Reflection Questions', siteData.reflectionQuestions, 'ol');\n contentArea.appendChild(siteContainer);\n });\n}\n\nfunction createAIGeneratedSummaries(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Original Content', [contentData.originalContent]);\n\n displayList(contentArea, 'AI-Generated Summary', [contentData.summary]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n\n if (contentData.furtherStudySuggestions && contentData.furtherStudySuggestions.length > 0) {\n displayList(contentArea, 'Further Study Suggestions', contentData.furtherStudySuggestions, 'ul');\n }\n\n}\n\nfunction createAIGeneratedDiscussionQuestions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'AI-Generated Discussion Questions', contentData.discussionQuestions, 'ol');\n\n if (contentData.additionalPrompts && contentData.additionalPrompts.length > 0) {\n displayList(contentArea, 'Additional Prompts or Activities', contentData.additionalPrompts, 'ul');\n }\n\n if (contentData.resources && contentData.resources.length > 0) {\n displayList(contentArea, 'Resources for Further Exploration', contentData.resources, 'ul');\n }\n\n}\n\nfunction createAIGeneratedPersonalization(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var studyPlanContainer = document.createElement('div');\n studyPlanContainer.classList.add('study-plan-container');\n var planHeading = document.createElement('h3');\n planHeading.textContent = 'Personalized Study Plan';\n studyPlanContainer.appendChild(planHeading);\n displayList(studyPlanContainer, 'Suggested Passages or Topics', contentData.studyPlan.suggestedPassagesOrTopics);\n displayList(studyPlanContainer, 'Recommended Methods', contentData.studyPlan.recommendedMethods);\n\n if (contentData.studyPlan.resources && contentData.studyPlan.resources.length > 0) {\n displayList(studyPlanContainer, 'Resources', contentData.studyPlan.resources);\n }\n\n if (contentData.studyPlan.reflectionPrompts && contentData.studyPlan.reflectionPrompts.length > 0) {\n displayList(studyPlanContainer, 'Reflection Prompts', contentData.studyPlan.reflectionPrompts);\n }\n contentArea.appendChild(studyPlanContainer);\n\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\n\nfunction createVerseByVerseStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageElement = document.createElement('p');\n passageElement.textContent = \"Passage: \".concat(contentData.passage);\n passageElement.classList.add('paragraph');\n contentArea.appendChild(passageElement);\n\n contentData.verseAnalyses.forEach(function (verseData) {\n var verseContainer = document.createElement('div'); \n verseContainer.classList.add('verse-analysis-container');\n var verseHeading = document.createElement('h3');\n verseHeading.textContent = \"Verse: \".concat(verseData.verseText);\n verseContainer.appendChild(verseHeading);\n\n if (verseData.originalLanguage && verseData.originalMeaning) {\n var originalInfo = document.createElement('p');\n originalInfo.textContent = \"Original Language (\".concat(verseData.originalLanguage, \"): \").concat(verseData.originalMeaning);\n originalInfo.classList.add('paragraph');\n verseContainer.appendChild(originalInfo);\n }\n\n displayList(verseContainer, 'Explanation and Commentary', [verseData.explanation]);\n\n if (verseData.crossReferences && verseData.crossReferences.length > 0) {\n displayList(verseContainer, 'Cross-References', verseData.crossReferences);\n }\n\n if (verseData.applicationOrImplications) {\n displayList(verseContainer, 'Application or Implications', [verseData.applicationOrImplications]);\n }\n\n if (verseData.reflectionQuestions && verseData.reflectionQuestions.length > 0) {\n displayList(verseContainer, 'Reflection Questions', verseData.reflectionQuestions, 'ol');\n }\n contentArea.appendChild(verseContainer);\n });\n}\n\nfunction createBookOverview(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var purpose = document.createElement('p');\n purpose.textContent = \"Purpose: \".concat(contentData.purpose);\n purpose.classList.add('paragraph');\n contentArea.appendChild(purpose);\n displayList(contentArea, 'Main Themes', contentData.mainThemes, 'ul');\n var authorAndDate = document.createElement('p');\n authorAndDate.textContent = \"Author and Date: \".concat(contentData.authorAndDate);\n authorAndDate.classList.add('paragraph');\n contentArea.appendChild(authorAndDate);\n var historicalContext = document.createElement('p');\n historicalContext.textContent = \"Historical Context: \".concat(contentData.historicalContext);\n historicalContext.classList.add('paragraph');\n contentArea.appendChild(historicalContext);\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n var outline = document.createElement('p');\n outline.textContent = \"Outline: \".concat(contentData.outline);\n outline.classList.add('paragraph');\n contentArea.appendChild(outline);\n}\n\nfunction createConcordanceStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var wordHeading = document.createElement('h3');\n wordHeading.textContent = \"Word/Phrase: \".concat(contentData.wordOrPhrase);\n contentArea.appendChild(wordHeading);\n\n if (contentData.originalLanguage && contentData.originalMeaning) {\n var originalInfo = document.createElement('p');\n originalInfo.textContent = \"Original Language (\".concat(contentData.originalLanguage, \"): \").concat(contentData.originalMeaning);\n originalInfo.classList.add('paragraph');\n contentArea.appendChild(originalInfo);\n }\n\n contentData.bibleVerses.forEach(function (entry) {\n var entryContainer = document.createElement('div');\n entryContainer.classList.add('concordance-entry');\n var reference = document.createElement('p');\n reference.textContent = \"Reference: \".concat(entry.verse);\n reference.classList.add('paragraph');\n entryContainer.appendChild(reference);\n var context = document.createElement('p');\n context.textContent = \"Context: \".concat(entry.context);\n context.classList.add('paragraph');\n entryContainer.appendChild(context);\n contentArea.appendChild(entryContainer);\n });\n\n displayList(contentArea, 'Usage Analysis', [contentData.usageAnalysis]);\n\n displayList(contentArea, 'Significance or Implications', [contentData.significance]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBiographicalStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var nameHeading = document.createElement('h3');\n nameHeading.textContent = \"Person: \".concat(contentData.personName);\n contentArea.appendChild(nameHeading);\n\n displayList(contentArea, 'Key Events in Their Life', contentData.keyEventsAndRelationships, 'ol', function (event) {\n return \"\".concat(event.eventOrRelationship, \": \").concat(event.description);\n });\n\n displayList(contentArea, 'Personality, Strengths, and Weaknesses', [\"Personality: \".concat(contentData.personalityAnalysis), \"Strengths: \".concat(contentData.strengths.join(', ')), \"Weaknesses: \".concat(contentData.weaknesses.join(', '))], 'ul');\n\n displayList(contentArea, 'Challenges and How They Were Overcome', contentData.challengesAndOvercoming, 'ul', function (challenge) {\n return \"\".concat(challenge.challenge, \": \").concat(challenge.howOvercame);\n });\n\n displayList(contentArea, 'Spiritual Journey and Growth', [contentData.spiritualJourney]);\n\n displayList(contentArea, 'Impact and Legacy', [contentData.impact]);\n\n displayList(contentArea, 'Lessons We Can Learn', contentData.lessonsAndApplications, 'ol');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createHistoricalContextStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrEventHeading = document.createElement('h3');\n passageOrEventHeading.textContent = \"Passage/Event: \".concat(contentData.passageOrEvent);\n contentArea.appendChild(passageOrEventHeading);\n\n displayList(contentArea, 'Historical Setting', [contentData.historicalSetting]);\n\n displayList(contentArea, 'Key Aspects (Cultural, Political, Social)', contentData.keyAspects, 'ul');\n\n displayList(contentArea, 'Impact of Historical Context', [contentData.contextualInfluence]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createFigurativeLanguageStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.figurativeLanguageElements.forEach(function (element) {\n var elementDiv = document.createElement('div');\n elementDiv.classList.add('figurative-language-element');\n var deviceHeading = document.createElement('h4');\n deviceHeading.textContent = \"Device: \".concat(element.device);\n elementDiv.appendChild(deviceHeading);\n var exampleParagraph = document.createElement('p');\n exampleParagraph.textContent = \"Example: \".concat(element.example);\n exampleParagraph.classList.add('paragraph');\n elementDiv.appendChild(exampleParagraph);\n var meaningParagraph = document.createElement('p');\n meaningParagraph.textContent = \"Meaning: \".concat(element.meaning);\n meaningParagraph.classList.add('paragraph');\n elementDiv.appendChild(meaningParagraph);\n var significanceParagraph = document.createElement('p');\n significanceParagraph.textContent = \"Significance: \".concat(element.significance);\n significanceParagraph.classList.add('paragraph');\n elementDiv.appendChild(significanceParagraph);\n contentArea.appendChild(elementDiv);\n });\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createTypologyStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var oldTestamentTypeSection = document.createElement('section');\n var oldTestamentTypeHeading = document.createElement('h3');\n oldTestamentTypeHeading.textContent = 'Old Testament Type';\n oldTestamentTypeSection.appendChild(oldTestamentTypeHeading);\n var oldTestamentTypeParagraph = document.createElement('p');\n oldTestamentTypeParagraph.textContent = contentData.oldTestamentType;\n oldTestamentTypeParagraph.classList.add('paragraph');\n oldTestamentTypeSection.appendChild(oldTestamentTypeParagraph);\n contentArea.appendChild(oldTestamentTypeSection);\n\n var newTestamentAntitypeSection = document.createElement('section');\n var newTestamentAntitypeHeading = document.createElement('h3');\n newTestamentAntitypeHeading.textContent = 'New Testament Antitype';\n newTestamentAntitypeSection.appendChild(newTestamentAntitypeHeading);\n var newTestamentAntitypeParagraph = document.createElement('p');\n newTestamentAntitypeParagraph.textContent = contentData.newTestamentAntitype;\n newTestamentAntitypeParagraph.classList.add('paragraph');\n newTestamentAntitypeSection.appendChild(newTestamentAntitypeParagraph);\n contentArea.appendChild(newTestamentAntitypeSection);\n\n var connectionSymbolismSection = document.createElement('section');\n var connectionSymbolismHeading = document.createElement('h3');\n connectionSymbolismHeading.textContent = 'Connection and Symbolism';\n connectionSymbolismSection.appendChild(connectionSymbolismHeading);\n var connectionSymbolismParagraph = document.createElement('p');\n connectionSymbolismParagraph.textContent = contentData.connectionAndSymbolism;\n connectionSymbolismParagraph.classList.add('paragraph');\n connectionSymbolismSection.appendChild(connectionSymbolismParagraph);\n contentArea.appendChild(connectionSymbolismSection);\n\n displayKeyValueList(contentArea, 'Key Verses (Old Testament)', contentData.keyVerses.oldTestament);\n displayKeyValueList(contentArea, 'Key Verses (New Testament)', contentData.keyVerses.newTestament);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createThematicStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayKeyValueList(contentArea, 'Key Verses and Their Context/Meaning', contentData.keyVerses);\n\n displayList(contentArea, 'Connections and Comparisons between Passages', [contentData.connectionsAndComparisons]);\n\n displayList(contentArea, \"Theme's Development throughout the Bible\", [contentData.development]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createExegeticalStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.originalLanguageAnalysis.forEach(function (analysis) {\n var analysisContainer = document.createElement('div');\n analysisContainer.classList.add('original-language-analysis');\n var wordOrPhraseHeading = document.createElement('h4');\n wordOrPhraseHeading.textContent = \"Word/Phrase: \".concat(analysis.wordOrPhrase);\n analysisContainer.appendChild(wordOrPhraseHeading);\n\n var originalInfo = document.createElement('p');\n originalInfo.textContent = \"Original Language: \".concat(analysis.originalLanguage, \", Meaning: \").concat(analysis.meaning);\n originalInfo.classList.add('paragraph');\n analysisContainer.appendChild(originalInfo);\n\n if (analysis.grammaticalForm) {\n var grammaticalForm = document.createElement('p');\n grammaticalForm.textContent = \"Grammatical Form: \".concat(analysis.grammaticalForm);\n grammaticalForm.classList.add('paragraph');\n analysisContainer.appendChild(grammaticalForm);\n }\n\n if (analysis.contextualUsage) {\n var contextualUsage = document.createElement('p');\n contextualUsage.textContent = \"Contextual Usage: \".concat(analysis.contextualUsage);\n contextualUsage.classList.add('paragraph');\n analysisContainer.appendChild(contextualUsage);\n }\n contentArea.appendChild(analysisContainer);\n });\n\n displayList(contentArea, 'Historical Context', [contentData.historicalContext]);\n\n displayList(contentArea, 'Structural Analysis', [contentData.structuralAnalysis]);\n\n displayList(contentArea, 'Theological Implications', [contentData.theologicalImplications]);\n\n displayList(contentArea, 'Interpretation', [contentData.interpretation]);\n\n displayList(contentArea, 'Application', [contentData.application]);\n}\n\nfunction createHermeneuticsStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.keyPrinciples.forEach(function (principleData) {\n var principleContainer = document.createElement('div');\n principleContainer.classList.add('principle-container');\n var principleHeading = document.createElement('h3');\n principleHeading.textContent = principleData.principle;\n principleContainer.appendChild(principleHeading);\n var explanation = document.createElement('p');\n explanation.textContent = \"Explanation: \".concat(principleData.explanation);\n explanation.classList.add('paragraph');\n principleContainer.appendChild(explanation);\n if (principleData.example) {\n var example = document.createElement('p');\n example.textContent = \"Example: \".concat(principleData.example);\n example.classList.add('paragraph');\n principleContainer.appendChild(example);\n }\n contentArea.appendChild(principleContainer);\n });\n\n displayList(contentArea, 'Challenges in Biblical Interpretation', contentData.challenges);\n\n displayList(contentArea, 'Practical Tips for Applying Hermeneutics', contentData.practicalTips, 'ol');\n\n var emphasis = document.createElement('p');\n emphasis.textContent = \"Emphasis: \".concat(contentData.emphasis);\n emphasis.classList.add('paragraph');\n contentArea.appendChild(emphasis);\n}\n\nfunction createGroupDiscussionGuides(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Icebreaker Questions', contentData.icebreakerQuestions);\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n\n displayList(contentArea, 'Personal Reflection Prompts', contentData.reflectionPrompts);\n\n if (contentData.groupActivities && contentData.groupActivities.length > 0) {\n displayList(contentArea, 'Group Activities', contentData.groupActivities);\n }\n\n if (contentData.closingQuestions && contentData.closingQuestions.length > 0) {\n displayList(contentArea, 'Closing Questions', contentData.closingQuestions, 'ol');\n }\n}\n\nfunction createPersonalizedStudyPlans(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Assessment Questions', contentData.assessmentQuestions, 'ol');\n\n var planTemplateContainer = document.createElement('div');\n planTemplateContainer.classList.add('study-plan-template');\n var templateHeading = document.createElement('h3');\n templateHeading.textContent = 'Customizable Study Plan Template';\n planTemplateContainer.appendChild(templateHeading);\n\n if (contentData.studyPlanTemplate.dailyReadings && contentData.studyPlanTemplate.dailyReadings.length > 0) {\n displayList(planTemplateContainer, 'Daily Readings', contentData.studyPlanTemplate.dailyReadings);\n }\n if (contentData.studyPlanTemplate.reflectionQuestions && contentData.studyPlanTemplate.reflectionQuestions.length > 0) {\n displayList(planTemplateContainer, 'Reflection Questions', contentData.studyPlanTemplate.reflectionQuestions, 'ol');\n }\n if (contentData.studyPlanTemplate.prayerPrompts && contentData.studyPlanTemplate.prayerPrompts.length > 0) {\n displayList(planTemplateContainer, 'Prayer Prompts', contentData.studyPlanTemplate.prayerPrompts);\n }\n if (contentData.studyPlanTemplate.additionalResources && contentData.studyPlanTemplate.additionalResources.length > 0) {\n displayList(planTemplateContainer, 'Additional Resources', contentData.studyPlanTemplate.additionalResources);\n }\n contentArea.appendChild(planTemplateContainer);\n\n displayList(contentArea, 'Method Suggestions', contentData.methodSuggestions);\n\n displayList(contentArea, 'Motivation Tips', contentData.motivationTips);\n\n var encouragement = document.createElement('p');\n encouragement.textContent = contentData.encouragement;\n encouragement.classList.add('paragraph');\n contentArea.appendChild(encouragement);\n}\n\nfunction createGamifiedBibleQuizzes(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentQuestionIndex = 0;\n var score = 0;\n var title = document.createElement(\"h2\");\n title.textContent = contentData.title;\n title.classList.add(\"title\");\n contentArea.appendChild(title);\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Instructions', [contentData.instructions]);\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: 0\";\n contentArea.appendChild(scoreDisplay);\n function displayQuestion(index) {\n var question = contentData.questions[index];\n contentArea.innerHTML = \"\";\n contentArea.appendChild(title);\n contentArea.appendChild(passageOrThemeHeading);\n contentArea.appendChild(scoreDisplay);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n contentArea.appendChild(optionsList);\n } else if (question.type === \"trueFalse\") {\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\");\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"false\\\"> False</label>\");\n }\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = index === contentData.questions.length - 1 ? \"Finish Quiz\" : \"Next Question\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n return checkAnswer(index);\n });\n contentArea.appendChild(submitButton);\n }\n function checkAnswer(index) {\n var question = contentData.questions[index];\n var userInput;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var selectedOption = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n userInput = selectedOption ? selectedOption.value : null; \n }\n if (userInput === question.answer) {\n score += question.points || 1; \n scoreDisplay.textContent = \"Score: \".concat(score);\n displayFeedback(question.feedback.correct, true);\n } else {\n displayFeedback(question.feedback.incorrect, false);\n }\n if (index < contentData.questions.length - 1) {\n currentQuestionIndex++;\n setTimeout(function () {\n return displayQuestion(currentQuestionIndex);\n }, 1000); \n } else {\n endQuiz();\n }\n }\n function displayFeedback(feedbackMessage, isCorrect) {\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n var feedbackParagraph = document.createElement(\"p\");\n feedbackParagraph.textContent = feedbackMessage;\n feedbackParagraph.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackParagraph);\n }\n function endQuiz() {\n contentArea.innerHTML = \"\";\n contentArea.appendChild(title);\n contentArea.innerHTML += \"<p>You've completed the quiz!</p>\";\n contentArea.innerHTML += \"<p>Your final score is: \".concat(score, \"</p>\");\n }\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createBibleBasedCreativeWriting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Writing Prompts', contentData.writingPrompts, 'ol');\n\n if (contentData.additionalGuidance) {\n displayList(contentArea, 'Additional Guidance or Tips', [contentData.additionalGuidance]);\n }\n}\n\nfunction createPrayerMeditationPrompts(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passage ? \"Passage: \".concat(contentData.passage) : \"Theme: \".concat(contentData.theme);\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Prayer Prompts', contentData.prayerPrompts, 'ol');\n\n displayList(contentArea, 'Meditation Prompts', contentData.meditationPrompts, 'ol');\n}\n\nfunction createSocialSharingCommunityBuilding(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Social Media Sharing Ideas', contentData.sharingIdeas, 'ul');\n\n displayList(contentArea, 'Community Building Activities or Discussion Prompts', contentData.communityActivities, 'ol');\n\n displayList(contentArea, 'Tips for Fostering Online Community and Engagement', contentData.engagementTips, 'ol');\n}\n\nfunction createScriptureMemorySystems(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Verses', contentData.keyVerses);\n\n contentData.memorySystems.forEach(function (system) {\n var systemContainer = document.createElement('div');\n systemContainer.classList.add('memory-system');\n var systemHeading = document.createElement('h3');\n systemHeading.textContent = system.name;\n systemContainer.appendChild(systemHeading);\n\n var description = document.createElement('p');\n description.textContent = system.description;\n description.classList.add('paragraph');\n systemContainer.appendChild(description);\n\n displayList(systemContainer, 'Steps or Techniques', system.stepsOrTechniques, 'ol');\n contentArea.appendChild(systemContainer);\n });\n\n if (contentData.additionalTips && contentData.additionalTips.length > 0) {\n displayList(contentArea, 'Additional Tips', contentData.additionalTips, 'ul');\n }\n\n if (contentData.creativeIdeas && contentData.creativeIdeas.length > 0) {\n displayList(contentArea, 'Creative Ideas', contentData.creativeIdeas, 'ul');\n }\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\n\nfunction createScriptureWriting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n displayList(contentArea, 'Instructions or Guidance', [contentData.instructions]);\n\n displayList(contentArea, 'Reflection Questions or Prompts', contentData.reflectionPrompts, 'ol');\n\n var writingArea = document.createElement('textarea');\n writingArea.placeholder = 'Write the scripture here...';\n writingArea.classList.add('writing-area');\n contentArea.appendChild(writingArea);\n}\n\nfunction createBibleJournalingPrompts(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passage ? \"Passage: \".concat(contentData.passage) : \"Theme: \".concat(contentData.theme);\n contentArea.appendChild(passageOrThemeHeading);\n\n displayList(contentArea, 'Journaling Prompts', contentData.journalingPrompts, 'ol');\n\n var journalArea = document.createElement('textarea');\n journalArea.placeholder = 'Your journal entries...';\n journalArea.classList.add('journal-area');\n contentArea.appendChild(journalArea);\n}\n\nfunction createBibleBasedMusicPlaylists(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var themeOrPassageHeading = document.createElement('h3');\n themeOrPassageHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(themeOrPassageHeading);\n\n contentData.playlist.forEach(function (song) {\n var songDiv = document.createElement('div');\n songDiv.classList.add('song');\n var songInfo = document.createElement('p');\n songInfo.textContent = song.song; \n songInfo.classList.add('paragraph');\n songDiv.appendChild(songInfo);\n var connection = document.createElement('p');\n connection.textContent = \"Connection: \".concat(song.connection);\n connection.classList.add('paragraph');\n songDiv.appendChild(connection);\n contentArea.appendChild(songDiv);\n });\n\n if (contentData.playlistCreationTips && contentData.playlistCreationTips.length > 0) {\n displayList(contentArea, 'Playlist Creation Tips', contentData.playlistCreationTips, 'ol');\n }\n\n if (contentData.encouragement) {\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n }\n}\n\nfunction createBibleBasedPodcastsSermons(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageOrThemeHeading = document.createElement('h3');\n passageOrThemeHeading.textContent = contentData.passageOrTheme;\n contentArea.appendChild(passageOrThemeHeading);\n\n contentData.recommendations.forEach(function (recommendation) {\n var recommendationDiv = document.createElement('div');\n recommendationDiv.classList.add('recommendation');\n var titleHeading = document.createElement('h4');\n titleHeading.textContent = recommendation.title;\n recommendationDiv.appendChild(titleHeading);\n var speaker = document.createElement('p');\n speaker.textContent = \"Speaker/Creator: \".concat(recommendation.speaker);\n speaker.classList.add('paragraph');\n recommendationDiv.appendChild(speaker);\n var description = document.createElement('p');\n description.textContent = recommendation.description;\n description.classList.add('paragraph');\n recommendationDiv.appendChild(description);\n contentArea.appendChild(recommendationDiv);\n });\n\n displayList(contentArea, 'Incorporation Suggestions', contentData.incorporationSuggestions, 'ol');\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\nfunction createBibleBasedBookClubs(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.recommendedBooks.forEach(function (book) {\n var bookDiv = document.createElement('div');\n bookDiv.classList.add('book-recommendation');\n var titleHeading = document.createElement('h4');\n titleHeading.textContent = book.title;\n bookDiv.appendChild(titleHeading);\n var author = document.createElement('p');\n author.textContent = \"Author: \".concat(book.author);\n author.classList.add('paragraph');\n bookDiv.appendChild(author);\n var description = document.createElement('p');\n description.textContent = book.synopsis;\n description.classList.add('paragraph');\n bookDiv.appendChild(description);\n contentArea.appendChild(bookDiv);\n });\n\n displayList(contentArea, 'Discussion Questions or Prompts', contentData.discussionQuestions, 'ol');\n\n displayList(contentArea, 'Facilitation Tips', contentData.facilitationTips, 'ol');\n\n displayList(contentArea, 'Encouragement', [contentData.encouragement]);\n}\n\nfunction createApocryphaPseudepigraphaStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var bookHeading = document.createElement('h3');\n bookHeading.textContent = \"Book/Text: \".concat(contentData.bookOrText);\n contentArea.appendChild(bookHeading);\n\n displayList(contentArea, 'Background and Context', [contentData.background]);\n\n displayList(contentArea, 'Key Themes or Teachings', contentData.keyThemes, 'ul');\n\n displayList(contentArea, 'Relationship to the Canonical Bible', [contentData.relationshipToBible]);\n\n displayList(contentArea, 'Historical and Cultural Significance', [contentData.significance]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBiblicalArchaeologyStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.discoveries.forEach(function (discovery) {\n var discoveryContainer = document.createElement('div');\n discoveryContainer.classList.add('discovery-container');\n var discoveryHeading = document.createElement('h3');\n discoveryHeading.textContent = discovery.discovery;\n discoveryContainer.appendChild(discoveryHeading);\n var description = document.createElement('p');\n description.textContent = discovery.description;\n description.classList.add('paragraph');\n discoveryContainer.appendChild(description);\n\n if (discovery.image) {\n var image = document.createElement('img');\n image.src = discovery.image;\n image.alt = 'Image of the discovery'; \n discoveryContainer.appendChild(image);\n }\n\n var biblicalConnection = document.createElement('p');\n biblicalConnection.textContent = \"Biblical Connection: \".concat(discovery.biblicalConnection);\n biblicalConnection.classList.add('paragraph');\n discoveryContainer.appendChild(biblicalConnection);\n\n var relevance = document.createElement('p');\n relevance.textContent = \"Relevance: \".concat(discovery.relevance);\n relevance.classList.add('paragraph');\n discoveryContainer.appendChild(relevance);\n contentArea.appendChild(discoveryContainer);\n });\n\n displayList(contentArea, 'Discussion Questions', contentData.discussionQuestions, 'ol');\n}\n\nfunction createBiblicalLanguagesStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var passageHeading = document.createElement('h3');\n passageHeading.textContent = \"Passage: \".concat(contentData.passage);\n contentArea.appendChild(passageHeading);\n\n contentData.keyWordsOrPhrases.forEach(function (wordData) {\n var wordContainer = document.createElement('div');\n wordContainer.classList.add('word-container');\n\n var wordHeading = document.createElement('h3');\n wordHeading.textContent = \"\".concat(wordData.original, \" (\").concat(wordData.translation, \")\");\n wordContainer.appendChild(wordHeading);\n\n var definition = document.createElement('p');\n definition.textContent = \"Definition: \".concat(wordData.definition);\n definition.classList.add('paragraph');\n wordContainer.appendChild(definition);\n\n if (wordData.grammaticalAnalysis) {\n var grammaticalAnalysis = document.createElement('p');\n grammaticalAnalysis.textContent = \"Grammatical Analysis: \".concat(wordData.grammaticalAnalysis);\n grammaticalAnalysis.classList.add('paragraph');\n wordContainer.appendChild(grammaticalAnalysis);\n }\n\n if (wordData.contextualUsage) {\n var contextualUsage = document.createElement('p');\n contextualUsage.textContent = \"Contextual Usage: \".concat(wordData.contextualUsage);\n contextualUsage.classList.add('paragraph');\n wordContainer.appendChild(contextualUsage);\n }\n contentArea.appendChild(wordContainer);\n });\n\n if (contentData.translationComparisons && contentData.translationComparisons.length > 0) {\n var comparisonsContainer = document.createElement('div');\n var comparisonsHeading = document.createElement('h3');\n comparisonsHeading.textContent = 'Translation Comparisons';\n comparisonsContainer.appendChild(comparisonsHeading);\n contentData.translationComparisons.forEach(function (comparisonData) {\n var comparisonDiv = document.createElement('div');\n comparisonDiv.classList.add('translation-comparison');\n var wordHeading = document.createElement('h4');\n wordHeading.textContent = comparisonData.wordOrPhrase;\n comparisonDiv.appendChild(wordHeading);\n comparisonData.translations.forEach(function (translationData) {\n var translation = document.createElement('p');\n translation.textContent = \"\".concat(translationData.version, \": \").concat(translationData.text);\n translation.classList.add('paragraph');\n comparisonDiv.appendChild(translation);\n });\n var nuances = document.createElement('p');\n nuances.textContent = \"Nuances: \".concat(comparisonData.nuances);\n nuances.classList.add('paragraph');\n comparisonDiv.appendChild(nuances);\n comparisonsContainer.appendChild(comparisonDiv);\n });\n contentArea.appendChild(comparisonsContainer);\n }\n\n if (contentData.insights) {\n var insights = document.createElement('p');\n insights.textContent = \"Insights: \".concat(contentData.insights);\n insights.classList.add('paragraph');\n contentArea.appendChild(insights);\n }\n}\n\nfunction createSocialJusticeAdvocacyStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var issueHeading = document.createElement('h3');\n issueHeading.textContent = \"Social Justice Issue: \".concat(contentData.issue);\n contentArea.appendChild(issueHeading);\n\n displayKeyValueList(contentArea, \"Relevant Bible Passages and Teachings\", contentData.relevantPassages);\n\n displayList(contentArea, 'Biblical Applications to the Issue', contentData.biblicalApplications, 'ul');\n\n displayList(contentArea, 'Practical Steps for Advocacy and Action', contentData.actionSteps, 'ol');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createEnvironmentalStewardshipStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, \"Key Bible Verses and Passages\", contentData.keyVerses);\n\n displayList(contentArea, 'Environmental Themes and Principles', contentData.environmentalThemes, 'ul');\n\n displayList(contentArea, 'Current Environmental Challenges', [contentData.currentChallenges]);\n\n displayList(contentArea, 'Practical Steps for Environmental Action', contentData.practicalSteps, 'ol');\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createInterfaithDialogueStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var focusHeading = document.createElement('h3');\n focusHeading.textContent = \"Focus: \".concat(contentData.focus);\n contentArea.appendChild(focusHeading);\n\n displayKeyValueList(contentArea, 'Relevant Bible Passages and Teachings', contentData.relevantPassages);\n\n displayList(contentArea, 'Key Principles for Respectful Dialogue', contentData.keyPrinciples, 'ol');\n\n displayList(contentArea, 'Common Ground', contentData.commonGround, 'ul');\n displayList(contentArea, 'Points of Contention', contentData.pointsOfContention, 'ul');\n\n displayList(contentArea, 'Importance of Interfaith Dialogue', [contentData.importanceOfDialogue]);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBibleBasedLeadershipDevelopment(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, 'Key Biblical Leadership Principles', contentData.keyPrinciples, 'ul');\n\n contentData.biblicalExamples.forEach(function (example) {\n var exampleDiv = document.createElement('div');\n exampleDiv.classList.add('biblical-example'); \n\n var leaderHeading = document.createElement('h4');\n leaderHeading.textContent = \"Leader: \".concat(example.leader);\n exampleDiv.appendChild(leaderHeading);\n var principleParagraph = document.createElement('p');\n principleParagraph.textContent = \"Principle: \".concat(example.principle);\n principleParagraph.classList.add('paragraph');\n exampleDiv.appendChild(principleParagraph);\n var explanationParagraph = document.createElement('p');\n explanationParagraph.textContent = \"Explanation: \".concat(example.explanation);\n explanationParagraph.classList.add('paragraph');\n exampleDiv.appendChild(explanationParagraph);\n contentArea.appendChild(exampleDiv);\n });\n\n displayList(contentArea, 'Qualities of Effective Leaders', contentData.qualities, 'ul');\n\n displayKeyValueList(contentArea, 'Challenges and How Biblical Figures Addressed Them', contentData.challenges.map(function (challenge) {\n return {\n key: challenge.challenge,\n value: \"\".concat(challenge.biblicalExample, \": \").concat(challenge.solution)\n };\n }));\n\n if (contentData.personalApplication && contentData.personalApplication.length > 0) {\n displayList(contentArea, 'Personal Application', contentData.personalApplication, 'ol');\n }\n if (contentData.professionalApplication && contentData.professionalApplication.length > 0) {\n displayList(contentArea, 'Professional Application', contentData.professionalApplication, 'ol');\n }\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBibleBasedFinancialStewardship(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayKeyValueList(contentArea, \"Relevant Bible Passages and Teachings\", contentData.relevantPassages);\n\n displayList(contentArea, 'Key Principles', contentData.keyPrinciples, 'ol');\n\n displayList(contentArea, 'Practical Tips', contentData.practicalTips, 'ol');\n\n displayKeyValueList(contentArea, 'Common Financial Challenges and Biblical Solutions', contentData.challengesAndSolutions);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBibleBasedParentingFamilyLife(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var topicHeading = document.createElement('h3');\n topicHeading.textContent = \"Topic: \".concat(contentData.topic);\n contentArea.appendChild(topicHeading);\n\n displayKeyValueList(contentArea, 'Relevant Bible Passages and Teachings', contentData.relevantPassages);\n\n displayList(contentArea, 'Key Principles or Values', contentData.keyPrinciples, 'ul');\n\n displayList(contentArea, 'Practical Tips or Advice', contentData.practicalTips, 'ol');\n\n displayKeyValueList(contentArea, 'Common Challenges and Biblical Solutions', contentData.challengesAndSolutions);\n\n displayList(contentArea, 'Reflection Questions', contentData.reflectionQuestions, 'ol');\n}\n\nfunction createBibleBasedMarriageEnrichment(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayKeyValueList(contentArea, \"Relevant Bible Passages and Teachings\", contentData.relevantPassages);\n\n displayList(contentArea, 'Key Principles or Characteristics', contentData.keyPrinciples, 'ul');\n\n displayList(contentArea, 'Practical Tips for Strengthening a Marriage', contentData.practicalTips, 'ol');\n\n displayKeyValueList(contentArea, 'Common Challenges and Biblical Solutions', contentData.challengesAndSolutions);\n\n displayList(contentArea, 'Communication Exercises or Activities', contentData.communicationExercises, 'ol');\n\n displayList(contentArea, 'Reflection Questions for Couples', contentData.reflectionQuestions, 'ol');\n}\n\n},{}],15:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createActivity = createActivity;\nvar _activity_functions;\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\n\nfunction displayActivityInfo(container, activityInfo) {\n if (activityInfo.differentiation) {\n var differentiationContainer = document.createElement('div');\n differentiationContainer.innerHTML = activityInfo.differentiation.join(''); \n displayText(container, 'Differentiation:', differentiationContainer.outerHTML);\n }\n if (activityInfo.assessment) {\n var assessmentContainer = document.createElement('div');\n assessmentContainer.innerHTML = activityInfo.assessment.join(''); \n displayText(container, 'Assessment:', assessmentContainer.outerHTML);\n }\n}\n\nfunction displayLinks(container, title, keywords) {\n if (keywords && keywords.length > 0) {\n var linkContainer = document.createElement('div');\n linkContainer.classList.add('search-links');\n if (title) {\n var linkHeading = document.createElement('h3');\n linkHeading.textContent = title;\n linkContainer.appendChild(linkHeading);\n }\n var generateLink = function generateLink(engine, url) {\n var link = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n\n var icon = document.createElement('i');\n switch (engine) {\n case 'Google Images':\n icon.classList.add('fas', 'fa-image'); \n break;\n case 'YouTube':\n icon.classList.add('fab', 'fa-youtube'); \n break;\n case 'Google Scholar':\n icon.classList.add('fas', 'fa-graduation-cap'); \n break;\n case 'Google':\n icon.classList.add('fab', 'fa-google'); \n break;\n }\n link.appendChild(icon);\n\n var linkText = document.createTextNode(\" Search \".concat(engine));\n link.appendChild(linkText);\n linkContainer.appendChild(link);\n };\n keywords.forEach(function (keywordData) {\n var keyword = keywordData.keyword,\n engine = keywordData.engine;\n if (engine === 'googleImages' || !engine) {\n generateLink('Google Images', \"https://www.google.com/search?q=\".concat(encodeURIComponent(keyword), \"&tbm=isch\"));\n }\n if (engine === 'youtube' || !engine) {\n generateLink('YouTube', \"https://www.youtube.com/results?search_query=\".concat(encodeURIComponent(keyword)));\n }\n if (engine === 'googleScholar' || !engine) {\n generateLink('Google Scholar', \"https://scholar.google.com/scholar?q=\".concat(encodeURIComponent(keyword)));\n }\n if (engine === 'google' || !engine) {\n generateLink('Google', \"https://www.google.com/search?q=\".concat(encodeURIComponent(keyword)));\n }\n });\n container.appendChild(linkContainer);\n }\n}\n\nfunction displayCollapsibleSection(container, headerText, contentFunc) {\n var sectionWrapper = document.createElement('div');\n\n var sectionHeader = document.createElement('h3');\n sectionHeader.textContent = headerText;\n sectionWrapper.appendChild(sectionHeader);\n\n var contentContainer = document.createElement('div');\n for (var _len = arguments.length, contentArgs = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n contentArgs[_key - 3] = arguments[_key];\n }\n contentFunc.apply(void 0, [contentContainer].concat(contentArgs));\n sectionWrapper.appendChild(contentContainer);\n\n if (headerText === 'Activity Information') contentContainer.style.display = 'none';\n\n sectionHeader.addEventListener('click', function () {\n contentContainer.style.display = contentContainer.style.display === 'none' ? 'block' : 'none';\n });\n container.appendChild(sectionWrapper);\n}\nfunction displayTopActivityInfo(container, activityInfo) {\n if (activityInfo.learningObjectives) {\n displayList(container, 'Learning Objectives:', activityInfo.learningObjectives, 'OL', 12);\n }\n if (activityInfo.duration) {\n displayText(container, 'Duration:', activityInfo.duration);\n }\n if (activityInfo.materials) {\n displayText(container, 'Materials:', activityInfo.materials);\n }\n}\n\nfunction createActivity(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.type) {\n console.error(\"Invalid or missing data for activity generation.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading activity. Please try again.</p>\";\n return;\n }\n\n var formatData = newTTableData.find(function (item) {\n return item.type === contentData.type;\n });\n if (!formatData) {\n console.error(\"Format not found in newTTableData for type: \".concat(contentData.type));\n return;\n }\n var activityType = formatData.Format;\n var functionName = formatData.functionName;\n\n if (activity_functions.hasOwnProperty(functionName)) {\n if (contentData.additionalInfo && contentData.additionalInfo.learningObjectives) {\n var learningObjectivesContainer = document.createElement('div');\n learningObjectivesContainer.classList.add('learning-objectives');\n contentArea.appendChild(learningObjectivesContainer);\n displayTopActivityInfo(learningObjectivesContainer, contentData.additionalInfo);\n }\n\n activity_functions[functionName](contentData, contentArea);\n\n if (contentData.additionalInfo && (contentData.additionalInfo.differentiation || contentData.additionalInfo.assessment)) {\n var activityInfoContainer = document.createElement('div');\n activityInfoContainer.classList.add('activity-info');\n contentArea.appendChild(activityInfoContainer);\n displayCollapsibleSection(activityInfoContainer, 'Activity Information', displayActivityInfo, contentData.additionalInfo);\n }\n\n if (contentData.additionalInfo && contentData.additionalInfo.searchKeywords && contentData.additionalInfo.searchKeywords.length > 0) {\n var searchLinksContainer = document.createElement('div');\n searchLinksContainer.classList.add('activity-search-links');\n contentArea.appendChild(searchLinksContainer);\n displayCollapsibleSection(searchLinksContainer, 'Search Resources', displayLinks, null, contentData.additionalInfo.searchKeywords);\n }\n } else {\n console.error(\"Function not found for activity type: \".concat(activityType));\n contentArea.innerHTML = \"<p class=\\\"error-message\\\">Unsupported activity type: \".concat(activityType, \"</p>\");\n }\n}\n\nvar activity_functions = (_activity_functions = {\n createJigsawActivity: function createJigsawActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n var formattedTopics = formatList(contentData.topics.map(function (topicData) {\n return [topicData.topic, topicData.content];\n }));\n displayList(activityContainer, 'Topics/Subtopics:', formattedTopics, 'OL', 2);\n\n displayText(activityContainer, 'Expert Group Instructions:', contentData.expertGroupInstructions);\n displayText(activityContainer, 'Mixed Group Instructions:', contentData.mixedGroupInstructions);\n\n displayList(activityContainer, 'Discussion Questions:', contentData.discussionQuestions, 'OL', 0);\n },\n createThinkPairShareActivity: function createThinkPairShareActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.centralQuestion);\n\n displayText(activityContainer, 'Think:', contentData.thinkInstructions);\n displayText(activityContainer, 'Pair:', contentData.pairInstructions);\n displayText(activityContainer, 'Share:', contentData.shareInstructions);\n\n if (contentData.followUpQuestions && contentData.followUpQuestions.length > 0) {\n displayList(activityContainer, 'Follow-up Questions:', contentData.followUpQuestions, 'ol', 0);\n }\n },\n createNumberedHeadsTogetherActivity: function createNumberedHeadsTogetherActivity(contentData, activityContainer) {\n displayList(activityContainer, 'Questions:', contentData.questions, 'ol', 2);\n\n displayText(activityContainer, 'Numbering Instructions:', contentData.numberingInstructions);\n\n displayList(activityContainer, 'Group Discussion Prompts:', contentData.groupDiscussionPrompts, 'OL', 0);\n\n displayText(activityContainer, 'Sharing Instructions:', contentData.sharingInstructions);\n },\n createGalleryWalkActivity: function createGalleryWalkActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n displayText(activityContainer, 'Display Guidelines:', contentData.displayGuidelines);\n\n if (contentData.observationPrompts && contentData.observationPrompts.length > 0) {\n displayList(activityContainer, 'Observation Prompts:', contentData.observationPrompts, 'OL', 2);\n }\n\n if (contentData.concludingActivity) {\n displayText(activityContainer, 'Concluding Activity/Reflection:', contentData.concludingActivity);\n }\n },\n createRolePlayingSimulationActivity: function createRolePlayingSimulationActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.scenario);\n\n var rolesData = contentData.roles.map(function (role) {\n return {\n \"Role Name\": role.roleName,\n \"Description\": role.description,\n \"Tasks\": role.tasks \n };\n });\n displayList(activityContainer, 'Roles:', rolesData, 'ol', 2);\n\n if (contentData.debriefingQuestions && contentData.debriefingQuestions.length > 0) {\n displayList(activityContainer, 'Debriefing Questions:', contentData.debriefingQuestions, 'ol', 0);\n }\n },\n createDebateActivity: function createDebateActivity(contentData, activityContainer) {\n displayText(activityContainer, null, \"Topic: \".concat(contentData.topic));\n\n displayText(activityContainer, 'Research Guidelines:', contentData.researchGuidelines);\n displayText(activityContainer, 'Debate Format:', contentData.debateFormat);\n\n if (contentData.roles) {\n displayList(activityContainer, 'Roles:', contentData.roles, 'ol', 2);\n }\n\n if (contentData.debriefingQuestions) {\n displayList(activityContainer, 'Debriefing Questions:', contentData.debriefingQuestions, 'ol', 0);\n }\n },\n createCollaborativeProblemSolvingActivity: function createCollaborativeProblemSolvingActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.problemStatement);\n\n displayText(activityContainer, 'Collaboration Guidelines:', contentData.collaborationGuidelines);\n\n displayList(activityContainer, 'Problem-Solving Strategies:', contentData.problemSolvingStrategies, 'ol', 2);\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n\n if (contentData.presentationGuidelines) {\n displayText(activityContainer, 'Presentation Guidelines:', contentData.presentationGuidelines);\n }\n },\n createFishbowlActivity: function createFishbowlActivity(contentData, activityContainer) {\n displayText(activityContainer, null, \"Central Topic: \".concat(contentData.centralTopic));\n\n displayText(activityContainer, 'Inner Circle Guidelines:', contentData.innerCircleGuidelines);\n displayText(activityContainer, 'Outer Circle Guidelines:', contentData.outerCircleGuidelines);\n\n if (contentData.observationPrompts) {\n displayList(activityContainer, 'Observation Prompts:', contentData.observationPrompts, 'ol', 2);\n }\n\n if (contentData.concludingActivity) {\n displayText(activityContainer, 'Concluding Activity:', contentData.concludingActivity);\n }\n },\n createGroupInvestigationActivity: function createGroupInvestigationActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n displayList(activityContainer, 'Research Questions:', contentData.researchQuestions, 'ol', 2);\n\n displayText(activityContainer, 'Collaboration Guidelines:', contentData.collaborationGuidelines);\n\n var resourcesElement = document.createElement(\"div\");\n resourcesElement.innerHTML = \"<h3>Suggested Resources:</h3><ul>\";\n contentData.suggestedResources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n if (resource.startsWith(\"http://\") || resource.startsWith(\"https://\")) {\n var link = document.createElement(\"a\");\n link.href = resource;\n link.textContent = resource;\n listItem.appendChild(link);\n } else {\n listItem.textContent = resource;\n }\n resourcesElement.querySelector(\"ul\").appendChild(listItem); \n });\n activityContainer.appendChild(resourcesElement);\n\n if (contentData.presentationGuidelines) {\n displayText(activityContainer, 'Presentation Guidelines:', contentData.presentationGuidelines);\n }\n },\n createGroupPresentationsActivity: function createGroupPresentationsActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n displayList(activityContainer, 'Presentation Topics:', contentData.presentationTopics, 'ol', 2);\n\n displayText(activityContainer, 'Collaboration Guidelines:', contentData.collaborationGuidelines);\n\n if (contentData.researchGuidelines) {\n displayText(activityContainer, 'Research Guidelines:', contentData.researchGuidelines);\n }\n\n if (contentData.presentationRequirements) {\n displayText(activityContainer, 'Presentation Requirements:', contentData.presentationRequirements);\n }\n\n if (contentData.assessmentCriteria) {\n displayList(activityContainer, 'Assessment Criteria:', contentData.assessmentCriteria, 'ol', 0);\n }\n },\n createPeerReviewFeedbackActivity: function createPeerReviewFeedbackActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.feedbackInstructions);\n\n var feedbackFormElement = document.createElement(\"form\");\n contentData.feedbackForm.forEach(function (criterion) {\n var label = document.createElement(\"label\");\n label.textContent = criterion.criterion;\n feedbackFormElement.appendChild(label);\n var input = document.createElement(\"textarea\");\n input.placeholder = criterion.description || \"Enter your feedback here...\";\n feedbackFormElement.appendChild(input);\n feedbackFormElement.appendChild(document.createElement(\"br\"));\n });\n activityContainer.appendChild(feedbackFormElement);\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 2);\n }\n },\n createConceptMapsActivity: function createConceptMapsActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n displayList(activityContainer, 'Key Concepts:', contentData.keyConcepts, 'ol', 2);\n\n displayText(activityContainer, null, contentData.instructions);\n\n if (contentData.linkingWords) {\n displayList(activityContainer, 'Suggested Linking Words:', contentData.linkingWords, 'ol', 2);\n }\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n },\n createTeamExpertActivity: function createTeamExpertActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n var topicsElement = document.createElement(\"div\");\n topicsElement.innerHTML = \"<h3>Topics:</h3>\";\n contentData.topics.forEach(function (topic) {\n var topicContainer = document.createElement(\"div\");\n topicContainer.classList.add(\"topic-container\");\n var topicHeader = document.createElement(\"h4\");\n topicHeader.textContent = topic.topic;\n topicContainer.appendChild(topicHeader);\n var contentElement = document.createElement(\"div\");\n contentElement.classList.add(\"topic-content\");\n contentElement.textContent = topic.content;\n contentElement.style.display = \"none\";\n var toggleButton = document.createElement(\"button\");\n toggleButton.textContent = \"Show Content\";\n toggleButton.addEventListener(\"click\", function () {\n if (contentElement.style.display === \"none\") {\n contentElement.style.display = \"block\";\n toggleButton.textContent = \"Hide Content\";\n } else {\n contentElement.style.display = \"none\";\n toggleButton.textContent = \"Show Content\";\n }\n });\n topicContainer.appendChild(toggleButton);\n topicContainer.appendChild(contentElement);\n topicsElement.appendChild(topicContainer);\n });\n activityContainer.appendChild(topicsElement);\n\n displayText(activityContainer, 'Expert Group Guidelines:', contentData.expertGroupGuidelines);\n displayText(activityContainer, 'Peer Teaching Guidelines:', contentData.peerTeachingGuidelines);\n\n if (contentData.assessmentPrompts) {\n displayList(activityContainer, 'Assessment Prompts:', contentData.assessmentPrompts, 'ol', 2);\n }\n },\n createFourCornersActivity: function createFourCornersActivity(contentData, activityContainer) {\n var statementElement = document.createElement(\"p\");\n statementElement.innerHTML = \"<b>Central Statement:</b> \".concat(contentData.centralStatement);\n activityContainer.appendChild(statementElement);\n\n displayList(activityContainer, 'Corners:', contentData.cornerLabels, 'ol', 2);\n\n displayText(activityContainer, 'Instructions:', contentData.instructions);\n\n if (contentData.cornerDiscussionPrompts) {\n displayList(activityContainer, 'Corner Discussion Prompts:', contentData.cornerDiscussionPrompts, 'ol', 0);\n }\n\n if (contentData.wholeClassDiscussionPrompts) {\n displayList(activityContainer, 'Whole Class Discussion Prompts:', contentData.wholeClassDiscussionPrompts, 'ol', 0);\n }\n },\n createThinkWritePairShareActivity: function createThinkWritePairShareActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.centralQuestion);\n\n var instructions = [{\n title: \"Think\",\n content: contentData.thinkInstructions\n }, {\n title: \"Write\",\n content: contentData.writeInstructions\n }, {\n title: \"Pair\",\n content: contentData.pairInstructions\n }, {\n title: \"Share\",\n content: contentData.shareInstructions\n }];\n instructions.forEach(function (instruction) {\n displayText(activityContainer, instruction.title + ':', instruction.content);\n });\n\n if (contentData.followUpQuestions) {\n displayList(activityContainer, 'Follow-Up Questions:', contentData.followUpQuestions, 'ol', 2);\n }\n },\n createGuidedReadingActivity: function createGuidedReadingActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Text Selection:', contentData.textSelection); \n\n var activities = [{\n title: \"Pre-Reading Activities\",\n content: contentData.preReadingActivities\n }, {\n title: \"During-Reading Strategies\",\n content: contentData.duringReadingStrategies\n }, {\n title: \"During-Reading Questions\",\n content: contentData.duringReadingQuestions\n }, {\n title: \"Post-Reading Activities\",\n content: contentData.postReadingActivities\n }];\n activities.forEach(function (activity) {\n displayList(activityContainer, activity.title + ':', activity.content, 'ol', 2);\n });\n },\n createCollaborativeWritingActivity: function createCollaborativeWritingActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.writingPrompt);\n\n displayText(activityContainer, 'Collaboration Guidelines:', contentData.collaborationGuidelines);\n\n addActivitySection(activityContainer, 'Writing Process Steps', contentData.writingProcessSteps, 'ol');\n\n if (contentData.finalProductGuidelines) {\n displayText(activityContainer, 'Final Product Guidelines:', contentData.finalProductGuidelines);\n }\n },\n createRoundRobinActivity: function createRoundRobinActivity(contentData, activityContainer) {\n var taskElement = document.createElement(\"p\");\n taskElement.innerHTML = \"<b>Central Task:</b> \".concat(contentData.centralTask);\n activityContainer.appendChild(taskElement);\n\n displayText(activityContainer, 'Instructions:', contentData.instructions);\n\n if (contentData.timeLimitPerStudent) {\n var timerElement = document.createElement(\"div\");\n timerElement.id = \"round-robin-timer\";\n timerElement.textContent = \"Time Remaining: \" + contentData.timeLimitPerStudent;\n activityContainer.appendChild(timerElement);\n\n }\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 2);\n }\n },\n createIndependentReadingActivity: function () {\n var _createIndependentReadingActivity = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(contentData, activityContainer) {\n var bookListElement, _iterator, _step, item, listItem, response, data, _book$volumeInfo$imag, book, thumbnail, img;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n bookListElement = document.createElement(\"div\");\n bookListElement.innerHTML = \"<h3>Suggested Books/Genres:</h3><ul>\";\n _iterator = _createForOfIteratorHelper(contentData.bookListsOrGenres);\n _context.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context.next = 31;\n break;\n }\n item = _step.value;\n listItem = document.createElement(\"li\");\n if (item.includes(\"/\")) {\n _context.next = 27;\n break;\n }\n _context.prev = 9;\n _context.next = 12;\n return fetch(\"https://www.googleapis.com/books/v1/volumes?q=\".concat(encodeURIComponent(item)));\n case 12:\n response = _context.sent;\n _context.next = 15;\n return response.json();\n case 15:\n data = _context.sent;\n if (data.items && data.items.length > 0) {\n book = data.items[0];\n thumbnail = (_book$volumeInfo$imag = book.volumeInfo.imageLinks) === null || _book$volumeInfo$imag === void 0 ? void 0 : _book$volumeInfo$imag.thumbnail;\n if (thumbnail) {\n img = document.createElement(\"img\");\n img.src = thumbnail;\n img.alt = \"\".concat(item, \" cover\");\n listItem.appendChild(img);\n }\n }\n _context.next = 22;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](9);\n console.error(\"Error fetching book cover:\", _context.t0);\n case 22:\n _context.prev = 22;\n listItem.appendChild(document.createTextNode(\" \".concat(item)));\n return _context.finish(22);\n case 25:\n _context.next = 28;\n break;\n case 27:\n listItem.textContent = item;\n case 28:\n bookListElement.querySelector(\"ul\").appendChild(listItem);\n case 29:\n _context.next = 5;\n break;\n case 31:\n _context.next = 36;\n break;\n case 33:\n _context.prev = 33;\n _context.t1 = _context[\"catch\"](3);\n _iterator.e(_context.t1);\n case 36:\n _context.prev = 36;\n _iterator.f();\n return _context.finish(36);\n case 39:\n activityContainer.appendChild(bookListElement);\n\n displayList(activityContainer, 'Reading Goals:', contentData.readingGoals, 'ol', 2);\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n case 42:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[3, 33, 36, 39], [9, 19, 22, 25]]);\n }));\n function createIndependentReadingActivity(_x, _x2) {\n return _createIndependentReadingActivity.apply(this, arguments);\n }\n return createIndependentReadingActivity;\n }(),\n createResearchProjectsActivity: function createResearchProjectsActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n var researchTopicsWithExplanations = contentData.researchTopics.map(function (topic) {\n return contentData.topicExplanations && contentData.topicExplanations[topic] ? [topic, contentData.topicExplanations[topic]] \n : topic; \n });\n displayList(activityContainer, 'Research Topics:', formatList(researchTopicsWithExplanations), 'ol', 2);\n\n displayText(activityContainer, 'Research Guidelines:', contentData.researchGuidelines);\n\n if (contentData.presentationOptions) {\n displayList(activityContainer, 'Presentation/Product Options:', contentData.presentationOptions, 'ol', 2);\n }\n },\n createCreativeWritingActivity: function createCreativeWritingActivity(contentData, activityContainer) {\n displayList(activityContainer, 'Writing Prompts:', contentData.writingPrompts, 'ol', 2);\n\n var genresElement = document.createElement(\"div\");\n genresElement.innerHTML = \"<h3>Genre Guidelines:</h3>\";\n contentData.genreGuidelines.forEach(function (genreGuide) {\n var genreContainer = document.createElement(\"div\");\n genreContainer.classList.add(\"genre-container\");\n var genreHeader = document.createElement(\"h4\");\n genreHeader.textContent = genreGuide.genre;\n genreContainer.appendChild(genreHeader);\n var guidelinesElement = document.createElement(\"div\");\n guidelinesElement.classList.add(\"genre-guidelines\");\n guidelinesElement.textContent = genreGuide.guidelines;\n guidelinesElement.style.display = \"none\"; \n\n var toggleButton = document.createElement(\"button\");\n toggleButton.textContent = \"Show Guidelines\";\n toggleButton.addEventListener(\"click\", function () {\n if (guidelinesElement.style.display === \"none\") {\n guidelinesElement.style.display = \"block\";\n toggleButton.textContent = \"Hide Guidelines\";\n } else {\n guidelinesElement.style.display = \"none\";\n toggleButton.textContent = \"Show Guidelines\";\n }\n });\n genreContainer.appendChild(toggleButton);\n genreContainer.appendChild(guidelinesElement);\n genresElement.appendChild(genreContainer);\n });\n activityContainer.appendChild(genresElement);\n\n if (contentData.sharingSuggestions) {\n displayText(activityContainer, 'Sharing Suggestions:', contentData.sharingSuggestions);\n }\n },\n createProblemSolvingActivities: function createProblemSolvingActivities(contentData, activityContainer) {\n contentData.problems.forEach(function (problem, index) {\n var problemElement = document.createElement(\"div\");\n problemElement.innerHTML = \"<h3>Problem \".concat(index + 1, \": (\").concat(problem.problemType, \")</h3>\");\n problemElement.innerHTML += \"<p>\".concat(problem.problemStatement, \"</p>\");\n\n var instructionsElement = document.createElement(\"div\");\n instructionsElement.style.display = \"none\";\n var instructionsButton = document.createElement(\"button\");\n instructionsButton.textContent = \"Show Instructions\";\n instructionsButton.addEventListener(\"click\", function () {\n if (instructionsElement.style.display === \"none\") {\n instructionsElement.style.display = \"block\";\n instructionsButton.textContent = \"Hide Instructions\";\n } else {\n instructionsElement.style.display = \"none\";\n instructionsButton.textContent = \"Show Instructions\";\n }\n });\n instructionsElement.innerHTML += \"<p>\".concat(problem.instructions, \"</p>\");\n problemElement.appendChild(instructionsButton);\n problemElement.appendChild(instructionsElement);\n\n if (problem.hints) {\n displayList(problemElement, 'Hints:', problem.hints, 'ol', 2);\n }\n\n var solutionElement = document.createElement(\"div\");\n solutionElement.style.display = \"none\";\n var solutionButton = document.createElement(\"button\");\n solutionButton.textContent = \"Show Solution\";\n solutionButton.addEventListener(\"click\", function () {\n if (solutionElement.style.display === \"none\") {\n solutionElement.style.display = \"block\";\n solutionButton.textContent = \"Hide Solution\";\n } else {\n solutionElement.style.display = \"none\";\n solutionButton.textContent = \"Show Solution\";\n }\n });\n solutionElement.innerHTML += \"<p>\".concat(problem.solution, \"</p>\");\n problemElement.appendChild(solutionButton);\n problemElement.appendChild(solutionElement);\n activityContainer.appendChild(problemElement);\n });\n },\n createInquiryBasedActivity: function createInquiryBasedActivity(contentData, activityContainer) {\n displayText(activityContainer, null, \"Central Question: \".concat(contentData.centralQuestion));\n\n displayList(activityContainer, 'Guiding Questions:', contentData.guidingQuestions, 'ol', 0);\n\n var resourcesElement = document.createElement(\"div\");\n resourcesElement.innerHTML = \"<h3>Resources:</h3><ul>\";\n contentData.resources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n if (resource.startsWith(\"http://\") || resource.startsWith(\"https://\")) {\n var link = document.createElement(\"a\");\n link.href = resource;\n link.textContent = resource;\n listItem.appendChild(link);\n } else {\n listItem.textContent = resource;\n }\n resourcesElement.querySelector(\"ul\").appendChild(listItem);\n });\n activityContainer.appendChild(resourcesElement);\n\n displayList(activityContainer, 'Process:', contentData.process, 'ol', 2); \n },\n createSocraticSeminarActivity: function createSocraticSeminarActivity(contentData, activityContainer) {\n var textOrTopicElement = document.createElement(\"p\");\n textOrTopicElement.innerHTML = \"<b>Central Text or Topic:</b> \".concat(contentData.centralTextOrTopic);\n activityContainer.appendChild(textOrTopicElement);\n\n displayList(activityContainer, 'Open-Ended Questions:', contentData.openEndedQuestions, 'ol', 2); \n\n displayText(activityContainer, 'Participation Guidelines:', contentData.participationGuidelines);\n\n if (contentData.facilitationTips) {\n displayText(activityContainer, 'Facilitation Tips:', contentData.facilitationTips);\n }\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n },\n createPortfolioProjectsActivity: function createPortfolioProjectsActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n var guidelinesElement = document.createElement(\"div\"); \n displayText(guidelinesElement, 'Selection Guidelines:', contentData.selectionGuidelines);\n if (contentData.organizationGuidelines) {\n displayText(guidelinesElement, 'Organization Guidelines:', contentData.organizationGuidelines);\n }\n activityContainer.appendChild(guidelinesElement);\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n\n if (contentData.assessmentCriteria) {\n displayList(activityContainer, 'Assessment Criteria:', contentData.assessmentCriteria, 'ol', 0);\n }\n },\n createInteractiveNotebooksActivity: function createInteractiveNotebooksActivity(contentData, activityContainer) {\n var guidelinesElement = document.createElement(\"div\");\n displayText(guidelinesElement, 'Creation Guidelines:', contentData.creationGuidelines);\n displayText(guidelinesElement, 'Organization Tips:', contentData.organizationTips);\n activityContainer.appendChild(guidelinesElement);\n\n if (contentData.layoutSuggestions) {\n displayList(activityContainer, 'Layout Suggestions:', contentData.layoutSuggestions, 'ol', 2);\n }\n\n if (contentData.reflectionPrompts) {\n displayList(activityContainer, 'Reflection Prompts:', contentData.reflectionPrompts, 'ol', 0);\n }\n },\n createJournalingWritingPromptsActivity: function createJournalingWritingPromptsActivity(contentData, activityContainer) {\n displayList(activityContainer, 'Writing Prompts:', contentData.writingPrompts, 'ol', 2);\n\n if (contentData.writingStyleGuidelines) {\n displayText(activityContainer, 'Writing Style Guidelines:', contentData.writingStyleGuidelines);\n }\n\n if (contentData.sharingSuggestions) {\n displayText(activityContainer, 'Sharing Suggestions:', contentData.sharingSuggestions);\n }\n },\n createWebQuestActivity: function createWebQuestActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.introduction);\n displayText(activityContainer, 'Task:', contentData.task);\n\n var resourcesList = document.createElement(\"ul\");\n contentData.webResources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n var link = document.createElement(\"a\");\n link.href = resource;\n link.textContent = resource;\n listItem.appendChild(link);\n resourcesList.appendChild(listItem);\n });\n activityContainer.appendChild(resourcesList);\n\n var processGuideElement = document.createElement(\"div\");\n processGuideElement.innerHTML = \"<h3>Process Guide:</h3>\";\n var processList = document.createElement(\"ol\");\n contentData.processGuide.forEach(function (step) {\n var stepItem = document.createElement(\"li\");\n stepItem.textContent = step.step;\n if (step.questions && step.questions.length > 0) {\n var questionsList = document.createElement(\"ul\");\n step.questions.forEach(function (question) {\n var questionItem = document.createElement(\"li\");\n questionItem.textContent = question;\n questionsList.appendChild(questionItem);\n });\n stepItem.appendChild(questionsList);\n }\n processList.appendChild(stepItem);\n });\n processGuideElement.appendChild(processList);\n activityContainer.appendChild(processGuideElement);\n\n if (contentData.evaluation) {\n displayText(activityContainer, 'Evaluation:', contentData.evaluation);\n }\n },\n createCaseStudiesActivity: function createCaseStudiesActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Case Study:', contentData.caseStudy);\n\n displayList(activityContainer, 'Guiding Questions:', contentData.guidingQuestions, 'ol', 2);\n\n if (contentData.discussionPrompts) {\n displayList(activityContainer, 'Discussion Prompts:', contentData.discussionPrompts, 'ol', 0);\n }\n },\n createChallengeProblemsActivity: function createChallengeProblemsActivity(contentData, activityContainer) {\n contentData.challenges.forEach(function (challenge, index) {\n var challengeElement = document.createElement(\"div\");\n challengeElement.innerHTML = \"<h3>Challenge \".concat(index + 1, \": \").concat(challenge.challenge, \"</h3>\");\n\n displayText(challengeElement, 'Instructions:', challenge.instructions);\n displayText(challengeElement, 'Solution:', challenge.solution);\n\n if (challenge.hints) {\n displayList(challengeElement, 'Hints:', challenge.hints, 'ol', 2);\n }\n\n if (challenge.extensionActivities) {\n displayList(challengeElement, 'Extension Activities:', challenge.extensionActivities, 'ol', 2);\n }\n activityContainer.appendChild(challengeElement);\n });\n },\n createStationsActivity: function createStationsActivity(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.overview);\n\n var stationsData = contentData.stations.map(function (station) {\n return {\n \"Station Name\": station.stationName,\n \"Task/Activity\": station.taskOrActivity,\n \"Materials\": station.materials || [] \n };\n });\n displayList(activityContainer, 'Stations:', stationsData, 'ol', 2);\n\n displayText(activityContainer, 'Rotation Instructions:', contentData.rotationInstructions);\n },\n createEscapeRoomChallenge: function createEscapeRoomChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayText(activityContainer, 'Theme', contentData.theme);\n displayList(activityContainer, 'Objectives', contentData.objectives);\n displayList(activityContainer, 'Puzzles', contentData.puzzles); \n displayText(activityContainer, 'Team Instructions', contentData.teamInstructions);\n displayText(activityContainer, 'Time Limit', contentData.timeLimit);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded); \n displayList(activityContainer, 'Debriefing Questions', contentData.debriefingQuestions); \n displayText(activityContainer, 'Game Instructions', contentData.gameInstructions);\n },\n createScienceExperiment: function createScienceExperiment(contentData, activityContainer) {\n displayText(activityContainer, 'Scientific Concept', contentData.scientificConcept);\n displayText(activityContainer, 'Research Question', contentData.researchQuestion);\n displayText(activityContainer, 'Hypothesis', contentData.hypothesis);\n displayList(activityContainer, 'Materials', contentData.materials); \n displayList(activityContainer, 'Procedure', contentData.procedure, 'OL'); \n displayList(activityContainer, 'Observation Prompts', contentData.observationPrompts); \n displayList(activityContainer, 'Analysis Questions', contentData.analysisQuestions); \n displayList(activityContainer, 'Reflection Prompts', contentData.reflectionPrompts); \n },\n createDesignThinkingChallenge: function createDesignThinkingChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Problem Statement', contentData.problemStatement);\n displayList(activityContainer, 'User Needs', contentData.userNeeds); \n displayList(activityContainer, 'Brainstorming Ideas', contentData.brainstormingIdeas); \n displayList(activityContainer, 'Prototyping Steps', contentData.prototypingSteps, 'OL'); \n displayList(activityContainer, 'Testing Criteria', contentData.testingCriteria); \n displayList(activityContainer, 'Feedback Prompts', contentData.feedbackPrompts); \n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createBuildAStoryCards: function createBuildAStoryCards(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Story Elements', contentData.storyElements); \n displayText(activityContainer, 'Gameplay Instructions', contentData.gameplayInstructions);\n displayList(activityContainer, 'Creativity Prompts', contentData.creativityPrompts); \n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createRotatingRolePlaying: function createRotatingRolePlaying(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayText(activityContainer, 'Scenario', contentData.scenario);\n displayList(activityContainer, 'Roles', contentData.roles); \n displayText(activityContainer, 'Role Rotation Structure', contentData.roleRotationStructure);\n displayList(activityContainer, 'Guiding Questions', contentData.guidingQuestions); \n displayList(activityContainer, 'Debriefing Reflections', contentData.debriefingReflections); \n },\n createBingo: function createBingo(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Terms', contentData.terms); \n displayText(activityContainer, 'Grid Structure', contentData.gridStructure);\n displayText(activityContainer, 'Winning Conditions', contentData.winningConditions);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createJeopardy: function createJeopardy(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Categories', contentData.categories); \n displayList(activityContainer, 'Difficulty Levels', contentData.difficultyLevels); \n displayList(activityContainer, 'Point Values', contentData.pointValues); \n displayText(activityContainer, 'Final Round Rules', contentData.finalRoundRules);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createSimulations: function createSimulations(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayText(activityContainer, 'Scenario Details', contentData.scenarioDetails);\n displayList(activityContainer, 'Roles', contentData.roles); \n displayList(activityContainer, 'Decision Prompts', contentData.decisionPrompts); \n displayText(activityContainer, 'Assessment Criteria', contentData.assessmentCriteria);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createInteractiveWhiteboard: function createInteractiveWhiteboard(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Interactive Elements', contentData.interactiveElements); \n displayList(activityContainer, 'Question Types', contentData.questionTypes); \n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayText(activityContainer, 'Game Mechanics', contentData.gameMechanics);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createCodingChallenges: function createCodingChallenges(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Challenge Categories', contentData.challengeCategories); \n displayList(activityContainer, 'Coding Tasks', contentData.codingTasks); \n displayText(activityContainer, 'Assessment Criteria', contentData.assessmentCriteria);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions); \n },\n createProblemOfTheDayChallenge: function createProblemOfTheDayChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Problem Categories', contentData.problemCategories); \n displayText(activityContainer, 'Difficulty Levels', contentData.difficultyLevels);\n displayList(activityContainer, 'Sample Problems', contentData.sampleProblems); \n displayList(activityContainer, 'Hints', contentData.hints); \n displayList(activityContainer, 'Solutions', contentData.solutions); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createCharades: function createCharades(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Word Categories', contentData.wordCategories); \n displayText(activityContainer, 'Game Rules', contentData.gameRules);\n displayList(activityContainer, 'Variations', contentData.variations); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createPictionary: function createPictionary(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Word Categories', contentData.wordCategories); \n displayText(activityContainer, 'Drawing Rules', contentData.drawingRules);\n displayList(activityContainer, 'Variations', contentData.variations); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createScavengerHunt: function createScavengerHunt(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayText(activityContainer, 'Theme', contentData.theme);\n displayList(activityContainer, 'Scavenger Locations', contentData.scavengerLocations); \n displayList(activityContainer, 'Clues', contentData.clues); \n displayList(activityContainer, 'Items To Find', contentData.itemsToFind); \n displayText(activityContainer, 'Collaboration Options', contentData.collaborationOptions);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createCardGame: function createCardGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Card Types', contentData.cardTypes); \n displayText(activityContainer, 'Game Rules', contentData.gameRules);\n displayList(activityContainer, 'Variations', contentData.variations); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createBoardGame: function createBoardGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayText(activityContainer, 'Board Layout', contentData.boardLayout);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayText(activityContainer, 'Rule Modifications', contentData.ruleModifications);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createDebateTournament: function createDebateTournament(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayText(activityContainer, 'Debate Format', contentData.debateFormat);\n displayList(activityContainer, 'Topic Categories', contentData.topicCategories); \n displayText(activityContainer, 'Preparation Instructions', contentData.preparationInstructions);\n displayText(activityContainer, 'Scoring Criteria', contentData.scoringCriteria);\n displayList(activityContainer, 'Variations', contentData.variations); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createOnlineEscapeRoom: function createOnlineEscapeRoom(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayText(activityContainer, 'Game Theme', contentData.gameTheme);\n displayList(activityContainer, 'Puzzle Types', contentData.puzzleTypes); \n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayText(activityContainer, 'Collaboration Methods', contentData.collaborationMethods);\n displayText(activityContainer, 'Digital Tools Required', contentData.digitalToolsRequired);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createWouldYouRatherDebate: function createWouldYouRatherDebate(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Debate Prompts', contentData.debatePrompts); \n displayText(activityContainer, 'Discussion Guidelines', contentData.discussionGuidelines);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Variations', contentData.variations); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createHistoricalDinnerParty: function createHistoricalDinnerParty(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives); \n displayList(activityContainer, 'Historical Figures', contentData.historicalFigures); \n displayList(activityContainer, 'Role Descriptions', contentData.roleDescriptions); \n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods); \n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions); \n },\n createInventProductChallenge: function createInventProductChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Product Design Requirements', contentData.productDesignRequirements);\n displayText(activityContainer, 'Marketing Strategy', contentData.marketingStrategy);\n displayText(activityContainer, 'Collaboration Methods', contentData.collaborationMethods);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createTimeCapsuleProject: function createTimeCapsuleProject(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Capsule Content Guidelines', contentData.capsuleContentGuidelines);\n displayList(activityContainer, 'Historical Analysis Prompts', contentData.historicalAnalysisPrompts, 'UL', 2);\n displayList(activityContainer, 'Variations', contentData.variations, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createDebateLaw: function createDebateLaw(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Law Selection Criteria', contentData.lawSelectionCriteria);\n displayText(activityContainer, 'Debate Format', contentData.debateFormat);\n displayText(activityContainer, 'Research Requirements', contentData.researchRequirements);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createCreateADocumentaryProject: function createCreateADocumentaryProject(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Research Requirements', contentData.researchRequirements);\n displayText(activityContainer, 'Documentary Format Guidelines', contentData.documentaryFormatGuidelines);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createEthicalDilemmasDiscussions: function createEthicalDilemmasDiscussions(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Ethical Scenario Guidelines', contentData.ethicalScenarioGuidelines);\n displayText(activityContainer, 'Discussion Format', contentData.discussionFormat);\n displayList(activityContainer, 'Reflection Prompts', contentData.reflectionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createMysteryScienceInvestigations: function createMysteryScienceInvestigations(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Mystery Setup', contentData.mysterySetup);\n displayList(activityContainer, 'Investigation Steps', contentData.investigationSteps, 'UL', 2);\n displayText(activityContainer, 'Experimentation Guidelines', contentData.experimentationGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createHistoricalWhatIfScenario: function createHistoricalWhatIfScenario(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Scenario Creation Guidelines', contentData.scenarioCreationGuidelines);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayText(activityContainer, 'Analysis Structure', contentData.analysisStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createDesignCityChallenge: function createDesignCityChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'City Planning Elements', contentData.cityPlanningElements, 'UL', 2);\n displayText(activityContainer, 'Zoning Guidelines', contentData.zoningGuidelines);\n displayText(activityContainer, 'Sustainability Considerations', contentData.sustainabilityConsiderations);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createCodeRobot: function createCodeRobot(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Coding Challenge Details', contentData.codingChallengeDetails);\n displayList(activityContainer, 'Programming Languages Platforms', contentData.programmingLanguagesPlatforms, 'UL', 2);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createInteractiveStorytellingActivity: function createInteractiveStorytellingActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Storytelling Platform Options', contentData.storytellingPlatformOptions, 'UL', 2);\n displayText(activityContainer, 'Narrative Structure', contentData.narrativeStructure);\n displayList(activityContainer, 'Digital Tools Required', contentData.digitalToolsRequired, 'UL', 2);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createGamifiedLearningPlatform: function createGamifiedLearningPlatform(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Platform Options', contentData.platformOptions, 'UL', 2);\n displayList(activityContainer, 'Customization Elements', contentData.customizationElements, 'UL', 2);\n displayList(activityContainer, 'Game Mechanics', contentData.gameMechanics, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createAugmentedRealityLearning: function createAugmentedRealityLearning(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'AR Tools', contentData.ARTools, 'UL', 2);\n displayText(activityContainer, 'Interactive Elements', contentData.interactiveElements);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createEscapeRoomDesignChallenge: function createEscapeRoomDesignChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Theme Development', contentData.themeDevelopment);\n displayList(activityContainer, 'Puzzle Creation', contentData.puzzleCreation, 'UL', 2);\n displayText(activityContainer, 'Challenge Levels', contentData.challengeLevels);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createGameShowCreation: function createGameShowCreation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Question Categories', contentData.questionCategories, 'UL', 2);\n displayText(activityContainer, 'Challenge Formats', contentData.challengeFormats);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Teamwork Roles', contentData.teamworkRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createSimonSaysTwist: function createSimonSaysTwist(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Command Variations', contentData.commandVariations, 'UL', 2);\n displayText(activityContainer, 'Difficulty Levels', contentData.difficultyLevels);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createRelayRaceEducational: function createRelayRaceEducational(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Task Examples', contentData.taskExamples, 'UL', 2);\n displayText(activityContainer, 'Race Structure', contentData.raceStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createObstacleCourseAcademic: function createObstacleCourseAcademic(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Academic Challenge Integration', contentData.academicChallengeIntegration);\n displayText(activityContainer, 'Course Structure', contentData.courseStructure);\n displayList(activityContainer, 'Checkpoints', contentData.checkpoints, 'UL', 2);\n displayText(activityContainer, 'Difficulty Levels', contentData.difficultyLevels);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createOutdoorScavengerHunt: function createOutdoorScavengerHunt(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Clue Structure', contentData.clueStructure, 'UL', 2);\n displayList(activityContainer, 'Challenge Types', contentData.challengeTypes, 'UL', 2);\n displayText(activityContainer, 'Difficulty Scaling', contentData.difficultyScaling);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createCardMatchingEducational: function createCardMatchingEducational(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Card Pairs', contentData.cardPairs, 'UL'); \n displayList(activityContainer, 'Game Variations', contentData.gameVariations, 'UL', 2);\n displayText(activityContainer, 'Difficulty Scaling', contentData.difficultyScaling);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n },\n createTriviaQuizShow: function createTriviaQuizShow(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayList(activityContainer, 'Question Bank', contentData.questionBank); \n displayText(activityContainer, 'Game Rules', contentData.gameRules);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n }\n}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createDebateTournament\", function createDebateTournament(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Debate Structure', contentData.debateStructure);\n displayList(activityContainer, 'Topic Suggestions', contentData.topicSuggestions, 'UL', 2);\n displayList(activityContainer, 'Team Roles', contentData.teamRoles, 'UL', 2);\n displayText(activityContainer, 'Scoring Criteria', contentData.scoringCriteria);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEducationalRolePlayingScenarios\", function createEducationalRolePlayingScenarios(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Scenario Themes', contentData.scenarioThemes, 'UL', 2);\n displayList(activityContainer, 'Role Assignments', contentData.roleAssignments, 'UL', 2);\n displayText(activityContainer, 'Activity Structure', contentData.activityStructure);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHistoricalDinnerParty\", function createHistoricalDinnerParty(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Historical Themes', contentData.historicalThemes, 'UL', 2);\n displayList(activityContainer, 'Character Roles', contentData.characterRoles, 'UL', 2);\n displayList(activityContainer, 'Discussion Topics', contentData.discussionTopics, 'UL', 2);\n displayText(activityContainer, 'Event Structure', contentData.eventStructure);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createTimeCapsuleProject\", function createTimeCapsuleProject(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Time Capsule Themes', contentData.timeCapsuleThemes, 'UL', 2);\n displayText(activityContainer, 'Artifact Selection Criteria', contentData.artifactSelectionCriteria);\n displayText(activityContainer, 'Submission Guidelines', contentData.submissionGuidelines);\n displayList(activityContainer, 'Reflection Prompts', contentData.reflectionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCreateADocumentary\", function createCreateADocumentary(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Documentary Themes', contentData.documentaryThemes, 'UL', 2);\n displayText(activityContainer, 'Research Guidelines', contentData.researchGuidelines);\n displayText(activityContainer, 'Filming Instructions', contentData.filmingInstructions);\n displayText(activityContainer, 'Editing Techniques', contentData.editingTechniques);\n displayText(activityContainer, 'Presentation Format', contentData.presentationFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEthicalDilemmasDiscussion\", function createEthicalDilemmasDiscussion(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Dilemma Themes', contentData.dilemmaThemes, 'UL', 2);\n displayText(activityContainer, 'Discussion Guidelines', contentData.discussionGuidelines);\n displayText(activityContainer, 'Debate Format', contentData.debateFormat);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMysteryScienceInvestigation\", function createMysteryScienceInvestigation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Mystery Setup', contentData.mysterySetup);\n displayList(activityContainer, 'Investigation Steps', contentData.investigationSteps, 'UL', 2);\n displayText(activityContainer, 'Experimentation Guidelines', contentData.experimentationGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createGroupPuzzles\", function createGroupPuzzles(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Puzzle Types', contentData.puzzleTypes, 'UL', 2);\n displayText(activityContainer, 'Difficulty Levels', contentData.difficultyLevels);\n displayText(activityContainer, 'Group Size', contentData.groupSize);\n displayText(activityContainer, 'Hints System', contentData.hintsSystem);\n displayText(activityContainer, 'Collaboration Strategies', contentData.collaborationStrategies);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createStorytellingActivity\", function createStorytellingActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Storytelling Themes', contentData.storytellingThemes, 'UL', 2);\n displayText(activityContainer, 'Story Formats', contentData.storyFormats);\n displayText(activityContainer, 'Collaboration Strategies', contentData.collaborationStrategies);\n displayList(activityContainer, 'Story Prompts', contentData.storyPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHumanBingo\", function createHumanBingo(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Bingo Categories', contentData.bingoCategories, 'UL', 2);\n displayText(activityContainer, 'Instructions', contentData.instructions);\n displayText(activityContainer, 'Customization Options', contentData.customizationOptions);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createBlindfoldObstacleCourse\", function createBlindfoldObstacleCourse(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Obstacle Types', contentData.obstacleTypes, 'UL', 2);\n displayText(activityContainer, 'Instructions', contentData.instructions);\n displayText(activityContainer, 'Safety Guidelines', contentData.safetyGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createGroupStorytelling\", function createGroupStorytelling(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Storytelling Formats', contentData.storytellingFormats);\n displayText(activityContainer, 'Collaboration Methods', contentData.collaborationMethods);\n displayList(activityContainer, 'Story Prompts', contentData.storyPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createExpertPanels\", function createExpertPanels(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Panel Topics', contentData.panelTopics, 'UL', 2);\n displayText(activityContainer, 'Research Instructions', contentData.researchInstructions);\n displayText(activityContainer, 'Discussion Format', contentData.discussionFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createClassroomDebate\", function createClassroomDebate(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Debate Topics', contentData.debateTopics, 'UL', 2);\n displayText(activityContainer, 'Format', contentData.format);\n displayList(activityContainer, 'Team Roles', contentData.teamRoles, 'UL', 2);\n displayList(activityContainer, 'Evaluation Criteria', contentData.evaluationCriteria, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createWhatIfScenarios\", function createWhatIfScenarios(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Scenario Examples', contentData.scenarioExamples, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDecisionMakingChallenges\", function createDecisionMakingChallenges(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Decision Scenarios', contentData.decisionScenarios, 'UL', 2);\n displayList(activityContainer, 'Key Considerations', contentData.keyConsiderations, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createResourceManagementGame\", function createResourceManagementGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Resource Types', contentData.resourceTypes, 'UL', 2);\n displayText(activityContainer, 'Game Mechanics', contentData.gameMechanics);\n displayList(activityContainer, 'Decision Making Aspects', contentData.decisionMakingAspects, 'UL', 2);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createBrokenTelephoneGame\", function createBrokenTelephoneGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Gameplay Rules', contentData.gameplayRules);\n displayList(activityContainer, 'Variations', contentData.variations, 'UL', 2);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFindTheImposterGame\", function createFindTheImposterGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'Gameplay Rules', contentData.gameplayRules);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createVocabularyHopscotchGame\", function createVocabularyHopscotchGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'Gameplay Rules', contentData.gameplayRules);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createMathTwisterGame\", function createMathTwisterGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'Gameplay Rules', contentData.gameplayRules);\n displayList(activityContainer, 'Evaluation Methods', contentData.evaluationMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHistoricalReenactment\", function createHistoricalReenactment(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Historical Events', contentData.historicalEvents, 'UL', 2);\n displayList(activityContainer, 'Roles', contentData.roles, 'UL', 2);\n displayText(activityContainer, 'Preparation Steps', contentData.preparationSteps);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createScienceCharadesGame\", function createScienceCharadesGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Scientific Terms', contentData.scientificTerms, 'UL', 2);\n displayText(activityContainer, 'Gameplay Rules', contentData.gameplayRules);\n displayText(activityContainer, 'Scoring Methods', contentData.scoringMethods);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createGeographyScavengerHuntGame\", function createGeographyScavengerHuntGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Scavenger Hunt Challenges', contentData.scavengerHuntChallenges, 'UL', 2);\n displayList(activityContainer, 'Clue Types', contentData.clueTypes, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createOnceUponATimeMachine\", function createOnceUponATimeMachine(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Historical Periods', contentData.historicalPeriods, 'UL', 2);\n displayText(activityContainer, 'Storytelling Guidelines', contentData.storytellingGuidelines);\n displayList(activityContainer, 'Presentation Formats', contentData.presentationFormats, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCharacterCreationChallenge\", function createCharacterCreationChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Character Elements', contentData.characterElements, 'UL', 2);\n displayList(activityContainer, 'Prompts', contentData.prompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMythicalCreatureDesign\", function createMythicalCreatureDesign(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Creature Attributes', contentData.creatureAttributes, 'UL', 2);\n displayList(activityContainer, 'Prompts', contentData.prompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFairyTaleRewrite\", function createFairyTaleRewrite(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Rewrite Prompts', contentData.rewritePrompts, 'UL', 2);\n displayList(activityContainer, 'Writing Structures', contentData.writingStructures, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createWhatHappensNext\", function createWhatHappensNext(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Starting Prompts', contentData.startingPrompts, 'UL', 2);\n displayList(activityContainer, 'Storytelling Structures', contentData.storytellingStructures, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHistoricalFictionWriting\", function createHistoricalFictionWriting(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Historical Time Periods', contentData.historicalTimePeriods, 'UL', 2);\n displayList(activityContainer, 'Writing Prompts', contentData.writingPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createClassroomOlympics\", function createClassroomOlympics(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Event Categories', contentData.eventCategories, 'UL', 2);\n displayText(activityContainer, 'Competition Structure', contentData.competitionStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createBuildATower\", function createBuildATower(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Construction Rules', contentData.constructionRules, 'UL', 2);\n displayList(activityContainer, 'Material Constraints', contentData.materialConstraints, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEggDropExperiment\", function createEggDropExperiment(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Design Rules', contentData.designRules, 'UL', 2);\n displayList(activityContainer, 'Material Constraints', contentData.materialConstraints, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createStockMarketSimulationGame\", function createStockMarketSimulationGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Game Mechanics', contentData.gameMechanics, 'UL', 2);\n displayList(activityContainer, 'Trading Rules', contentData.tradingRules, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEscapeTheClassroomGame\", function createEscapeTheClassroomGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Puzzle Types', contentData.puzzleTypes, 'UL', 2);\n displayText(activityContainer, 'Challenge Structure', contentData.challengeStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHistoricalWhoAmIGame\", function createHistoricalWhoAmIGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Game Rules', contentData.gameRules, 'UL', 2);\n displayList(activityContainer, 'Example Historical Figures', contentData.exampleHistoricalFigures, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInventAGameChallenge\", function createInventAGameChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Design Criteria', contentData.designCriteria, 'UL', 2);\n displayList(activityContainer, 'Required Components', contentData.requiredComponents, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCommunityServiceProject\", function createCommunityServiceProject(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Project Types', contentData.projectTypes, 'UL', 2);\n displayList(activityContainer, 'Action Steps', contentData.actionSteps, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createExpertDay\", function createExpertDay(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Research Guidelines', contentData.researchGuidelines, 'UL', 2);\n displayList(activityContainer, 'Presentation Structure', contentData.presentationStructure, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFieldTripsWithATwist\", function createFieldTripsWithATwist(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Field Trip Options', contentData.fieldTripOptions, 'UL', 2);\n displayList(activityContainer, 'Interactive Challenges', contentData.interactiveChallenges, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createMockElections\", function createMockElections(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Campaign Structure', contentData.campaignStructure, 'UL', 2);\n displayList(activityContainer, 'Election Rules', contentData.electionRules, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createClassroomEconomy\", function createClassroomEconomy(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Earning Methods', contentData.earningMethods, 'UL', 2);\n displayList(activityContainer, 'Spending Options', contentData.spendingOptions, 'UL', 2);\n displayList(activityContainer, 'Financial Literacy Concepts', contentData.financialLiteracyConcepts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDesignAWorldChallenge\", function createDesignAWorldChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'World Building Elements', contentData.worldBuildingElements, 'UL', 2);\n displayText(activityContainer, 'Presentation Format', contentData.presentationFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInventALanguage\", function createInventALanguage(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Linguistic Elements', contentData.linguisticElements, 'UL', 2);\n displayText(activityContainer, 'Presentation Format', contentData.presentationFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createTimeTravelerDebates\", function createTimeTravelerDebates(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Debate Topics', contentData.debateTopics, 'UL', 2);\n displayList(activityContainer, 'Role Assignments', contentData.roleAssignments, 'UL', 2);\n displayText(activityContainer, 'Rules of Debate', contentData.rulesOfDebate);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMysteryScienceTheater\", function createMysteryScienceTheater(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Video Selection Criteria', contentData.videoSelectionCriteria);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayText(activityContainer, 'Critique Guidelines', contentData.critiqueGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createBusinessSimulation\", function createBusinessSimulation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Business Creation Steps', contentData.businessCreationSteps, 'UL', 2);\n displayList(activityContainer, 'Financial Management Tasks', contentData.financialManagementTasks, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMuseumExhibitProject\", function createMuseumExhibitProject(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Exhibit Components', contentData.exhibitComponents, 'UL', 2);\n displayText(activityContainer, 'Research Requirements', contentData.researchRequirements);\n displayList(activityContainer, 'Interactive Features', contentData.interactiveFeatures, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createTwoTruthsAndALie\", function createTwoTruthsAndALie(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Topic Focus', contentData.topicFocus);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createChainReactionStorytelling\", function createChainReactionStorytelling(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Story Prompts', contentData.storyPrompts, 'UL', 2);\n displayText(activityContainer, 'Participation Structure', contentData.participationStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createPictureThisTwist\", function createPictureThisTwist(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Image Selection', contentData.imageSelection);\n displayText(activityContainer, 'Storytelling Mechanics', contentData.storytellingMechanics);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMusicalChairsTrivia\", function createMusicalChairsTrivia(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayList(activityContainer, 'Trivia Categories', contentData.triviaCategories, 'UL', 2);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayText(activityContainer, 'Scoring Rules', contentData.scoringRules);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createBingoTwist\", function createBingoTwist(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Bingo Board Structure', contentData.bingoBoardStructure);\n displayText(activityContainer, 'Subject Integration', contentData.subjectIntegration);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayText(activityContainer, 'Winning Criteria', contentData.winningCriteria);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createJeopardyStudentContent\", function createJeopardyStudentContent(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Question Categories', contentData.questionCategories, 'UL', 2);\n displayList(activityContainer, 'Student Roles', contentData.studentRoles, 'UL', 2);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHumanKnot\", function createHumanKnot(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'Group Size', contentData.groupSize);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createBalloonVolleyball\", function createBalloonVolleyball(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'Rules', contentData.rules);\n displayText(activityContainer, 'Team Formation', contentData.teamFormation);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMusicalChairsTwist\", function createMusicalChairsTwist(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayList(activityContainer, 'Question/Task Variations', contentData.questionTaskVariations, 'UL', 2);\n displayText(activityContainer, 'Rules', contentData.rules);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFreezeDancePoses\", function createFreezeDancePoses(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Pose Variations', contentData.poseVariations, 'UL', 2);\n displayText(activityContainer, 'Rules', contentData.rules);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayList(activityContainer, 'Reflection Questions', contentData.reflectionQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createOutdoorEscapeRoom\", function createOutdoorEscapeRoom(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Storyline', contentData.storyline);\n displayList(activityContainer, 'Puzzles', contentData.puzzles, 'UL', 2); \n displayText(activityContainer, 'Game Mechanics', contentData.gameMechanics);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createGeocaching\", function createGeocaching(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Setup', contentData.gameSetup);\n displayText(activityContainer, 'GPS Instructions', contentData.GPSInstructions);\n displayList(activityContainer, 'Hidden Objects', contentData.hiddenObjects, 'UL', 2); \n displayList(activityContainer, 'Team Strategies', contentData.teamStrategies, 'UL', 2); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createOnlineCollaboration\", function createOnlineCollaboration(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Digital Tools', contentData.digitalTools, 'UL', 2);\n displayText(activityContainer, 'Collaboration Guidelines', contentData.collaborationGuidelines);\n displayList(activityContainer, 'Task Distribution', contentData.taskDistribution, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEducationalAppsAndGames\", function createEducationalAppsAndGames(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'App Selection Criteria', contentData.appSelectionCriteria);\n displayText(activityContainer, 'Activity Structure', contentData.activityStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createVideoCreationChallenge\", function createVideoCreationChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Video Topics', contentData.videoTopics, 'UL', 2);\n displayText(activityContainer, 'Production Guidelines', contentData.productionGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createPodcastCreation\", function createPodcastCreation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Podcast Themes', contentData.podcastThemes, 'UL', 2);\n displayText(activityContainer, 'Recording Guidelines', contentData.recordingGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createOnlineDebatesAndForums\", function createOnlineDebatesAndForums(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Debate Topics', contentData.debateTopics, 'UL', 2);\n displayText(activityContainer, 'Debate Structure', contentData.debateStructure);\n displayText(activityContainer, 'Participation Guidelines', contentData.participationGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDigitalStorytelling\", function createDigitalStorytelling(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Storytelling Themes', contentData.storytellingThemes, 'UL', 2);\n displayList(activityContainer, 'Multimedia Elements', contentData.multimediaElements, 'UL', 2);\n displayText(activityContainer, 'Production Guidelines', contentData.productionGuidelines);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createStopMotionAnimation\", function createStopMotionAnimation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Animation Themes', contentData.animationThemes, 'UL', 2);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded, 'UL', 2);\n displayText(activityContainer, 'Production Steps', contentData.productionSteps);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createImprovisationTheater\", function createImprovisationTheater(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Improv Themes', contentData.improvThemes, 'UL', 2);\n displayList(activityContainer, 'Role-Play Scenarios', contentData.rolePlayScenarios, 'UL', 2);\n displayText(activityContainer, 'Activity Instructions', contentData.activityInstructions);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createModelBuildingChallenges\", function createModelBuildingChallenges(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Model Themes', contentData.modelThemes, 'UL', 2);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded, 'UL', 2);\n displayText(activityContainer, 'Construction Steps', contentData.constructionSteps);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFashionDesignChallenge\", function createFashionDesignChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Design Themes', contentData.designThemes, 'UL', 2);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded, 'UL', 2);\n displayText(activityContainer, 'Design Steps', contentData.designSteps);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createCulinaryChallenge\", function createCulinaryChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Recipe Themes', contentData.recipeThemes, 'UL', 2);\n displayList(activityContainer, 'Required Ingredients', contentData.requiredIngredients, 'UL', 2);\n displayText(activityContainer, 'Cooking Steps', contentData.cookingSteps);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createScienceFair\", function createScienceFair(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Experiment Themes', contentData.experimentThemes, 'UL', 2);\n displayText(activityContainer, 'Research Steps', contentData.researchSteps);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMockTrial\", function createMockTrial(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Trial Scenarios', contentData.trialScenarios, 'UL', 2);\n displayList(activityContainer, 'Role Assignments', contentData.roleAssignments, 'UL', 2);\n displayText(activityContainer, 'Trial Procedures', contentData.trialProcedures);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFashionShow\", function createFashionShow(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Design Themes', contentData.designThemes, 'UL', 2);\n displayList(activityContainer, 'Materials Needed', contentData.materialsNeeded, 'UL', 2);\n displayText(activityContainer, 'Creation Process', contentData.creationProcess);\n displayText(activityContainer, 'Presentation Format', contentData.presentationFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createObstacleCourseRelay\", function createObstacleCourseRelay(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Obstacle Types', contentData.obstacleTypes, 'UL', 2);\n displayText(activityContainer, 'Relay Rules', contentData.relayRules);\n displayList(activityContainer, 'Required Equipment', contentData.requiredEquipment, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createScavengerHuntWithChallenges\", function createScavengerHuntWithChallenges(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Clue Types', contentData.clueTypes, 'UL', 2);\n displayList(activityContainer, 'Challenge Tasks', contentData.challengeTasks, 'UL', 2);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createVirtualRealityFieldTrip\", function createVirtualRealityFieldTrip(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'VR Destinations', contentData.vrDestinations, 'UL', 2);\n displayList(activityContainer, 'Equipment Requirements', contentData.equipmentRequirements, 'UL', 2);\n displayList(activityContainer, 'Guided Tasks', contentData.guidedTasks, 'UL', 2);\n displayList(activityContainer, 'Debriefing Questions', contentData.debriefingQuestions, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createAugmentedRealityGame\", function createAugmentedRealityGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'AR Tools Required', contentData.arToolsRequired, 'UL', 2);\n displayText(activityContainer, 'Gameplay Mechanics', contentData.gameplayMechanics);\n displayList(activityContainer, 'Tasks/Challenges', contentData.tasksChallenges, 'UL', 2); \n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInteractiveQuizGame\", function createInteractiveQuizGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Quiz Format', contentData.quizFormat);\n displayList(activityContainer, 'Question Types', contentData.questionTypes, 'UL', 2);\n displayText(activityContainer, 'Scoring System', contentData.scoringSystem);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createPeerReviewWorkshop\", function createPeerReviewWorkshop(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Peer Review Criteria', contentData.peerReviewCriteria, 'UL', 2);\n displayText(activityContainer, 'Group Structure', contentData.groupStructure);\n displayText(activityContainer, 'Feedback Format', contentData.feedbackFormat);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createPuzzleChallenge\", function createPuzzleChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Puzzle Types', contentData.puzzleTypes, 'UL', 2);\n displayList(activityContainer, 'Difficulty Levels', contentData.difficultyLevels, 'UL', 2);\n displayText(activityContainer, 'Group Structure', contentData.groupStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createVirtualLabSimulation\", function createVirtualLabSimulation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Experiment Types', contentData.experimentTypes, 'UL', 2);\n displayList(activityContainer, 'Required Technology', contentData.requiredTechnology, 'UL', 2);\n displayList(activityContainer, 'Guided Steps', contentData.guidedSteps, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createHistoricalTimelineChallenge\", function createHistoricalTimelineChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Event List', contentData.eventList, 'UL', 2);\n displayList(activityContainer, 'Difficulty Levels', contentData.difficultyLevels, 'UL', 2);\n displayText(activityContainer, 'Group Structure', contentData.groupStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMathematicalPuzzle\", function createMathematicalPuzzle(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Puzzle Types', contentData.puzzleTypes, 'UL', 2);\n displayList(activityContainer, 'Difficulty Levels', contentData.difficultyLevels, 'UL', 2);\n displayText(activityContainer, 'Group Structure', contentData.groupStructure);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createLanguageRelay\", function createLanguageRelay(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Format', contentData.gameFormat);\n displayList(activityContainer, 'Word Categories', contentData.wordCategories, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCulturalExchangeGame\", function createCulturalExchangeGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Game Mechanics', contentData.gameMechanics);\n displayList(activityContainer, 'Cultural Topics', contentData.culturalTopics, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createScienceTriviaBattle\", function createScienceTriviaBattle(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Quiz Format', contentData.quizFormat);\n displayList(activityContainer, 'Question Categories', contentData.questionCategories, 'UL', 2);\n displayList(activityContainer, 'Difficulty Levels', contentData.difficultyLevels, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createArtCritiqueChallenge\", function createArtCritiqueChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Critique Criteria', contentData.critiqueCriteria, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Visual Examples', contentData.visualExamples, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMindMappingGame\", function createMindMappingGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Mind Mapping Structure', contentData.mindMappingStructure);\n displayList(activityContainer, 'Key Concepts', contentData.keyConcepts, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createFinancialLiteracySimulation\", function createFinancialLiteracySimulation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Financial Scenarios', contentData.financialScenarios, 'UL', 2);\n displayList(activityContainer, 'Decision-Making Challenges', contentData.decisionMakingChallenges, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createEcoChallenge\", function createEcoChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Challenge Tasks', contentData.challengeTasks, 'UL', 2);\n displayList(activityContainer, 'Environmental Themes', contentData.environmentalThemes, 'UL', 2);\n displayList(activityContainer, 'Discussion Prompts', contentData.discussionPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCodingPuzzleGame\", function createCodingPuzzleGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Coding Puzzles', contentData.codingPuzzles, 'UL', 2);\n displayList(activityContainer, 'Programming Concepts', contentData.programmingConcepts, 'UL', 2);\n displayList(activityContainer, 'Challenge Levels', contentData.challengeLevels, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createRoboticsProgrammingChallenge\", function createRoboticsProgrammingChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Robot Types', contentData.robotTypes, 'UL', 2);\n displayList(activityContainer, 'Programming Tasks', contentData.programmingTasks, 'UL', 2);\n displayList(activityContainer, 'Challenge Scenarios', contentData.challengeScenarios, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDigitalArtCreationGame\", function createDigitalArtCreationGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Digital Tools', contentData.digitalTools, 'UL', 2);\n displayList(activityContainer, 'Artistic Challenges', contentData.artisticChallenges, 'UL', 2);\n displayList(activityContainer, 'Creativity Prompts', contentData.creativityPrompts, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMusicCompositionChallenge\", function createMusicCompositionChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Composition Techniques', contentData.compositionTechniques, 'UL', 2);\n displayList(activityContainer, 'Musical Elements', contentData.musicalElements, 'UL', 2);\n displayList(activityContainer, 'Challenge Themes', contentData.challengeThemes, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDramaRolePlayScenario\", function createDramaRolePlayScenario(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Acting Techniques', contentData.actingTechniques, 'UL', 2);\n displayList(activityContainer, 'Scenario Themes', contentData.scenarioThemes, 'UL', 2);\n displayList(activityContainer, 'Character Roles', contentData.characterRoles, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCreativeProblemSolvingWorkshop\", function createCreativeProblemSolvingWorkshop(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Problem Scenarios', contentData.problemScenarios, 'UL', 2);\n displayList(activityContainer, 'Brainstorming Techniques', contentData.brainstormingTechniques, 'UL', 2);\n displayList(activityContainer, 'Teamwork Strategies', contentData.teamworkStrategies, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInteractiveScienceExhibit\", function createInteractiveScienceExhibit(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Exhibit Theme', contentData.exhibitTheme);\n displayList(activityContainer, 'Key Scientific Concepts', contentData.keyScientificConcepts, 'UL', 2);\n displayList(activityContainer, 'Hands-On Components', contentData.handsOnComponents, 'UL', 2);\n displayText(activityContainer, 'Visitor Interaction Details', contentData.visitorInteractionDetails);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createStoryRemixChallenge\", function createStoryRemixChallenge(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Remix Techniques', contentData.remixTechniques, 'UL', 2);\n displayList(activityContainer, 'Story Modification Prompts', contentData.storyModificationPrompts, 'UL', 2);\n displayList(activityContainer, 'Creative Writing Elements', contentData.creativeWritingElements, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createLanguageImmersionGame\", function createLanguageImmersionGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Immersion Strategies', contentData.immersionStrategies, 'UL', 2);\n displayList(activityContainer, 'Conversation Prompts', contentData.conversationPrompts, 'UL', 2);\n displayList(activityContainer, 'Vocabulary Focus', contentData.vocabularyFocus, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createCivicEngagementSimulation\", function createCivicEngagementSimulation(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Simulation Type', contentData.simulationType);\n displayList(activityContainer, 'Role Assignments', contentData.roleAssignments, 'UL', 2);\n displayList(activityContainer, 'Decision-Making Scenarios', contentData.decisionMakingScenarios, 'UL', 2);\n displayList(activityContainer, 'Discussion Topics', contentData.discussionTopics, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createVirtualFieldTripDebrief\", function createVirtualFieldTripDebrief(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Key Discussion Points', contentData.keyDiscussionPoints, 'UL', 2);\n displayList(activityContainer, 'Reflection Prompts', contentData.reflectionPrompts, 'UL', 2);\n displayList(activityContainer, 'Interactive Follow-Up Activities', contentData.interactiveFollowUpActivities, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createCollaborationPuzzle\", function createCollaborationPuzzle(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Puzzle Type', contentData.puzzleType);\n displayText(activityContainer, 'Difficulty Level', contentData.difficultyLevel);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Collaboration Strategies', contentData.collaborationStrategies, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInteractiveHistoryTimeline\", function createInteractiveHistoryTimeline(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Historical Period', contentData.historicalPeriod);\n displayList(activityContainer, 'Key Events', contentData.keyEvents, 'UL', 2);\n displayList(activityContainer, 'Student Interaction Methods', contentData.studentInteractionMethods, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createMindfulnessRelaxationGame\", function createMindfulnessRelaxationGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Mindfulness Techniques', contentData.mindfulnessTechniques, 'UL', 2);\n displayList(activityContainer, 'Relaxation Exercises', contentData.relaxationExercises, 'UL', 2);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createDebateStrategyGame\", function createDebateStrategyGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayText(activityContainer, 'Debate Format', contentData.debateFormat);\n displayList(activityContainer, 'Topics', contentData.topics, 'UL', 2);\n displayList(activityContainer, 'Argument Structures', contentData.argumentStructures, 'UL', 2);\n displayList(activityContainer, 'Rebuttal Techniques', contentData.rebuttalTechniques, 'UL', 2);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createInterdisciplinaryChallengeGame\", function createInterdisciplinaryChallengeGame(contentData, activityContainer) {\n displayText(activityContainer, 'Overview', contentData.overview);\n displayList(activityContainer, 'Learning Objectives', contentData.learningObjectives, 'UL', 2);\n displayList(activityContainer, 'Subjects Involved', contentData.subjectsInvolved, 'UL', 2);\n displayText(activityContainer, 'Challenge Structure', contentData.challengeStructure);\n displayList(activityContainer, 'Problem-Solving Techniques', contentData.problemSolvingTechniques, 'UL', 2);\n displayList(activityContainer, 'Required Materials', contentData.requiredMaterials, 'UL', 2);\n displayList(activityContainer, 'Assessment Methods', contentData.assessmentMethods, 'UL', 2);\n displayList(activityContainer, 'Accessibility Options', contentData.accessibilityOptions, 'UL', 2);\n}), \"createEmotionalResilienceActionPlan\", function createEmotionalResilienceActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createGrowthMindsetActionPlan\", function createGrowthMindsetActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createFosteringIndependenceActionPlan\", function createFosteringIndependenceActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createFamilyBondsActionPlan\", function createFamilyBondsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createCognitiveSkillsActionPlan\", function createCognitiveSkillsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createSocialSkillsActionPlan\", function createSocialSkillsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createPhysicalWellbeingActionPlan\", function createPhysicalWellbeingActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createValuesAndEthicsActionPlan\", function createValuesAndEthicsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createSelfRegulationActionPlan\", function createSelfRegulationActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createCommunicationSkillsActionPlan\", function createCommunicationSkillsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createProblemSolvingSkillsActionPlan\", function createProblemSolvingSkillsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createEmotionalExpressionActionPlan\", function createEmotionalExpressionActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createPeerRelationshipsActionPlan\", function createPeerRelationshipsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createSelfConfidenceActionPlan\", function createSelfConfidenceActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createFosteringCreativityActionPlan\", function createFosteringCreativityActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createDigitalAndRealLifeBalanceActionPlan\", function createDigitalAndRealLifeBalanceActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createChildDevelopmentMilestonesActionPlan\", function createChildDevelopmentMilestonesActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createStressManagementActionPlan\", function createStressManagementActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createFamilyDynamicsActionPlan\", function createFamilyDynamicsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createSocialSkillsActionPlan\", function createSocialSkillsActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createMindfulnessPracticesActionPlan\", function createMindfulnessPracticesActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createEthicalDevelopmentActionPlan\", function createEthicalDevelopmentActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), \"createNeurodiverseParentingActionPlan\", function createNeurodiverseParentingActionPlan(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Goals:', contentData.goals, 'ul');\n displayList(activityContainer, 'Activities:', contentData.activities, 'ul');\n displayList(activityContainer, 'Methodologies:', contentData.methodologies, 'ul');\n displayList(activityContainer, 'Assessments:', contentData.assessments, 'ul');\n displayList(activityContainer, 'Materials Needed:', contentData.materialsNeeded, 'ul');\n displayText(activityContainer, 'Duration:', contentData.duration, 'p');\n displayText(activityContainer, 'Implementation Tips:', contentData.implementationTips, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createPositiveReinforcementMethod\", function createPositiveReinforcementMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createEmotionCoachingMethod\", function createEmotionCoachingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createCollaborativeProblemSolvingMethod\", function createCollaborativeProblemSolvingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createRoutineBuildingMethod\", function createRoutineBuildingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createGrowthMindsetFeedbackMethod\", function createGrowthMindsetFeedbackMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createSettingLimitsWithRespectMethod\", function createSettingLimitsWithRespectMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createNaturalConsequencesMethod\", function createNaturalConsequencesMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createScaffoldingForSkillsMethod\", function createScaffoldingForSkillsMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createActiveListeningTechniquesMethod\", function createActiveListeningTechniquesMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createCelebratingSmallWinsMethod\", function createCelebratingSmallWinsMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createReflectiveListeningMethod\", function createReflectiveListeningMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createTaskAnalysisMethod\", function createTaskAnalysisMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createEmpathyBuildingMethod\", function createEmpathyBuildingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createTimeOutAsReflectionMethod\", function createTimeOutAsReflectionMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createNaturalCuriosityMethod\", function createNaturalCuriosityMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createStrengthBasedParentingMethod\", function createStrengthBasedParentingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createSiblingMediationTechniquesMethod\", function createSiblingMediationTechniquesMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createScreenTimeNegotiationMethod\", function createScreenTimeNegotiationMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createPromotingProblemSolvingMethod\", function createPromotingProblemSolvingMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createEncouragingGrowthMindsetMethod\", function createEncouragingGrowthMindsetMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createBuildingStrongBondsMethod\", function createBuildingStrongBondsMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createNurturingEmotionalIntelligenceMethod\", function createNurturingEmotionalIntelligenceMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Components:', contentData.components, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createPositiveDisciplineMethod\", function createPositiveDisciplineMethod(contentData, activityContainer) {\n displayText(activityContainer, null, contentData.description, 'p');\n displayList(activityContainer, 'Principles:', contentData.principles, 'ul');\n displayList(activityContainer, 'Strategies:', contentData.strategies, 'ul');\n displayList(activityContainer, 'Examples:', contentData.examples, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n displayList(activityContainer, 'Challenges:', contentData.challenges, 'ul');\n}), \"createEmotionWheelGameActivity\", function createEmotionWheelGameActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Materials:', contentData.materials, 'ul');\n displayText(activityContainer, 'Instructions:', contentData.instructions, 'p');\n displayList(activityContainer, 'Variations:', contentData.variations, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createGratitudeJournalingActivity\", function createGratitudeJournalingActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Materials:', contentData.materials, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createCooperativeBoardGamesActivity\", function createCooperativeBoardGamesActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.games.forEach(function (game) {\n var gameContainer = document.createElement('div');\n displayText(gameContainer, 'Game Name:', game.gameName, 'h4');\n displayText(gameContainer, 'Age Range:', game.ageRange, 'p');\n displayList(gameContainer, 'Materials:', game.materials, 'ul');\n displayText(gameContainer, 'Instructions:', game.instructions, 'p');\n activityContainer.appendChild(gameContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createDailyChoreChartActivity\", function createDailyChoreChartActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Materials:', contentData.materials, 'ul');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Age-Appropriate Chores:', contentData.ageAppropriateChores, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createFamilyStorytimeActivity\", function createFamilyStorytimeActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Recommended Books:', contentData.recommendedBooks, 'ul');\n displayList(activityContainer, 'Storytelling Tips:', contentData.storytellingTips, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createRolePlayingScenariosActivity\", function createRolePlayingScenariosActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.scenarios.forEach(function (scenario) {\n var scenarioContainer = document.createElement('div');\n displayText(scenarioContainer, 'Scenario Name:', scenario.scenarioName, 'h4');\n displayText(scenarioContainer, 'Age Range:', scenario.ageRange, 'p');\n displayText(scenarioContainer, 'Description:', scenario.description, 'p');\n activityContainer.appendChild(scenarioContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createBuildingTogetherActivity\", function createBuildingTogetherActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.projects.forEach(function (project) {\n var projectContainer = document.createElement('div');\n displayText(projectContainer, 'Project Name:', project.projectName, 'h4');\n displayText(projectContainer, 'Age Range:', project.ageRange, 'p');\n displayList(projectContainer, 'Materials:', project.materials, 'ul');\n displayText(projectContainer, 'Instructions:', project.instructions, 'p');\n activityContainer.appendChild(projectContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createMindfulnessWalksActivity\", function createMindfulnessWalksActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Preparation:', contentData.preparation, 'ul');\n displayList(activityContainer, 'Mindfulness Tips:', contentData.mindfulnessTips, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createMealPrepAsATeamActivity\", function createMealPrepAsATeamActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Age-Appropriate Tasks:', contentData.ageAppropriateTasks, 'ul');\n displayList(activityContainer, 'Meal Ideas:', contentData.mealIdeas, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createArtAndCraftProjectsActivity\", function createArtAndCraftProjectsActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.projects.forEach(function (project) {\n var projectContainer = document.createElement('div');\n displayText(projectContainer, 'Project Name:', project.projectName, 'h4');\n displayText(projectContainer, 'Age Range:', project.ageRange, 'p');\n displayList(projectContainer, 'Materials:', project.materials, 'ul');\n displayText(projectContainer, 'Instructions:', project.instructions, 'p');\n activityContainer.appendChild(projectContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createPlaydatePlanningActivity\", function createPlaydatePlanningActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Activity Ideas:', contentData.activityIdeas, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createLearningThroughPlayActivity\", function createLearningThroughPlayActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.activities.forEach(function (activity) {\n var activityContainer_ = document.createElement('div');\n displayText(activityContainer_, 'Activity Name:', activity.activityName, 'h4');\n displayText(activityContainer_, 'Age Range:', activity.ageRange, 'p');\n displayText(activityContainer_, 'Description:', activity.description, 'p');\n if (activity.materials) {\n displayList(activityContainer_, 'Materials:', activity.materials, 'ul');\n }\n activityContainer.appendChild(activityContainer_);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createCommunityServiceActivities\", function createCommunityServiceActivities(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.activityIdeas.forEach(function (activity) {\n var activityContainer_ = document.createElement('div');\n displayText(activityContainer_, 'Activity Name:', activity.activityName, 'h4');\n displayText(activityContainer_, 'Age Range:', activity.ageRange, 'p');\n displayText(activityContainer_, 'Description:', activity.description, 'p');\n activityContainer.appendChild(activityContainer_);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createFitnessChallengesActivity\", function createFitnessChallengesActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.challenges.forEach(function (challenge) {\n var challengeContainer = document.createElement('div');\n displayText(challengeContainer, 'Challenge Name:', challenge.challengeName, 'h4');\n displayText(challengeContainer, 'Age Range:', challenge.ageRange, 'p');\n displayText(challengeContainer, 'Fitness Level:', challenge.fitnessLevel, 'p');\n displayText(challengeContainer, 'Description:', challenge.description, 'p');\n activityContainer.appendChild(challengeContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createConflictResolutionRolePlayActivity\", function createConflictResolutionRolePlayActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.scenarios.forEach(function (scenario) {\n var scenarioContainer = document.createElement('div');\n displayText(scenarioContainer, 'Scenario Name:', scenario.scenarioName, 'h4');\n displayText(scenarioContainer, 'Age Range:', scenario.ageRange, 'p');\n displayText(scenarioContainer, 'Description:', scenario.description, 'p');\n activityContainer.appendChild(scenarioContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createOutdoorExplorationChallengesActivity\", function createOutdoorExplorationChallengesActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.challenges.forEach(function (challenge) {\n var challengeContainer = document.createElement('div');\n displayText(challengeContainer, 'Challenge Name:', challenge.challengeName, 'h4');\n displayText(challengeContainer, 'Age Range:', challenge.ageRange, 'p');\n if (challenge.materials) {\n displayList(challengeContainer, 'Materials:', challenge.materials, 'ul');\n }\n displayText(challengeContainer, 'Instructions:', challenge.instructions, 'p');\n displayText(challengeContainer, 'Safety Considerations:', challenge.safetyConsiderations, 'p');\n activityContainer.appendChild(challengeContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createSharedHobbyProjectsActivity\", function createSharedHobbyProjectsActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.hobbies.forEach(function (hobby) {\n var hobbyContainer = document.createElement('div');\n displayText(hobbyContainer, 'Hobby Name:', hobby.hobbyName, 'h4');\n displayText(hobbyContainer, 'Description:', hobby.description, 'p');\n displayList(hobbyContainer, 'Materials:', hobby.materials, 'ul');\n activityContainer.appendChild(hobbyContainer);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createDigitalDetoxDayActivity\", function createDigitalDetoxDayActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Preparation:', contentData.preparation, 'ul');\n contentData.activities.forEach(function (activity) {\n var activityContainer_ = document.createElement('div');\n displayText(activityContainer_, 'Activity Name:', activity.activityName, 'h4');\n displayText(activityContainer_, 'Age Range:', activity.ageRange, 'p');\n displayText(activityContainer_, 'Description:', activity.description, 'p');\n if (activity.materials) {\n displayList(activityContainer_, 'Materials:', activity.materials, 'ul');\n }\n activityContainer.appendChild(activityContainer_);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createLeadershipActivities\", function createLeadershipActivities(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.activities.forEach(function (activity) {\n var activityContainer_ = document.createElement('div');\n displayText(activityContainer_, 'Activity Name:', activity.activityName, 'h4');\n displayText(activityContainer_, 'Age Range:', activity.ageRange, 'p');\n displayText(activityContainer_, 'Description:', activity.description, 'p');\n if (activity.materials) {\n displayList(activityContainer_, 'Materials:', activity.materials, 'ul');\n }\n activityContainer.appendChild(activityContainer_);\n });\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createFamilyDebateNightsActivity\", function createFamilyDebateNightsActivity(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.topics.forEach(function (topic) {\n var topicContainer = document.createElement('div');\n displayText(topicContainer, 'Topic:', topic.topic, 'h4');\n displayText(topicContainer, 'Age Range:', topic.ageRange, 'p');\n activityContainer.appendChild(topicContainer);\n });\n displayList(activityContainer, 'Rules:', contentData.rules, 'ul');\n displayList(activityContainer, 'Benefits:', contentData.benefits, 'ul');\n}), \"createEmotionalRegulationTrackerAssessment\", function createEmotionalRegulationTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createBehaviorProgressLogAssessment\", function createBehaviorProgressLogAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Behaviors to Track:', contentData.behaviorsToTrack, 'ul');\n displayList(activityContainer, 'Logging Methods:', contentData.loggingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createFamilyInteractionJournalAssessment\", function createFamilyInteractionJournalAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createLearningMilestoneChecklistAssessment\", function createLearningMilestoneChecklistAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n contentData.milestones.forEach(function (milestoneSet) {\n var milestoneSetContainer = document.createElement('div');\n displayText(milestoneSetContainer, 'Age Range:', milestoneSet.ageRange, 'h4');\n displayList(milestoneSetContainer, 'Milestones:', milestoneSet.milestones, 'ul');\n activityContainer.appendChild(milestoneSetContainer);\n });\n displayText(activityContainer, 'Usage Guide:', contentData.usageGuide, 'p');\n}), \"createIndependenceProgressTrackerAssessment\", function createIndependenceProgressTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Areas to Track:', contentData.areasToTrack, 'ul');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createSocialInteractionRatingAssessment\", function createSocialInteractionRatingAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Skills to Observe:', contentData.skillsToObserve, 'ul');\n displayList(activityContainer, 'Rating Methods:', contentData.ratingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createResilienceGrowthTrackerAssessment\", function createResilienceGrowthTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Factors to Consider:', contentData.factorsToConsider, 'ul');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createParentingStyleReflectionToolAssessment\", function createParentingStyleReflectionToolAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayList(activityContainer, 'Resources:', contentData.resources, 'ul');\n}), \"createRoutineConsistencyTrackerAssessment\", function createRoutineConsistencyTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Routines to Track:', contentData.routinesToTrack, 'ul');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createStressReductionAssessment\", function createStressReductionAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Measurement Methods:', contentData.measurementMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createPeerRelationshipTrackerAssessment\", function createPeerRelationshipTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Aspects to Track:', contentData.aspectsToTrack, 'ul');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createCreativeOutputLogAssessment\", function createCreativeOutputLogAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Outputs to Log:', contentData.outputsToLog, 'ul');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createConflictResolutionAssessment\", function createConflictResolutionAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Evaluation Methods:', contentData.evaluationMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createLeadershipSkillsAssessment\", function createLeadershipSkillsAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Skills to Observe:', contentData.skillsToObserve, 'ul');\n displayList(activityContainer, 'Assessment Methods:', contentData.assessmentMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createScreenTimeBalanceReviewAssessment\", function createScreenTimeBalanceReviewAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Factors to Consider:', contentData.factorsToConsider, 'ul');\n displayList(activityContainer, 'Assessment Methods:', contentData.assessmentMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createFamilyDynamicsCheckInAssessment\", function createFamilyDynamicsCheckInAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Areas to Assess:', contentData.areasToAssess, 'ul');\n displayList(activityContainer, 'Assessment Methods:', contentData.assessmentMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createProgressBasedRewardSystemAssessment\", function createProgressBasedRewardSystemAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayText(activityContainer, 'Setup Guide:', contentData.setupGuide, 'p');\n displayList(activityContainer, 'Reward Examples:', contentData.rewardExamples, 'ul');\n displayText(activityContainer, 'Tracking and Adjustment:', contentData.trackingAndAdjustment, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createBehavioralFrequencyLogAssessment\", function createBehavioralFrequencyLogAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Behaviors to Track:', contentData.behaviorsToTrack, 'ul');\n displayList(activityContainer, 'Logging Methods:', contentData.loggingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createGrowthMindsetJournalAssessment\", function createGrowthMindsetJournalAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Usage Guide:', contentData.usageGuide, 'p');\n}), \"createEmotionalVocabularyExpansionTestAssessment\", function createEmotionalVocabularyExpansionTestAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Testing Methods:', contentData.testingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createFamilyConnectionLogAssessment\", function createFamilyConnectionLogAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Activities to Log:', contentData.activitiesToLog, 'ul');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createDecisionMakingEvaluationAssessment\", function createDecisionMakingEvaluationAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Evaluation Methods:', contentData.evaluationMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createCollaborativeTaskReviewAssessment\", function createCollaborativeTaskReviewAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayText(activityContainer, 'Review Guide:', contentData.reviewGuide, 'p');\n displayList(activityContainer, 'Prompts:', contentData.prompts, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createAdaptabilityAssessment\", function createAdaptabilityAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Factors to Consider:', contentData.factorsToConsider, 'ul');\n displayList(activityContainer, 'Assessment Methods:', contentData.assessmentMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createIndependenceAndResponsibilityLogAssessment\", function createIndependenceAndResponsibilityLogAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Areas to Track:', contentData.areasToTrack, 'ul');\n displayList(activityContainer, 'Logging Methods:', contentData.loggingMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createOpenEndedCreativeProjectEvaluationAssessment\", function createOpenEndedCreativeProjectEvaluationAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayText(activityContainer, 'Guidelines:', contentData.guidelines, 'p');\n displayList(activityContainer, 'Evaluation Criteria:', contentData.evaluationCriteria, 'ul');\n displayText(activityContainer, 'Feedback Guide:', contentData.feedbackGuide, 'p');\n}), \"createGoalSettingAndAchievementAssessment\", function createGoalSettingAndAchievementAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Steps:', contentData.steps, 'ul');\n displayList(activityContainer, 'Tracking Methods:', contentData.trackingMethods, 'ul');\n displayText(activityContainer, 'Feedback Guide:', contentData.feedbackGuide, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createEmotionalIntelligenceGrowthAssessment\", function createEmotionalIntelligenceGrowthAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Components to Assess:', contentData.componentsToAssess, 'ul');\n displayList(activityContainer, 'Evaluation Methods:', contentData.evaluationMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createSocialIntelligenceAssessment\", function createSocialIntelligenceAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Components to Assess:', contentData.componentsToAssess, 'ul');\n displayList(activityContainer, 'Evaluation Methods:', contentData.evaluationMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createSocialAwarenessAssessment\", function createSocialAwarenessAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Aspects to Assess:', contentData.aspectsToAssess, 'ul');\n displayList(activityContainer, 'Evaluation Methods:', contentData.evaluationMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createPersonalityTraitsAssessment\", function createPersonalityTraitsAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Traits to Consider:', contentData.traitsToConsider, 'ul');\n displayList(activityContainer, 'Assessment Methods:', contentData.assessmentMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createPersonalityDisordersScreeningAssessment\", function createPersonalityDisordersScreeningAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Objective:', contentData.objective, 'p');\n displayList(activityContainer, 'Signs and Symptoms:', contentData.signsAndSymptoms, 'ul');\n displayList(activityContainer, 'Screening Methods:', contentData.screeningMethods, 'ul');\n displayText(activityContainer, 'Interpretation:', contentData.interpretation, 'p');\n}), \"createSocialIntelligenceAssessment\", function createSocialIntelligenceAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createSocialIntelligenceAssessment\", function createSocialIntelligenceAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createSocialAwarenessAssessment\", function createSocialAwarenessAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createPersonalityTraitsAssessment\", function createPersonalityTraitsAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createPersonalityDisordersScreeningAssessment\", function createPersonalityDisordersScreeningAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Potential Signs:', contentData.identifyingPotentialSigns, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createGoalSettingAndAchievementAssessment\", function createGoalSettingAndAchievementAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createEmotionalIntelligenceGrowthAssessment\", function createEmotionalIntelligenceGrowthAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createDevelopmentalMilestonesTrackerAssessment\", function createDevelopmentalMilestonesTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createReadinessAssessment\", function createReadinessAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createLearningStylesAndPreferencesInventoryAssessment\", function createLearningStylesAndPreferencesInventoryAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createGiftednessScreeningAssessment\", function createGiftednessScreeningAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Potential Signs:', contentData.identifyingPotentialSigns, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createBehaviorObservationChecklistAssessment\", function createBehaviorObservationChecklistAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n\n var checklistContainer = document.createElement('div');\n checklistContainer.classList.add('checklist-container');\n\n var checklistTable = document.createElement('table');\n var tableHeader = checklistTable.insertRow();\n var headerCell1 = tableHeader.insertCell();\n var headerCell2 = tableHeader.insertCell();\n headerCell1.textContent = \"Behavior\";\n headerCell2.textContent = \"Frequency\";\n contentData.checklist.forEach(function (checklistItem) {\n var row = checklistTable.insertRow();\n var behaviorCell = row.insertCell();\n var frequencyCell = row.insertCell();\n behaviorCell.textContent = checklistItem.behavior;\n frequencyCell.textContent = checklistItem.frequency; \n });\n checklistContainer.appendChild(checklistTable);\n activityContainer.appendChild(checklistContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), \"createHabitTrackerAssessment\", function createHabitTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var habitTrackingTemplateContainer = document.createElement('div');\n habitTrackingTemplateContainer.classList.add('habit-tracking-template-container');\n var habitTrackingTemplateTable = document.createElement('table');\n var tableHeader = habitTrackingTemplateTable.insertRow();\n var headerCell1 = tableHeader.insertCell();\n var headerCell2 = tableHeader.insertCell();\n headerCell1.textContent = \"Habit\";\n headerCell2.textContent = \"Days\";\n contentData.habitTrackingTemplate.forEach(function (habitItem) {\n var row = habitTrackingTemplateTable.insertRow();\n var habitCell = row.insertCell();\n var daysCell = row.insertCell();\n habitCell.textContent = habitItem.habit;\n daysCell.textContent = habitItem.days;\n });\n habitTrackingTemplateContainer.appendChild(habitTrackingTemplateTable);\n activityContainer.appendChild(habitTrackingTemplateContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), \"createEmotionalLiteracyAssessment\", function createEmotionalLiteracyAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createEmotionalRegulationSkillsAssessment\", function createEmotionalRegulationSkillsAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createSocialSkillsObservationChecklistAssessment\", function createSocialSkillsObservationChecklistAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var checklistContainer = document.createElement('div');\n checklistContainer.classList.add('checklist-container');\n var checklistTable = document.createElement('table');\n var tableHeader = checklistTable.insertRow();\n var headerCell1 = tableHeader.insertCell();\n var headerCell2 = tableHeader.insertCell();\n headerCell1.textContent = \"Skill\";\n headerCell2.textContent = \"Rating\";\n contentData.checklist.forEach(function (checklistItem) {\n var row = checklistTable.insertRow();\n var skillCell = row.insertCell();\n var ratingCell = row.insertCell();\n skillCell.textContent = checklistItem.skill;\n ratingCell.textContent = checklistItem.rating;\n });\n checklistContainer.appendChild(checklistTable);\n activityContainer.appendChild(checklistContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), \"createFriendshipQualityAssessment\", function createFriendshipQualityAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createSocialProblemSolvingAssessment\", function createSocialProblemSolvingAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createPerspectiveTakingAssessment\", function createPerspectiveTakingAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createFamilyCommunicationPatternsAssessment\", function createFamilyCommunicationPatternsAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createParentChildRelationshipQualityAssessment\", function createParentChildRelationshipQualityAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createCognitiveSkillsAssessmentBattery\", function createCognitiveSkillsAssessmentBattery(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var cognitiveTasksContainer = document.createElement('div');\n cognitiveTasksContainer.classList.add('cognitive-tasks-container');\n contentData.cognitiveTasks.forEach(function (task) {\n var taskContainer = document.createElement('div');\n displayText(taskContainer, 'Task Name:', task.taskName, 'h4');\n displayText(taskContainer, 'Instructions:', task.instructions, 'p');\n displayText(taskContainer, 'Scoring:', task.scoring, 'p');\n cognitiveTasksContainer.appendChild(taskContainer);\n });\n activityContainer.appendChild(cognitiveTasksContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), \"createExecutiveFunctioningAssessment\", function createExecutiveFunctioningAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var tasksContainer = document.createElement('div');\n tasksContainer.classList.add('tasks-container');\n contentData.tasks.forEach(function (task) {\n var taskContainer = document.createElement('div');\n displayText(taskContainer, 'Task Name:', task.taskName, 'h4');\n displayText(taskContainer, 'Instructions:', task.instructions, 'p');\n displayText(taskContainer, 'Scoring:', task.scoring, 'p');\n tasksContainer.appendChild(taskContainer);\n });\n activityContainer.appendChild(tasksContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData, 'p');\n}), \"createLearningStrengthsAndWeaknessesInventoryAssessment\", function createLearningStrengthsAndWeaknessesInventoryAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createCreativityAssessment\", function createCreativityAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var creativeTasksContainer = document.createElement('div');\n creativeTasksContainer.classList.add('creative-tasks-container');\n contentData.creativeTasks.forEach(function (task) {\n var taskContainer = document.createElement('div');\n displayText(taskContainer, 'Task Name:', task.taskName, 'h4');\n displayText(taskContainer, 'Instructions:', task.instructions, 'p');\n displayText(taskContainer, 'Scoring:', task.scoring, 'p');\n creativeTasksContainer.appendChild(taskContainer);\n });\n activityContainer.appendChild(creativeTasksContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), _defineProperty(_defineProperty(_defineProperty(_activity_functions, \"createMoodTrackerAssessment\", function createMoodTrackerAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Patterns and Triggers:', contentData.identifyingPatternsAndTriggers, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n var moodTrackingTemplateContainer = document.createElement('div');\n moodTrackingTemplateContainer.classList.add('mood-tracking-template-container');\n var moodTrackingTemplateTable = document.createElement('table');\n var tableHeader = moodTrackingTemplateTable.insertRow();\n var headerCell1 = tableHeader.insertCell();\n var headerCell2 = tableHeader.insertCell();\n var headerCell3 = tableHeader.insertCell();\n headerCell1.textContent = \"Date\";\n headerCell2.textContent = \"Mood\";\n headerCell3.textContent = \"Notes\";\n contentData.moodTrackingTemplate.forEach(function (moodItem) {\n var row = moodTrackingTemplateTable.insertRow();\n var dateCell = row.insertCell();\n var moodCell = row.insertCell();\n var notesCell = row.insertCell();\n dateCell.textContent = moodItem.date;\n moodCell.textContent = moodItem.mood;\n notesCell.textContent = moodItem.notes;\n });\n moodTrackingTemplateContainer.appendChild(moodTrackingTemplateTable);\n activityContainer.appendChild(moodTrackingTemplateContainer);\n displayText(activityContainer, 'Feedback Interpretation:', contentData.feedbackInterpretation, 'p');\n}), \"createFamilyStressorsAndCopingStrategiesInventoryAssessment\", function createFamilyStressorsAndCopingStrategiesInventoryAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Stressors:', contentData.identifyingStressors, 'p');\n displayText(activityContainer, 'Exploring Coping Strategies:', contentData.exploringCopingStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}), \"createSiblingRelationshipAssessment\", function createSiblingRelationshipAssessment(contentData, activityContainer) {\n displayText(activityContainer, 'Information:', contentData.information, 'p');\n displayText(activityContainer, 'Identifying Strengths and Weaknesses:', contentData.identifyingStrengthsAndWeaknesses, 'p');\n displayText(activityContainer, 'Support Strategies:', contentData.supportStrategies, 'p');\n renderSurvey(activityContainer, contentData.survey, contentData);\n}));\n\nfunction addActivitySection(container, title, content) {\n var listType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ul';\n var listItemCreator = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var section = document.createElement('div');\n var heading = document.createElement('h3');\n heading.textContent = title;\n section.appendChild(heading);\n if (Array.isArray(content)) {\n var list = document.createElement(listType);\n content.forEach(function (item) {\n var listItem = listItemCreator ? listItemCreator(item) : document.createElement('li');\n listItem.textContent = item;\n list.appendChild(listItem);\n });\n section.appendChild(list);\n } else {\n var paragraph = document.createElement('p');\n paragraph.textContent = content;\n section.appendChild(paragraph);\n }\n container.appendChild(section);\n}\n\nfunction renderSurvey(container, surveyData, contentData) {\n var surveyContainer = document.createElement('div');\n surveyContainer.classList.add('survey-container');\n var totalScore = 0; \n\n surveyContainer.addEventListener('change', function (event) {\n if (event.target.type === 'radio') {\n var currentScore = parseInt(event.target.getAttribute('data-score'), 10) || 0;\n var questionContainer = event.target.closest('.question-container');\n var previousInputs = questionContainer.querySelectorAll('input[type=\"radio\"]');\n var previousScore = 0;\n previousInputs.forEach(function (input) {\n if (input !== event.target && input.checked) {\n previousScore += parseInt(input.getAttribute('data-score'), 10) || 0;\n }\n });\n totalScore += currentScore - previousScore;\n console.log(\"Current total score:\", totalScore);\n }\n });\n surveyData.forEach(function (questionItem, index) {\n var questionContainer = document.createElement('div');\n questionContainer.classList.add('question-container');\n displayText(questionContainer, \"Question \".concat(index + 1, \":\"), questionItem.question, 'p');\n var optionsList = document.createElement('ul');\n optionsList.classList.add('options-list');\n questionItem.options.forEach(function (option) {\n var optionItem = document.createElement('li');\n optionItem.classList.add('option-item');\n var radioInput = document.createElement('input');\n radioInput.type = 'radio';\n radioInput.name = \"question-\".concat(index);\n radioInput.value = option;\n radioInput.id = \"q\".concat(index, \"-\").concat(option.replace(/\\s+/g, ''));\n if (questionItem.scoring && questionItem.scoring.hasOwnProperty(option)) {\n radioInput.setAttribute('data-score', questionItem.scoring[option]);\n }\n var label = document.createElement('label');\n label.htmlFor = \"q\".concat(index, \"-\").concat(option.replace(/\\s+/g, ''));\n label.appendChild(radioInput);\n label.appendChild(document.createTextNode(option));\n optionItem.appendChild(label);\n optionsList.appendChild(optionItem);\n });\n questionContainer.appendChild(optionsList);\n surveyContainer.appendChild(questionContainer);\n });\n container.appendChild(surveyContainer);\n var submitButton = document.createElement('button');\n submitButton.textContent = 'Submit Survey';\n submitButton.addEventListener('click', function () {\n totalScore = 0; \n\n var allRadioInputs = surveyContainer.querySelectorAll('input[type=\"radio\"]:checked');\n allRadioInputs.forEach(function (input) {\n totalScore += parseInt(input.getAttribute('data-score'), 10) || 0;\n });\n var feedbackContainer = container.querySelector('.feedback-container');\n if (!feedbackContainer) {\n feedbackContainer = document.createElement('div');\n feedbackContainer.classList.add('feedback-container');\n container.appendChild(feedbackContainer);\n } else {\n feedbackContainer.innerHTML = ''; \n }\n\n var feedbackInterpretation = contentData.feedbackInterpretation;\n if (feedbackInterpretation) {\n var scoreRange = feedbackInterpretation.scoreRanges.find(function (rangeItem) {\n var min = parseInt(rangeItem.range.split('-')[0], 10);\n var max = parseInt(rangeItem.range.split('-')[1], 10);\n return totalScore >= min && totalScore <= max;\n });\n if (scoreRange) {\n displayText(feedbackContainer, 'Score Range:', scoreRange.range, 'p');\n displayText(feedbackContainer, 'Interpretation:', scoreRange.interpretation, 'p');\n displayList(feedbackContainer, 'Recommendations:', scoreRange.recommendations, 'ul');\n } else {\n displayText(feedbackContainer, 'Error:', 'Could not determine feedback range.', 'p');\n }\n } else {\n displayText(feedbackContainer, 'Error:', 'Feedback interpretation data is missing.', 'p');\n }\n });\n container.appendChild(submitButton);\n}\n\nfunction renderFeedback(container, feedbackData) {\n var feedbackContainer = document.createElement('div');\n feedbackContainer.classList.add('feedback-container');\n displayText(feedbackContainer, 'Feedback Interpretation:', '', 'h3');\n feedbackData.scoreRanges.forEach(function (rangeItem) {\n var rangeContainer = document.createElement('div');\n rangeContainer.classList.add('range-container');\n displayText(rangeContainer, 'Score Range:', rangeItem.range, 'p');\n displayText(rangeContainer, 'Interpretation:', rangeItem.interpretation, 'p');\n displayList(rangeContainer, 'Recommendations:', rangeItem.recommendations, 'ul');\n feedbackContainer.appendChild(rangeContainer);\n });\n container.appendChild(feedbackContainer);\n}\n\n},{}],16:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Create7LittleWordsGame = Create7LittleWordsGame;\nexports.CreateAnagramsGame = CreateAnagramsGame;\nexports.CreateBabbleRoyaleGame = CreateBabbleRoyaleGame;\nexports.CreateBoggleGame = CreateBoggleGame;\nexports.CreateBookwormAdventuresGame = CreateBookwormAdventuresGame;\nexports.CreateClassificationGame = CreateClassificationGame;\nexports.CreateCodingChallenge = CreateCodingChallenge;\nexports.CreateCreativeWritingPrompt = CreateCreativeWritingPrompt;\nexports.CreateCrosswordGame = CreateCrosswordGame;\nexports.CreateCrypticCrosswordGame = CreateCrypticCrosswordGame;\nexports.CreateCryptogramGame = CreateCryptogramGame;\nexports.CreateDebateGame = CreateDebateGame;\nexports.CreateHangmanGame = CreateHangmanGame;\nexports.CreateInteractiveStorytelling = CreateInteractiveStorytelling;\nexports.CreateInteractiveTimeline = CreateInteractiveTimeline;\nexports.CreateJigsawPuzzleGame = CreateJigsawPuzzleGame;\nexports.CreateKenKenGame = CreateKenKenGame;\nexports.CreateKittyLetterGame = CreateKittyLetterGame;\nexports.CreateLetterpressGame = CreateLetterpressGame;\nexports.CreateOddOneOutGame = CreateOddOneOutGame;\nexports.CreateSentenceUnscrambleGame = CreateSentenceUnscrambleGame;\nexports.CreateSimulationGame = CreateSimulationGame;\nexports.CreateSpellTowerGame = CreateSpellTowerGame;\nexports.CreateStrategyGame = CreateStrategyGame;\nexports.CreateSudokuGame = CreateSudokuGame;\nexports.CreateTangramPuzzle = CreateTangramPuzzle;\nexports.CreateTowerOfHanoiPuzzle = CreateTowerOfHanoiPuzzle;\nexports.CreateTypeshiftGame = CreateTypeshiftGame;\nexports.CreateWhatIfScenario = CreateWhatIfScenario;\nexports.CreateWordSearchGame = CreateWordSearchGame;\nexports.CreateWordleGame = CreateWordleGame;\nexports.validateWord = validateWord;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _script = require(\"./script.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction createGrid(rows, cols) {\n var grid = [];\n for (var row = 0; row < rows; row++) {\n var rowArray = [];\n for (var col = 0; col < cols; col++) {\n rowArray.push(null); \n }\n grid.push(rowArray);\n }\n return grid;\n}\n\nfunction populateGrid(grid) {\n var words = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (!Array.isArray(words) || words.length === 0) {\n console.warn(\"Word list is empty or undefined. Skipping word placement.\");\n return grid;\n }\n words.forEach(function (wordObj) {\n var _wordObj$position$row, _wordObj$position, _wordObj$position$col, _wordObj$position2, _wordObj$direction;\n if (!wordObj || !wordObj.word) {\n console.warn(\"Skipping invalid word object:\", wordObj);\n return; \n }\n var word = wordObj.word.toLowerCase(); \n var row = (_wordObj$position$row = (_wordObj$position = wordObj.position) === null || _wordObj$position === void 0 ? void 0 : _wordObj$position.row) !== null && _wordObj$position$row !== void 0 ? _wordObj$position$row : 0; \n var col = (_wordObj$position$col = (_wordObj$position2 = wordObj.position) === null || _wordObj$position2 === void 0 ? void 0 : _wordObj$position2.col) !== null && _wordObj$position$col !== void 0 ? _wordObj$position$col : 0; \n var direction = ((_wordObj$direction = wordObj.direction) === null || _wordObj$direction === void 0 ? void 0 : _wordObj$direction.toLowerCase()) || \"horizontal\"; \n\n for (var i = 0; i < word.length; i++) {\n var currentRow = row;\n var currentCol = col;\n switch (direction) {\n case 'horizontal':\n currentCol = col + i;\n break;\n case 'vertical':\n currentRow = row + i;\n break;\n case 'diagonal':\n currentRow = row + i;\n currentCol = col + i;\n break;\n case 'horizontal-reverse':\n currentCol = col - i;\n break;\n case 'vertical-reverse':\n currentRow = row - i;\n break;\n case 'diagonal-reverse':\n currentRow = row - i;\n currentCol = col - i;\n break;\n default:\n console.warn(\"Invalid direction:\", direction);\n }\n if (currentRow >= 0 && currentRow < grid.length && currentCol >= 0 && currentCol < grid[0].length) {\n grid[currentRow][currentCol] = word[i];\n } else {\n console.warn(\"Word \\\"\".concat(word, \"\\\" goes out of bounds at position \").concat(currentRow, \", \").concat(currentCol, \".\"));\n }\n }\n });\n\n for (var row = 0; row < grid.length; row++) {\n for (var col = 0; col < grid[row].length; col++) {\n if (grid[row][col] === null || grid[row][col] === undefined) {\n grid[row][col] = getRandomLetter();\n }\n }\n }\n return grid;\n}\nfunction getRandomLetter() {\n var alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n return alphabet[Math.floor(Math.random() * alphabet.length)];\n}\n\nfunction validateWord(word, dictionary) {\n if (!dictionary || !Array.isArray(dictionary)) {\n console.warn(\"Invalid dictionary provided.\");\n return false;\n }\n return dictionary.includes(word.toLowerCase());\n}\n\n\nfunction shuffle(array) {\n var shuffledArray = _toConsumableArray(array);\n for (var i = shuffledArray.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var _ref = [shuffledArray[j], shuffledArray[i]];\n shuffledArray[i] = _ref[0];\n shuffledArray[j] = _ref[1];\n }\n return shuffledArray;\n}\n;\n\nfunction calculateScore(wordsFound, timeTaken, difficulty) {\n var score = wordsFound * 10; \n\n if (timeTaken < 60) {\n score += 50;\n } else if (timeTaken < 120) {\n score += 25;\n }\n\n if (difficulty === 'hard') {\n score *= 1.5;\n } else if (difficulty === 'medium') {\n score *= 1.2;\n }\n return Math.round(score);\n}\n\nfunction checkGameOver(wordsFound, targetScore) {\n if (wordsFound === targetScore) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction handleCellClick(row, col, selectedCells, setSelectedCells, checkWord) {\n if (!selectedCells || !setSelectedCells || !checkWord) {\n console.error('Missing required parameters for handleCellClick.');\n return;\n }\n\n var cellIsSelected = selectedCells.some(function (cell) {\n return cell.row === row && cell.col === col;\n });\n if (cellIsSelected) {\n var updatedSelection = selectedCells.slice(0, selectedCells.findIndex(function (cell) {\n return cell.row === row && cell.col === col;\n }) + 1);\n setSelectedCells(updatedSelection);\n } else {\n setSelectedCells([].concat(_toConsumableArray(selectedCells), [{\n row: row,\n col: col\n }]));\n\n if (selectedCells.length > 1) {\n var selectedWord = selectedCells.map(function (cell) {\n return grid[cell.row][cell.col];\n }).join('');\n checkWord(selectedWord);\n }\n }\n}\n\nfunction checkWord(word) {\n\n var wordList = [\"apple\", \"banana\", \"orange\"]; \n return wordList.includes(word.toLowerCase());\n}\n\nfunction handleDragStart(event, data) {\n event.dataTransfer.setData('text/plain', JSON.stringify(data));\n\n event.target.style.opacity = '0.5';\n}\n\nfunction handleDragOver(event) {\n event.preventDefault();\n\n event.target.classList.add('highlight-drop-target'); \n}\n\nfunction handleDrop(event, data) {\n event.preventDefault();\n\n var draggedData = JSON.parse(event.dataTransfer.getData('text/plain'));\n\n\n\n event.target.classList.remove('highlight-drop-target'); \n event.target.style.opacity = '1'; \n}\n\nfunction handleInputChange(event, grid, row, col, currentClue, setGrid, setCurrentClue, checkClue) {\n if (!grid || !setGrid) {\n console.error('Missing required parameters for handleInputChange.');\n return;\n }\n\n var inputValue = event.target.value.toUpperCase(); \n\n var updatedGrid = _toConsumableArray(grid);\n updatedGrid[row][col] = inputValue;\n setGrid(updatedGrid);\n\n if (currentClue && checkClue) {\n checkClue(currentClue, updatedGrid);\n }\n\n if (currentClue && setCurrentClue) {\n }\n\n}\n\nfunction highlightWord(word, grid) {\n var highlightClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'highlight';\n var wordPositions = findWordInGrid(word, grid); \n\n if (wordPositions) {\n wordPositions.forEach(function (position) {\n var row = position.row,\n col = position.col;\n var cellElement = document.querySelector(\".cell[data-row=\\\"\".concat(row, \"\\\"][data-col=\\\"\").concat(col, \"\\\"]\"));\n if (cellElement) {\n cellElement.classList.add(highlightClass);\n }\n });\n }\n}\n\nfunction findWordInGrid(word, grid) {\n\n var wordPositions = []; \n if (wordPositions.length > 0) {\n return wordPositions;\n } else {\n return null;\n }\n}\n\nfunction updateScoreDisplay(score) {\n var scoreElement = document.getElementById('score'); \n\n if (scoreElement) {\n scoreElement.textContent = \"Score: \".concat(score);\n }\n}\n\nfunction displayMessage(message) {\n var messageElement = document.getElementById('message'); \n\n if (messageElement) {\n messageElement.textContent = message;\n }\n}\n\nfunction displayModal(title, content) {\n\n\n\n}\n\nfunction showAlert(message) {\n alert(message);\n\n}\nvar timerInterval; \nvar startTime; \n\nfunction startTimer(callback) {\n var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n if (!timerInterval) {\n startTime = Date.now() - (startTime || 0); \n timerInterval = setInterval(callback, interval);\n }\n}\n\nfunction pauseTimer() {\n clearInterval(timerInterval);\n timerInterval = null;\n}\n\nfunction resumeTimer() {\n if (!timerInterval) {\n startTimer(updateTimer, 1000); \n }\n}\n\nfunction resetTimer(setTime) {\n clearInterval(timerInterval);\n timerInterval = null;\n startTime = 0; \n setTime(0); \n}\n\nfunction updateTimer(setTime) {\n var elapsedTime = Math.floor((Date.now() - startTime) / 1000);\n setTime(elapsedTime);\n}\n\nfunction parseJSON(jsonData) {\n try {\n var jsonObject = JSON.parse(jsonData);\n return jsonObject;\n } catch (error) {\n console.error(\"Error parsing JSON data:\", error);\n return null;\n }\n}\n\nfunction saveData(gameData, key) {\n try {\n var jsonData = JSON.stringify(gameData);\n localStorage.setItem(key, jsonData);\n } catch (error) {\n console.error(\"Error saving data to local storage:\", error);\n }\n}\n\nfunction loadData(key) {\n try {\n var jsonData = localStorage.getItem(key);\n if (jsonData) {\n return JSON.parse(jsonData);\n } else {\n return null; \n }\n } catch (error) {\n console.error(\"Error loading data from local storage:\", error);\n return null;\n }\n}\n\nfunction adjustFont(fontFamily, fontSize, letterSpacing, lineHeight, element) {\n if (element) {\n element.style.fontFamily = fontFamily;\n element.style.fontSize = fontSize;\n element.style.letterSpacing = letterSpacing;\n element.style.lineHeight = lineHeight;\n } else {\n console.error('No element provided to adjustFont.');\n }\n}\n\nfunction adjustColors(backgroundColor, textColor, element) {\n if (element) {\n element.style.backgroundColor = backgroundColor;\n element.style.color = textColor;\n } else {\n console.error('No element provided to adjustColors.');\n }\n}\n\nfunction readAloud(text) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var utterance = new SpeechSynthesisUtterance(text);\n for (var key in options) {\n utterance[key] = options[key];\n }\n speechSynthesis.speak(utterance);\n}\n\nfunction minimizeDistractions(elementIds) {\n elementIds.forEach(function (id) {\n var element = document.getElementById(id);\n if (element) {\n element.style.display = 'none';\n }\n });\n}\n\nfunction navigateWithKeyboard(gridContainer) {\n if (!gridContainer) {\n console.error('No grid container provided to navigateWithKeyboard.');\n return;\n }\n var currentRow = 0;\n var currentCol = 0;\n gridContainer.addEventListener('keydown', function (event) {\n var totalRows = gridContainer.querySelectorAll('.row').length;\n var totalCols = gridContainer.querySelectorAll('.cell').length / totalRows;\n switch (event.key) {\n case 'ArrowUp':\n currentRow = Math.max(0, currentRow - 1);\n break;\n case 'ArrowDown':\n currentRow = Math.min(totalRows - 1, currentRow + 1);\n break;\n case 'ArrowLeft':\n currentCol = Math.max(0, currentCol - 1);\n break;\n case 'ArrowRight':\n currentCol = Math.min(totalCols - 1, currentCol + 1);\n break;\n }\n\n var cell = gridContainer.querySelector(\".cell[data-row=\\\"\".concat(currentRow, \"\\\"][data-col=\\\"\").concat(currentCol, \"\\\"]\"));\n if (cell) {\n cell.focus();\n }\n });\n}\n\nfunction playSound(soundEffect) {\n var audio = new Audio(soundEffect);\n audio.play();\n}\n\nfunction playMusic(musicTrack) {\n var loop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var audio = new Audio(musicTrack);\n audio.loop = loop;\n audio.play();\n\n return audio;\n}\n\nfunction getRandomNumber(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction formatTime(seconds) {\n var minutes = Math.floor(seconds / 60);\n var remainingSeconds = seconds % 60;\n var formattedMinutes = String(minutes).padStart(2, '0');\n var formattedSeconds = String(remainingSeconds).padStart(2, '0');\n return \"\".concat(formattedMinutes, \":\").concat(formattedSeconds);\n}\n\nfunction calculateFeedback(guess, answer) {\n var normalizedGuess = guess.toUpperCase();\n var normalizedAnswer = answer.toUpperCase();\n var feedback = Array(normalizedGuess.length).fill('absent');\n var answerCharCount = {};\n\n var _iterator = _createForOfIteratorHelper(normalizedAnswer),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _char3 = _step.value;\n answerCharCount[_char3] = (answerCharCount[_char3] || 0) + 1;\n }\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n normalizedGuess.split('').forEach(function (_char, index) {\n if (_char === normalizedAnswer[index]) {\n feedback[index] = 'correct';\n answerCharCount[_char]--;\n }\n });\n\n normalizedGuess.split('').forEach(function (_char2, index) {\n if (feedback[index] !== 'correct' && answerCharCount[_char2] > 0) {\n feedback[index] = 'present';\n answerCharCount[_char2]--;\n }\n });\n return feedback;\n}\nvar revealHint = function revealHint(word, guessedLetters) {\n var _iterator2 = _createForOfIteratorHelper(word),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _char4 = _step2.value;\n if (!guessedLetters.includes(_char4)) {\n return _char4;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return null; \n};\nvar savePlayerStats = function savePlayerStats(gameName, stats) {\n var existingStats = JSON.parse(localStorage.getItem(gameName)) || [];\n existingStats.push(stats);\n localStorage.setItem(gameName, JSON.stringify(existingStats));\n};\n\nvar computeInverseMapping = function computeInverseMapping(codeObj) {\n var inverse = {};\n Object.keys(codeObj).forEach(function (key) {\n var plain = key.toLowerCase();\n var encoded = codeObj[key].toLowerCase();\n inverse[encoded] = plain;\n });\n return inverse;\n};\nvar triggerParticles = function triggerParticles(targetElement) {\n if (!targetElement) return;\n var particleContainer = document.createElement(\"div\");\n particleContainer.className = \"particle-container\";\n var rect = targetElement.getBoundingClientRect();\n particleContainer.style.left = \"\".concat(rect.left + rect.width / 2, \"px\");\n particleContainer.style.top = \"\".concat(rect.top + rect.height / 2, \"px\");\n for (var i = 0; i < 15; i++) {\n var particle = document.createElement(\"div\");\n particle.className = \"particle\";\n particle.style.left = \"\".concat(Math.random() * 100 - 50, \"px\");\n particle.style.top = \"\".concat(Math.random() * 100 - 50, \"px\");\n particle.style.animationDelay = \"\".concat(Math.random() * 0.5, \"s\");\n particleContainer.appendChild(particle);\n }\n document.body.appendChild(particleContainer);\n setTimeout(function () {\n particleContainer.remove();\n }, 1000);\n};\n\n\nfunction createContentHeader2(contentData, contentAreaId, isFirstRender) {\n var _newTTableData$find, _newTTableData$find2;\n var typeDescription = (_newTTableData$find = newTTableData.find(function (item) {\n return item.type === contentData.type;\n })) === null || _newTTableData$find === void 0 ? void 0 : _newTTableData$find.Description;\n var FormatNo = (_newTTableData$find2 = newTTableData.find(function (item) {\n return item.type === contentData.type;\n })) === null || _newTTableData$find2 === void 0 ? void 0 : _newTTableData$find2.No;\n return _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"h5\", {\n className: \"format-type\",\n title: typeDescription\n }, contentData.type, _react[\"default\"].createElement(\"a\", {\n onClick: function onClick() {\n return (0, _script.getHelpContent)(FormatNo);\n }\n }, _react[\"default\"].createElement(\"span\", {\n className: \"help-icon\"\n }, \"?\"))), _react[\"default\"].createElement(\"h2\", {\n className: \"title\"\n }, typeDescription));\n}\nfunction GameFooter(_ref2) {\n var contentData = _ref2.contentData,\n formatData = _ref2.formatData,\n formatContentElement = _ref2.formatContentElement,\n feedBackAreaId = _ref2.feedBackAreaId,\n savedContentId = _ref2.savedContentId;\n var handleTweaks = function handleTweaks() {\n if (typeof createTweaksModal === 'function' && typeof showTweaksModal === 'function') {\n createTweaksModal();\n showTweaksModal(formatData, formatContentElement, feedBackAreaId, contentData);\n } else {\n console.error('Tweaks functions are not defined.');\n }\n };\n\n var handleRegenerate = function handleRegenerate() {\n if (!formatData || !formatData.No) {\n console.error(\"Format data or formatData.No is not available for regenerate.\");\n return;\n }\n var url = typeof lessonParameters !== 'undefined' ? lessonParameters : typeof getInputValues === 'function' ? getInputValues().parameters : null;\n if (url) {\n if (typeof fetchAndInjectContent === 'function') {\n fetchAndInjectContent(formatData.No, formatContentElement, feedBackAreaId, url);\n } else {\n console.error('fetchAndInjectContent is not defined.');\n }\n } else {\n console.error('URL (or lesson parameters) is missing.');\n }\n };\n\n var handleSave = function handleSave() {\n if (typeof BLL !== 'undefined' && typeof BLL.saveChatGPTResponse === 'function') {\n BLL.saveChatGPTResponse(contentData);\n } else {\n console.error('Save function is not defined.');\n }\n };\n\n var handleDelete = function handleDelete() {\n console.log(\"savedContentId: \", savedContentId);\n if (savedContentId && typeof BLL !== 'undefined' && typeof BLL.deleteContent === 'function') {\n console.log(\"hello from inside the if statement\");\n BLL.deleteContent(savedContentId);\n } else {\n console.error('Delete function is not defined or savedContentId is missing.');\n }\n };\n\n var lessonIdInput = document.getElementById('lesson-id');\n var lessonSelected = lessonIdInput && lessonIdInput.value && Number(lessonIdInput.value) > 0;\n return _react[\"default\"].createElement(\"div\", {\n className: \"game-footer\",\n style: {\n marginTop: '20px'\n }\n }, formatData && formatData.tweaks && formatData.tweaks.length > 0 && _react[\"default\"].createElement(\"button\", {\n className: \"btn btn-secondary tweaks-button\",\n onClick: handleTweaks\n }, \"Tweaks\"), _react[\"default\"].createElement(\"button\", {\n className: \"btn btn-secondary regenerate-button\",\n onClick: handleRegenerate,\n disabled: !formatData || !formatData.No\n }, \"Regenerate\"), lessonSelected && _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"button\", {\n className: \"btn btn-secondary save-chatgpt-response\",\n onClick: handleSave\n }, \"Save\"), _react[\"default\"].createElement(\"button\", {\n className: \"btn btn-secondary delete-chatgpt-response\",\n onClick: handleDelete\n }, \"Delete\")));\n}\nfunction GameOutcomeAnimation(_ref3) {\n var outcome = _ref3.outcome;\n return _react[\"default\"].createElement(\"div\", {\n className: \"game-outcome-animation \".concat(outcome)\n }, outcome === 'win' ? _react[\"default\"].createElement(\"div\", {\n className: \"win-animation\"\n }, _react[\"default\"].createElement(\"span\", {\n role: \"img\",\n \"aria-label\": \"win\"\n }, \"\\uD83C\\uDF89 Congratulations! \\uD83C\\uDF89\")) : _react[\"default\"].createElement(\"div\", {\n className: \"loss-animation\"\n }, _react[\"default\"].createElement(\"span\", {\n role: \"img\",\n \"aria-label\": \"loss\"\n }, \"\\uD83D\\uDE22 Better luck next time! \\uD83D\\uDE22\")));\n}\n\n\nfunction createGrid2(rows, cols) {\n var grid = [];\n for (var i = 0; i < rows; i++) {\n var row = [];\n for (var j = 0; j < cols; j++) {\n row.push({\n letter: null,\n isFound: false\n });\n }\n grid.push(row);\n }\n return grid;\n}\n\nfunction placeWordInGrid(grid, wordEntry, rows, cols) {\n var word = wordEntry.word;\n var directions = ['horizontal', 'vertical', 'diagonal'];\n var position = wordEntry.position,\n direction = wordEntry.direction;\n var attempts = 0;\n var placed = false;\n var row, col;\n while (attempts < 50 && !placed) {\n if (attempts === 0 && position != null && direction != null) {\n row = position.row;\n col = position.col;\n } else {\n row = Math.floor(Math.random() * rows);\n col = Math.floor(Math.random() * cols);\n direction = directions[Math.floor(Math.random() * directions.length)];\n }\n\n if (direction === \"horizontal\" && col + word.length > cols || direction === \"vertical\" && row + word.length > rows || direction === \"diagonal\" && (col + word.length > cols || row + word.length > rows)) {\n attempts++;\n continue;\n }\n\n var conflict = false;\n for (var i = 0; i < word.length; i++) {\n var targetRow = row;\n var targetCol = col;\n if (direction === \"horizontal\") targetCol = col + i;else if (direction === \"vertical\") targetRow = row + i;else if (direction === \"diagonal\") {\n targetRow = row + i;\n targetCol = col + i;\n }\n var cell = grid[targetRow][targetCol];\n if (cell.letter !== null && cell.letter !== word[i].toUpperCase()) {\n conflict = true;\n break;\n }\n }\n if (conflict) {\n attempts++;\n continue;\n }\n for (var _i = 0; _i < word.length; _i++) {\n var _targetRow = row;\n var _targetCol = col;\n if (direction === \"horizontal\") _targetCol = col + _i;else if (direction === \"vertical\") _targetRow = row + _i;else if (direction === \"diagonal\") {\n _targetRow = row + _i;\n _targetCol = col + _i;\n }\n grid[_targetRow][_targetCol] = {\n letter: word[_i].toUpperCase(),\n isFound: false\n };\n }\n placed = true;\n }\n if (!placed) {\n console.error(\"Unable to place word: \".concat(word));\n }\n return grid;\n}\nfunction CreateWordSearchGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var title = contentData.title,\n gridSize = contentData.gridSize,\n wordList = contentData.wordList,\n words = contentData.words,\n difficulty = contentData.difficulty;\n var _gridSize$split$map = gridSize.split('x').map(Number),\n _gridSize$split$map2 = _slicedToArray(_gridSize$split$map, 2),\n rows = _gridSize$split$map2[0],\n cols = _gridSize$split$map2[1];\n var wordListCapital = wordList.map(function (str) {\n return str.toUpperCase();\n });\n\n var _useState = (0, _react.useState)([]),\n _useState2 = _slicedToArray(_useState, 2),\n grid = _useState2[0],\n setGrid = _useState2[1];\n var _useState3 = (0, _react.useState)([]),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedCells = _useState4[0],\n setSelectedCells = _useState4[1];\n var _useState5 = (0, _react.useState)([]),\n _useState6 = _slicedToArray(_useState5, 2),\n foundCells = _useState6[0],\n setFoundCells = _useState6[1];\n var _useState7 = (0, _react.useState)([]),\n _useState8 = _slicedToArray(_useState7, 2),\n foundWords = _useState8[0],\n setFoundWords = _useState8[1];\n var _useState9 = (0, _react.useState)(0),\n _useState10 = _slicedToArray(_useState9, 2),\n score = _useState10[0],\n setScore = _useState10[1];\n var _useState11 = (0, _react.useState)(0),\n _useState12 = _slicedToArray(_useState11, 2),\n elapsedTime = _useState12[0],\n setElapsedTime = _useState12[1];\n var timerRef = (0, _react.useRef)(null);\n var startTimeRef = (0, _react.useRef)(null);\n (0, _react.useEffect)(function () {\n var initialGrid = createGrid2(rows, cols);\n\n words.forEach(function (wordEntry) {\n initialGrid = placeWordInGrid(initialGrid, wordEntry, rows, cols);\n });\n\n var completeGrid = initialGrid.map(function (row) {\n return row.map(function (cell) {\n if (cell.letter === null) {\n var randomLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n return _objectSpread(_objectSpread({}, cell), {}, {\n letter: randomLetter\n });\n }\n return cell;\n });\n });\n setGrid(completeGrid);\n startTimeRef.current = Date.now();\n timerRef.current = setInterval(function () {\n setElapsedTime(Math.floor((Date.now() - startTimeRef.current) / 1000));\n }, 1000);\n return function () {\n return clearInterval(timerRef.current);\n };\n }, [contentData]);\n\n var handleCellClick = function handleCellClick(row, col) {\n var alreadyFound = foundCells.some(function (c) {\n return c.row === row && c.col === col;\n });\n if (alreadyFound) return;\n setSelectedCells(function (prevCells) {\n var isSelected = prevCells.some(function (cell) {\n return cell.row === row && cell.col === col;\n });\n return isSelected ? prevCells.filter(function (c) {\n return !(c.row === row && c.col === col);\n }) : [].concat(_toConsumableArray(prevCells), [{\n row: row,\n col: col\n }]);\n });\n };\n\n (0, _react.useEffect)(function () {\n if (selectedCells.length === 0) return;\n\n var selectedWord = selectedCells.map(function (cell) {\n var _grid$cell$row;\n return (_grid$cell$row = grid[cell.row]) === null || _grid$cell$row === void 0 || (_grid$cell$row = _grid$cell$row[cell.col]) === null || _grid$cell$row === void 0 ? void 0 : _grid$cell$row.letter;\n }).join('').toUpperCase();\n\n var reversedWord = selectedWord.split('').reverse().join('');\n\n var finalWord = wordListCapital.includes(selectedWord) ? selectedWord : wordListCapital.includes(reversedWord) ? reversedWord : null;\n var feedbackArea = document.getElementById(feedbackAreaId);\n if (finalWord && !foundWords.includes(finalWord)) {\n setFoundWords(function (prev) {\n return [].concat(_toConsumableArray(prev), [finalWord]);\n });\n setScore(function (prev) {\n return prev + finalWord.length;\n });\n playSound(\"success\");\n triggerParticles();\n setFoundCells(function (prev) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(selectedCells));\n });\n if (feedbackArea) {\n feedbackArea.innerHTML = \"<p class=\\\"word-search-feedback-success\\\">Great! You found \\\"\".concat(finalWord, \"\\\".</p>\");\n }\n setTimeout(function () {\n setSelectedCells([]);\n }, 200);\n }\n }, [selectedCells]);\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"word-search-grid\"\n }, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"word-search-row\"\n }, row.map(function (cell, colIndex) {\n var isSelected = selectedCells.some(function (c) {\n return c.row === rowIndex && c.col === colIndex;\n });\n var isFound = foundCells.some(function (c) {\n return c.row === rowIndex && c.col === colIndex;\n });\n var backgroundColor = isSelected ? '#ffeb3b' : isFound ? '#4caf50' : 'transparent';\n var textColor = isFound ? 'white' : 'inherit';\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"word-search-cell\",\n style: {\n backgroundColor: backgroundColor,\n color: textColor\n },\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, cell.letter);\n }));\n }));\n };\n\n var renderWordList = function renderWordList() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"word-search-wordlist-container\"\n }, _react[\"default\"].createElement(\"h3\", {\n className: \"word-search-wordlist-title\"\n }, \"Word List\"), _react[\"default\"].createElement(\"ul\", {\n className: \"word-search-wordlist\"\n }, wordListCapital.map(function (word, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: foundWords.includes(word) ? 'word-search-found' : ''\n }, word);\n })));\n };\n return _react[\"default\"].createElement(\"div\", {\n className: \"word-search-game\"\n }, createContentHeader2(contentData, contentAreaId), renderGrid(), renderWordList(), _react[\"default\"].createElement(\"div\", {\n className: \"word-search-timer-score\"\n }, _react[\"default\"].createElement(\"p\", null, \"Time: \", formatTime(elapsedTime)), _react[\"default\"].createElement(\"p\", null, \"Score: \", score)), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateJigsawPuzzleGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId;\n var title = contentData.title,\n image = contentData.image,\n pieces = contentData.pieces,\n difficulty = contentData.difficulty,\n theme = contentData.theme;\n\n var _useState13 = (0, _react.useState)({}),\n _useState14 = _slicedToArray(_useState13, 2),\n piecePositions = _useState14[0],\n setPiecePositions = _useState14[1];\n var _useState15 = (0, _react.useState)(false),\n _useState16 = _slicedToArray(_useState15, 2),\n completed = _useState16[0],\n setCompleted = _useState16[1];\n\n (0, _react.useEffect)(function () {\n var shuffledPositions = {};\n var containerWidth = 600; \n var containerHeight = 400; \n\n pieces.forEach(function (piece) {\n shuffledPositions[piece.id] = {\n x: Math.random() * (containerWidth - 50),\n y: Math.random() * (containerHeight - 50)\n };\n });\n setPiecePositions(shuffledPositions);\n }, [contentData]);\n\n var handleDragStart = function handleDragStart(event, pieceId) {\n var pieceElement = event.target;\n var offsetX = event.clientX - pieceElement.getBoundingClientRect().left;\n var offsetY = event.clientY - pieceElement.getBoundingClientRect().top;\n event.dataTransfer.setData('pieceId', pieceId);\n event.dataTransfer.setData('offsetX', offsetX);\n event.dataTransfer.setData('offsetY', offsetY);\n };\n\n var handleDrop = function handleDrop(event) {\n event.preventDefault();\n var pieceId = event.dataTransfer.getData('pieceId');\n var offsetX = parseInt(event.dataTransfer.getData('offsetX'), 10);\n var offsetY = parseInt(event.dataTransfer.getData('offsetY'), 10);\n var newX = event.clientX - offsetX;\n var newY = event.clientY - offsetY;\n setPiecePositions(function (prevPositions) {\n return _objectSpread(_objectSpread({}, prevPositions), {}, _defineProperty({}, pieceId, {\n x: newX,\n y: newY\n }));\n });\n checkCompletion();\n };\n\n var checkCompletion = function checkCompletion() {\n var allCorrect = pieces.every(function (piece) {\n var pos = piecePositions[piece.id];\n return Math.abs(pos.x - piece.position.x) < 10 && Math.abs(pos.y - piece.position.y) < 10;\n });\n if (allCorrect) {\n setCompleted(true);\n }\n };\n\n var renderPieces = function renderPieces() {\n return pieces.map(function (piece) {\n var _piecePositions$piece, _piecePositions$piece2;\n return _react[\"default\"].createElement(\"div\", {\n key: piece.id,\n className: \"jigsaw-piece\",\n style: {\n left: \"\".concat((_piecePositions$piece = piecePositions[piece.id]) === null || _piecePositions$piece === void 0 ? void 0 : _piecePositions$piece.x, \"px\"),\n top: \"\".concat((_piecePositions$piece2 = piecePositions[piece.id]) === null || _piecePositions$piece2 === void 0 ? void 0 : _piecePositions$piece2.y, \"px\")\n },\n draggable: true,\n onDragStart: function onDragStart(e) {\n return handleDragStart(e, piece.id);\n }\n }, _react[\"default\"].createElement(\"span\", {\n className: \"piece-shape\"\n }, piece.shape));\n });\n };\n return _react[\"default\"].createElement(\"div\", {\n id: contentAreaId,\n className: \"jigsaw-container\",\n onDrop: handleDrop,\n onDragOver: function onDragOver(e) {\n return e.preventDefault();\n }\n }, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"div\", {\n className: \"jigsaw-background\",\n style: {\n backgroundImage: \"url(\".concat(image.src, \")\")\n }\n }, renderPieces()), theme && _react[\"default\"].createElement(\"p\", {\n className: \"theme-info\"\n }, \"Theme: \", theme), completed && _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"p\", null, \"Puzzle Completed!\"), _react[\"default\"].createElement(GameOutcomeAnimation, {\n outcome: \"win\"\n })), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateHangmanGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId;\n var word = contentData.word,\n difficulty = contentData.difficulty;\n var normalizedWord = word.toUpperCase();\n var maxGuesses = difficulty === 'easy' ? 10 : difficulty === 'hard' ? 6 : 8;\n var _useState17 = (0, _react.useState)([]),\n _useState18 = _slicedToArray(_useState17, 2),\n guessedLetters = _useState18[0],\n setGuessedLetters = _useState18[1];\n var _useState19 = (0, _react.useState)(0),\n _useState20 = _slicedToArray(_useState19, 2),\n incorrectGuesses = _useState20[0],\n setIncorrectGuesses = _useState20[1];\n\n var handleGuess = function handleGuess(letter) {\n letter = letter.toUpperCase();\n if (!guessedLetters.includes(letter)) {\n setGuessedLetters([].concat(_toConsumableArray(guessedLetters), [letter]));\n if (!normalizedWord.includes(letter)) {\n setIncorrectGuesses(incorrectGuesses + 1);\n }\n }\n };\n\n var isGameWon = normalizedWord.split('').every(function (letter) {\n return guessedLetters.includes(letter);\n });\n var isGameLost = incorrectGuesses >= maxGuesses;\n\n var renderWord = function renderWord() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"hangman-word\"\n }, normalizedWord.split('').map(function (letter, index) {\n return _react[\"default\"].createElement(\"span\", {\n key: index,\n className: \"hangman-letter\"\n }, guessedLetters.includes(letter) ? letter : '_');\n }));\n };\n\n var renderHangmanFigure = function renderHangmanFigure() {\n return _react[\"default\"].createElement(\"svg\", {\n className: \"hangman-figure\",\n viewBox: \"0 0 100 100\"\n }, _react[\"default\"].createElement(\"line\", {\n x1: \"20\",\n y1: \"80\",\n x2: \"80\",\n y2: \"80\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), _react[\"default\"].createElement(\"line\", {\n x1: \"50\",\n y1: \"80\",\n x2: \"50\",\n y2: \"20\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), _react[\"default\"].createElement(\"line\", {\n x1: \"50\",\n y1: \"20\",\n x2: \"80\",\n y2: \"20\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"20\",\n x2: \"80\",\n y2: \"30\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 0 && _react[\"default\"].createElement(\"circle\", {\n cx: \"80\",\n cy: \"40\",\n r: \"10\",\n fill: \"black\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 1 && _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"50\",\n x2: \"80\",\n y2: \"70\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 2 && _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"60\",\n x2: \"70\",\n y2: \"50\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 3 && _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"60\",\n x2: \"90\",\n y2: \"50\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 4 && _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"70\",\n x2: \"70\",\n y2: \"80\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }), incorrectGuesses > 5 && _react[\"default\"].createElement(\"line\", {\n x1: \"80\",\n y1: \"70\",\n x2: \"90\",\n y2: \"80\",\n stroke: \"black\",\n strokeWidth: \"2\"\n }));\n };\n\n var renderLetterButtons = function renderLetterButtons() {\n var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n return _react[\"default\"].createElement(\"div\", {\n className: \"letter-buttons\"\n }, alphabet.split('').map(function (letter) {\n return _react[\"default\"].createElement(\"button\", {\n key: letter,\n className: \"letter-button\",\n onClick: function onClick() {\n return handleGuess(letter);\n },\n disabled: guessedLetters.includes(letter) || isGameWon || isGameLost\n }, letter);\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderWord(), renderHangmanFigure(), renderLetterButtons(), isGameWon && _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"p\", null, \"You won!\"), _react[\"default\"].createElement(GameOutcomeAnimation, {\n outcome: \"win\"\n })), isGameLost && _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"p\", null, \"You lost! The word was \", normalizedWord), _react[\"default\"].createElement(GameOutcomeAnimation, {\n outcome: \"loss\"\n })), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateWordleGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId;\n var word = contentData.word,\n difficulty = contentData.difficulty;\n var wordLength = word.length;\n var maxAttempts = difficulty === 'hard' ? 4 : 6;\n\n var _useState21 = (0, _react.useState)([]),\n _useState22 = _slicedToArray(_useState21, 2),\n guesses = _useState22[0],\n setGuesses = _useState22[1];\n var _useState23 = (0, _react.useState)(''),\n _useState24 = _slicedToArray(_useState23, 2),\n currentGuess = _useState24[0],\n setCurrentGuess = _useState24[1];\n var _useState25 = (0, _react.useState)(false),\n _useState26 = _slicedToArray(_useState25, 2),\n isGameWon = _useState26[0],\n setIsGameWon = _useState26[1];\n var _useState27 = (0, _react.useState)(false),\n _useState28 = _slicedToArray(_useState27, 2),\n isGameLost = _useState28[0],\n setIsGameLost = _useState28[1];\n var _useState29 = (0, _react.useState)(0),\n _useState30 = _slicedToArray(_useState29, 2),\n elapsedTime = _useState30[0],\n setElapsedTime = _useState30[1];\n\n var startTimeRef = (0, _react.useRef)(Date.now());\n var timerRef = (0, _react.useRef)(null);\n\n (0, _react.useEffect)(function () {\n startTimeRef.current = Date.now();\n timerRef.current = setInterval(function () {\n setElapsedTime(Math.floor((Date.now() - startTimeRef.current) / 1000));\n }, 1000);\n return function () {\n return clearInterval(timerRef.current);\n };\n }, []);\n\n var calculateFeedback = function calculateFeedback(guess, answer) {\n var normalizedGuess = guess.toUpperCase();\n var normalizedAnswer = answer.toUpperCase();\n var feedback = Array(normalizedGuess.length).fill('absent');\n var answerCharCount = {};\n\n var _iterator3 = _createForOfIteratorHelper(normalizedAnswer),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _char7 = _step3.value;\n answerCharCount[_char7] = (answerCharCount[_char7] || 0) + 1;\n }\n\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n normalizedGuess.split('').forEach(function (_char5, index) {\n if (_char5 === normalizedAnswer[index]) {\n feedback[index] = 'correct';\n answerCharCount[_char5]--;\n }\n });\n\n normalizedGuess.split('').forEach(function (_char6, index) {\n if (feedback[index] !== 'correct' && answerCharCount[_char6] > 0) {\n feedback[index] = 'present';\n answerCharCount[_char6]--;\n }\n });\n return feedback;\n };\n\n var handleLetterInput = function handleLetterInput(letter) {\n if (currentGuess.length < wordLength && !isGameWon && !isGameLost) {\n setCurrentGuess(function (prev) {\n return prev + letter.toUpperCase();\n });\n }\n };\n\n var handleBackspace = function handleBackspace() {\n if (currentGuess.length > 0 && !isGameWon && !isGameLost) {\n setCurrentGuess(function (prev) {\n return prev.slice(0, -1);\n });\n }\n };\n\n var handleSubmit = function handleSubmit() {\n if (currentGuess.length !== wordLength || isGameWon || isGameLost) return;\n var feedback = calculateFeedback(currentGuess, word);\n console.log(\"Guess:\", currentGuess, \"Feedback:\", feedback);\n var newGuess = {\n guess: currentGuess,\n feedback: feedback\n };\n var updatedGuesses = [].concat(_toConsumableArray(guesses), [newGuess]);\n setGuesses(updatedGuesses);\n if (feedback.every(function (status) {\n return status === 'correct';\n })) {\n setIsGameWon(true);\n clearInterval(timerRef.current);\n } else if (updatedGuesses.length >= maxAttempts) {\n setIsGameLost(true);\n clearInterval(timerRef.current);\n }\n setCurrentGuess('');\n };\n\n var renderGrid = function renderGrid() {\n var rows = [];\n for (var i = 0; i < maxAttempts; i++) {\n var cells = [];\n for (var j = 0; j < wordLength; j++) {\n var letter = '';\n var state = '';\n if (i < guesses.length) {\n letter = guesses[i].guess[j];\n state = guesses[i].feedback[j];\n } else if (i === guesses.length && j < currentGuess.length) {\n letter = currentGuess[j];\n }\n cells.push(_react[\"default\"].createElement(\"div\", {\n key: j,\n className: \"wordle-cell \".concat(state)\n }, letter));\n }\n rows.push(_react[\"default\"].createElement(\"div\", {\n key: i,\n className: \"wordle-row\"\n }, cells));\n }\n return _react[\"default\"].createElement(\"div\", {\n className: \"wordle-grid\"\n }, rows);\n };\n\n var renderKeyboard = function renderKeyboard() {\n var keyboardRows = ['QWERTYUIOP', 'ASDFGHJKL', 'ZXCVBNM'];\n return _react[\"default\"].createElement(\"div\", {\n className: \"wordle-keyboard\"\n }, keyboardRows.map(function (rowStr, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"keyboard-row\"\n }, rowStr.split('').map(function (letter) {\n return _react[\"default\"].createElement(\"button\", {\n key: letter,\n className: \"keyboard-key\",\n onClick: function onClick() {\n return handleLetterInput(letter);\n },\n disabled: isGameWon || isGameLost\n }, letter);\n }), rowIndex === 2 && _react[\"default\"].createElement(_react[\"default\"].Fragment, null, _react[\"default\"].createElement(\"button\", {\n className: \"keyboard-key\",\n onClick: handleBackspace,\n disabled: isGameWon || isGameLost\n }, \"Backspace\"), _react[\"default\"].createElement(\"button\", {\n className: \"keyboard-key\",\n onClick: handleSubmit,\n disabled: currentGuess.length !== wordLength || isGameWon || isGameLost\n }, \"Enter\")));\n }));\n };\n return _react[\"default\"].createElement(\"div\", {\n id: contentAreaId,\n className: \"wordle-container\"\n }, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"p\", null, \"Guess the \", wordLength, \"-letter word. Attempts left: \", maxAttempts - guesses.length), _react[\"default\"].createElement(\"p\", null, \"Elapsed Time: \", formatTime(elapsedTime)), renderGrid(), renderKeyboard(), (isGameWon || isGameLost) && _react[\"default\"].createElement(\"div\", {\n className: \"game-end-message\"\n }, _react[\"default\"].createElement(\"p\", null, isGameWon ? 'Congratulations, you won!' : \"Game Over! The word was \".concat(word.toUpperCase())), _react[\"default\"].createElement(\"p\", null, \"Time taken: \", formatTime(elapsedTime))), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData \n ,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateAnagramsGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId;\n var word = contentData.word,\n letters = contentData.letters; \n\n var _useState31 = (0, _react.useState)(function () {\n return shuffle(_toConsumableArray(letters));\n }),\n _useState32 = _slicedToArray(_useState31, 2),\n shuffledLetters = _useState32[0],\n setShuffledLetters = _useState32[1];\n var _useState33 = (0, _react.useState)(''),\n _useState34 = _slicedToArray(_useState33, 2),\n userInput = _useState34[0],\n setUserInput = _useState34[1];\n var _useState35 = (0, _react.useState)(null),\n _useState36 = _slicedToArray(_useState35, 2),\n isCorrect = _useState36[0],\n setIsCorrect = _useState36[1];\n\n var removeLetterAtIndex = function removeLetterAtIndex(array, index) {\n var newArray = _toConsumableArray(array);\n newArray.splice(index, 1);\n return newArray;\n };\n\n var handleLetterClick = function handleLetterClick(letter) {\n if (isCorrect !== null) setIsCorrect(null);\n if (userInput.length < word.length) {\n var index = shuffledLetters.indexOf(letter);\n if (index !== -1) {\n var newLetters = removeLetterAtIndex(shuffledLetters, index);\n setShuffledLetters(newLetters);\n setUserInput(userInput + letter.toUpperCase());\n }\n }\n };\n\n var handleBackspace = function handleBackspace() {\n if (userInput.length > 0) {\n if (isCorrect !== null) setIsCorrect(null);\n var lastLetter = userInput.slice(-1);\n setUserInput(userInput.slice(0, -1));\n setShuffledLetters(function (prevLetters) {\n return shuffle([].concat(_toConsumableArray(prevLetters), [lastLetter]));\n });\n }\n };\n\n var checkAnswer = function checkAnswer() {\n setIsCorrect(userInput.toUpperCase() === word.toUpperCase());\n };\n\n var resetGame = function resetGame() {\n setUserInput('');\n setIsCorrect(null);\n setShuffledLetters(shuffle(_toConsumableArray(letters)));\n };\n\n var renderLetters = function renderLetters() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"anagrams-letters\"\n }, shuffledLetters.map(function (letter, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleLetterClick(letter);\n },\n disabled: isCorrect !== null\n }, letter);\n }));\n };\n\n var effectiveFormatData = props.formatData || {};\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"div\", {\n className: \"anagrams-input\"\n }, userInput), renderLetters(), _react[\"default\"].createElement(\"button\", {\n onClick: handleBackspace,\n disabled: userInput.length === 0 || isCorrect !== null\n }, \"Backspace\"), _react[\"default\"].createElement(\"button\", {\n onClick: checkAnswer,\n disabled: userInput.length !== word.length || isCorrect !== null\n }, \"Check Answer\"), isCorrect !== null && _react[\"default\"].createElement(\"p\", null, isCorrect ? 'Correct!' : 'Incorrect. Try again.'), isCorrect !== null && _react[\"default\"].createElement(\"button\", {\n onClick: resetGame\n }, \"Reset\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: effectiveFormatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\n\n\n\n\n\n\n\n\n\n\nfunction CreateCrosswordGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var gridSize = contentData.gridSize,\n initialGrid = contentData.grid,\n clues = contentData.clues,\n answers = contentData.answers;\n\n var _useState37 = (0, _react.useState)(initialGrid.map(function (row) {\n return row.map(function (cell) {\n return cell === null ? null : '';\n });\n })),\n _useState38 = _slicedToArray(_useState37, 2),\n grid = _useState38[0],\n setGrid = _useState38[1];\n var _useState39 = (0, _react.useState)(null),\n _useState40 = _slicedToArray(_useState39, 2),\n currentClue = _useState40[0],\n setCurrentClue = _useState40[1];\n var _useState41 = (0, _react.useState)(true),\n _useState42 = _slicedToArray(_useState41, 2),\n isAcrossMode = _useState42[0],\n setIsAcrossMode = _useState42[1];\n var _useState43 = (0, _react.useState)(false),\n _useState44 = _slicedToArray(_useState43, 2),\n isSolved = _useState44[0],\n setIsSolved = _useState44[1];\n\n var getAnswerCoordinates = function getAnswerCoordinates(answer) {\n var _answer$position = answer.position,\n row = _answer$position.row,\n col = _answer$position.col;\n var len = answer.word.length;\n return Array.from({\n length: len\n }, function (_, i) {\n return answer.direction === 'across' ? {\n row: row,\n col: col + i\n } : {\n row: row + i,\n col: col\n };\n });\n };\n\n var findClueForCell = function findClueForCell(row, col, isAcross) {\n var _iterator4 = _createForOfIteratorHelper(answers),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var answer = _step4.value;\n var coords = getAnswerCoordinates(answer);\n if (coords.some(function (c) {\n return c.row === row && c.col === col;\n })) {\n var clueList = answer.direction === 'across' ? clues.across : clues.down;\n var clueIndex = answer.direction === 'across' ? answer.position.col : answer.position.row;\n return _objectSpread(_objectSpread({}, answer), {}, {\n clue: clueList[clueIndex]\n });\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n return null;\n };\n\n var handleCellClick = function handleCellClick(row, col) {\n var selectedClue = findClueForCell(row, col, isAcrossMode);\n if (selectedClue) {\n setCurrentClue(selectedClue);\n }\n };\n\n var handleInputChange = function handleInputChange(event, row, col) {\n if (grid[row][col] !== null) {\n var newGrid = _toConsumableArray(grid);\n newGrid[row][col] = event.target.value.toUpperCase().slice(0, 1);\n setGrid(newGrid);\n checkCompletion(newGrid);\n }\n };\n\n var checkCompletion = function checkCompletion(currentGrid) {\n var _iterator5 = _createForOfIteratorHelper(answers),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var answer = _step5.value;\n var wordFilled = '';\n var coords = getAnswerCoordinates(answer);\n for (var i = 0; i < coords.length; i++) {\n var _coords$i = coords[i],\n r = _coords$i.row,\n c = _coords$i.col;\n if (!currentGrid[r] || currentGrid[r][c] === undefined) {\n console.error(\"Cell at row \".concat(r, \", col \").concat(c, \" is undefined for answer: \").concat(answer.word));\n setIsSolved(false);\n return;\n }\n wordFilled += currentGrid[r][c] || '';\n }\n console.log(\"Expected: \\\"\".concat(answer.word.toUpperCase(), \"\\\" - Filled: \\\"\").concat(wordFilled, \"\\\"\"));\n if (wordFilled !== answer.word.toUpperCase()) {\n setIsSolved(false);\n return;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n setIsSolved(true);\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"table\", {\n className: \"crossword-grid\"\n }, _react[\"default\"].createElement(\"tbody\", null, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"tr\", {\n key: rowIndex\n }, row.map(function (cell, colIndex) {\n var highlight = false;\n if (currentClue) {\n var coords = getAnswerCoordinates(currentClue);\n highlight = coords.some(function (c) {\n return c.row === rowIndex && c.col === colIndex;\n });\n }\n var cellClass = cell === null ? 'black-cell' : 'playable-cell';\n return _react[\"default\"].createElement(\"td\", {\n key: colIndex,\n className: \"cell \".concat(cellClass, \" \").concat(highlight ? 'highlight-cell' : ''),\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, cell === null ? _react[\"default\"].createElement(\"div\", {\n className: \"black-square\"\n }) : _react[\"default\"].createElement(\"input\", {\n type: \"text\",\n maxLength: \"1\",\n value: grid[rowIndex][colIndex] || '',\n onChange: function onChange(e) {\n return handleInputChange(e, rowIndex, colIndex);\n },\n onFocus: function onFocus() {\n return handleCellClick(rowIndex, colIndex);\n },\n disabled: isSolved\n }));\n }));\n })));\n };\n\n var renderClues = function renderClues() {\n var acrossClues = clues.across.map(function (clue, index) {\n return {\n clue: clue,\n index: index\n };\n });\n var downClues = clues.down.map(function (clue, index) {\n return {\n clue: clue,\n index: index\n };\n });\n return _react[\"default\"].createElement(\"div\", {\n className: \"crossword-clues\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"across-clues\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Across\"), _react[\"default\"].createElement(\"ol\", null, acrossClues.map(function (_ref4) {\n var clue = _ref4.clue,\n index = _ref4.index;\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: isClueSolved('across', index) ? 'solved' : ''\n }, index + 1, \". \", clue);\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"down-clues\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Down\"), _react[\"default\"].createElement(\"ol\", null, downClues.map(function (_ref5) {\n var clue = _ref5.clue,\n index = _ref5.index;\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: isClueSolved('down', index) ? 'solved' : ''\n }, index + 1, \". \", clue);\n }))));\n };\n\n var isClueSolved = function isClueSolved(direction, clueIndex) {\n var answer = answers.find(function (a) {\n return a.direction === direction && (direction === 'across' ? a.position.col === clueIndex : a.position.row === clueIndex);\n });\n if (!answer) return false;\n var wordFilled = '';\n getAnswerCoordinates(answer).forEach(function (_ref6) {\n var row = _ref6.row,\n col = _ref6.col;\n wordFilled += grid[row][col] || '';\n });\n return wordFilled === answer.word.toUpperCase();\n };\n\n var renderHintButtons = function renderHintButtons() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"clue-actions\"\n }, _react[\"default\"].createElement(\"button\", {\n onClick: handleRevealLetter\n }, \"Reveal Letter\"), _react[\"default\"].createElement(\"button\", {\n onClick: handleRevealWord\n }, \"Reveal Word\"));\n };\n\n var handleRevealLetter = function handleRevealLetter() {\n if (!currentClue) return;\n var coords = getAnswerCoordinates(currentClue);\n var correctWord = currentClue.word.toUpperCase();\n var newGrid = _toConsumableArray(grid);\n for (var i = 0; i < coords.length; i++) {\n var _coords$i2 = coords[i],\n row = _coords$i2.row,\n col = _coords$i2.col;\n if (!newGrid[row][col]) {\n newGrid[row][col] = correctWord[i];\n break;\n }\n }\n setGrid(newGrid);\n checkCompletion(newGrid);\n };\n\n var handleRevealWord = function handleRevealWord() {\n if (!currentClue) return;\n var coords = getAnswerCoordinates(currentClue);\n var correctWord = currentClue.word.toUpperCase();\n var newGrid = _toConsumableArray(grid);\n coords.forEach(function (coord, i) {\n newGrid[coord.row][coord.col] = correctWord[i];\n });\n setGrid(newGrid);\n checkCompletion(newGrid);\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), renderClues(), currentClue && _react[\"default\"].createElement(\"div\", {\n className: \"current-clue\"\n }, _react[\"default\"].createElement(\"h4\", null, currentClue.direction.toUpperCase(), \" \", currentClue.clueIndex + 1), _react[\"default\"].createElement(\"p\", null, currentClue.clue), renderHintButtons()), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateSudokuGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var initialGrid = contentData.grid;\n\n var _useState45 = (0, _react.useState)(initialGrid),\n _useState46 = _slicedToArray(_useState45, 2),\n grid = _useState46[0],\n setGrid = _useState46[1];\n var _useState47 = (0, _react.useState)(false),\n _useState48 = _slicedToArray(_useState47, 2),\n isSolved = _useState48[0],\n setIsSolved = _useState48[1];\n\n var handleInputChange = function handleInputChange(event, row, col) {\n var value = parseInt(event.target.value);\n if (!value || value < 1 || value > 9) {\n value = ''; \n }\n var newGrid = _toConsumableArray(grid);\n newGrid[row][col] = value;\n setGrid(newGrid);\n if (isSudokuSolved(newGrid)) {\n setIsSolved(true);\n } else {\n setIsSolved(false);\n }\n };\n\n var isSudokuSolved = function isSudokuSolved(grid) {\n for (var i = 0; i < 9; i++) {\n var seen = new Set();\n for (var j = 0; j < 9; j++) {\n var val = grid[i][j];\n if (!val || seen.has(val)) return false;\n seen.add(val);\n }\n }\n for (var _j = 0; _j < 9; _j++) {\n var _seen = new Set();\n for (var _i2 = 0; _i2 < 9; _i2++) {\n var _val = grid[_i2][_j];\n if (!_val || _seen.has(_val)) return false;\n _seen.add(_val);\n }\n }\n for (var blockRow = 0; blockRow < 3; blockRow++) {\n for (var blockCol = 0; blockCol < 3; blockCol++) {\n var _seen2 = new Set();\n for (var _i3 = 0; _i3 < 3; _i3++) {\n for (var _j2 = 0; _j2 < 3; _j2++) {\n var _val2 = grid[blockRow * 3 + _i3][blockCol * 3 + _j2];\n if (!_val2 || _seen2.has(_val2)) return false;\n _seen2.add(_val2);\n }\n }\n }\n }\n return true;\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"table\", {\n className: \"sudoku-grid\"\n }, _react[\"default\"].createElement(\"tbody\", null, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"tr\", {\n key: rowIndex\n }, row.map(function (cell, colIndex) {\n return _react[\"default\"].createElement(\"td\", {\n key: colIndex,\n className: \"cell\"\n }, _react[\"default\"].createElement(\"input\", {\n type: \"number\",\n min: \"1\",\n max: \"9\",\n value: cell || '',\n onChange: function onChange(e) {\n return handleInputChange(e, rowIndex, colIndex);\n },\n disabled: isSolved\n }));\n }));\n })));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Sudoku Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateBoggleGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var initialGrid = contentData.grid,\n timeLimit = contentData.timeLimit;\n\n var _useState49 = (0, _react.useState)(initialGrid),\n _useState50 = _slicedToArray(_useState49, 2),\n grid = _useState50[0],\n setGrid = _useState50[1];\n var _useState51 = (0, _react.useState)([]),\n _useState52 = _slicedToArray(_useState51, 2),\n foundWords = _useState52[0],\n setFoundWords = _useState52[1];\n var _useState53 = (0, _react.useState)([]),\n _useState54 = _slicedToArray(_useState53, 2),\n selectedCells = _useState54[0],\n setSelectedCells = _useState54[1]; \n var _useState55 = (0, _react.useState)(timeLimit),\n _useState56 = _slicedToArray(_useState55, 2),\n currentTime = _useState56[0],\n setCurrentTime = _useState56[1];\n var _useState57 = (0, _react.useState)(0),\n _useState58 = _slicedToArray(_useState57, 2),\n score = _useState58[0],\n setScore = _useState58[1];\n var _useState59 = (0, _react.useState)(false),\n _useState60 = _slicedToArray(_useState59, 2),\n isGameOver = _useState60[0],\n setIsGameOver = _useState60[1];\n var feedbackAreaRef = (0, _react.useRef)(null);\n\n (0, _react.useEffect)(function () {\n var timerId;\n if (currentTime > 0 && !isGameOver) {\n timerId = setTimeout(function () {\n return setCurrentTime(function (prev) {\n return prev - 1;\n });\n }, 1000);\n } else if (currentTime === 0) {\n setIsGameOver(true);\n }\n return function () {\n return clearTimeout(timerId);\n };\n }, [currentTime, isGameOver]);\n\n (0, _react.useEffect)(function () {\n if (feedbackAreaId) {\n feedbackAreaRef.current = document.getElementById(feedbackAreaId);\n }\n }, [feedbackAreaId]);\n\n var isAdjacent = function isAdjacent(cell1, cell2) {\n return Math.abs(cell1.row - cell2.row) <= 1 && Math.abs(cell1.col - cell2.col) <= 1;\n };\n\n var handleCellClick = function handleCellClick(row, col) {\n if (isGameOver) return;\n var newCell = {\n row: row,\n col: col\n };\n if (selectedCells.length === 0 || isAdjacent(selectedCells[selectedCells.length - 1], newCell)) {\n setSelectedCells(function (prev) {\n return [].concat(_toConsumableArray(prev), [newCell]);\n });\n }\n };\n\n var clearSelection = function clearSelection() {\n setSelectedCells([]);\n };\n\n var getCurrentWord = function getCurrentWord() {\n return selectedCells.map(function (cell) {\n return grid[cell.row][cell.col];\n }).join('');\n };\n\n var checkWord = function checkWord() {\n var word = getCurrentWord();\n if (word.length >= 3 && !foundWords.includes(word)) {\n setFoundWords(function (prev) {\n return [].concat(_toConsumableArray(prev), [word]);\n });\n setScore(function (prev) {\n return prev + word.length;\n });\n clearSelection();\n }\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"boggle-grid\"\n }, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"boggle-row\"\n }, row.map(function (letter, colIndex) {\n var isSelected = selectedCells.some(function (cell) {\n return cell.row === rowIndex && cell.col === colIndex;\n });\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"boggle-cell \".concat(isSelected ? 'selected' : ''),\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, letter);\n }));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), _react[\"default\"].createElement(\"div\", {\n className: \"found-words\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Found Words:\"), _react[\"default\"].createElement(\"ul\", null, foundWords.map(function (w, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, w);\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"status-bar\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"timer\"\n }, \"Time: \", currentTime, \"s\"), _react[\"default\"].createElement(\"div\", {\n className: \"score\"\n }, \"Score: \", score)), _react[\"default\"].createElement(\"button\", {\n onClick: checkWord,\n disabled: selectedCells.length === 0 || isGameOver\n }, \"Check Word\"), isGameOver && _react[\"default\"].createElement(\"p\", null, \"Game Over!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction Create7LittleWordsGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var words = contentData.words,\n letterGroups = contentData.letterGroups,\n clues = contentData.clues;\n\n var _useState61 = (0, _react.useState)([]),\n _useState62 = _slicedToArray(_useState61, 2),\n selectedGroups = _useState62[0],\n setSelectedGroups = _useState62[1];\n var _useState63 = (0, _react.useState)([]),\n _useState64 = _slicedToArray(_useState63, 2),\n completedWords = _useState64[0],\n setCompletedWords = _useState64[1];\n var _useState65 = (0, _react.useState)(false),\n _useState66 = _slicedToArray(_useState65, 2),\n isGameOver = _useState66[0],\n setIsGameOver = _useState66[1];\n\n var currentWord = selectedGroups.join('');\n\n var handleLetterGroupClick = function handleLetterGroupClick(group) {\n if (isGameOver) return;\n if (currentWord.length + group.length <= 14) {\n setSelectedGroups(function (prev) {\n return [].concat(_toConsumableArray(prev), [group]);\n });\n }\n };\n\n var handleBackspace = function handleBackspace() {\n if (isGameOver || selectedGroups.length === 0) return;\n setSelectedGroups(function (prev) {\n return prev.slice(0, -1);\n });\n };\n\n var checkWord = function checkWord() {\n var normalizedWord = currentWord.toLowerCase();\n if (normalizedWord.length >= 3 && words.includes(normalizedWord) && !completedWords.includes(normalizedWord)) {\n var newCompleted = [].concat(_toConsumableArray(completedWords), [normalizedWord]);\n setCompletedWords(newCompleted);\n setSelectedGroups([]);\n if (newCompleted.length === words.length) {\n setIsGameOver(true);\n }\n }\n };\n\n var availableGroups = letterGroups.filter(function (group) {\n var totalCount = letterGroups.filter(function (g) {\n return g === group;\n }).length;\n var usedCount = selectedGroups.filter(function (g) {\n return g === group;\n }).length;\n return usedCount < totalCount;\n });\n\n var renderClues = function renderClues() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"clues\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Clues:\"), _react[\"default\"].createElement(\"ul\", null, clues.map(function (clue, index) {\n var targetWord = words[index].toLowerCase();\n var isCompleted = completedWords.includes(targetWord);\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: isCompleted ? 'completed' : ''\n }, index + 1, \". \", clue);\n })));\n };\n\n var renderLetterGroups = function renderLetterGroups() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"letter-groups\"\n }, availableGroups.map(function (group, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleLetterGroupClick(group);\n },\n disabled: isGameOver\n }, group);\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderClues(), _react[\"default\"].createElement(\"div\", {\n className: \"current-word\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Current Word:\"), _react[\"default\"].createElement(\"p\", null, currentWord)), renderLetterGroups(), _react[\"default\"].createElement(\"div\", {\n className: \"word-actions\"\n }, _react[\"default\"].createElement(\"button\", {\n onClick: handleBackspace,\n disabled: selectedGroups.length === 0 || isGameOver\n }, \"Backspace\"), _react[\"default\"].createElement(\"button\", {\n onClick: checkWord,\n disabled: currentWord.length === 0 || isGameOver\n }, \"Check Word\")), isGameOver && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateKenKenGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var initialGrid = contentData.grid,\n cages = contentData.cages,\n gridSize = contentData.gridSize;\n\n var _useState67 = (0, _react.useState)(initialGrid),\n _useState68 = _slicedToArray(_useState67, 2),\n grid = _useState68[0],\n setGrid = _useState68[1];\n var _useState69 = (0, _react.useState)(false),\n _useState70 = _slicedToArray(_useState69, 2),\n isSolved = _useState70[0],\n setIsSolved = _useState70[1];\n\n var getCageIdForCell = function getCageIdForCell(row, col) {\n for (var i = 0; i < cages.length; i++) {\n var cage = cages[i];\n if (cage.cells.some(function (cell) {\n return cell[0] === row && cell[1] === col;\n })) {\n return i; \n }\n }\n return null;\n };\n\n var handleInputChange = function handleInputChange(event, row, col) {\n var value = parseInt(event.target.value) || null;\n var gridSizeNum = parseInt(gridSize.split(\"x\")[0]);\n if (value < 1 || value > gridSizeNum) {\n value = null;\n }\n var updatedGrid = _toConsumableArray(grid);\n updatedGrid[row][col] = value;\n setGrid(updatedGrid);\n checkCompletion(updatedGrid);\n };\n\n var checkCompletion = function checkCompletion(currentGrid) {\n for (var row = 0; row < currentGrid.length; row++) {\n for (var col = 0; col < currentGrid[row].length; col++) {\n if (currentGrid[row][col] === null) {\n setIsSolved(false);\n return;\n }\n }\n }\n var _iterator6 = _createForOfIteratorHelper(cages),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var cage = _step6.value;\n if (!isCageValid(currentGrid, cage)) {\n setIsSolved(false);\n return;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n var _loop = function _loop(i) {\n var row = currentGrid[i];\n var col = currentGrid.map(function (r) {\n return r[i];\n });\n if (!isValidGroup(row) || !isValidGroup(col)) {\n setIsSolved(false);\n return {\n v: void 0\n };\n }\n },\n _ret;\n for (var i = 0; i < currentGrid.length; i++) {\n _ret = _loop(i);\n if (_ret) return _ret.v;\n }\n setIsSolved(true);\n };\n\n var isCageValid = function isCageValid(grid, cage) {\n var cells = cage.cells,\n target = cage.target,\n operation = cage.operation;\n var result;\n switch (operation) {\n case \"+\":\n result = cells.reduce(function (sum, cell) {\n return sum + grid[cell[0]][cell[1]];\n }, 0);\n break;\n case \"-\":\n result = Math.abs(grid[cells[0][0]][cells[0][1]] - grid[cells[1][0]][cells[1][1]]);\n break;\n case \"*\":\n result = cells.reduce(function (prod, cell) {\n return prod * grid[cell[0]][cell[1]];\n }, 1);\n break;\n case \"/\":\n var num1 = grid[cells[0][0]][cells[0][1]];\n var num2 = grid[cells[1][0]][cells[1][1]];\n result = Math.max(num1, num2) / Math.min(num1, num2);\n break;\n default:\n return false;\n }\n return result === target;\n };\n\n var isValidGroup = function isValidGroup(group) {\n var seen = new Set();\n var _iterator7 = _createForOfIteratorHelper(group),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var num = _step7.value;\n if (num !== null) {\n if (seen.has(num)) return false;\n seen.add(num);\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n return true;\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"table\", {\n className: \"kenken-grid\"\n }, _react[\"default\"].createElement(\"tbody\", null, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"tr\", {\n key: rowIndex\n }, row.map(function (cell, colIndex) {\n var cageId = getCageIdForCell(rowIndex, colIndex);\n var extraClass = cageId !== null ? \"cage-cell cage-\".concat(cageId) : '';\n return _react[\"default\"].createElement(\"td\", {\n key: colIndex,\n className: \"cell \".concat(extraClass)\n }, _react[\"default\"].createElement(\"input\", {\n type: \"number\",\n min: \"1\",\n max: grid.length,\n value: cell !== null ? cell : \"\",\n onChange: function onChange(e) {\n return handleInputChange(e, rowIndex, colIndex);\n },\n disabled: isSolved\n }));\n }));\n })));\n };\n\n var renderCages = function renderCages() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"kenken-cages\"\n }, cages.map(function (cage, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"cage\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"cage-info\"\n }, cage.target, \" \", cage.operation));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), renderCages(), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"KenKen Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateCryptogramGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var encodedMessage = contentData.encodedMessage,\n code = contentData.code,\n message = contentData.message;\n\n var _useState71 = (0, _react.useState)({}),\n _useState72 = _slicedToArray(_useState71, 2),\n letterMapping = _useState72[0],\n setLetterMapping = _useState72[1];\n var _useState73 = (0, _react.useState)(''),\n _useState74 = _slicedToArray(_useState73, 2),\n decodedMessage = _useState74[0],\n setDecodedMessage = _useState74[1];\n var _useState75 = (0, _react.useState)(false),\n _useState76 = _slicedToArray(_useState75, 2),\n isSolved = _useState76[0],\n setIsSolved = _useState76[1];\n\n (0, _react.useEffect)(function () {\n var inverseMapping = computeInverseMapping(code);\n setLetterMapping(inverseMapping);\n }, [code]);\n\n (0, _react.useEffect)(function () {\n var updatedMessage = '';\n for (var i = 0; i < encodedMessage.length; i++) {\n var encLetter = encodedMessage[i];\n if (encLetter === ' ') {\n updatedMessage += ' ';\n } else {\n var key = encLetter.toLowerCase();\n updatedMessage += letterMapping[key] ? letterMapping[key] : encLetter;\n }\n }\n setDecodedMessage(updatedMessage);\n if (updatedMessage.toLowerCase() === message.toLowerCase()) {\n setIsSolved(true);\n }\n }, [letterMapping, encodedMessage, message]);\n\n var handleLetterChange = function handleLetterChange(encodedLetter, newLetter) {\n if (!isSolved) {\n setLetterMapping(function (prevMapping) {\n return _objectSpread(_objectSpread({}, prevMapping), {}, _defineProperty({}, encodedLetter.toLowerCase(), newLetter.toLowerCase()));\n });\n }\n };\n\n var renderEncodedMessage = function renderEncodedMessage() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"encoded-message\"\n }, encodedMessage.split('').map(function (letter, index) {\n return _react[\"default\"].createElement(\"span\", {\n key: index,\n className: \"encoded-letter\"\n }, letter);\n }));\n };\n\n var renderDecodingInterface = function renderDecodingInterface() {\n var encodedLetters = Object.keys(code);\n return _react[\"default\"].createElement(\"div\", {\n className: \"decoding-interface\"\n }, encodedLetters.map(function (encodedLetter) {\n return _react[\"default\"].createElement(\"div\", {\n key: encodedLetter,\n className: \"letter-mapping\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"encoded-letter\"\n }, encodedLetter.toLowerCase()), _react[\"default\"].createElement(\"input\", {\n type: \"text\",\n maxLength: \"1\",\n value: letterMapping[encodedLetter.toLowerCase()] || '',\n onChange: function onChange(e) {\n return handleLetterChange(encodedLetter, e.target.value);\n },\n disabled: isSolved\n }));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderEncodedMessage(), renderDecodingInterface(), _react[\"default\"].createElement(\"div\", {\n className: \"decoded-message\"\n }, decodedMessage), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Cryptogram Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateSpellTowerGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var gridSize = contentData.gridSize,\n letters = contentData.letters,\n difficulty = contentData.difficulty;\n\n var _gridSize$split$map3 = gridSize.split('x').map(Number),\n _gridSize$split$map4 = _slicedToArray(_gridSize$split$map3, 2),\n rows = _gridSize$split$map4[0],\n cols = _gridSize$split$map4[1];\n\n var _useState77 = (0, _react.useState)(createGrid(rows, cols)),\n _useState78 = _slicedToArray(_useState77, 2),\n grid = _useState78[0],\n setGrid = _useState78[1];\n var _useState79 = (0, _react.useState)([]),\n _useState80 = _slicedToArray(_useState79, 2),\n selectedCells = _useState80[0],\n setSelectedCells = _useState80[1]; \n var _useState81 = (0, _react.useState)(0),\n _useState82 = _slicedToArray(_useState81, 2),\n score = _useState82[0],\n setScore = _useState82[1];\n var _useState83 = (0, _react.useState)(false),\n _useState84 = _slicedToArray(_useState83, 2),\n gameOver = _useState84[0],\n setGameOver = _useState84[1];\n\n var fallInterval = 2000; \n if (difficulty === \"easy\") fallInterval = 2500;\n if (difficulty === \"hard\") fallInterval = 1000;\n\n (0, _react.useEffect)(function () {\n if (gameOver) return;\n var interval = setInterval(function () {\n setGrid(function (prevGrid) {\n var newRow = Array.from({\n length: cols\n }, function () {\n if (letters && letters.length > 0) {\n var randomIndex = Math.floor(Math.random() * letters.length);\n return letters[randomIndex].toUpperCase();\n }\n return getRandomLetter();\n });\n var newGrid = [newRow].concat(_toConsumableArray(prevGrid));\n if (newGrid.length > rows) {\n newGrid.pop();\n }\n if (prevGrid[0] && prevGrid[0].some(function (cell) {\n return cell !== null;\n })) {\n setGameOver(true);\n }\n return newGrid;\n });\n }, fallInterval);\n return function () {\n return clearInterval(interval);\n };\n }, [cols, rows, letters, fallInterval, gameOver]);\n\n var handleCellClick = function handleCellClick(row, col) {\n if (gameOver) return;\n if (selectedCells.some(function (cell) {\n return cell.row === row && cell.col === col;\n })) return;\n setSelectedCells(function (prev) {\n return [].concat(_toConsumableArray(prev), [{\n row: row,\n col: col\n }]);\n });\n };\n\n var currentWord = selectedCells.map(function (cell) {\n return grid[cell.row][cell.col];\n }).join('');\n\n var handleSubmitWord = function handleSubmitWord() {\n if (currentWord.length < 3) return;\n setScore(function (prev) {\n return prev + currentWord.length;\n });\n setGrid(function (prevGrid) {\n var newGrid = prevGrid.map(function (row, rowIndex) {\n return row.map(function (cell, colIndex) {\n if (selectedCells.some(function (s) {\n return s.row === rowIndex && s.col === colIndex;\n })) {\n return null;\n }\n return cell;\n });\n });\n for (var col = 0; col < cols; col++) {\n var colValues = [];\n for (var row = 0; row < rows; row++) {\n colValues.push(newGrid[row][col]);\n }\n var filled = colValues.filter(function (val) {\n return val !== null;\n });\n var empties = Array(rows - filled.length).fill(null);\n var newCol = empties.concat(filled);\n for (var _row = 0; _row < rows; _row++) {\n newGrid[_row][col] = newCol[_row];\n }\n }\n return newGrid;\n });\n setSelectedCells([]);\n };\n\n var handleClearSelection = function handleClearSelection() {\n setSelectedCells([]);\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"spelltower-grid\"\n }, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"spelltower-row\"\n }, row.map(function (cell, colIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"spelltower-cell\",\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, cell || '');\n }));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), _react[\"default\"].createElement(\"div\", {\n className: \"current-word\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Current Word:\"), _react[\"default\"].createElement(\"p\", null, currentWord)), _react[\"default\"].createElement(\"div\", {\n className: \"actions\"\n }, _react[\"default\"].createElement(\"button\", {\n onClick: handleSubmitWord,\n disabled: selectedCells.length === 0 || gameOver\n }, \"Submit Word\"), _react[\"default\"].createElement(\"button\", {\n onClick: handleClearSelection,\n disabled: selectedCells.length === 0 || gameOver\n }, \"Clear Selection\")), _react[\"default\"].createElement(\"div\", {\n className: \"score\"\n }, \"Score: \", score), gameOver && _react[\"default\"].createElement(\"div\", {\n className: \"game-over\"\n }, \"Game Over!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateTypeshiftGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var columns = contentData.columns,\n words = contentData.words,\n dictionary = contentData.dictionary;\n var _useState85 = (0, _react.useState)(columns),\n _useState86 = _slicedToArray(_useState85, 2),\n currentColumns = _useState86[0],\n setCurrentColumns = _useState86[1];\n var _useState87 = (0, _react.useState)([]),\n _useState88 = _slicedToArray(_useState87, 2),\n foundWords = _useState88[0],\n setFoundWords = _useState88[1];\n var _useState89 = (0, _react.useState)(false),\n _useState90 = _slicedToArray(_useState89, 2),\n isSolved = _useState90[0],\n setIsSolved = _useState90[1];\n var validateWord = function validateWord(word, dictionary) {\n if (dictionary && Array.isArray(dictionary)) {\n return dictionary.map(function (w) {\n return w.toLowerCase();\n }).includes(word.toLowerCase());\n }\n return true;\n };\n var handleColumnShift = function handleColumnShift(columnIndex, direction) {\n if (isSolved) return;\n setCurrentColumns(function (prevColumns) {\n var newColumns = _toConsumableArray(prevColumns);\n var column = _toConsumableArray(newColumns[columnIndex]);\n if (direction === 'up') {\n column.push(column.shift());\n } else {\n column.unshift(column.pop());\n }\n newColumns[columnIndex] = column;\n return newColumns;\n });\n };\n (0, _react.useEffect)(function () {\n var currentWord = currentColumns.map(function (column) {\n return column[0];\n }).join('');\n if (validateWord(currentWord, dictionary) && !foundWords.includes(currentWord)) {\n setFoundWords(function (prev) {\n var newFound = [].concat(_toConsumableArray(prev), [currentWord]);\n if (newFound.length === words.length) setIsSolved(true);\n return newFound;\n });\n }\n }, [currentColumns, words, dictionary, foundWords]);\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"typeshift-grid\"\n }, currentColumns.map(function (column, colIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"column\"\n }, column.map(function (letter, letterIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: letterIndex,\n className: \"cell\"\n }, letter);\n }), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleColumnShift(colIndex, 'up');\n },\n disabled: isSolved\n }, \"Up\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleColumnShift(colIndex, 'down');\n },\n disabled: isSolved\n }, \"Down\"));\n }));\n };\n var renderWordList = function renderWordList() {\n return _react[\"default\"].createElement(\"ul\", {\n className: \"word-list\"\n }, words.map(function (word, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: foundWords.includes(word) ? 'found' : ''\n }, word);\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), renderWordList(), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateCrypticCrosswordGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var gridSize = contentData.gridSize,\n initialGrid = contentData.grid,\n clues = contentData.clues,\n answers = contentData.answers;\n\n var properGrid = Array.isArray(initialGrid) && Array.isArray(initialGrid[0]) ? initialGrid : createGrid(10, 10);\n var _useState91 = (0, _react.useState)(properGrid),\n _useState92 = _slicedToArray(_useState91, 2),\n grid = _useState92[0],\n setGrid = _useState92[1];\n var _useState93 = (0, _react.useState)(null),\n _useState94 = _slicedToArray(_useState93, 2),\n currentClue = _useState94[0],\n setCurrentClue = _useState94[1];\n var _useState95 = (0, _react.useState)(true),\n _useState96 = _slicedToArray(_useState95, 2),\n isAcrossMode = _useState96[0],\n setIsAcrossMode = _useState96[1];\n var _useState97 = (0, _react.useState)(false),\n _useState98 = _slicedToArray(_useState97, 2),\n isSolved = _useState98[0],\n setIsSolved = _useState98[1];\n\n var handleCellClick = function handleCellClick(row, col) {\n if (isSolved) return;\n if (currentClue && currentClue.position.row === row && currentClue.position.col === col) {\n setIsAcrossMode(function (prev) {\n return !prev;\n });\n }\n var clueObj = findClueForCell(row, col, answers, isAcrossMode);\n setCurrentClue(clueObj);\n };\n\n var findClueForCell = function findClueForCell(row, col, answers, isAcross) {\n var _iterator8 = _createForOfIteratorHelper(answers),\n _step8;\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var answer = _step8.value;\n if (answer.position.row === row && answer.position.col === col) {\n if (answer.direction.toLowerCase() === 'across' && isAcross) {\n var clueIndex = answer.position.col;\n var clueText = clues.across[clueIndex];\n return _objectSpread(_objectSpread({}, answer), {}, {\n clue: clueText,\n clueIndex: clueIndex\n });\n } else if (answer.direction.toLowerCase() === 'down' && !isAcross) {\n var _clueIndex = answer.position.row;\n var _clueText = clues.down[_clueIndex];\n return _objectSpread(_objectSpread({}, answer), {}, {\n clue: _clueText,\n clueIndex: _clueIndex\n });\n }\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n return null;\n };\n\n var handleInputChange = function handleInputChange(event, row, col) {\n var updatedGrid = grid.map(function (r, rowIndex) {\n return r.map(function (cell, colIndex) {\n return rowIndex === row && colIndex === col ? event.target.value.toUpperCase().slice(0, 1) : cell;\n });\n });\n setGrid(updatedGrid);\n checkCompletion(updatedGrid);\n };\n\n var checkCompletion = function checkCompletion(currentGrid) {\n var _iterator9 = _createForOfIteratorHelper(answers),\n _step9;\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var answer = _step9.value;\n var wordFormed = '';\n var _answer$position2 = answer.position,\n row = _answer$position2.row,\n col = _answer$position2.col;\n if (answer.direction.toLowerCase() === 'across') {\n for (var i = 0; i < answer.word.length; i++) {\n wordFormed += currentGrid[row][col + i] || '';\n }\n } else {\n for (var _i4 = 0; _i4 < answer.word.length; _i4++) {\n wordFormed += currentGrid[row + _i4][col] || '';\n }\n }\n if (wordFormed !== answer.word.toUpperCase()) {\n setIsSolved(false);\n return;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n setIsSolved(true);\n };\n\n var isClueSolved = function isClueSolved(direction, clueIndex) {\n var answer = answers.find(function (a) {\n return a.direction.toLowerCase() === direction && (direction === 'across' ? a.position.col === clueIndex : a.position.row === clueIndex);\n });\n if (!answer) return false;\n var wordFormed = '';\n var _answer$position3 = answer.position,\n row = _answer$position3.row,\n col = _answer$position3.col;\n if (direction === 'across') {\n for (var i = 0; i < answer.word.length; i++) {\n wordFormed += grid[row][col + i] || '';\n }\n } else {\n for (var _i5 = 0; _i5 < answer.word.length; _i5++) {\n wordFormed += grid[row + _i5][col] || '';\n }\n }\n return wordFormed === answer.word.toUpperCase();\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"table\", {\n className: \"crossword-grid\"\n }, _react[\"default\"].createElement(\"tbody\", null, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"tr\", {\n key: rowIndex\n }, row.map(function (cell, colIndex) {\n return _react[\"default\"].createElement(\"td\", {\n key: colIndex,\n className: \"cell\"\n }, cell === null ? _react[\"default\"].createElement(\"div\", {\n className: \"black-square\"\n }) : _react[\"default\"].createElement(\"input\", {\n type: \"text\",\n maxLength: \"1\",\n value: cell || '',\n onChange: function onChange(e) {\n return handleInputChange(e, rowIndex, colIndex);\n },\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n },\n disabled: isSolved\n }));\n }));\n })));\n };\n\n var renderClues = function renderClues() {\n var acrossClues = clues.across.map(function (clue, index) {\n return {\n clue: clue,\n index: index\n };\n });\n var downClues = clues.down.map(function (clue, index) {\n return {\n clue: clue,\n index: index\n };\n });\n return _react[\"default\"].createElement(\"div\", {\n className: \"crossword-clues\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"across-clues\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Across\"), _react[\"default\"].createElement(\"ol\", null, acrossClues.map(function (_ref7) {\n var clue = _ref7.clue,\n index = _ref7.index;\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: isClueSolved('across', index) ? 'solved' : ''\n }, index + 1, \". \", clue);\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"down-clues\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Down\"), _react[\"default\"].createElement(\"ol\", null, downClues.map(function (_ref8) {\n var clue = _ref8.clue,\n index = _ref8.index;\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: isClueSolved('down', index) ? 'solved' : ''\n }, index + 1, \". \", clue);\n }))));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), renderClues(), currentClue && _react[\"default\"].createElement(\"div\", {\n className: \"current-clue\"\n }, _react[\"default\"].createElement(\"h4\", null, currentClue.direction.toUpperCase(), \" \", currentClue.clueIndex + 1), _react[\"default\"].createElement(\"p\", null, currentClue.clue)), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateBookwormAdventuresGame(props) {\n var _levels$currentLevel;\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var levels = contentData.levels,\n difficulty = contentData.difficulty;\n var _useState99 = (0, _react.useState)(0),\n _useState100 = _slicedToArray(_useState99, 2),\n currentLevel = _useState100[0],\n setCurrentLevel = _useState100[1];\n var _useState101 = (0, _react.useState)(''),\n _useState102 = _slicedToArray(_useState101, 2),\n currentWord = _useState102[0],\n setCurrentWord = _useState102[1];\n var _useState103 = (0, _react.useState)([]),\n _useState104 = _slicedToArray(_useState103, 2),\n selectedLetters = _useState104[0],\n setSelectedLetters = _useState104[1];\n var _useState105 = (0, _react.useState)(100),\n _useState106 = _slicedToArray(_useState105, 2),\n playerHealth = _useState106[0],\n setPlayerHealth = _useState106[1];\n var _useState107 = (0, _react.useState)(((_levels$currentLevel = levels[currentLevel]) === null || _levels$currentLevel === void 0 || (_levels$currentLevel = _levels$currentLevel.monsters[0]) === null || _levels$currentLevel === void 0 ? void 0 : _levels$currentLevel.health) || 100),\n _useState108 = _slicedToArray(_useState107, 2),\n monsterHealth = _useState108[0],\n setMonsterHealth = _useState108[1];\n var _useState109 = (0, _react.useState)(0),\n _useState110 = _slicedToArray(_useState109, 2),\n currentMonsterIndex = _useState110[0],\n setCurrentMonsterIndex = _useState110[1];\n var _useState111 = (0, _react.useState)(false),\n _useState112 = _slicedToArray(_useState111, 2),\n gameOver = _useState112[0],\n setGameOver = _useState112[1];\n\n var playSound = function playSound(type) {\n var audio = new Audio(type === \"attack\" ? \"/assets/sounds/attack.mp3\" : \"/assets/sounds/damage.mp3\");\n audio.volume = 0.5;\n audio.play();\n };\n\n var handleLetterClick = function handleLetterClick(letter) {\n if (currentWord.length < 10 && !gameOver) {\n setCurrentWord(function (prev) {\n return prev + letter;\n });\n setSelectedLetters(function (prev) {\n return [].concat(_toConsumableArray(prev), [letter]);\n });\n }\n };\n\n var handleBackspace = function handleBackspace() {\n if (currentWord.length > 0 && !gameOver) {\n setCurrentWord(function (prev) {\n return prev.slice(0, -1);\n });\n setSelectedLetters(function (prev) {\n return prev.slice(0, -1);\n });\n }\n };\n\n var attackMonster = function attackMonster() {\n if (currentWord.length > 0 && !gameOver) {\n var word = currentWord.toLowerCase();\n if (validateWord(word)) {\n var damage = word.length * 10;\n setMonsterHealth(function (prev) {\n return Math.max(0, prev - damage);\n });\n\n playSound(\"attack\");\n triggerParticles(\".monster\");\n setCurrentWord('');\n setSelectedLetters([]);\n }\n }\n };\n var triggerParticles = function triggerParticles(targetClass) {\n var particleContainer = document.createElement(\"div\");\n particleContainer.className = \"particle-container\";\n var targetElement = document.querySelector(targetClass);\n if (!targetElement) return;\n var rect = targetElement.getBoundingClientRect();\n particleContainer.style.left = \"\".concat(rect.left + rect.width / 2, \"px\");\n particleContainer.style.top = \"\".concat(rect.top + rect.height / 2, \"px\");\n for (var i = 0; i < 15; i++) {\n var particle = document.createElement(\"div\");\n particle.className = \"particle\";\n particle.style.left = \"\".concat(Math.random() * 100 - 50, \"px\");\n particle.style.top = \"\".concat(Math.random() * 100 - 50, \"px\");\n particle.style.animationDelay = \"\".concat(Math.random() * 0.5, \"s\");\n particleContainer.appendChild(particle);\n }\n document.body.appendChild(particleContainer);\n setTimeout(function () {\n particleContainer.remove();\n }, 1000);\n };\n\n (0, _react.useEffect)(function () {\n if (monsterHealth <= 0 && !gameOver) {\n var nextMonsterIndex = currentMonsterIndex + 1;\n if (nextMonsterIndex < levels[currentLevel].monsters.length) {\n setCurrentMonsterIndex(nextMonsterIndex);\n setMonsterHealth(levels[currentLevel].monsters[nextMonsterIndex].health);\n } else if (currentLevel < levels.length - 1) {\n setCurrentLevel(currentLevel + 1);\n setCurrentMonsterIndex(0);\n setMonsterHealth(levels[currentLevel + 1].monsters[0].health);\n } else {\n setGameOver(true);\n }\n }\n if (monsterHealth > 0 && !gameOver) {\n var attackDelay = Math.random() * 2000 + 1000;\n var timerId = setTimeout(function () {\n var damage = Math.floor(Math.random() * 20) + 10;\n setPlayerHealth(function (prev) {\n return Math.max(0, prev - damage);\n });\n playSound(\"damage\");\n triggerParticles(\".player\");\n if (playerHealth - damage <= 0) {\n setGameOver(true);\n }\n }, attackDelay);\n return function () {\n return clearTimeout(timerId);\n };\n }\n }, [monsterHealth, currentMonsterIndex, currentLevel, playerHealth, gameOver]);\n\n var renderGameInterface = function renderGameInterface() {\n var level = levels[currentLevel];\n var monster = level.monsters[currentMonsterIndex];\n return _react[\"default\"].createElement(\"div\", {\n className: \"bookworm-game\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"monster\"\n }, _react[\"default\"].createElement(\"h3\", null, monster.name), _react[\"default\"].createElement(\"div\", {\n className: \"health-bar\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"health\",\n style: {\n width: \"\".concat(monsterHealth, \"%\")\n }\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"player\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Player\"), _react[\"default\"].createElement(\"div\", {\n className: \"health-bar\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"health\",\n style: {\n width: \"\".concat(playerHealth, \"%\")\n }\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"letters\"\n }, level.wordList.filter(function (letter) {\n return !selectedLetters.includes(letter);\n }).map(function (letter, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleLetterClick(letter);\n },\n disabled: gameOver\n }, letter);\n })), _react[\"default\"].createElement(\"div\", {\n className: \"word-input\"\n }, currentWord), _react[\"default\"].createElement(\"button\", {\n onClick: handleBackspace,\n disabled: currentWord.length === 0 || gameOver\n }, \"Backspace\"), _react[\"default\"].createElement(\"button\", {\n onClick: attackMonster,\n disabled: currentWord.length === 0 || gameOver\n }, \"Attack\"), gameOver && _react[\"default\"].createElement(\"div\", {\n className: \"game-over-message\"\n }, playerHealth <= 0 ? 'Game Over! You were defeated!' : 'Congratulations! You won!'));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGameInterface(), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateBabbleRoyaleGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var wordList = contentData.wordList,\n rules = contentData.rules,\n difficulty = contentData.difficulty;\n var _useState113 = (0, _react.useState)([]),\n _useState114 = _slicedToArray(_useState113, 2),\n grid = _useState114[0],\n setGrid = _useState114[1];\n var _useState115 = (0, _react.useState)(0),\n _useState116 = _slicedToArray(_useState115, 2),\n currentPlayer = _useState116[0],\n setCurrentPlayer = _useState116[1]; \n var _useState117 = (0, _react.useState)(false),\n _useState118 = _slicedToArray(_useState117, 2),\n gameOver = _useState118[0],\n setGameOver = _useState118[1];\n var _useState119 = (0, _react.useState)([]),\n _useState120 = _slicedToArray(_useState119, 2),\n playerWords = _useState120[0],\n setPlayerWords = _useState120[1]; \n var _useState121 = (0, _react.useState)([]),\n _useState122 = _slicedToArray(_useState121, 2),\n aiWords = _useState122[0],\n setAiWords = _useState122[1]; \n var _useState123 = (0, _react.useState)([]),\n _useState124 = _slicedToArray(_useState123, 2),\n selectedLetters = _useState124[0],\n setSelectedLetters = _useState124[1]; \n\n (0, _react.useEffect)(function () {\n initializeGame();\n }, []);\n var initializeGame = function initializeGame() {\n var newGrid = generateGrid(rules.boardSize);\n setGrid(newGrid);\n setPlayerWords([]);\n setAiWords([]);\n setCurrentPlayer(0);\n setGameOver(false);\n };\n\n var generateGrid = function generateGrid(boardSize) {\n var size = boardSize === 'Small' ? 8 : boardSize === 'Large' ? 12 : 10;\n var newGrid = createGrid(size, size);\n for (var i = 0; i < size; i++) {\n for (var j = 0; j < size; j++) {\n newGrid[i][j] = getRandomLetter();\n }\n }\n return newGrid;\n };\n\n var handleCellClick = function handleCellClick(row, col) {\n if (gameOver || currentPlayer === 1) return;\n var cell = {\n row: row,\n col: col\n };\n var lastSelectedCell = selectedLetters[selectedLetters.length - 1];\n\n var isAdjacent = selectedLetters.length === 0 || Math.abs(lastSelectedCell.row - row) <= 1 && Math.abs(lastSelectedCell.col - col) <= 1;\n if (isAdjacent && !selectedLetters.some(function (c) {\n return c.row === row && c.col === col;\n })) {\n setSelectedLetters([].concat(_toConsumableArray(selectedLetters), [cell]));\n } else if (lastSelectedCell && lastSelectedCell.row === row && lastSelectedCell.col === col) {\n setSelectedLetters(selectedLetters.slice(0, -1));\n }\n };\n\n var checkWord = function checkWord() {\n var word = selectedLetters.map(function (cell) {\n return grid[cell.row][cell.col];\n }).join('');\n if (validateWord(word) && !playerWords.includes(word) && word.length >= 3) {\n setPlayerWords([].concat(_toConsumableArray(playerWords), [word]));\n triggerParticles(document.querySelector(\".babble-royale-grid\")); \n playSound(\"success\");\n setSelectedLetters([]);\n if (playerWords.length + 1 >= 10) {\n setGameOver(true);\n return;\n }\n setCurrentPlayer(1);\n setTimeout(aiPlayerTurn, 1000);\n } else {\n playSound(\"error\");\n }\n };\n\n var aiPlayerTurn = function aiPlayerTurn() {\n var aiWord = '';\n do {\n aiWord = findRandomWord(grid, wordList);\n } while (aiWords.includes(aiWord) || !aiWord);\n setAiWords([].concat(_toConsumableArray(aiWords), [aiWord]));\n playSound(\"ai\");\n if (aiWords.length + 1 >= 10) {\n setGameOver(true);\n return;\n }\n setCurrentPlayer(0);\n };\n\n var findRandomWord = function findRandomWord(grid, wordList) {\n var allLetters = grid.flat().join('');\n return wordList.find(function (word) {\n return allLetters.includes(word);\n }) || '';\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n success: \"/assets/sounds/success.mp3\",\n error: \"/assets/sounds/error.mp3\",\n ai: \"/assets/sounds/ai_move.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"babble-royale-grid\"\n }, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"row\"\n }, row.map(function (cell, colIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"cell \".concat(selectedLetters.some(function (c) {\n return c.row === rowIndex && c.col === colIndex;\n }) ? 'selected' : ''),\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, cell);\n }));\n }));\n };\n\n var renderFoundWords = function renderFoundWords() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"found-words\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"player-words\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Player Words:\"), _react[\"default\"].createElement(\"ul\", null, playerWords.map(function (word, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, word);\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"ai-words\"\n }, _react[\"default\"].createElement(\"h3\", null, \"AI Words:\"), _react[\"default\"].createElement(\"ul\", null, aiWords.map(function (word, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, word);\n }))));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), renderFoundWords(), _react[\"default\"].createElement(\"button\", {\n onClick: checkWord,\n disabled: selectedLetters.length === 0 || gameOver\n }, \"Check Word\"), gameOver && _react[\"default\"].createElement(\"p\", null, \"Game Over!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateKittyLetterGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var wordList = contentData.wordList,\n catTypes = contentData.catTypes,\n difficulty = contentData.difficulty;\n var _useState125 = (0, _react.useState)([]),\n _useState126 = _slicedToArray(_useState125, 2),\n letters = _useState126[0],\n setLetters = _useState126[1];\n var _useState127 = (0, _react.useState)([]),\n _useState128 = _slicedToArray(_useState127, 2),\n playerCats = _useState128[0],\n setPlayerCats = _useState128[1];\n var _useState129 = (0, _react.useState)([]),\n _useState130 = _slicedToArray(_useState129, 2),\n opponentCats = _useState130[0],\n setOpponentCats = _useState130[1];\n var _useState131 = (0, _react.useState)(''),\n _useState132 = _slicedToArray(_useState131, 2),\n currentWord = _useState132[0],\n setCurrentWord = _useState132[1];\n var _useState133 = (0, _react.useState)(false),\n _useState134 = _slicedToArray(_useState133, 2),\n gameOver = _useState134[0],\n setGameOver = _useState134[1];\n var _useState135 = (0, _react.useState)(null),\n _useState136 = _slicedToArray(_useState135, 2),\n gameMode = _useState136[0],\n setGameMode = _useState136[1]; \n\n (0, _react.useEffect)(function () {\n if (gameMode) initializeGame();\n }, [gameMode]);\n var initializeGame = function initializeGame() {\n setLetters(generateLetters());\n setPlayerCats([]);\n setOpponentCats([]);\n setCurrentWord('');\n setGameOver(false);\n };\n\n var generateLetters = function generateLetters() {\n var numLetters = 10; \n\n var allLetters = wordList.join('').split('');\n\n var letterFrequency = {};\n allLetters.forEach(function (letter) {\n letterFrequency[letter] = (letterFrequency[letter] || 0) + 1;\n });\n\n var weightedLetters = [];\n for (var letter in letterFrequency) {\n for (var i = 0; i < letterFrequency[letter]; i++) {\n weightedLetters.push(letter);\n }\n }\n\n return Array.from({\n length: numLetters\n }, function () {\n return weightedLetters[Math.floor(Math.random() * weightedLetters.length)];\n });\n };\n\n var handleLetterClick = function handleLetterClick(letter) {\n if (currentWord.length < 10 && !gameOver) {\n setCurrentWord(function (prev) {\n return prev + letter;\n });\n setLetters(function (prev) {\n return prev.filter(function (l) {\n return l !== letter;\n });\n });\n playSound(\"select\");\n }\n };\n\n var handleBackspace = function handleBackspace() {\n if (currentWord.length > 0 && !gameOver) {\n var lastLetter = currentWord.slice(-1);\n setCurrentWord(function (prev) {\n return prev.slice(0, -1);\n });\n setLetters(function (prev) {\n return [].concat(_toConsumableArray(prev), [lastLetter]);\n });\n }\n };\n\n var summonCat = function summonCat() {\n if (currentWord.length > 0 && !gameOver) {\n var word = currentWord.toLowerCase();\n if (validateWord(word)) {\n var catType = catTypes[Math.floor(Math.random() * catTypes.length)];\n var newCat = {\n name: \"\".concat(catType.name, \" Cat\"),\n strength: catType.strength\n };\n setPlayerCats(function (prev) {\n return [].concat(_toConsumableArray(prev), [newCat]);\n });\n setCurrentWord('');\n playSound(\"summon\");\n if (gameMode === \"ai\") {\n setTimeout(aiSummonCat, 1000);\n }\n } else {\n playSound(\"error\");\n }\n }\n };\n\n var aiSummonCat = function aiSummonCat() {\n if (!gameOver) {\n var aiWord = findRandomWord(wordList);\n if (aiWord) {\n var catType = catTypes[Math.floor(Math.random() * catTypes.length)];\n var newCat = {\n name: \"\".concat(catType.name, \" Cat\"),\n strength: catType.strength\n };\n setOpponentCats(function (prev) {\n return [].concat(_toConsumableArray(prev), [newCat]);\n });\n playSound(\"aiSummon\");\n }\n }\n };\n\n var findRandomWord = function findRandomWord(wordList) {\n return wordList[Math.floor(Math.random() * wordList.length)] || '';\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n select: \"/assets/sounds/select.mp3\",\n summon: \"/assets/sounds/summon.mp3\",\n aiSummon: \"/assets/sounds/aiSummon.mp3\",\n error: \"/assets/sounds/error.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n if (!gameMode) {\n return _react[\"default\"].createElement(\"div\", {\n className: \"kitty-letter-mode-selection\"\n }, _react[\"default\"].createElement(\"h2\", null, \"Select Game Mode\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setGameMode(\"solo\");\n }\n }, \"Solo Mode\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setGameMode(\"ai\");\n }\n }, \"AI Opponent\"));\n }\n\n var renderGameInterface = function renderGameInterface() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"kitty-letter-game\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"player-area\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Player\"), _react[\"default\"].createElement(\"div\", {\n className: \"letters\"\n }, letters.map(function (letter, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleLetterClick(letter);\n },\n disabled: gameOver\n }, letter);\n })), _react[\"default\"].createElement(\"div\", {\n className: \"word-input\"\n }, currentWord), _react[\"default\"].createElement(\"button\", {\n onClick: handleBackspace,\n disabled: currentWord.length === 0 || gameOver\n }, \"Backspace\"), _react[\"default\"].createElement(\"button\", {\n onClick: summonCat,\n disabled: currentWord.length === 0 || gameOver\n }, \"Summon Cat\"), _react[\"default\"].createElement(\"div\", {\n className: \"cats\"\n }, playerCats.map(function (cat, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"cat\"\n }, cat.name, \" (\", cat.strength, \")\");\n }))), gameMode === \"ai\" && _react[\"default\"].createElement(\"div\", {\n className: \"opponent-area\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Opponent\"), _react[\"default\"].createElement(\"div\", {\n className: \"cats\"\n }, opponentCats.map(function (cat, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"cat\"\n }, cat.name);\n }))));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGameInterface(), gameOver && _react[\"default\"].createElement(\"div\", {\n className: \"game-over-message\"\n }, \"Game Over!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateLetterpressGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var gridSize = contentData.gridSize,\n letters = contentData.letters,\n rules = contentData.rules,\n difficulty = contentData.difficulty;\n var _useState137 = (0, _react.useState)([]),\n _useState138 = _slicedToArray(_useState137, 2),\n grid = _useState138[0],\n setGrid = _useState138[1];\n var _useState139 = (0, _react.useState)(0),\n _useState140 = _slicedToArray(_useState139, 2),\n currentPlayer = _useState140[0],\n setCurrentPlayer = _useState140[1]; \n var _useState141 = (0, _react.useState)([]),\n _useState142 = _slicedToArray(_useState141, 2),\n selectedLetters = _useState142[0],\n setSelectedLetters = _useState142[1];\n var _useState143 = (0, _react.useState)([]),\n _useState144 = _slicedToArray(_useState143, 2),\n playerTiles = _useState144[0],\n setPlayerTiles = _useState144[1];\n var _useState145 = (0, _react.useState)([]),\n _useState146 = _slicedToArray(_useState145, 2),\n aiTiles = _useState146[0],\n setAiTiles = _useState146[1];\n var _useState147 = (0, _react.useState)(false),\n _useState148 = _slicedToArray(_useState147, 2),\n gameOver = _useState148[0],\n setGameOver = _useState148[1];\n var _useState149 = (0, _react.useState)(null),\n _useState150 = _slicedToArray(_useState149, 2),\n gameMode = _useState150[0],\n setGameMode = _useState150[1]; \n\n (0, _react.useEffect)(function () {\n if (gameMode) initializeGame();\n }, [gameMode]);\n var initializeGame = function initializeGame() {\n setGrid(generateGrid(gridSize));\n setCurrentPlayer(0);\n setSelectedLetters([]);\n setPlayerTiles([]);\n setAiTiles([]);\n setGameOver(false);\n };\n\n var generateGrid = function generateGrid(gridSize) {\n var _gridSize$split$map5 = gridSize.split('x').map(Number),\n _gridSize$split$map6 = _slicedToArray(_gridSize$split$map5, 2),\n rows = _gridSize$split$map6[0],\n cols = _gridSize$split$map6[1];\n var newGrid = createGrid(rows, cols);\n var letterIndex = 0;\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < cols; j++) {\n newGrid[i][j] = {\n letter: letters && letters.length ? letters[letterIndex++] : getRandomLetter(),\n player: null\n };\n }\n }\n return newGrid;\n };\n\n var handleCellClick = function handleCellClick(row, col) {\n if (gameOver || gameMode === \"ai\" && currentPlayer === 1) return;\n var cell = {\n row: row,\n col: col\n };\n var lastSelectedCell = selectedLetters[selectedLetters.length - 1];\n\n var isAdjacent = selectedLetters.length === 0 || Math.abs(lastSelectedCell.row - row) <= 1 && Math.abs(lastSelectedCell.col - col) <= 1;\n if (isAdjacent && !selectedLetters.some(function (c) {\n return c.row === row && c.col === col;\n })) {\n setSelectedLetters([].concat(_toConsumableArray(selectedLetters), [cell]));\n } else if (lastSelectedCell && lastSelectedCell.row === row && lastSelectedCell.col === col) {\n setSelectedLetters(selectedLetters.slice(0, -1));\n }\n };\n\n var checkWord = function checkWord() {\n var word = selectedLetters.map(function (cell) {\n return grid[cell.row][cell.col].letter;\n }).join('');\n if (validateWord(word, rules.wordList) && word.length >= 3) {\n setGrid(function (prevGrid) {\n var newGrid = _toConsumableArray(prevGrid);\n selectedLetters.forEach(function (cell) {\n newGrid[cell.row][cell.col].player = currentPlayer;\n });\n return newGrid;\n });\n if (currentPlayer === 0) {\n setPlayerTiles(function (prev) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(selectedLetters));\n });\n } else {\n setAiTiles(function (prev) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(selectedLetters));\n });\n }\n setSelectedLetters([]);\n playSound(\"capture\");\n\n var totalTiles = grid.length * grid[0].length;\n if (playerTiles.length + aiTiles.length >= totalTiles) {\n setGameOver(true);\n return;\n }\n if (gameMode === \"ai\") {\n setCurrentPlayer(1);\n setTimeout(aiPlayerTurn, 1000);\n }\n } else {\n playSound(\"error\");\n }\n };\n\n var aiPlayerTurn = function aiPlayerTurn() {\n if (gameOver) return;\n var aiWord = findRandomWord(grid, rules.wordList);\n if (aiWord) {\n setGrid(function (prevGrid) {\n var newGrid = _toConsumableArray(prevGrid);\n aiWord.forEach(function (cell) {\n newGrid[cell.row][cell.col].player = 1;\n });\n return newGrid;\n });\n setAiTiles(function (prev) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(aiWord));\n });\n playSound(\"aiMove\");\n }\n setCurrentPlayer(0);\n };\n\n var findRandomWord = function findRandomWord(grid, wordList) {\n return wordList.find(function (word) {\n return word.split('').every(function (letter) {\n return grid.flat().some(function (cell) {\n return cell.letter === letter;\n });\n });\n }) || [];\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n capture: \"/assets/sounds/capture.mp3\",\n aiMove: \"/assets/sounds/aiMove.mp3\",\n error: \"/assets/sounds/error.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n if (!gameMode) {\n return _react[\"default\"].createElement(\"div\", {\n className: \"letterpress-mode-selection\"\n }, _react[\"default\"].createElement(\"h2\", null, \"Select Game Mode\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setGameMode(\"solo\");\n }\n }, \"Solo Mode\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setGameMode(\"ai\");\n }\n }, \"AI Opponent\"));\n }\n\n var renderGrid = function renderGrid() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"letterpress-grid\"\n }, grid.map(function (row, rowIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: rowIndex,\n className: \"row\"\n }, row.map(function (cell, colIndex) {\n return _react[\"default\"].createElement(\"div\", {\n key: colIndex,\n className: \"cell \\n \".concat(selectedLetters.some(function (c) {\n return c.row === rowIndex && c.col === colIndex;\n }) ? 'selected' : '', \" \\n \").concat(cell.player === 0 ? 'player-tile' : cell.player === 1 ? 'ai-tile' : ''),\n onClick: function onClick() {\n return handleCellClick(rowIndex, colIndex);\n }\n }, cell.letter);\n }));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderGrid(), _react[\"default\"].createElement(\"button\", {\n onClick: checkWord,\n disabled: selectedLetters.length === 0 || gameOver\n }, \"Check Word\"), gameOver && _react[\"default\"].createElement(\"p\", null, \"Game Over!\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateSentenceUnscrambleGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var sentence = contentData.sentence,\n initialWords = contentData.words,\n difficulty = contentData.difficulty,\n theme = contentData.theme;\n var _useState151 = (0, _react.useState)(shuffle(_toConsumableArray(initialWords))),\n _useState152 = _slicedToArray(_useState151, 2),\n words = _useState152[0],\n setWords = _useState152[1];\n var _useState153 = (0, _react.useState)([]),\n _useState154 = _slicedToArray(_useState153, 2),\n userInput = _useState154[0],\n setUserInput = _useState154[1];\n var _useState155 = (0, _react.useState)(null),\n _useState156 = _slicedToArray(_useState155, 2),\n isCorrect = _useState156[0],\n setIsCorrect = _useState156[1];\n (0, _react.useEffect)(function () {\n initializeGame();\n }, []);\n var initializeGame = function initializeGame() {\n setWords(shuffle(_toConsumableArray(initialWords))); \n setUserInput([]);\n setIsCorrect(null);\n };\n\n var handleWordClick = function handleWordClick(word) {\n setUserInput(function (prev) {\n return [].concat(_toConsumableArray(prev), [word]);\n });\n setWords(function (prev) {\n return prev.filter(function (w) {\n return w !== word;\n });\n });\n setIsCorrect(null);\n playSound(\"select\");\n };\n\n var handleRemoveWord = function handleRemoveWord(index) {\n var removedWord = userInput.splice(index, 1)[0];\n setWords(function (prev) {\n return [].concat(_toConsumableArray(prev), [removedWord]);\n });\n setIsCorrect(null);\n playSound(\"remove\");\n };\n\n var checkSentence = function checkSentence() {\n var userSentence = userInput.join(' ').trim().toLowerCase();\n var correctSentence = sentence.trim().toLowerCase();\n if (userSentence === correctSentence) {\n setIsCorrect(true);\n playSound(\"correct\");\n } else {\n setIsCorrect(false);\n playSound(\"incorrect\");\n }\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n select: \"/assets/sounds/select.mp3\",\n remove: \"/assets/sounds/remove.mp3\",\n correct: \"/assets/sounds/correct.mp3\",\n incorrect: \"/assets/sounds/incorrect.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var renderWords = function renderWords() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"word-bank\"\n }, words.map(function (word, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleWordClick(word);\n },\n disabled: isCorrect !== null\n }, word);\n }));\n };\n\n var renderUserInput = function renderUserInput() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"user-input\"\n }, userInput.map(function (word, index) {\n return _react[\"default\"].createElement(\"span\", {\n key: index,\n className: \"word-tile\"\n }, word, _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleRemoveWord(index);\n },\n disabled: isCorrect !== null\n }, \"x\"));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderWords(), renderUserInput(), _react[\"default\"].createElement(\"button\", {\n onClick: checkSentence,\n disabled: userInput.length === 0 || isCorrect !== null\n }, \"Check Sentence\"), isCorrect !== null && _react[\"default\"].createElement(\"p\", {\n className: \"feedback-message \".concat(isCorrect ? 'correct' : 'incorrect')\n }, isCorrect ? 'Correct! 🎉' : 'Incorrect. Try again.'), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateOddOneOutGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var items = contentData.items,\n oddOneOut = contentData.oddOneOut,\n reason = contentData.reason,\n difficulty = contentData.difficulty,\n theme = contentData.theme;\n var _useState157 = (0, _react.useState)(null),\n _useState158 = _slicedToArray(_useState157, 2),\n selectedItem = _useState158[0],\n setSelectedItem = _useState158[1];\n var _useState159 = (0, _react.useState)(null),\n _useState160 = _slicedToArray(_useState159, 2),\n isCorrect = _useState160[0],\n setIsCorrect = _useState160[1];\n var _useState161 = (0, _react.useState)(false),\n _useState162 = _slicedToArray(_useState161, 2),\n showReason = _useState162[0],\n setShowReason = _useState162[1];\n var handleItemClick = function handleItemClick(item) {\n setSelectedItem(item);\n setIsCorrect(item === oddOneOut);\n setShowReason(true);\n playSound(item === oddOneOut ? \"correct\" : \"incorrect\");\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n correct: \"/assets/sounds/correct.mp3\",\n incorrect: \"/assets/sounds/incorrect.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var renderItems = function renderItems() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"odd-one-out-items\"\n }, items.map(function (item, index) {\n return _react[\"default\"].createElement(\"button\", {\n key: index,\n onClick: function onClick() {\n return handleItemClick(item);\n },\n disabled: isCorrect !== null,\n className: selectedItem === item ? isCorrect ? \"correct-item\" : \"incorrect-item\" : \"\"\n }, typeof item === 'string' ? item : _react[\"default\"].createElement(\"img\", {\n src: item.src,\n alt: item.alt\n }));\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderItems(), showReason && _react[\"default\"].createElement(\"div\", {\n className: \"result-message\"\n }, _react[\"default\"].createElement(\"p\", {\n className: isCorrect ? \"correct-message\" : \"incorrect-message\"\n }, isCorrect ? 'Correct! 🎉' : 'Incorrect. Try again!'), !isCorrect && _react[\"default\"].createElement(\"p\", {\n className: \"correct-answer\"\n }, \"The odd one out is: \", typeof oddOneOut === 'string' ? oddOneOut : _react[\"default\"].createElement(\"img\", {\n src: oddOneOut.src,\n alt: oddOneOut.alt\n })), _react[\"default\"].createElement(\"p\", {\n className: \"reason-text\"\n }, \"Reason: \", reason)), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateInteractiveTimeline(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var events = contentData.events,\n timelineRange = contentData.timelineRange,\n theme = contentData.theme,\n difficulty = contentData.difficulty;\n var _useState163 = (0, _react.useState)(null),\n _useState164 = _slicedToArray(_useState163, 2),\n selectedEvent = _useState164[0],\n setSelectedEvent = _useState164[1];\n var _useState165 = (0, _react.useState)(1),\n _useState166 = _slicedToArray(_useState165, 2),\n zoomLevel = _useState166[0],\n setZoomLevel = _useState166[1]; \n\n var handleEventClick = function handleEventClick(event) {\n setSelectedEvent(event);\n playSound(\"click\");\n };\n\n var handleZoomChange = function handleZoomChange(direction) {\n setZoomLevel(function (prevZoom) {\n return Math.max(0.5, Math.min(2, prevZoom + (direction === \"in\" ? 0.2 : -0.2)));\n });\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n click: \"/assets/sounds/click.mp3\",\n zoom: \"/assets/sounds/zoom.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var renderTimeline = function renderTimeline() {\n var _timelineRange$split$ = timelineRange.split('-').map(Number),\n _timelineRange$split$2 = _slicedToArray(_timelineRange$split$, 2),\n startYear = _timelineRange$split$2[0],\n endYear = _timelineRange$split$2[1];\n return _react[\"default\"].createElement(\"div\", {\n className: \"timeline-container\",\n style: {\n transform: \"scale(\".concat(zoomLevel, \")\")\n }\n }, _react[\"default\"].createElement(\"div\", {\n className: \"timeline-line\"\n }, Array.from({\n length: endYear - startYear + 1\n }, function (_, i) {\n return _react[\"default\"].createElement(\"div\", {\n key: i,\n className: \"year-marker\",\n style: {\n left: \"\".concat(i / (endYear - startYear) * 100, \"%\")\n }\n }, startYear + i);\n })), _react[\"default\"].createElement(\"div\", {\n className: \"events\"\n }, events.map(function (event, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"timeline-event \".concat(selectedEvent === event ? 'selected' : ''),\n onClick: function onClick() {\n return handleEventClick(event);\n },\n style: {\n left: \"\".concat(calculateEventPosition(event.date, timelineRange), \"%\"),\n top: \"\".concat(index % 2 === 0 ? '30px' : '-30px') \n },\n \"data-description\": event.description \n }, _react[\"default\"].createElement(\"div\", {\n className: \"timeline-event-title\"\n }, event.title));\n })), selectedEvent && _react[\"default\"].createElement(\"div\", {\n className: \"event-details\"\n }, _react[\"default\"].createElement(\"h3\", null, selectedEvent.title), _react[\"default\"].createElement(\"p\", null, selectedEvent.description)));\n };\n\n var calculateEventPosition = function calculateEventPosition(date, range) {\n var _range$split$map = range.split('-').map(Number),\n _range$split$map2 = _slicedToArray(_range$split$map, 2),\n start = _range$split$map2[0],\n end = _range$split$map2[1];\n var dateValue = parseInt(date);\n var position = (dateValue - start) / (end - start) * 100;\n return Math.max(0, Math.min(100, position)); \n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"div\", {\n className: \"zoom-controls\"\n }, _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleZoomChange(\"in\");\n }\n }, \"Zoom In \\uD83D\\uDD0D\"), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleZoomChange(\"out\");\n }\n }, \"Zoom Out \\uD83D\\uDD0D\")), renderTimeline(), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateCodingChallenge(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var challengeType = contentData.challengeType,\n programmingLanguage = contentData.programmingLanguage,\n instructions = contentData.instructions,\n solution = contentData.solution,\n hints = contentData.hints;\n var _useState167 = (0, _react.useState)(''),\n _useState168 = _slicedToArray(_useState167, 2),\n userCode = _useState168[0],\n setUserCode = _useState168[1];\n var _useState169 = (0, _react.useState)(false),\n _useState170 = _slicedToArray(_useState169, 2),\n showHints = _useState170[0],\n setShowHints = _useState170[1];\n var _useState171 = (0, _react.useState)(''),\n _useState172 = _slicedToArray(_useState171, 2),\n feedback = _useState172[0],\n setFeedback = _useState172[1]; \n\n var handleCodeChange = function handleCodeChange(newCode) {\n setUserCode(newCode);\n };\n\n var handleRunCode = function handleRunCode() {\n var feedbackMessage = '';\n if (programmingLanguage === 'JavaScript') {\n try {\n var result = eval(userCode); \n feedbackMessage = \"Output: \".concat(result);\n } catch (error) {\n feedbackMessage = \"Error: \".concat(error.message);\n }\n } else {\n if (userCode.trim() === solution.trim()) {\n feedbackMessage = 'Correct!';\n } else {\n feedbackMessage = 'Incorrect. Try again.';\n }\n }\n setFeedback(feedbackMessage);\n };\n\n var renderChallenge = function renderChallenge() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"coding-challenge\"\n }, _react[\"default\"].createElement(\"h3\", null, challengeType, \" Challenge\"), _react[\"default\"].createElement(\"p\", null, \"Programming Language: \", programmingLanguage), _react[\"default\"].createElement(\"div\", {\n className: \"instructions\"\n }, instructions), _react[\"default\"].createElement(\"textarea\", {\n className: \"code-editor\",\n value: userCode,\n onChange: function onChange(e) {\n return handleCodeChange(e.target.value);\n }\n }), _react[\"default\"].createElement(\"button\", {\n onClick: handleRunCode\n }, \"Run Code\"), hints && hints.length > 0 && _react[\"default\"].createElement(\"div\", {\n className: \"hints-section\"\n }, _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setShowHints(!showHints);\n }\n }, showHints ? 'Hide Hints' : 'Show Hints'), showHints && _react[\"default\"].createElement(\"ul\", {\n className: \"hints\"\n }, hints.map(function (hint, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, hint);\n }))), feedback && _react[\"default\"].createElement(\"div\", {\n className: \"feedback\"\n }, feedback));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderChallenge());\n}\nfunction CreateDebateGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var topic = contentData.topic,\n sides = contentData.sides,\n resources = contentData.resources;\n var _useState173 = (0, _react.useState)(0),\n _useState174 = _slicedToArray(_useState173, 2),\n currentSide = _useState174[0],\n setCurrentSide = _useState174[1]; \n var _useState175 = (0, _react.useState)([]),\n _useState176 = _slicedToArray(_useState175, 2),\n argumentsFor = _useState176[0],\n setArgumentsFor = _useState176[1];\n var _useState177 = (0, _react.useState)([]),\n _useState178 = _slicedToArray(_useState177, 2),\n argumentsAgainst = _useState178[0],\n setArgumentsAgainst = _useState178[1];\n\n var handleArgumentChange = function handleArgumentChange(side, newArgument) {\n if (side === 0) {\n setArgumentsFor([].concat(_toConsumableArray(argumentsFor), [newArgument]));\n } else {\n setArgumentsAgainst([].concat(_toConsumableArray(argumentsAgainst), [newArgument]));\n }\n };\n\n var renderDebateTopic = function renderDebateTopic() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"debate-topic\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Debate Topic:\"), _react[\"default\"].createElement(\"p\", null, topic));\n };\n\n var renderDebateSides = function renderDebateSides() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"debate-sides\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Debate Sides:\"), _react[\"default\"].createElement(\"ul\", null, sides.map(function (side, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index,\n className: currentSide === index ? 'current' : ''\n }, side);\n })), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setCurrentSide(0);\n },\n disabled: currentSide === 0\n }, sides[0]), _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return setCurrentSide(1);\n },\n disabled: currentSide === 1\n }, sides[1]));\n };\n\n var renderResources = function renderResources() {\n if (resources && resources.length > 0) {\n return _react[\"default\"].createElement(\"div\", {\n className: \"debate-resources\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Resources:\"), _react[\"default\"].createElement(\"ul\", null, resources.map(function (resource, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, _react[\"default\"].createElement(\"a\", {\n href: resource,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, resource));\n })));\n } else {\n return null;\n }\n };\n\n var renderArgumentInput = function renderArgumentInput() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"argument-input\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Enter your argument for \", sides[currentSide], \":\"), _react[\"default\"].createElement(\"textarea\", {\n onChange: function onChange(e) {\n return handleArgumentChange(currentSide, e.target.value);\n }\n }));\n };\n\n var renderArguments = function renderArguments() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"arguments\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"arguments-for\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Arguments for \", sides[0], \":\"), _react[\"default\"].createElement(\"ul\", null, argumentsFor.map(function (argument, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, argument);\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"arguments-against\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Arguments against \", sides[1], \":\"), _react[\"default\"].createElement(\"ul\", null, argumentsAgainst.map(function (argument, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, argument);\n }))));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderDebateTopic(), renderDebateSides(), renderResources(), renderArgumentInput(), renderArguments());\n}\n\nfunction CreateClassificationGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var items = contentData.items,\n categories = contentData.categories,\n correctAnswers = contentData.correctAnswers,\n difficulty = contentData.difficulty;\n var _useState179 = (0, _react.useState)({}),\n _useState180 = _slicedToArray(_useState179, 2),\n selectedItems = _useState180[0],\n setSelectedItems = _useState180[1];\n var _useState181 = (0, _react.useState)(false),\n _useState182 = _slicedToArray(_useState181, 2),\n showResults = _useState182[0],\n setShowResults = _useState182[1];\n var _useState183 = (0, _react.useState)([]),\n _useState184 = _slicedToArray(_useState183, 2),\n incorrectItems = _useState184[0],\n setIncorrectItems = _useState184[1];\n\n var handleItemClassification = function handleItemClassification(item, category) {\n setSelectedItems(function (prevSelected) {\n return _objectSpread(_objectSpread({}, prevSelected), {}, _defineProperty({}, item, category));\n });\n playSound(\"select\");\n };\n\n var checkAnswers = function checkAnswers() {\n setShowResults(true);\n playSound(\"check\");\n\n var incorrect = Object.entries(selectedItems).filter(function (_ref9) {\n var _ref10 = _slicedToArray(_ref9, 2),\n item = _ref10[0],\n category = _ref10[1];\n return category !== correctAnswers[item];\n }).map(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 1),\n item = _ref12[0];\n return item;\n });\n setIncorrectItems(incorrect);\n };\n\n var retryIncorrect = function retryIncorrect() {\n setShowResults(false);\n setSelectedItems(function (prevSelected) {\n return Object.keys(prevSelected).filter(function (item) {\n return incorrectItems.includes(item);\n }).reduce(function (acc, item) {\n acc[item] = prevSelected[item]; \n return acc;\n }, {});\n });\n setIncorrectItems([]); \n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n select: \"/assets/sounds/select.mp3\",\n check: \"/assets/sounds/check.mp3\",\n correct: \"/assets/sounds/correct.mp3\",\n incorrect: \"/assets/sounds/incorrect.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var handleDragStart = function handleDragStart(event, item) {\n event.dataTransfer.setData(\"text/plain\", item);\n };\n\n var handleDrop = function handleDrop(event, category) {\n event.preventDefault();\n var item = event.dataTransfer.getData(\"text/plain\");\n handleItemClassification(item, category);\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"div\", {\n className: \"classification-game\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"classification-items\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Items to Classify\"), items.filter(function (item) {\n return !selectedItems[item] || incorrectItems.includes(item);\n }) \n .map(function (item, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"classification-item\",\n draggable: true,\n onDragStart: function onDragStart(event) {\n return handleDragStart(event, item);\n }\n }, typeof item === 'string' ? item : _react[\"default\"].createElement(\"img\", {\n src: item.src,\n alt: item.alt\n }));\n })), _react[\"default\"].createElement(\"div\", {\n className: \"classification-categories\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Categories\"), categories.map(function (category, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"classification-category-box\",\n onDrop: function onDrop(event) {\n return handleDrop(event, category);\n },\n onDragOver: function onDragOver(event) {\n return event.preventDefault();\n }\n }, _react[\"default\"].createElement(\"h4\", null, category), _react[\"default\"].createElement(\"div\", {\n className: \"classification-category-items\"\n }, Object.entries(selectedItems).filter(function (_ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n item = _ref14[0],\n assignedCategory = _ref14[1];\n return assignedCategory === category;\n }).map(function (_ref15, i) {\n var _ref16 = _slicedToArray(_ref15, 1),\n item = _ref16[0];\n return _react[\"default\"].createElement(\"div\", {\n key: i,\n className: \"classification-classified-item\"\n }, typeof item === 'string' ? item : _react[\"default\"].createElement(\"img\", {\n src: item.src,\n alt: item.alt\n }));\n })));\n }))), _react[\"default\"].createElement(\"button\", {\n onClick: checkAnswers,\n disabled: showResults || Object.keys(selectedItems).length !== items.length\n }, \"Check Answers\"), showResults && _react[\"default\"].createElement(\"div\", {\n className: \"classification-results\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Results\"), items.map(function (item, index) {\n var userCategory = selectedItems[item];\n var correctCategory = correctAnswers[item];\n var isCorrect = userCategory === correctCategory;\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"classification-result \".concat(isCorrect ? 'classification-correct' : 'classification-incorrect')\n }, typeof item === 'string' ? item : _react[\"default\"].createElement(\"img\", {\n src: item.src,\n alt: item.alt\n }), \" \\u2192 \", userCategory, _react[\"default\"].createElement(\"span\", null, isCorrect ? \"✅ Correct!\" : \"\\u274C Incorrect! (Correct: \".concat(correctCategory, \")\")));\n })), showResults && incorrectItems.length > 0 && _react[\"default\"].createElement(\"button\", {\n onClick: retryIncorrect,\n className: \"classification-retry-button\"\n }, \"Retry Incorrect Answers\"), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateSimulationGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var simulationType = contentData.simulationType,\n scenario = contentData.scenario,\n parameters = contentData.parameters,\n objectives = contentData.objectives,\n difficulty = contentData.difficulty;\n var _useState185 = (0, _react.useState)({}),\n _useState186 = _slicedToArray(_useState185, 2),\n simulationState = _useState186[0],\n setSimulationState = _useState186[1];\n var _useState187 = (0, _react.useState)(''),\n _useState188 = _slicedToArray(_useState187, 2),\n simulationOutput = _useState188[0],\n setSimulationOutput = _useState188[1];\n var _useState189 = (0, _react.useState)([]),\n _useState190 = _slicedToArray(_useState189, 2),\n history = _useState190[0],\n setHistory = _useState190[1]; \n\n (0, _react.useEffect)(function () {\n var initialState = {};\n parameters.forEach(function (param) {\n initialState[param.name] = param.defaultValue || 0; \n });\n setSimulationState(initialState);\n }, [parameters]);\n\n var handleParameterChange = function handleParameterChange(paramName, newValue) {\n setSimulationState(function (prevState) {\n return _objectSpread(_objectSpread({}, prevState), {}, _defineProperty({}, paramName, newValue));\n });\n };\n\n var runSimulationStep = function runSimulationStep() {\n var output = '';\n var newState = _objectSpread({}, simulationState);\n if (simulationType.toLowerCase() === 'ecosystem') {\n var population = parseFloat(simulationState.population) || 0;\n var growthRate = parseFloat(simulationState.growthRate) || 0;\n newState.population = Math.round(population * (1 + growthRate / 100));\n output = \"Population after 1 year: \".concat(newState.population);\n } else if (simulationType.toLowerCase() === 'physics') {\n var initialVelocity = parseFloat(simulationState.initialVelocity) || 0;\n var acceleration = parseFloat(simulationState.acceleration) || 0;\n var time = parseFloat(simulationState.time) || 0;\n newState.finalVelocity = initialVelocity + acceleration * time;\n output = \"Final velocity: \".concat(newState.finalVelocity, \" m/s\");\n } else if (simulationType.toLowerCase() === 'historical') {\n output = \"Historical outcome based on your inputs: \".concat(JSON.stringify(newState));\n }\n setSimulationState(newState);\n setSimulationOutput(output);\n setHistory(function (prevHistory) {\n return [].concat(_toConsumableArray(prevHistory), [{\n step: prevHistory.length + 1,\n output: output\n }]);\n });\n playSound(\"run\");\n };\n\n var playSound = function playSound(type) {\n var soundMap = {\n run: \"/assets/sounds/run.mp3\"\n };\n var audio = new Audio(soundMap[type]);\n audio.volume = 0.5;\n audio.play();\n };\n\n var renderSimulationInterface = function renderSimulationInterface() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"simulation-game\"\n }, _react[\"default\"].createElement(\"h3\", null, simulationType, \" Simulation\"), _react[\"default\"].createElement(\"p\", null, scenario), _react[\"default\"].createElement(\"div\", {\n className: \"simulation-parameters\"\n }, parameters.map(function (param) {\n return _react[\"default\"].createElement(\"div\", {\n key: param.name,\n className: \"simulation-parameter\"\n }, _react[\"default\"].createElement(\"label\", {\n htmlFor: param.name\n }, param.name, \":\"), _react[\"default\"].createElement(\"input\", {\n type: \"number\",\n id: param.name,\n value: simulationState[param.name],\n onChange: function onChange(e) {\n return handleParameterChange(param.name, parseFloat(e.target.value));\n }\n }));\n })), _react[\"default\"].createElement(\"button\", {\n className: \"simulation-run-button\",\n onClick: runSimulationStep\n }, \"Run Simulation Step\"), simulationOutput && _react[\"default\"].createElement(\"div\", {\n className: \"simulation-output\"\n }, simulationOutput), history.length > 0 && _react[\"default\"].createElement(\"div\", {\n className: \"simulation-history\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Simulation History\"), _react[\"default\"].createElement(\"ul\", null, history.map(function (entry, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, \"Step \".concat(entry.step, \": \").concat(entry.output));\n }))), _react[\"default\"].createElement(\"div\", {\n className: \"simulation-objectives\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Objectives:\"), _react[\"default\"].createElement(\"ul\", null, objectives.map(function (objective, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, objective);\n }))));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), renderSimulationInterface(), _react[\"default\"].createElement(GameFooter, {\n contentData: contentData,\n formatData: props.formatData,\n formatContentElement: contentAreaId,\n feedBackAreaId: props.feedbackAreaId,\n savedContentId: props.savedContentId\n }));\n}\nfunction CreateStrategyGame(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var gameType = contentData.gameType,\n rules = contentData.rules,\n scenario = contentData.scenario,\n difficulty = contentData.difficulty,\n winningConditions = contentData.winningConditions,\n learningObjectives = contentData.learningObjectives,\n gameMechanics = contentData.gameMechanics,\n challenges = contentData.challenges;\n var _useState191 = (0, _react.useState)({}),\n _useState192 = _slicedToArray(_useState191, 2),\n gameState = _useState192[0],\n setGameState = _useState192[1];\n var _useState193 = (0, _react.useState)(false),\n _useState194 = _slicedToArray(_useState193, 2),\n gameOver = _useState194[0],\n setGameOver = _useState194[1];\n var _useState195 = (0, _react.useState)([]),\n _useState196 = _slicedToArray(_useState195, 2),\n log = _useState196[0],\n setLog = _useState196[1]; \n\n (0, _react.useEffect)(function () {\n var initialState = initializeGameState();\n setGameState(initialState);\n }, []);\n\n var initializeGameState = function initializeGameState() {\n return {\n resources: 100,\n challengesCompleted: 0,\n turnsLeft: 10 \n };\n };\n\n var handlePlayerAction = function handlePlayerAction(action) {\n if (gameOver) return;\n setGameState(function (prevGameState) {\n var newGameState = _objectSpread({}, prevGameState);\n var logEntry = \"\";\n if (action === 'solveChallenge') {\n if (newGameState.resources >= 10) {\n newGameState.resources -= 10;\n newGameState.challengesCompleted += 1;\n logEntry = \"Player successfully completed a challenge!\";\n } else {\n logEntry = \"Not enough resources to solve the challenge!\";\n }\n }\n newGameState.turnsLeft -= 1;\n setLog(function (prevLog) {\n return [].concat(_toConsumableArray(prevLog), [logEntry]);\n });\n if (newGameState.challengesCompleted >= challenges.length) {\n setGameOver(true);\n setLog(function (prevLog) {\n return [].concat(_toConsumableArray(prevLog), [\"Game Over! You completed all challenges.\"]);\n });\n } else if (newGameState.turnsLeft <= 0) {\n setGameOver(true);\n setLog(function (prevLog) {\n return [].concat(_toConsumableArray(prevLog), [\"Game Over! Out of turns.\"]);\n });\n }\n return newGameState;\n });\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", null, createContentHeader2(contentData, contentAreaId)), _react[\"default\"].createElement(\"div\", {\n className: \"strategy-game\"\n }, _react[\"default\"].createElement(\"h3\", null, gameType, \" Strategy Game\"), _react[\"default\"].createElement(\"p\", null, scenario), _react[\"default\"].createElement(\"h4\", null, \"Learning Objectives:\"), _react[\"default\"].createElement(\"ul\", null, learningObjectives.map(function (obj, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, obj);\n })), _react[\"default\"].createElement(\"h4\", null, \"Challenges:\"), _react[\"default\"].createElement(\"ul\", null, challenges.map(function (challenge, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, challenge);\n })), _react[\"default\"].createElement(\"div\", {\n className: \"game-progress\"\n }, _react[\"default\"].createElement(\"p\", null, _react[\"default\"].createElement(\"strong\", null, \"Resources:\"), \" \", gameState.resources), _react[\"default\"].createElement(\"p\", null, _react[\"default\"].createElement(\"strong\", null, \"Challenges Completed:\"), \" \", gameState.challengesCompleted, \" / \", challenges.length), _react[\"default\"].createElement(\"p\", null, _react[\"default\"].createElement(\"strong\", null, \"Turns Left:\"), \" \", gameState.turnsLeft)), _react[\"default\"].createElement(\"button\", {\n className: \"strategy-action-button\",\n onClick: function onClick() {\n return handlePlayerAction('solveChallenge');\n }\n }, \"Solve a Challenge\"), _react[\"default\"].createElement(\"div\", {\n className: \"game-log\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Game Log\"), _react[\"default\"].createElement(\"ul\", null, log.map(function (entry, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, entry);\n }))), gameOver && _react[\"default\"].createElement(\"p\", {\n className: \"game-over-message\"\n }, \"Game Over!\")), _react[\"default\"].createElement(GameFooter, props));\n}\nfunction CreateCreativeWritingPrompt(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var contentArea = createContentHeader2(contentData, contentAreaId);\n var promptType = contentData.promptType,\n prompt = contentData.prompt,\n keywords = contentData.keywords,\n genre = contentData.genre;\n var _useState197 = (0, _react.useState)(''),\n _useState198 = _slicedToArray(_useState197, 2),\n userStory = _useState198[0],\n setUserStory = _useState198[1];\n\n var handleStoryChange = function handleStoryChange(event) {\n setUserStory(event.target.value);\n };\n\n var renderPrompt = function renderPrompt() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"creative-writing-prompt\"\n }, _react[\"default\"].createElement(\"h3\", null, promptType), typeof prompt === 'string' ? _react[\"default\"].createElement(\"p\", null, prompt) : _react[\"default\"].createElement(\"img\", {\n src: prompt.src,\n alt: prompt.alt\n }), keywords && _react[\"default\"].createElement(\"div\", {\n className: \"keywords\"\n }, _react[\"default\"].createElement(\"h4\", null, \"Keywords:\"), _react[\"default\"].createElement(\"ul\", null, keywords.map(function (keyword, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, keyword);\n }))), genre && _react[\"default\"].createElement(\"p\", null, \"Genre: \", genre), _react[\"default\"].createElement(\"textarea\", {\n className: \"writing-area\",\n placeholder: \"Write your story here...\",\n value: userStory,\n onChange: handleStoryChange\n }));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderPrompt());\n}\nfunction CreateInteractiveStorytelling(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var contentArea = createContentHeader2(contentData, contentAreaId);\n var storyElements = contentData.storyElements;\n var _useState199 = (0, _react.useState)(0),\n _useState200 = _slicedToArray(_useState199, 2),\n currentScene = _useState200[0],\n setCurrentScene = _useState200[1];\n var _useState201 = (0, _react.useState)({}),\n _useState202 = _slicedToArray(_useState201, 2),\n storyData = _useState202[0],\n setStoryData = _useState202[1];\n\n var handleChoice = function handleChoice(choice) {\n setStoryData(function (prevData) {\n return _objectSpread(_objectSpread({}, prevData), {}, _defineProperty({}, currentScene, choice));\n });\n\n setCurrentScene(function (prevScene) {\n return prevScene + 1;\n });\n };\n\n var renderStoryScene = function renderStoryScene() {\n if (currentScene >= storyElements.length) {\n return _react[\"default\"].createElement(\"div\", {\n className: \"end-message\"\n }, \"The End\");\n }\n var scene = storyElements[currentScene];\n return _react[\"default\"].createElement(\"div\", {\n className: \"interactive-story-scene\"\n }, _react[\"default\"].createElement(\"p\", null, scene.text), scene.choices && _react[\"default\"].createElement(\"ul\", {\n className: \"choices\"\n }, scene.choices.map(function (choice, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, _react[\"default\"].createElement(\"button\", {\n onClick: function onClick() {\n return handleChoice(choice.text);\n }\n }, choice.text));\n })));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderStoryScene());\n}\nfunction CreateTangramPuzzle(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var contentArea = createContentHeader2(contentData, contentAreaId);\n var shapes = contentData.shapes,\n figures = contentData.figures;\n var _useState203 = (0, _react.useState)(null),\n _useState204 = _slicedToArray(_useState203, 2),\n selectedShape = _useState204[0],\n setSelectedShape = _useState204[1];\n var _useState205 = (0, _react.useState)({}),\n _useState206 = _slicedToArray(_useState205, 2),\n shapePositions = _useState206[0],\n setShapePositions = _useState206[1];\n var _useState207 = (0, _react.useState)(false),\n _useState208 = _slicedToArray(_useState207, 2),\n isSolved = _useState208[0],\n setIsSolved = _useState208[1];\n (0, _react.useEffect)(function () {\n var initialPositions = {};\n shapes.forEach(function (shape) {\n initialPositions[shape.type] = {\n x: Math.random() * (contentArea.offsetWidth - 50),\n y: Math.random() * (contentArea.offsetHeight - 50),\n rotation: 0\n };\n });\n setShapePositions(initialPositions);\n }, []);\n\n var handleShapeClick = function handleShapeClick(shape) {\n setSelectedShape(function (prevShape) {\n return prevShape === shape ? null : shape;\n });\n };\n\n var handleShapeDragStart = function handleShapeDragStart(event, shape) {\n handleDragStartJS(event, {\n shapeType: shape.type\n });\n };\n var handleShapeDragOver = function handleShapeDragOver(event) {\n handleDragOverJS(event);\n };\n var handleShapeDrop = function handleShapeDrop(event, shape) {\n handleDropJS(event, {\n shapeType: shape.type\n });\n var newX = event.clientX - event.target.offsetWidth / 2;\n var newY = event.clientY - event.target.offsetHeight / 2;\n setShapePositions(function (prevPositions) {\n return _objectSpread(_objectSpread({}, prevPositions), {}, _defineProperty({}, shape.type, _objectSpread(_objectSpread({}, prevPositions[shape.type]), {}, {\n x: newX,\n y: newY\n })));\n });\n\n };\n\n var renderPuzzle = function renderPuzzle() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"tangram-puzzle\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"shapes-area\"\n }, shapes.map(function (shape) {\n var _shapePositions$shape, _shapePositions$shape2, _shapePositions$shape3;\n return _react[\"default\"].createElement(\"div\", {\n key: shape.type,\n className: \"shape \".concat(shape.type, \" \").concat(selectedShape === shape ? 'selected' : ''),\n onClick: function onClick() {\n return handleShapeClick(shape);\n },\n draggable: true,\n onDragStart: function onDragStart(e) {\n return handleShapeDragStart(e, shape);\n },\n onDragOver: handleShapeDragOver,\n onDrop: function onDrop(e) {\n return handleShapeDrop(e, shape);\n },\n style: {\n left: \"\".concat((_shapePositions$shape = shapePositions[shape.type]) === null || _shapePositions$shape === void 0 ? void 0 : _shapePositions$shape.x, \"px\"),\n top: \"\".concat((_shapePositions$shape2 = shapePositions[shape.type]) === null || _shapePositions$shape2 === void 0 ? void 0 : _shapePositions$shape2.y, \"px\"),\n transform: \"rotate(\".concat((_shapePositions$shape3 = shapePositions[shape.type]) === null || _shapePositions$shape3 === void 0 ? void 0 : _shapePositions$shape3.rotation, \"deg)\")\n }\n });\n })), _react[\"default\"].createElement(\"div\", {\n className: \"figure-area\"\n }, figures.map(function (figure, index) {\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n className: \"figure\"\n }, _react[\"default\"].createElement(\"img\", {\n src: figure.image,\n alt: figure.name\n }));\n })));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderPuzzle(), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"));\n}\nfunction CreateTowerOfHanoiPuzzle(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var contentArea = createContentHeader2(contentData, contentAreaId);\n var numberOfDisks = contentData.numberOfDisks;\n var _useState209 = (0, _react.useState)([]),\n _useState210 = _slicedToArray(_useState209, 2),\n disks = _useState210[0],\n setDisks = _useState210[1];\n var _useState211 = (0, _react.useState)(null),\n _useState212 = _slicedToArray(_useState211, 2),\n sourcePeg = _useState212[0],\n setSourcePeg = _useState212[1];\n var _useState213 = (0, _react.useState)(null),\n _useState214 = _slicedToArray(_useState213, 2),\n targetPeg = _useState214[0],\n setTargetPeg = _useState214[1];\n var _useState215 = (0, _react.useState)(0),\n _useState216 = _slicedToArray(_useState215, 2),\n moveCount = _useState216[0],\n setMoveCount = _useState216[1];\n var _useState217 = (0, _react.useState)(false),\n _useState218 = _slicedToArray(_useState217, 2),\n isSolved = _useState218[0],\n setIsSolved = _useState218[1];\n (0, _react.useEffect)(function () {\n var initialDisks = [];\n for (var i = numberOfDisks; i > 0; i--) {\n initialDisks.push({\n id: i,\n size: i,\n peg: 'A'\n });\n }\n setDisks(initialDisks);\n }, [numberOfDisks]);\n\n var handleDiskClick = function handleDiskClick(diskId) {\n if (isSolved) return;\n var disk = disks.find(function (disk) {\n return disk.id === diskId;\n });\n if (sourcePeg === null) {\n setSourcePeg(disk.peg);\n } else if (sourcePeg === disk.peg) {\n setSourcePeg(null);\n } else {\n setTargetPeg(disk.peg);\n moveDisk(disk.id, sourcePeg, disk.peg);\n }\n };\n\n var moveDisk = function moveDisk(diskId, fromPeg, toPeg) {\n if (isValidMove(diskId, fromPeg, toPeg)) {\n setDisks(function (prevDisks) {\n var newDisks = _toConsumableArray(prevDisks);\n var diskIndex = newDisks.findIndex(function (disk) {\n return disk.id === diskId;\n });\n newDisks[diskIndex] = _objectSpread(_objectSpread({}, newDisks[diskIndex]), {}, {\n peg: toPeg\n });\n return newDisks;\n });\n setMoveCount(function (prevCount) {\n return prevCount + 1;\n });\n setSourcePeg(null);\n setTargetPeg(null);\n\n checkCompletion();\n } else {\n }\n };\n\n var isValidMove = function isValidMove(diskId, fromPeg, toPeg) {\n var topDiskFrom = disks.filter(function (disk) {\n return disk.peg === fromPeg;\n }).sort(function (a, b) {\n return a.size - b.size;\n })[0];\n var topDiskTo = disks.filter(function (disk) {\n return disk.peg === toPeg;\n }).sort(function (a, b) {\n return a.size - b.size;\n })[0];\n return fromPeg !== toPeg && (topDiskFrom === null || topDiskFrom === void 0 ? void 0 : topDiskFrom.id) === diskId && (!topDiskTo || topDiskFrom.size < topDiskTo.size);\n };\n\n var checkCompletion = function checkCompletion() {\n var isSolved = disks.every(function (disk) {\n return disk.peg === 'C';\n });\n setIsSolved(isSolved);\n };\n\n var renderPuzzle = function renderPuzzle() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"tower-of-hanoi\"\n }, _react[\"default\"].createElement(\"div\", {\n className: \"pegs\"\n }, ['A', 'B', 'C'].map(function (peg) {\n return _react[\"default\"].createElement(\"div\", {\n key: peg,\n className: \"peg\"\n }, disks.filter(function (disk) {\n return disk.peg === peg;\n }).sort(function (a, b) {\n return b.size - a.size;\n }).map(function (disk) {\n return _react[\"default\"].createElement(\"div\", {\n key: disk.id,\n className: \"disk size-\".concat(disk.size, \" \").concat(sourcePeg === peg ? 'selected' : ''),\n onClick: function onClick() {\n return handleDiskClick(disk.id);\n }\n });\n }));\n })), _react[\"default\"].createElement(\"p\", null, \"Moves: \", moveCount));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderPuzzle(), isSolved && _react[\"default\"].createElement(\"div\", {\n className: \"solved-message\"\n }, \"Puzzle Solved!\"));\n}\nfunction CreateWhatIfScenario(props) {\n var contentData = props.contentData,\n contentAreaId = props.contentAreaId,\n feedbackAreaId = props.feedbackAreaId;\n var contentArea = createContentHeader2(contentData, contentAreaId);\n var scenario = contentData.scenario,\n questions = contentData.questions;\n var _useState219 = (0, _react.useState)({}),\n _useState220 = _slicedToArray(_useState219, 2),\n answers = _useState220[0],\n setAnswers = _useState220[1];\n\n var handleAnswerChange = function handleAnswerChange(questionIndex, answer) {\n setAnswers(function (prevAnswers) {\n return _objectSpread(_objectSpread({}, prevAnswers), {}, _defineProperty({}, questionIndex, answer));\n });\n };\n\n var renderScenario = function renderScenario() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"what-if-scenario\"\n }, _react[\"default\"].createElement(\"h3\", null, \"Scenario:\"), _react[\"default\"].createElement(\"p\", null, scenario), _react[\"default\"].createElement(\"h3\", null, \"Questions:\"), _react[\"default\"].createElement(\"ul\", null, questions.map(function (question, index) {\n return _react[\"default\"].createElement(\"li\", {\n key: index\n }, _react[\"default\"].createElement(\"p\", null, question), _react[\"default\"].createElement(\"textarea\", {\n value: answers[index] || '',\n onChange: function onChange(e) {\n return handleAnswerChange(index, e.target.value);\n }\n }));\n })));\n };\n return _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: createContentHeader2(contentData, contentAreaId).innerHTML\n }\n }), renderScenario());\n}\n\n\n},{\"./script.js\":31,\"react\":8,\"react-dom\":5}],17:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createBackwardDesignTaxonomy = createBackwardDesignTaxonomy;\nexports.createBloomsTaxonomy = createBloomsTaxonomy;\nexports.createDOKTaxonomy = createDOKTaxonomy;\nexports.createDigitalBloomsTaxonomy = createDigitalBloomsTaxonomy;\nexports.createEducationalGoal = createEducationalGoal;\nexports.createFinksTaxonomy = createFinksTaxonomy;\nexports.createGagnesNineEventsTaxonomy = createGagnesNineEventsTaxonomy;\nexports.createGoal = createGoal;\nexports.createHarrowsPsychomotorTaxonomy = createHarrowsPsychomotorTaxonomy;\nexports.createISTEStandardsTaxonomy = createISTEStandardsTaxonomy;\nexports.createKnowledgeTaxonomy = createKnowledgeTaxonomy;\nexports.createKrathwohlsAffectiveTaxonomy = createKrathwohlsAffectiveTaxonomy;\nexports.createMarzanosTaxonomy = createMarzanosTaxonomy;\nexports.createP21Taxonomy = createP21Taxonomy;\nexports.createParentingGoal = createParentingGoal;\nexports.createRevisedBloomsTaxonomy = createRevisedBloomsTaxonomy;\nexports.createSOLOTaxonomy = createSOLOTaxonomy;\nexports.createWebbsDOKTaxonomy = createWebbsDOKTaxonomy;\nfunction createGoal(contentData, activityContainer) {\n if (!contentData || !contentData.type) {\n console.error(\"Invalid contentData: Missing 'type' property.\");\n return;\n }\n\n var formatData = newTTableData.find(function (item) {\n return item.type === contentData.type;\n });\n if (!formatData) {\n console.error(\"Format not found in newTTableData for type: \".concat(contentData.type));\n return;\n }\n\n var createFunction = window[formatData.functionName];\n\n if (typeof createFunction === 'function') {\n createFunction(contentData, activityContainer);\n } else {\n console.error(\"Function '\".concat(contentData.functionName, \"' not found.\"));\n }\n}\nfunction createParentingGoal(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.type) {\n console.error(\"Invalid contentData for Parenting Goal. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n var functionName = educational_goals_functions[contentData.type];\n if (functionName) {\n functionName(contentData, contentArea);\n } else {\n console.error(\"Unknown parenting goal type:\", contentData.type);\n }\n}\n\nfunction addGoalSection(container, title, content) {\n var listType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ul';\n var section = document.createElement('div');\n var heading = document.createElement('h3');\n heading.textContent = title;\n section.appendChild(heading);\n if (Array.isArray(content)) {\n var list = document.createElement(listType);\n content.forEach(function (item) {\n var listItem = document.createElement('li');\n listItem.textContent = item;\n\n listItem.addEventListener('click', function () {\n addGoalToTextarea(container, item);\n });\n\n listItem.addEventListener('mouseover', function () {\n listItem.style.backgroundColor = '#f0f0f0'; \n listItem.style.cursor = 'pointer';\n });\n listItem.addEventListener('mouseout', function () {\n listItem.style.backgroundColor = ''; \n });\n list.appendChild(listItem);\n });\n section.appendChild(list);\n } else {\n var paragraph = document.createElement('p');\n paragraph.textContent = content;\n section.appendChild(paragraph);\n }\n container.appendChild(section);\n}\n\nfunction addGoalToTextarea(container, goalText) {\n var goalsTextarea = document.getElementById('educational-goals');\n var currentGoals = goalsTextarea.value.split('\\n');\n if (!currentGoals.includes(goalText)) {\n container.style.opacity = 0.5;\n setTimeout(function () {\n container.style.opacity = 1;\n }, 300);\n goalsTextarea.value += (goalsTextarea.value ? '\\n' : '') + goalText;\n\n var feedbackMessage = document.createElement('div');\n feedbackMessage.textContent = 'Goal added!';\n feedbackMessage.style.color = 'green';\n feedbackMessage.style.marginBottom = '10px';\n goalsTextarea.parentNode.insertBefore(feedbackMessage, goalsTextarea);\n setTimeout(function () {\n feedbackMessage.style.opacity = 0;\n setTimeout(function () {\n return feedbackMessage.remove();\n }, 500);\n }, 3000);\n } else {\n var goalIndex = currentGoals.indexOf(goalText);\n var startPos = currentGoals.slice(0, goalIndex).join('\\n').length + (goalIndex > 0 ? 1 : 0); \n var endPos = startPos + goalText.length;\n goalsTextarea.focus();\n goalsTextarea.setSelectionRange(startPos, endPos);\n\n var _feedbackMessage = document.createElement('div');\n _feedbackMessage.textContent = 'Goal already added!';\n _feedbackMessage.style.color = 'orange';\n _feedbackMessage.style.marginBottom = '10px';\n goalsTextarea.parentNode.insertBefore(_feedbackMessage, goalsTextarea);\n setTimeout(function () {\n _feedbackMessage.style.opacity = 0;\n setTimeout(function () {\n return _feedbackMessage.remove();\n }, 500);\n }, 3000);\n }\n}\nfunction createEducationalGoal(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n console.log(\"createparentingGoals\", contentData);\n if (!contentData || !contentData.type) {\n console.error(\"Invalid contentData for Educational Goal. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n var functionName = educational_goals_functions[contentData.type];\n if (functionName) {\n functionName(contentData, contentArea);\n } else {\n console.error(\"Unknown educational goal type:\", contentData.type);\n }\n}\nvar educational_goals_functions = {\n bloomsTaxonomy: function bloomsTaxonomy(contentData, contentArea) {\n var levels = [\"remember\", \"understand\", \"apply\", \"analyze\", \"evaluate\", \"create\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n addGoalSection(contentArea, level.charAt(0).toUpperCase() + level.slice(1), contentData[level], 'ul');\n }\n });\n },\n revisedBloomsTaxonomy: function revisedBloomsTaxonomy(contentData, contentArea) {\n var levels = [\"remembering\", \"understanding\", \"applying\", \"analyzing\", \"evaluating\", \"creating\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n addGoalSection(contentArea, level.charAt(0).toUpperCase() + level.slice(1), contentData[level], 'ul');\n }\n });\n },\n dok: function dok(contentData, contentArea) {\n var levels = [\"recall\", \"skillsAndConcepts\", \"strategicThinking\", \"extendedThinking\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n },\n emotionalResilienceGoals: function emotionalResilienceGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Recognizing Emotions:', contentData.recognizingEmotions, 'ul');\n addGoalSection(contentArea, 'Understanding Triggers:', contentData.understandingTriggers, 'ul');\n addGoalSection(contentArea, 'Coping Strategies:', contentData.copingStrategies, 'ul');\n addGoalSection(contentArea, 'Resilience Building:', contentData.resilienceBuilding, 'ul');\n },\n growthMindsetGoals: function growthMindsetGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Embracing Challenges:', contentData.embracingChallenges, 'ul');\n addGoalSection(contentArea, 'Effort Over Results:', contentData.effortOverResults, 'ul');\n addGoalSection(contentArea, 'Learning from Mistakes:', contentData.learningFromMistakes, 'ul');\n addGoalSection(contentArea, 'Self-Motivation:', contentData.selfMotivation, 'ul');\n },\n fosteringIndependenceGoals: function fosteringIndependenceGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Self-Help Skills:', contentData.selfHelpSkills, 'ul');\n addGoalSection(contentArea, 'Responsibility:', contentData.responsibility, 'ul');\n addGoalSection(contentArea, 'Decision-Making:', contentData.decisionMaking, 'ul');\n addGoalSection(contentArea, 'Problem-Solving:', contentData.problemSolving, 'ul');\n },\n familyBondsGoals: function familyBondsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Shared Activities:', contentData.sharedActivities, 'ul');\n addGoalSection(contentArea, 'Open Communication:', contentData.openCommunication, 'ul');\n addGoalSection(contentArea, 'Trust and Support:', contentData.trustAndSupport, 'ul');\n addGoalSection(contentArea, 'Conflict Resolution:', contentData.conflictResolution, 'ul');\n },\n cognitiveSkillsGoals: function cognitiveSkillsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Curiosity and Exploration:', contentData.curiosityAndExploration, 'ul');\n addGoalSection(contentArea, 'Problem-Solving Strategies:', contentData.problemSolvingStrategies, 'ul');\n addGoalSection(contentArea, 'Critical Thinking:', contentData.criticalThinking, 'ul');\n addGoalSection(contentArea, 'Creativity and Innovation:', contentData.creativityAndInnovation, 'ul');\n },\n socialSkillsGoals: function socialSkillsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Peer Interaction:', contentData.peerInteraction, 'ul');\n addGoalSection(contentArea, 'Conflict Resolution:', contentData.conflictResolution, 'ul');\n addGoalSection(contentArea, 'Active Listening:', contentData.activeListening, 'ul');\n },\n physicalWellbeingGoals: function physicalWellbeingGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Age-Appropriate Exercise:', contentData.ageAppropriateExercise, 'ul');\n addGoalSection(contentArea, 'Nutritional Awareness:', contentData.nutritionalAwareness, 'ul');\n addGoalSection(contentArea, 'Fun Physical Challenges:', contentData.funPhysicalChallenges, 'ul');\n },\n valuesAndEthicsGoals: function valuesAndEthicsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Identifying Core Values:', contentData.identifyingCoreValues, 'ul');\n addGoalSection(contentArea, 'Ethical Scenarios:', contentData.ethicalScenarios, 'ul');\n addGoalSection(contentArea, 'Community Responsibility:', contentData.communityResponsibility, 'ul');\n },\n selfRegulationGoals: function selfRegulationGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Identifying Triggers:', contentData.identifyingTriggers, 'ul');\n addGoalSection(contentArea, 'Developing Calm-Down Strategies:', contentData.developingCalmDownStrategies, 'ul');\n addGoalSection(contentArea, 'Practicing Self-Reflection:', contentData.practicingSelfReflection, 'ul');\n },\n communicationSkillsGoals: function communicationSkillsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Expressing Needs and Feelings:', contentData.expressingNeedsAndFeelings, 'ul');\n addGoalSection(contentArea, 'Practicing Active Listening:', contentData.practicingActiveListening, 'ul');\n addGoalSection(contentArea, 'Overcoming Communication Barriers:', contentData.overcomingCommunicationBarriers, 'ul');\n },\n problemSolvingSkillsGoals: function problemSolvingSkillsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Identifying Challenges:', contentData.identifyingChallenges, 'ul');\n addGoalSection(contentArea, 'Exploring Solutions:', contentData.exploringSolutions, 'ul');\n addGoalSection(contentArea, 'Evaluating Options:', contentData.evaluatingOptions, 'ul');\n addGoalSection(contentArea, 'Applying and Reflecting:', contentData.applyingAndReflecting, 'ul');\n },\n emotionalExpressionGoals: function emotionalExpressionGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Identifying Emotions:', contentData.identifyingEmotions, 'ul');\n addGoalSection(contentArea, 'Expressing Feelings:', contentData.expressingFeelings, 'ul');\n addGoalSection(contentArea, 'Healthy Communication:', contentData.healthyCommunication, 'ul');\n addGoalSection(contentArea, 'Emotional Awareness:', contentData.emotionalAwareness, 'ul');\n },\n peerRelationshipsGoals: function peerRelationshipsGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Social Initiation:', contentData.socialInitiation, 'ul');\n addGoalSection(contentArea, 'Cooperation and Sharing:', contentData.cooperationAndSharing, 'ul');\n addGoalSection(contentArea, 'Empathy and Understanding:', contentData.empathyAndUnderstanding, 'ul');\n addGoalSection(contentArea, 'Conflict Resolution:', contentData.conflictResolution, 'ul');\n },\n selfConfidenceGoals: function selfConfidenceGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Self-Esteem:', contentData.selfEsteem, 'ul');\n addGoalSection(contentArea, 'Confidence in Abilities:', contentData.confidenceInAbilities, 'ul');\n addGoalSection(contentArea, 'Facing Challenges:', contentData.facingChallenges, 'ul');\n addGoalSection(contentArea, 'Positive Self-Talk:', contentData.positiveSelfTalk, 'ul');\n },\n fosteringCreativityGoals: function fosteringCreativityGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Imagination and Exploration:', contentData.imaginationAndExploration, 'ul');\n addGoalSection(contentArea, 'Creative Expression:', contentData.creativeExpression, 'ul');\n addGoalSection(contentArea, 'Experimentation and Innovation:', contentData.experimentationAndInnovation, 'ul');\n addGoalSection(contentArea, 'Problem-Solving through Creativity:', contentData.problemSolvingThroughCreativity, 'ul');\n },\n digitalAndRealLifeBalanceGoals: function digitalAndRealLifeBalanceGoals(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Digital Awareness:', contentData.digitalAwareness, 'ul');\n addGoalSection(contentArea, 'Time Management:', contentData.timeManagement, 'ul');\n addGoalSection(contentArea, 'Offline Engagement:', contentData.offlineEngagement, 'ul');\n addGoalSection(contentArea, 'Critical Thinking about Media:', contentData.criticalThinkingAboutMedia, 'ul');\n },\n christLikenessFormation: function christLikenessFormation(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Awareness:', contentData.awareness, 'ul');\n addGoalSection(contentArea, 'Emulation:', contentData.emulation, 'ul');\n addGoalSection(contentArea, 'Integration:', contentData.integration, 'ul');\n addGoalSection(contentArea, 'Transformation:', contentData.transformation, 'ul');\n },\n spiritualDisciplines: function spiritualDisciplines(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Exploration:', contentData.exploration, 'ul');\n addGoalSection(contentArea, 'Integration:', contentData.integration, 'ul');\n addGoalSection(contentArea, 'Maturing:', contentData.maturing, 'ul');\n addGoalSection(contentArea, 'Spiritual Depth:', contentData.spiritualDepth, 'ul');\n },\n biblicalLiteracy: function biblicalLiteracy(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Foundation:', contentData.foundation, 'ul');\n addGoalSection(contentArea, 'Interpretation:', contentData.interpretation, 'ul');\n addGoalSection(contentArea, 'Synthesis:', contentData.synthesis, 'ul');\n addGoalSection(contentArea, 'Application:', contentData.application, 'ul');\n },\n apologeticsTheologicalReflection: function apologeticsTheologicalReflection(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Basic Concepts:', contentData.basicConcepts, 'ul');\n addGoalSection(contentArea, 'Inquisitive Engagement:', contentData.inquisitiveEngagement, 'ul');\n addGoalSection(contentArea, 'Articulate Defense:', contentData.articulateDefense, 'ul');\n addGoalSection(contentArea, 'Constructive Theology:', contentData.constructiveTheology, 'ul');\n },\n churchBodyEngagement: function churchBodyEngagement(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Belonging:', contentData.belonging, 'ul');\n addGoalSection(contentArea, 'Serving:', contentData.serving, 'ul');\n addGoalSection(contentArea, 'Leading:', contentData.leading, 'ul');\n addGoalSection(contentArea, 'Equipping:', contentData.equipping, 'ul');\n },\n christianRelationshipsFellowship: function christianRelationshipsFellowship(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Awareness:', contentData.awareness, 'ul');\n addGoalSection(contentArea, 'Skills:', contentData.skills, 'ul');\n addGoalSection(contentArea, 'Deep Bonds:', contentData.deepBonds, 'ul');\n addGoalSection(contentArea, 'Missional Community:', contentData.missionalCommunity, 'ul');\n },\n missionalLivingEvangelism: function missionalLivingEvangelism(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Personal Witness:', contentData.personalWitness, 'ul');\n addGoalSection(contentArea, 'Relational Evangelism:', contentData.relationalEvangelism, 'ul');\n addGoalSection(contentArea, 'Community Engagement:', contentData.communityEngagement, 'ul');\n addGoalSection(contentArea, 'Global Missions:', contentData.globalMissions, 'ul');\n },\n spiritualWarfareResilience: function spiritualWarfareResilience(contentData, contentArea) {\n addGoalSection(contentArea, null, contentData.description, 'p');\n addGoalSection(contentArea, 'Awareness:', contentData.awareness, 'ul');\n addGoalSection(contentArea, 'Defense:', contentData.defense, 'ul');\n addGoalSection(contentArea, 'Offensive Faith:', contentData.offensiveFaith, 'ul');\n addGoalSection(contentArea, 'Equipping Others:', contentData.equippingOthers, 'ul');\n }\n};\n\nfunction createBloomsTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Bloom's Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"remember\", \"understand\", \"apply\", \"analyze\", \"evaluate\", \"create\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n addGoalSection(contentArea, level.charAt(0).toUpperCase() + level.slice(1), contentData[level], 'ul');\n }\n });\n}\n\nfunction createRevisedBloomsTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Revised Bloom's Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"remembering\", \"understanding\", \"applying\", \"analyzing\", \"evaluating\", \"creating\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n addGoalSection(contentArea, level.charAt(0).toUpperCase() + level.slice(1), contentData[level], 'ul');\n }\n });\n}\n\nfunction createDOKTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Depth of Knowledge (DOK). Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"recall\", \"skillsAndConcepts\", \"strategicThinking\", \"extendedThinking\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\nfunction createWebbsDOKTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Webb's DOK. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"recallAndReproduction\", \"skillsAndConcepts\", \"strategicThinking\", \"extendedThinking\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\nfunction createSOLOTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for SOLO Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"prestructural\", \"unistructural\", \"multistructural\", \"relational\", \"extendedAbstract\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.charAt(0).toUpperCase() + level.slice(1);\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\nfunction createMarzanosTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Marzano's New Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"retrieval\", \"comprehension\", \"analysis\", \"knowledgeUtilization\", \"metacognition\", \"selfSystemThinking\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\nfunction createFinksTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Fink's Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var dimensions = [\"foundationalKnowledge\", \"application\", \"integration\", \"humanDimension\", \"caring\", \"learningHowToLearn\"];\n dimensions.forEach(function (dimension) {\n if (contentData[dimension] && contentData[dimension].length > 0) {\n var formattedDimension = dimension.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedDimension, contentData[dimension], 'ul');\n }\n });\n}\n\nfunction createISTEStandardsTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for ISTE Standards. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var standards = [\"empoweredLearner\", \"digitalCitizen\", \"knowledgeConstructor\", \"innovativeDesigner\", \"computationalThinker\", \"creativeCommunicator\", \"globalCollaborator\"];\n standards.forEach(function (standard) {\n if (contentData[standard] && contentData[standard].length > 0) {\n var formattedStandard = standard.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedStandard, contentData[standard], 'ul');\n }\n });\n}\n\nfunction createP21Taxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for P21. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var focusAreas = [\"fourCs\", \"learningAndInnovationSkills\", \"informationMediaAndTechnologySkills\", \"lifeAndCareerSkills\"];\n focusAreas.forEach(function (area) {\n if (contentData[area] && contentData[area].length > 0) {\n var formattedArea = area.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedArea, contentData[area], 'ul');\n }\n });\n}\n\nfunction createBackwardDesignTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title || !contentData.desiredResults || !contentData.assessmentEvidence || !contentData.learningPlan) {\n console.error(\"Invalid contentData for Backward Design. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n addGoalSection(contentArea, 'Desired Results', contentData.desiredResults, 'ul');\n addGoalSection(contentArea, 'Assessment Evidence', contentData.assessmentEvidence, 'ul');\n addGoalSection(contentArea, 'Learning Plan', contentData.learningPlan);\n}\n\nfunction createKrathwohlsAffectiveTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Krathwohl's Affective Domain Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"receiving\", \"responding\", \"valuing\", \"organization\", \"characterizationByValue\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.replace(/([A-Z])/g, ' $1').trim().replace(/\\b\\w/g, function (l) {\n return l.toUpperCase();\n });\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\nfunction createHarrowsPsychomotorTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Harrow's Psychomotor Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"observing\", \"imitating\", \"practicing\", \"adapting\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.charAt(0).toUpperCase() + level.slice(1);\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\nfunction createGagnesNineEventsTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title || !contentData.learningGoals || !contentData.instructionalSteps) {\n console.error(\"Invalid contentData for Gagne's Nine Events of Instruction. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n addGoalSection(contentArea, 'Learning Goals', contentData.learningGoals, 'ul');\n addGoalSection(contentArea, 'Instructional Steps', contentData.instructionalSteps, 'ol');\n}\n\nfunction createKnowledgeTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title || !contentData.cognitiveGoals && !contentData.affectiveGoals && !contentData.psychomotorGoals) {\n console.error(\"Invalid contentData for Structure of the Knowledge Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n if (contentData.cognitiveGoals && contentData.cognitiveGoals.length > 0) {\n addGoalSection(contentArea, 'Cognitive Goals', contentData.cognitiveGoals, 'ul');\n }\n if (contentData.affectiveGoals && contentData.affectiveGoals.length > 0) {\n addGoalSection(contentArea, 'Affective Goals', contentData.affectiveGoals, 'ul');\n }\n if (contentData.psychomotorGoals && contentData.psychomotorGoals.length > 0) {\n addGoalSection(contentArea, 'Psychomotor Goals', contentData.psychomotorGoals, 'ul');\n }\n}\n\nfunction createDigitalBloomsTaxonomy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!contentData || !contentData.title) {\n console.error(\"Invalid contentData for Digital Bloom's Taxonomy. Missing required properties.\");\n return;\n }\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levels = [\"remembering\", \"understanding\", \"applying\", \"analyzing\", \"evaluating\", \"creating\"];\n levels.forEach(function (level) {\n if (contentData[level] && contentData[level].length > 0) {\n var formattedLevel = level.charAt(0).toUpperCase() + level.slice(1);\n addGoalSection(contentArea, formattedLevel, contentData[level], 'ul');\n }\n });\n}\n\n},{}],18:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.applyAccessibilityOptions = applyAccessibilityOptions;\nexports.applyIndividualizedPace = applyIndividualizedPace;\nexports.createAdaptableContent = createAdaptableContent;\nexports.createAdaptiveBranchingStory = createAdaptiveBranchingStory;\nexports.createAnalogiesAndMetaphors = createAnalogiesAndMetaphors;\nexports.createComparativeAnalysis = createComparativeAnalysis;\nexports.createComparativeTable = createComparativeTable;\nexports.createConceptDefinitionTable = createConceptDefinitionTable;\nexports.createConceptHierarchy = createConceptHierarchy;\nexports.createConceptSummary = createConceptSummary;\nexports.createConceptualOverview = createConceptualOverview;\nexports.createContentCuration = createContentCuration;\nexports.createContrastingCases = createContrastingCases;\nexports.createCustomizableInterface = createCustomizableInterface;\nexports.createDifficultyLevels = createDifficultyLevels;\nexports.createDigitalWorksheet = createDigitalWorksheet;\nexports.createExpositoryWriting = createExpositoryWriting;\nexports.createFaq = createFaq;\nexports.createIncrementalComplexity = createIncrementalComplexity;\nexports.createInteractiveQuestionnaire = createInteractiveQuestionnaire;\nexports.createLogicalProgression = createLogicalProgression;\nexports.createMathConceptExplanation = createMathConceptExplanation;\nexports.createMultimodalLearning = createMultimodalLearning;\nexports.createNarrativeDescriptions = createNarrativeDescriptions;\nexports.createNestedBulletPoints = createNestedBulletPoints;\nexports.createNeurologicalDisorderExplanation = createNeurologicalDisorderExplanation;\nexports.createPersonalizedConceptMaps = createPersonalizedConceptMaps;\nexports.createPersonalizedFeedback = createPersonalizedFeedback;\nexports.createPersonalizedLearningGoals = createPersonalizedLearningGoals;\nexports.createPersonalizedRecommendations = createPersonalizedRecommendations;\nexports.createPersonalizedStudyPath = createPersonalizedStudyPath;\nexports.createPersonalizedVocabularyBuilder = createPersonalizedVocabularyBuilder;\nexports.createPracticeExercisesWithFeedback = createPracticeExercisesWithFeedback;\nexports.createProblemSolvingScenario = createProblemSolvingScenario;\nexports.createProgressBookmarks = createProgressBookmarks;\nexports.createScenarioBasedExplanation = createScenarioBasedExplanation;\nexports.createSocraticQuestions = createSocraticQuestions;\nexports.createSpotTheBiasScience = createSpotTheBiasScience;\nexports.createStructuralMarkers = createStructuralMarkers;\nexports.createStudyPlanBuilder = createStudyPlanBuilder;\nexports.createTextToSpeech = createTextToSpeech;\nexports.createVocabularyDefinitions = createVocabularyDefinitions;\nvar _SharedScript = require(\"./SharedScript.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction createConceptSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var summaryParagraph = document.createElement(\"p\");\n summaryParagraph.textContent = contentData.summary;\n summaryParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(summaryParagraph);\n}\n\nfunction createConceptDefinitionTable(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var table = document.createElement(\"table\");\n table.classList.add(\"table\", \"table-striped\"); \n var headerRow = table.insertRow();\n headerRow.innerHTML = '<th>Term</th><th>Definition</th><th>Examples</th>'; \n\n contentData.concepts.forEach(function (concept) {\n var row = table.insertRow();\n var termCell = row.insertCell();\n var definitionCell = row.insertCell();\n var examplesCell = row.insertCell();\n termCell.textContent = concept.term;\n definitionCell.textContent = concept.definition;\n examplesCell.textContent = concept.examples ? concept.examples.join(\", \") : \"\";\n });\n contentArea.appendChild(table);\n}\n\n\nfunction createMathConceptExplanation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var explanation = document.createElement(\"p\");\n explanation.textContent = contentData.explanation;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n if (contentData.examples) {\n var examplesHeading = document.createElement(\"h3\");\n examplesHeading.textContent = \"Examples\";\n contentArea.appendChild(examplesHeading);\n var examplesList = document.createElement(\"ul\");\n examplesList.classList.add(\"list\");\n contentData.examples.forEach(function (example) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = example;\n examplesList.appendChild(listItem);\n });\n contentArea.appendChild(examplesList);\n }\n if (contentData.visualizations) {\n var visualizationsHeading = document.createElement(\"h3\");\n visualizationsHeading.textContent = \"Visualizations\";\n contentArea.appendChild(visualizationsHeading);\n contentData.visualizations.forEach(function (visualization) {\n var visualizationElement = document.createElement(visualization.type === \"image\" ? \"img\" : \"div\"); \n\n if (visualization.type === \"image\") {\n visualizationElement.src = visualization.url;\n visualizationElement.alt = contentData.title;\n } else {\n }\n contentArea.appendChild(visualizationElement);\n });\n }\n}\n\nfunction createSpotTheBiasScience(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var excerpt = document.createElement(\"p\");\n excerpt.textContent = contentData.excerpt;\n excerpt.classList.add(\"paragraph\");\n contentArea.appendChild(excerpt);\n\n var questionsList = document.createElement(\"ol\");\n questionsList.classList.add(\"list\");\n contentData.questions.forEach(function (question) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = question;\n questionsList.appendChild(listItem);\n });\n contentArea.appendChild(questionsList);\n\n var responseArea = document.createElement(\"textarea\");\n responseArea.classList.add(\"textarea\");\n responseArea.placeholder = \"Enter your analysis here...\";\n contentArea.appendChild(responseArea);\n}\n\nfunction createNeurologicalDisorderExplanation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var disorderName = document.createElement(\"h3\");\n disorderName.textContent = contentData.disorderName;\n disorderName.classList.add('paragraph'); \n contentArea.appendChild(disorderName);\n var sections = [\"causes\", \"symptoms\", \"treatments\"];\n sections.forEach(function (sectionName) {\n var section = document.createElement(\"section\");\n var heading = document.createElement(\"h4\");\n heading.textContent = sectionName.charAt(0).toUpperCase() + sectionName.slice(1); \n section.appendChild(heading);\n var paragraphs = contentData[sectionName].split(\"\\n\"); \n paragraphs.forEach(function (paragraphText) {\n var p = document.createElement(\"p\");\n p.classList.add(\"paragraph\"); \n p.textContent = paragraphText;\n section.appendChild(p);\n });\n contentArea.appendChild(section);\n });\n}\n\nfunction createDigitalWorksheet(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var worksheetForm = document.createElement(\"form\");\n worksheetForm.classList.add(\"worksheet-form\");\n contentData.questions.forEach(function (question, index) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n questionDiv.innerHTML = '<p class=\"paragraph\">${question.question}</p>';\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = '<label><input type=\"radio\" name=\"q${index}\" value=\"${option}\"> ${option}</label>';\n optionsList.appendChild(listItem);\n });\n questionDiv.appendChild(optionsList);\n } else {\n questionDiv.innerHTML += '<input type=\"text\" class=\"input\" id=\"answer${index}\">';\n }\n worksheetForm.appendChild(questionDiv);\n });\n var submitButton = document.createElement(\"button\");\n submitButton.type = \"submit\";\n submitButton.textContent = \"Submit Answers\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n worksheetForm.appendChild(submitButton);\n worksheetForm.addEventListener(\"submit\", function (event) {\n event.preventDefault();\n checkWorksheetAnswers(contentData);\n });\n contentArea.appendChild(worksheetForm);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n}\nfunction checkWorksheetAnswers(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var score = 0;\n contentData.questions.forEach(function (question, index) {\n var _question$feedback, _question$feedback2;\n var userInput;\n if (question.type === \"multipleChoice\") {\n var selectedOption = document.querySelector('input[name=\"q${index}\"]:checked');\n userInput = selectedOption ? selectedOption.value : null;\n } else {\n userInput = document.getElementById('answer${index}').value;\n }\n var isCorrect = userInput !== null && (question.type === \"shortAnswer\" || question.type === \"fillInTheBlank\") ? userInput.toLowerCase() === question.answer.toLowerCase() : userInput === question.answer;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? ((_question$feedback = question.feedback) === null || _question$feedback === void 0 ? void 0 : _question$feedback.correct) || \"Correct!\" : ((_question$feedback2 = question.feedback) === null || _question$feedback2 === void 0 ? void 0 : _question$feedback2.incorrect) || \"Incorrect!\";\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) score++;\n });\n feedbackArea.innerHTML += '<p>Your score: ${score} out of ${contentData.questions.length}</p>';\n}\n\nfunction createStudyPlanBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var goalsList = document.createElement(\"ul\");\n goalsList.classList.add(\"list\");\n contentData.goals.forEach(function (goal, index) {\n var goalItem = document.createElement(\"li\");\n goalItem.innerHTML = \"\\n <details>\\n <summary class=\\\"goal\\\">\".concat(goal.goal, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(goal.description, \"</p>\\n <input type=\\\"date\\\" class=\\\"input deadline-input\\\" id=\\\"deadline-\").concat(goal.goal.replace(/\\s+/g, \"-\").toLowerCase(), \"\\\" value=\\\"\").concat(goal.deadline, \"\\\">\\n <ul class=\\\"task-list\\\">\\n \").concat(goal.tasks.map(function (task, taskIndex) {\n return \"\\n <li>\\n <input type=\\\"checkbox\\\" id=\\\"task-\".concat(index, \"-\").concat(taskIndex, \"\\\">\\n <label for=\\\"task-\").concat(index, \"-\").concat(taskIndex, \"\\\">\").concat(task, \"</label>\\n </li>\\n \");\n }).join(''), \"\\n </ul>\\n \").concat(goal.resources ? \"\\n <ul class=\\\"resource-list\\\">\\n \".concat(goal.resources.map(function (resource) {\n return \"\\n <li><a href=\\\"\".concat(resource, \"\\\" class=\\\"link\\\">\").concat(resource, \"</a></li>\\n \");\n }).join(''), \"\\n </ul>\\n \") : '', \"\\n </details>\\n \"); \n goalsList.appendChild(goalItem); \n });\n contentArea.appendChild(goalsList);\n}\n\nfunction createVocabularyDefinitions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n createDefinitions(contentData, ContentAreaId, feedbackAreaId); \n}\n\nfunction createProblemSolvingScenario(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var questionsList = document.createElement(\"ol\");\n questionsList.classList.add(\"list\");\n contentData.questions.forEach(function (question) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = question;\n questionsList.appendChild(listItem);\n });\n contentArea.appendChild(questionsList);\n\n var solutionArea = document.createElement(\"textarea\");\n solutionArea.classList.add(\"textarea\");\n solutionArea.placeholder = \"Enter your solution here...\";\n contentArea.appendChild(solutionArea);\n\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = \"Submit Solution\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n });\n contentArea.appendChild(submitButton);\n}\n\nfunction createPersonalizedLearningGoals(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var goalsList = document.createElement(\"ul\");\n goalsList.classList.add(\"list\");\n contentData.goals.forEach(function (goal, index) {\n var goalItem = document.createElement(\"li\");\n goalItem.innerHTML = \"\\n <details>\\n <summary class=\\\"goal\\\">\".concat(goal.goal, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(goal.description, \"</p>\\n </details>\\n \");\n var checklist = document.createElement(\"ul\");\n checklist.classList.add(\"checklist\");\n goal.checklist.forEach(function (task, taskIndex) {\n var taskItem = document.createElement(\"li\");\n taskItem.innerHTML = \"\\n <input type=\\\"checkbox\\\" id=\\\"task-\".concat(index, \"-\").concat(taskIndex, \"\\\">\\n <label for=\\\"task-\").concat(index, \"-\").concat(taskIndex, \"\\\">\").concat(task, \"</label>\\n \");\n taskList.appendChild(taskItem);\n });\n goalItem.appendChild(checklist);\n goalsList.appendChild(goalItem);\n });\n contentArea.appendChild(goalsList);\n}\n\nfunction createPersonalizedVocabularyBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var wordListContainer = document.createElement(\"div\");\n wordListContainer.classList.add(\"word-list-container\");\n contentData.words.forEach(function (wordData) {\n var wordItem = document.createElement(\"div\");\n wordItem.classList.add(\"word-item\");\n var wordHeading = document.createElement(\"h3\");\n wordHeading.textContent = wordData.word;\n wordItem.appendChild(wordHeading);\n var definition = document.createElement(\"p\");\n definition.classList.add(\"paragraph\");\n wordItem.appendChild(definition);\n if (wordData.example) {\n var example = document.createElement(\"p\");\n example.classList.add(\"paragraph\");\n wordItem.appendChild(example);\n }\n if (wordData.image) {\n var image = document.createElement(\"img\");\n image.src = wordData.image;\n image.alt = wordData.word;\n wordItem.appendChild(image);\n }\n\n var addToListButton = document.createElement(\"button\");\n addToListButton.textContent = \"Add to My List\";\n addToListButton.classList.add(\"btn\", \"btn-secondary\");\n addToListButton.addEventListener(\"click\", function () {\n });\n wordItem.appendChild(addToListButton);\n var markMasteredButton = document.createElement(\"button\");\n markMasteredButton.textContent = \"Mark as Mastered\";\n markMasteredButton.classList.add(\"btn\", \"btn-primary\");\n markMasteredButton.addEventListener(\"click\", function () {\n });\n wordItem.appendChild(markMasteredButton);\n wordListContainer.appendChild(wordItem);\n });\n contentArea.appendChild(wordListContainer);\n}\n\nfunction applyAccessibilityOptions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n metadataArea.innerHTML = \"\";\n\n var optionsContainer = document.createElement(\"div\");\n optionsContainer.classList.add(\"accessibility-options\");\n metadataArea.appendChild(optionsContainer);\n\n if (contentData.options.some(function (option) {\n return option.name === \"Font Size\";\n })) {\n var fontSizes = contentData.options.find(function (option) {\n return option.name === \"Font Size\";\n }).values;\n if (fontSizes && fontSizes.length > 0) {\n var fontSizeLabel = document.createElement(\"label\");\n fontSizeLabel.htmlFor = \"font-size-select\";\n fontSizeLabel.textContent = \"Font Size:\";\n optionsContainer.appendChild(fontSizeLabel);\n var fontSizeSelect = document.createElement(\"select\");\n fontSizeSelect.id = \"font-size-select\";\n fontSizeSelect.classList.add(\"select\");\n fontSizes.forEach(function (size) {\n var option = document.createElement(\"option\");\n option.value = size;\n option.textContent = size;\n fontSizeSelect.appendChild(option);\n });\n fontSizeSelect.addEventListener(\"change\", function () {\n contentArea.style.fontSize = fontSizeSelect.value;\n });\n optionsContainer.appendChild(fontSizeSelect);\n }\n }\n\n if (contentData.options.some(function (option) {\n return option.name === \"Color Contrast\";\n })) {\n var colorContrasts = contentData.options.find(function (option) {\n return option.name === \"Color Contrast\";\n }).values;\n if (colorContrasts && colorContrasts.length > 0) {\n var contrastLabel = document.createElement(\"label\");\n contrastLabel.htmlFor = \"contrast-select\";\n contrastLabel.textContent = \"Color Contrast:\";\n optionsContainer.appendChild(contrastLabel);\n var contrastSelect = document.createElement(\"select\");\n contrastSelect.id = \"contrast-select\";\n contrastSelect.classList.add(\"select\");\n colorContrasts.forEach(function (scheme) {\n var option = document.createElement(\"option\");\n option.value = scheme;\n option.textContent = scheme.charAt(0).toUpperCase() + scheme.slice(1);\n contrastSelect.appendChild(option);\n });\n contrastSelect.addEventListener(\"change\", function () {\n var selectedScheme = contrastSelect.value;\n document.body.className = \"\"; \n document.body.classList.add(selectedScheme.toLowerCase() + \"-theme\"); \n });\n optionsContainer.appendChild(contrastSelect);\n }\n }\n\n if (contentData.options.some(function (option) {\n return option.name === \"Text-to-Speech\";\n })) {\n var ttsOption = contentData.options.find(function (option) {\n return option.name === \"Text-to-Speech\";\n });\n if (ttsOption && ttsOption.values.includes(\"On\")) {\n var ttsButton = document.createElement(\"button\");\n ttsButton.textContent = \"Read Aloud\";\n ttsButton.classList.add(\"btn\", \"btn-primary\");\n ttsButton.addEventListener(\"click\", function () {\n var utterance = new SpeechSynthesisUtterance(contentArea.textContent);\n\n if (contentData.voiceOptions) {\n utterance.rate = contentData.voiceOptions.speed || 1; \n utterance.pitch = contentData.voiceOptions.pitch || 1; \n if (contentData.voiceOptions.accent) {\n var availableVoices = speechSynthesis.getVoices();\n var selectedVoice = availableVoices.find(function (voice) {\n return voice.name.includes(contentData.voiceOptions.accent);\n });\n if (selectedVoice) {\n utterance.voice = selectedVoice;\n }\n }\n }\n speechSynthesis.speak(utterance);\n });\n optionsContainer.appendChild(ttsButton);\n }\n }\n if (contentData.options.some(function (option) {\n return option.name === \"Translations\";\n })) {\n var translationOptions = contentData.options.find(function (option) {\n return option.name === \"Translations\";\n }).values;\n if (translationOptions && translationOptions.length > 0) {\n var translations = document.createElement(\"select\");\n translations.classList.add(\"select\");\n\n var originalOption = document.createElement(\"option\");\n originalOption.value = \"Original\";\n originalOption.textContent = \"Original\";\n translations.appendChild(originalOption);\n translationOptions.forEach(function (trans) {\n var option = document.createElement(\"option\");\n option.value = trans.toLowerCase();\n option.textContent = trans;\n translations.appendChild(option);\n });\n translations.addEventListener(\"change\", function (event) {\n var selectedTranslation = event.target.value;\n handleTranslation(selectedTranslation); \n });\n optionsContainer.appendChild(translations);\n }\n }\n}\n\nfunction handleTranslation(language) {\n console.log(\"Translate content to \".concat(language));\n}\n\nfunction createCustomizableInterface(contentData, contentAreaId, metadataAreaId) {\n var contentArea = document.getElementById(contentAreaId); \n contentArea.innerHTML = contentData.content; \n\n var metadataArea = document.getElementById(metadataAreaId);\n\n var optionsContainer = document.createElement(\"div\");\n optionsContainer.classList.add(\"customization-options\"); \n metadataArea.appendChild(optionsContainer);\n\n if (contentData.fonts && contentData.fonts.length > 0) {\n createDropdown(\"Font\", \"font-select\", contentData.fonts, function (selectedFont) {\n contentArea.style.fontFamily = selectedFont;\n }, contentData.fonts[0]);\n }\n\n if (contentData.themes && contentData.themes.length > 0) {\n createDropdown(\"Theme\", \"theme-select\", contentData.themes, function (selectedTheme) {\n var _document$body$classL;\n (_document$body$classL = document.body.classList).remove.apply(_document$body$classL, _toConsumableArray(document.body.classList));\n document.body.classList.add(selectedTheme.toLowerCase() + \"-theme\");\n }, \"Light\"); \n }\n\n if (contentData.colors && contentData.colors.length > 0) {\n createDropdown(\"Color\", \"color-select\", contentData.colors, function (selectedColor) {\n var _contentArea$classLis;\n (_contentArea$classLis = contentArea.classList).remove.apply(_contentArea$classLis, _toConsumableArray(contentArea.classList));\n contentArea.classList.add(selectedColor.toLowerCase() + \"-color\");\n },\n contentData.colors[0].toLowerCase());\n }\n\n if (contentData.layouts && contentData.layouts.length > 0) {\n createDropdown(\"Layout\", \"layout-select\", contentData.layouts, function (selectedLayout) {\n contentArea.className = \"\"; \n contentArea.classList.add(\"content-area\", selectedLayout.toLowerCase() + \"-layout\");\n }, contentData.layouts[0].toLowerCase()); \n }\n}\n\nfunction createDropdown(label, id, options, onChangeCallback) {\n var container = document.querySelector(\".customization-options\");\n var labelElement = document.createElement(\"label\");\n labelElement.htmlFor = id;\n labelElement.textContent = label + \":\";\n container.appendChild(labelElement);\n var selectElement = document.createElement(\"select\");\n selectElement.id = id;\n selectElement.classList.add(\"select\");\n options.forEach(function (option) {\n var optionElement = document.createElement(\"option\");\n optionElement.value = option.toLowerCase();\n optionElement.textContent = option;\n selectElement.appendChild(optionElement);\n });\n selectElement.addEventListener(\"change\", function () {\n onChangeCallback(selectElement.value);\n });\n container.appendChild(selectElement);\n}\n\nfunction applyIndividualizedPace(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentChunkIndex = 0;\n var isPaused = false;\n var utterance = null;\n var nextLevelButton, prevButton; \n\n var contentChunks = Array.isArray(contentData.content) ? contentData.content.map(function (chunk) {\n return {\n title: chunk.title,\n content: chunk.content.split(\"\\n\\n\") \n };\n }) : [{\n title: contentData.title,\n content: [contentData.content]\n }];\n\n var title = document.createElement(\"h2\");\n title.textContent = contentData.title;\n title.classList.add(\"title\");\n contentArea.appendChild(title);\n\n function displayChunk(index) {\n contentArea.innerHTML = \"\";\n var chunk = contentChunks[index];\n var chunkTitle = document.createElement(\"h3\");\n chunkTitle.textContent = chunk.title || \"Part \".concat(index + 1);\n chunkTitle.classList.add(\"title\");\n contentArea.appendChild(chunkTitle);\n chunk.content.forEach(function (paragraphText) {\n var p = document.createElement(\"p\");\n p.textContent = paragraphText;\n p.classList.add(\"paragraph\");\n contentArea.appendChild(p);\n });\n\n if (contentData.options.pauseResume && 'speechSynthesis' in window) {\n if (isPaused) {\n speechSynthesis.resume();\n } else {\n speechSynthesis.cancel();\n utterance = new SpeechSynthesisUtterance(chunk.content.join(' '));\n applyVoiceOptions(utterance, contentData);\n speechSynthesis.speak(utterance);\n }\n isPaused = !isPaused;\n }\n }\n\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.disabled = true;\n prevButton.addEventListener(\"click\", function () {\n currentChunkIndex = Math.max(0, currentChunkIndex - 1);\n displayChunk(currentChunkIndex);\n updateButtonStates();\n });\n buttonsContainer.appendChild(prevButton);\n nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n currentChunkIndex = Math.min(contentChunks.length - 1, currentChunkIndex + 1);\n displayChunk(currentChunkIndex);\n updateButtonStates();\n });\n buttonsContainer.appendChild(nextButton);\n if (contentData.options.pauseResume) {\n var pauseResumeButton = document.createElement(\"button\");\n pauseResumeButton.textContent = \"Pause/Resume\"; \n pauseResumeButton.classList.add(\"btn\");\n pauseResumeButton.addEventListener(\"click\", function () {\n if (utterance) {\n if (isPaused) {\n pauseResumeButton.textContent = \"Pause\";\n speechSynthesis.resume();\n } else {\n pauseResumeButton.textContent = \"Resume\";\n speechSynthesis.pause();\n }\n isPaused = !isPaused;\n }\n });\n buttonsContainer.appendChild(pauseResumeButton);\n }\n\n if (contentData.options.speed && contentData.options.speed.length > 0) {\n var speedLabel = document.createElement(\"label\");\n speedLabel.textContent = \"Speed:\";\n speedLabel.htmlFor = \"speed-select\";\n buttonsContainer.appendChild(speedLabel);\n var speedSelect = document.createElement(\"select\");\n speedSelect.id = \"speed-select\";\n speedSelect.classList.add(\"select\");\n contentData.options.speed.forEach(function (speedOption) {\n var option = document.createElement(\"option\");\n option.value = speedOption.toLowerCase();\n option.textContent = speedOption;\n speedSelect.appendChild(option);\n });\n speedSelect.addEventListener(\"change\", function () {\n if (utterance) {\n utterance.rate = parseFloat(speedSelect.value);\n }\n });\n buttonsContainer.appendChild(speedSelect);\n }\n\n if (contentData.options.navigation) {\n contentArea.appendChild(buttonsContainer); \n }\n\n displayChunk(currentChunkIndex);\n\n function updateButtonStates() {\n prevButton.disabled = currentChunkIndex === 0;\n nextButton.disabled = currentChunkIndex === contentChunks.length - 1;\n }\n\n function applyVoiceOptions(utterance, contentData) {\n if (contentData.options.voiceOptions) {\n utterance.rate = contentData.options.voiceOptions.speed || 1;\n utterance.pitch = contentData.options.voiceOptions.pitch || 1;\n if (contentData.options.voiceOptions.accent) {\n var availableVoices = speechSynthesis.getVoices();\n var voice = availableVoices.find(function (v) {\n return v.name.includes(contentData.options.voiceOptions.accent);\n });\n if (voice) {\n utterance.voice = voice;\n } else {\n console.warn(\"Specified accent not available, using default voice.\");\n }\n }\n }\n }\n}\nfunction createDifficultyLevels(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.levels.forEach(function (level) {\n var button = document.createElement(\"button\");\n\n button.textContent = level.charAt(0).toUpperCase() + level.slice(1);\n button.classList.add(\"btn\", \"btn-secondary\");\n button.addEventListener(\"click\", function () {\n var content = contentData.content.find(function (c) {\n return c.level === level;\n });\n if (content) {\n createContent(contentData.type, content.content);\n } else {\n displayErrorMessage(\"No content found for your level.\");\n }\n });\n contentArea.appendChild(button);\n });\n}\n\nfunction createProgressBookmarks(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n\n var bookmarks = JSON.parse(localStorage.getItem(\"bookmarks\")) || [];\n\n var currentPageTitle = contentData.title || \"Content\";\n\n var bookmarkContainer = document.createElement(\"div\");\n bookmarkContainer.classList.add(\"bookmark-container\");\n contentArea.appendChild(bookmarkContainer);\n\n var bookmarkButton = document.createElement(\"button\");\n bookmarkButton.textContent = \"Bookmark this page\";\n bookmarkButton.classList.add(\"btn\", \"btn-primary\");\n\n var isBookmarked = bookmarks.some(function (bm) {\n return bm.title === currentPageTitle;\n });\n if (isBookmarked) {\n bookmarkButton.textContent = \"Remove Bookmark\";\n bookmarkButton.classList.add(\"bookmarked\");\n }\n bookmarkButton.addEventListener(\"click\", function () {\n var scrollPosition = contentArea.scrollTop; \n\n if (isBookmarked) {\n bookmarks = bookmarks.filter(function (bm) {\n return bm.title !== currentPageTitle;\n });\n bookmarkButton.textContent = \"Bookmark this page\";\n bookmarkButton.classList.remove(\"bookmarked\");\n } else {\n bookmarks.push({\n title: currentPageTitle,\n position: scrollPosition\n });\n bookmarkButton.textContent = \"Remove Bookmark\";\n bookmarkButton.classList.add(\"bookmarked\");\n }\n localStorage.setItem(\"bookmarks\", JSON.stringify(bookmarks));\n });\n bookmarkContainer.appendChild(bookmarkButton);\n\n var bookmarksList = document.createElement(\"ul\");\n bookmarksList.classList.add(\"bookmark-list\");\n updateBookmarksList();\n function updateBookmarksList() {\n bookmarksList.innerHTML = \"\"; \n\n bookmarks.forEach(function (bookmark) {\n var listItem = document.createElement(\"li\");\n var link = document.createElement(\"a\");\n link.textContent = bookmark.title;\n link.href = \"#\"; \n link.classList.add(\"link\");\n link.addEventListener(\"click\", function () {\n contentArea.scrollTop = bookmark.position;\n });\n listItem.appendChild(link);\n bookmarksList.appendChild(listItem);\n });\n bookmarkContainer.appendChild(bookmarksList);\n }\n}\n\nfunction createPersonalizedRecommendations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var recommendationsList = document.createElement(\"ul\");\n recommendationsList.classList.add(\"list\");\n contentData.recommendations.forEach(function (recommendation) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <a href=\\\"\".concat(recommendation.link, \"\\\" class=\\\"link\\\">\").concat(recommendation.title, \"</a>\\n <p class=\\\"paragraph\\\">\").concat(recommendation.description, \"</p>\\n \"); \n recommendationsList.appendChild(listItem);\n });\n contentArea.appendChild(recommendationsList);\n}\n\nfunction createInteractiveQuestionnaire(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var questionnaireForm = document.createElement(\"form\");\n questionnaireForm.classList.add(\"questionnaire-form\");\n contentArea.appendChild(questionnaireForm); \n\n contentData.questions.forEach(function (question, index) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n questionDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n questionDiv.appendChild(optionsList);\n } else if (question.type === \"openEnded\") {\n questionDiv.innerHTML += \"<textarea class=\\\"textarea\\\" id=\\\"answer\".concat(index, \"\\\"></textarea>\");\n } else if (question.type === \"ratingScale\") {\n questionDiv.innerHTML += '<div class=\"rating\">';\n for (var i = 1; i <= 5; i++) {\n questionDiv.innerHTML += \"<input type=\\\"radio\\\" id=\\\"rating\".concat(index, \"-\").concat(i, \"\\\" name=\\\"q\").concat(index, \"\\\" value=\\\"\").concat(i, \"\\\"><label for=\\\"rating\").concat(index, \"-\").concat(i, \"\\\">\").concat(i, \"</label>\");\n }\n questionDiv.innerHTML += \"</div>\";\n }\n questionnaireForm.appendChild(questionDiv);\n });\n\n var submitButton = document.createElement(\"button\");\n submitButton.type = \"submit\";\n submitButton.textContent = \"Submit Questionnaire\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n\n submitButton.addEventListener(\"submit\", function (event) {\n event.preventDefault();\n checkQuizAnswers178(contentData, questionnaireForm); \n });\n questionnaireForm.appendChild(submitButton);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n}\nfunction checkQuizAnswers178(contentData, quizForm) {\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n var score = 0;\n contentData.questions.forEach(function (question, index) {\n var userInput;\n var isCorrect;\n if (question.type === \"multipleChoice\" || question.type === \"ratingScale\") {\n var selectedOption = quizForm.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n userInput = selectedOption ? selectedOption.value : null;\n isCorrect = userInput === question.answer;\n } else if (question.type === \"openEnded\") {\n userInput = quizForm.querySelector(\"#answer\".concat(index)).value.trim();\n isCorrect = checkOpenEndedAnswer(userInput, question.answer);\n }\n var feedbackMessage = document.createElement(\"p\");\n if (userInput === null) {\n feedbackMessage.textContent = \"Please answer all questions.\";\n feedbackMessage.classList.add(\"incorrect-feedback\"); \n } else {\n var _question$feedback3, _question$feedback4;\n feedbackMessage.textContent = isCorrect ? ((_question$feedback3 = question.feedback) === null || _question$feedback3 === void 0 ? void 0 : _question$feedback3.correct) || \"Correct!\" : ((_question$feedback4 = question.feedback) === null || _question$feedback4 === void 0 ? void 0 : _question$feedback4.incorrect) || \"Incorrect!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n if (isCorrect) score++;\n }\n feedbackArea.appendChild(feedbackMessage);\n });\n feedbackArea.innerHTML += \"<p>Your score: \".concat(score, \" out of \").concat(contentData.questions.length, \"</p>\");\n}\n\nfunction checkOpenEndedAnswer(userInput, correctAnswer) {\n return userInput.toLowerCase().includes(correctAnswer.toLowerCase());\n}\n\nfunction createTextToSpeech(contentData) {\n var _contentData$voiceOpt, _contentData$voiceOpt2;\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var paragraph = document.createElement(\"p\");\n paragraph.textContent = contentData.content;\n paragraph.classList.add(\"paragraph\");\n contentArea.appendChild(paragraph);\n\n var ttsButton = document.createElement(\"button\");\n ttsButton.textContent = \"Read Aloud\";\n ttsButton.classList.add(\"btn\", \"btn-primary\");\n\n var speedLabel = document.createElement(\"label\");\n speedLabel.htmlFor = \"speedInput\";\n speedLabel.textContent = \"Speed:\";\n contentArea.appendChild(speedLabel);\n var speedInput = document.createElement(\"input\");\n speedInput.type = \"range\";\n speedInput.min = \"0.5\";\n speedInput.max = \"2\";\n speedInput.step = \"0.1\";\n speedInput.value = ((_contentData$voiceOpt = contentData.voiceOptions) === null || _contentData$voiceOpt === void 0 ? void 0 : _contentData$voiceOpt.speed) || 1; \n speedInput.classList.add(\"slider\");\n contentArea.appendChild(speedInput);\n var pitchLabel = document.createElement(\"label\");\n pitchLabel.htmlFor = \"pitchInput\";\n pitchLabel.textContent = \"Pitch:\";\n contentArea.appendChild(pitchLabel);\n var pitchInput = document.createElement(\"input\");\n pitchInput.type = \"range\";\n pitchInput.min = \"0.5\";\n pitchInput.max = \"2\";\n pitchInput.step = \"0.1\";\n pitchInput.value = ((_contentData$voiceOpt2 = contentData.voiceOptions) === null || _contentData$voiceOpt2 === void 0 ? void 0 : _contentData$voiceOpt2.pitch) || 1; \n pitchInput.classList.add(\"slider\");\n contentArea.appendChild(pitchInput);\n var utterance = null; \n var isSpeaking = false; \n\n ttsButton.addEventListener(\"click\", function () {\n if (!isSpeaking) {\n utterance = new SpeechSynthesisUtterance(contentData.content);\n applyVoiceOptions(utterance, contentData);\n speechSynthesis.speak(utterance);\n isSpeaking = true;\n utterance.onend = function () {\n isSpeaking = false; \n ttsButton.textContent = \"Read Aloud\"; \n };\n } else {\n if (speechSynthesis.paused) {\n speechSynthesis.resume();\n ttsButton.textContent = \"Pause\";\n } else {\n speechSynthesis.pause();\n ttsButton.textContent = \"Resume\";\n }\n }\n });\n\n speedInput.addEventListener(\"input\", function () {\n if (utterance) {\n utterance.rate = parseFloat(speedInput.value);\n if (isSpeaking) {\n speechSynthesis.cancel();\n speechSynthesis.speak(utterance);\n }\n }\n });\n pitchInput.addEventListener(\"input\", function () {\n if (utterance) {\n utterance.pitch = parseFloat(pitchInput.value);\n if (isSpeaking) {\n speechSynthesis.cancel();\n speechSynthesis.speak(utterance);\n }\n }\n });\n contentArea.appendChild(ttsButton);\n\n if (contentData.voiceOptions && contentData.voiceOptions.accent) {\n var voiceSelect = document.createElement(\"select\");\n voiceSelect.classList.add(\"select\");\n var availableVoices = speechSynthesis.getVoices();\n availableVoices.forEach(function (voice) {\n var option = document.createElement(\"option\");\n option.value = voice.name;\n option.textContent = voice.name;\n voiceSelect.appendChild(option);\n\n if (voice.name.includes(contentData.voiceOptions.accent)) {\n option.selected = true;\n if (utterance) {\n utterance.voice = voice;\n }\n }\n });\n voiceSelect.addEventListener(\"change\", function () {\n if (utterance) {\n var selectedVoice = availableVoices.find(function (voice) {\n return voice.name === voiceSelect.value;\n });\n utterance.voice = selectedVoice;\n if (isSpeaking) {\n speechSynthesis.cancel(); \n speechSynthesis.speak(utterance); \n }\n }\n });\n contentArea.appendChild(voiceSelect);\n }\n\n function applyVoiceOptions(utterance, contentData) {\n if (contentData.voiceOptions) {\n utterance.rate = contentData.voiceOptions.speed || 1;\n utterance.pitch = contentData.voiceOptions.pitch || 1;\n if (contentData.voiceOptions.accent) {\n var _availableVoices = speechSynthesis.getVoices();\n var voice = _availableVoices.find(function (v) {\n return v.name.includes(contentData.voiceOptions.accent);\n });\n if (voice) {\n utterance.voice = voice;\n } else {\n console.warn(\"Specified accent not available, using default voice.\");\n }\n }\n }\n }\n}\n\nfunction createMultimodalLearning(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var contentContainer = document.createElement(\"div\");\n contentContainer.classList.add(\"multimodal-container\", \"wrap\"); \n contentArea.appendChild(contentContainer);\n contentData.content.forEach(function (item) {\n var mediaContainer = document.createElement(\"div\");\n mediaContainer.classList.add(\"media-item\");\n if (item.title) {\n var itemTitle = document.createElement(\"h3\");\n itemTitle.textContent = item.title;\n itemTitle.classList.add(\"title\");\n mediaContainer.appendChild(itemTitle);\n }\n if (item.description) {\n var itemDescription = document.createElement(\"p\");\n itemDescription.textContent = item.description;\n itemDescription.classList.add(\"paragraph\");\n mediaContainer.appendChild(itemDescription);\n }\n switch (item.FormatType) {\n case \"text\":\n var textContent = document.createElement(\"p\");\n textContent.textContent = item.data;\n textContent.classList.add(\"paragraph\");\n mediaContainer.appendChild(textContent);\n break;\n case \"audio\":\n var audioPlayer = document.createElement(\"audio\");\n audioPlayer.src = item.data;\n audioPlayer.controls = true;\n audioPlayer.classList.add(\"audio\"); \n mediaContainer.appendChild(audioPlayer);\n break;\n case \"video\":\n var videoContainer = document.createElement(\"div\");\n videoContainer.classList.add(\"video-container\");\n var iframe = document.createElement(\"iframe\");\n if (item.data.includes(\"youtube.com/watch\")) {\n var videoId = item.data.split(\"v=\")[1];\n iframe.src = \"https://www.youtube.com/embed/\".concat(videoId);\n } else {\n iframe.src = item.data;\n }\n iframe.width = \"560\";\n iframe.height = \"315\";\n iframe.frameBorder = \"0\";\n iframe.allowFullscreen = true;\n videoContainer.appendChild(iframe);\n mediaContainer.appendChild(videoContainer);\n break;\n default:\n console.warn(\"Unknown content type: \".concat(item.FormatType));\n break;\n }\n contentContainer.appendChild(mediaContainer);\n });\n}\n\nfunction createPersonalizedStudyPath(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentModuleIndex = 0;\n\n function updateContent(_x) {\n return _updateContent.apply(this, arguments);\n } \n function _updateContent() {\n _updateContent = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(moduleIndex) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n currentModuleIndex = moduleIndex;\n displayModule(contentData.modules[moduleIndex]);\n case 2:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _updateContent.apply(this, arguments);\n }\n function displayModule(module) {\n contentArea.innerHTML = \"\"; \n contentArea.innerHTML += \"<h2 class=\\\"title\\\">\".concat(contentData.title, \"</h2>\");\n contentArea.innerHTML += \"\\n <details open> \\n <summary class=\\\"goal\\\">\".concat(module.title, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(module.description || \"\", \"</p> \\n <ul class=\\\"resource-list\\\">\\n \").concat(module.resources.map(function (resource) {\n return \"<li><a href=\\\"\".concat(resource, \"\\\" class=\\\"link\\\">\").concat(resource, \"</a></li>\");\n }).join(\"\"), \"\\n </ul>\\n \").concat(module.activities ? \"<p class=\\\"paragraph\\\">Activities: \".concat(module.activities.join(\", \"), \"</p>\") : \"\", \"\\n \").concat(module.assessment ? \"<p class=\\\"paragraph\\\">Assessment: \".concat(module.assessment, \"</p>\") : \"\", \"\\n <button class=\\\"btn btn-primary assess-button\\\" data-assessment-id=\\\"\").concat(module.assessment, \"\\\">Complete Assessment</button> \\n </details>\\n \");\n var assessButton = document.querySelector('.assess-button');\n if (assessButton) {\n assessButton.addEventListener(\"click\", function () {\n assessAndMove(assessButton.dataset.assessmentId);\n });\n }\n }\n\n function assessAndMove(_x2) {\n return _assessAndMove.apply(this, arguments);\n } \n function _assessAndMove() {\n _assessAndMove = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2(assessmentId) {\n var assessmentResult, passed, nextModuleIndex;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return fetchAssessment(assessmentId);\n case 3:\n assessmentResult = _context2.sent;\n passed = checkAssessmentResult(assessmentResult);\n if (passed) {\n nextModuleIndex = currentModuleIndex + 1;\n if (nextModuleIndex < contentData.modules.length) {\n updateContent(nextModuleIndex);\n } else {\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Congratulations! You have completed the study path.</p>\";\n }\n } else {\n displayErrorMessage(\"Assessment not passed. Please try again or review the material.\");\n }\n _context2.next = 12;\n break;\n case 8:\n _context2.prev = 8;\n _context2.t0 = _context2[\"catch\"](0);\n console.error(\"Error in assessment:\", _context2.t0);\n displayErrorMessage(\"An error occurred during the assessment.\");\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 8]]);\n }));\n return _assessAndMove.apply(this, arguments);\n }\n function fetchAssessment(assessmentId) {\n console.log(\"Fetching assessment:\", assessmentId);\n }\n function checkAssessmentResult(assessmentResult) {\n console.log(\"Checking assessment result:\", assessmentResult);\n return true;\n }\n\n displayModule(contentData.modules[0]);\n}\n\nfunction createPracticeExercisesWithFeedback(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.exercises.forEach(function (exercise, index) {\n var exerciseDiv = document.createElement(\"div\");\n exerciseDiv.classList.add(\"exercise\");\n exerciseDiv.id = \"exercise-\".concat(index);\n var exercisePrompt = document.createElement(\"p\");\n exercisePrompt.textContent = exercise.exercise;\n exercisePrompt.classList.add(\"paragraph\");\n exerciseDiv.appendChild(exercisePrompt);\n var answerInput = document.createElement(\"input\");\n answerInput.type = exercise.answerType || \"text\";\n answerInput.classList.add(\"input\");\n answerInput.id = \"exercise-answer-\".concat(index);\n exerciseDiv.appendChild(answerInput);\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkExerciseAnswer(exercise, index);\n });\n exerciseDiv.appendChild(checkButton);\n contentArea.appendChild(exerciseDiv);\n });\n}\n\nfunction checkExerciseAnswer(exercise, index) {\n var exerciseDiv = document.getElementById(\"exercise-\".concat(index));\n var feedbackArea = exerciseDiv.querySelector(\".feedback\");\n\n var userInput = document.getElementById(\"exercise-answer-\".concat(index)).value.trim().toLowerCase();\n var isCorrect = false;\n\n for (var correctAnswer in exercise.feedback) {\n if (userInput === correctAnswer.toLowerCase()) {\n isCorrect = true;\n break; \n }\n }\n\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? exercise.feedback[userInput] || \"Correct!\" : \"Incorrect.\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n\n if (feedbackArea) {\n feedbackArea.innerHTML = \"\";\n feedbackArea.appendChild(feedbackMessage);\n } else {\n feedbackArea = document.createElement(\"div\");\n feedbackArea.classList.add(\"feedback\");\n feedbackArea.appendChild(feedbackMessage);\n exerciseDiv.appendChild(feedbackArea);\n }\n}\n\nfunction createAdaptableContent(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevel = \"original\"; \n var paragraph = document.createElement(\"p\"); \n paragraph.classList.add(\"paragraph\");\n contentArea.appendChild(paragraph); \n\n var levelsContainer = document.createElement(\"div\");\n levelsContainer.classList.add(\"levels-container\");\n [\"beginner\", \"original\", \"advanced\"].forEach(function (level) {\n if (contentData.content[level]) {\n var button = document.createElement(\"button\");\n button.textContent = level.charAt(0).toUpperCase() + level.slice(1);\n button.classList.add(\"btn\", \"btn-secondary\");\n if (currentLevel === level) button.classList.add(\"active\");\n button.addEventListener(\"click\", function () {\n currentLevel = level;\n updateContent(contentData.content[level]);\n updateButtonStyles(level);\n });\n levelsContainer.appendChild(button);\n }\n });\n contentArea.appendChild(levelsContainer);\n\n function updateContent(newContent) {\n if (paragraph) {\n paragraph.textContent = newContent; \n }\n }\n\n function updateButtonStyles(activeLevel) {\n levelsContainer.querySelectorAll(\".btn\").forEach(function (button) {\n button.classList.remove(\"active\");\n if (button.textContent.toLowerCase() === activeLevel) {\n button.classList.add(\"active\");\n }\n });\n }\n\n updateContent(contentData.content[currentLevel]);\n}\nfunction createContentCuration(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var curatedContentList = document.createElement(\"ul\");\n curatedContentList.classList.add(\"curated-content-list\", \"list\");\n contentData.resources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n listItem.classList.add(\"resource-item\", \"flex-container\"); \n\n var checkbox = document.createElement(\"input\");\n checkbox.type = \"checkbox\";\n checkbox.id = \"resource-\".concat(resource.title.replace(/\\s+/g, \"-\").toLowerCase());\n checkbox.classList.add(\"checkbox\");\n listItem.appendChild(checkbox);\n\n var label = document.createElement(\"label\");\n label.htmlFor = checkbox.id;\n var link = document.createElement(\"a\");\n link.textContent = resource.title;\n link.href = resource.link;\n link.target = \"_blank\";\n link.classList.add(\"link\");\n label.appendChild(link);\n\n var description = document.createElement(\"span\");\n description.textContent = resource.description;\n description.classList.add(\"paragraph\");\n label.appendChild(description);\n listItem.appendChild(label); \n curatedContentList.appendChild(listItem);\n });\n contentArea.appendChild(curatedContentList);\n\n var buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"button-container\", \"centered-button\");\n var saveButton = document.createElement(\"button\");\n saveButton.textContent = \"Save Selection\";\n saveButton.classList.add(\"btn\", \"btn-primary\");\n saveButton.addEventListener(\"click\", function () {\n console.log(\"Save button clicked\");\n });\n buttonContainer.appendChild(saveButton);\n var clearButton = document.createElement(\"button\");\n clearButton.textContent = \"Clear Selection\";\n clearButton.classList.add(\"btn\", \"btn-secondary\");\n clearButton.addEventListener(\"click\", function () {\n console.log(\"Clear button clicked\");\n });\n buttonContainer.appendChild(clearButton);\n contentArea.appendChild(buttonContainer);\n}\n\nfunction createNestedBulletPoints(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n function createNestedList(points) {\n var list = document.createElement(\"ul\");\n points.forEach(function (point) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = point.text;\n\n if (point.subPoints && point.subPoints.length > 0) {\n listItem.appendChild(createNestedList(point.subPoints)); \n }\n list.appendChild(listItem);\n });\n return list;\n }\n\n var nestedList = createNestedList(contentData.points);\n contentArea.appendChild(nestedList);\n}\n\nfunction createConceptHierarchy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevel = 1;\n var hierarchyContainer = document.createElement(\"div\");\n hierarchyContainer.classList.add(\"hierarchy-container\");\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n contentArea.appendChild(navButtons);\n var prevLevelButton = document.createElement(\"button\");\n prevLevelButton.textContent = \"Previous Level\";\n prevLevelButton.classList.add(\"btn\", \"btn-secondary\");\n prevLevelButton.disabled = true; \n navButtons.appendChild(prevLevelButton);\n var nextLevelButton = document.createElement(\"button\");\n nextLevelButton.textContent = \"Next Level\";\n nextLevelButton.classList.add(\"btn\", \"btn-primary\");\n navButtons.appendChild(nextLevelButton);\n\n function updateButtonStates() {\n prevLevelButton.disabled = currentLevel === 1;\n nextLevelButton.disabled = currentLevel === getDeepestLevel(contentData.hierarchy);\n }\n\n function renderHierarchy(levels, parentElement) {\n parentElement.innerHTML = \"\"; \n var levelContainer = document.createElement(\"ul\");\n levelContainer.classList.add(\"list\", \"hierarchy-level\");\n levels.forEach(function (level) {\n if (level.level === currentLevel) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<h3>\".concat(level.concept, \"</h3>\");\n\n var descriptionParagraph = document.createElement(\"p\");\n descriptionParagraph.classList.add(\"paragraph\");\n descriptionParagraph.textContent = level.description;\n listItem.appendChild(descriptionParagraph);\n addCoverAndRevealFunctionality(descriptionParagraph, \"Description\");\n\n if (level.children && level.children.length > 0) {\n var childrenContainer = document.createElement(\"div\");\n childrenContainer.classList.add(\"children\");\n renderHierarchy(level.children, childrenContainer);\n listItem.appendChild(childrenContainer);\n }\n levelContainer.appendChild(listItem);\n }\n });\n parentElement.appendChild(levelContainer);\n updateButtonStates();\n }\n\n function getDeepestLevel(hierarchy) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var deepest = level;\n hierarchy.forEach(function (node) {\n if (node.children && node.children.length > 0) {\n var childDeepest = getDeepestLevel(node.children, level + 1);\n deepest = Math.max(deepest, childDeepest);\n }\n });\n return deepest;\n }\n\n prevLevelButton.addEventListener(\"click\", function () {\n currentLevel--;\n renderHierarchy(contentData.hierarchy, hierarchyContainer);\n });\n nextLevelButton.addEventListener(\"click\", function () {\n currentLevel++;\n renderHierarchy(contentData.hierarchy, hierarchyContainer);\n });\n renderHierarchy(contentData.hierarchy, hierarchyContainer);\n contentArea.appendChild(hierarchyContainer);\n updateButtonStates();\n}\n\nfunction createAdaptiveBranchingStory(contentData) {\n var _contentData$story$;\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n var currentNodeId = ((_contentData$story$ = contentData.story[0]) === null || _contentData$story$ === void 0 ? void 0 : _contentData$story$.id) || \"start\"; \n\n function displayNode(nodeId) {\n var node = contentData.story.find(function (n) {\n return n.id === nodeId;\n });\n if (!node) {\n displayErrorMessage(\"Node not found for ID: \".concat(nodeId));\n return; \n }\n\n var textElement = document.createElement(\"p\");\n textElement.textContent = node.text;\n textElement.classList.add(\"paragraph\");\n contentArea.appendChild(textElement);\n\n if (node.choices && node.choices.length > 0) {\n var choicesList = document.createElement(\"ul\");\n choicesList.classList.add(\"list\");\n node.choices.forEach(function (choice) {\n var choiceItem = document.createElement(\"li\");\n var button = document.createElement(\"button\");\n button.textContent = choice.text;\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n displayNode(choice.nextNodeId); \n });\n choiceItem.appendChild(button);\n choicesList.appendChild(choiceItem);\n });\n contentArea.appendChild(choicesList);\n } else {\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">The End</p>\";\n }\n }\n displayNode(currentNodeId); \n}\n\nfunction createPersonalizedConceptMaps(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"content-area\";\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var mapContainer = document.createElement(\"div\");\n mapContainer.id = \"concept-map-container\";\n contentArea.appendChild(mapContainer);\n\n var nodes = contentData.nodes.map(function (node) {\n return _objectSpread({}, node);\n });\n var links = contentData.links.map(function (link) {\n return _objectSpread({}, link);\n }); \n\n var currentDraggingNode = null;\n\n function renderLink(link) {\n var sourceNode = document.getElementById(link.source);\n var targetNode = document.getElementById(link.target);\n if (sourceNode && targetNode) {\n var sourceRect = sourceNode.getBoundingClientRect();\n var targetRect = targetNode.getBoundingClientRect();\n var centerX1 = sourceRect.left + sourceRect.width / 2;\n var centerY1 = sourceRect.top + sourceRect.height / 2;\n var centerX2 = targetRect.left + targetRect.width / 2;\n var centerY2 = targetRect.top + targetRect.height / 2;\n var angle = Math.atan2(centerY2 - centerY1, centerX2 - centerX1) * 180 / Math.PI;\n var length = Math.sqrt(Math.pow(centerX2 - centerX1, 2) + Math.pow(centerY2 - centerY1, 2));\n var line = document.createElement('div');\n line.classList.add(\"link-line\"); \n line.style.width = \"\".concat(length, \"px\");\n line.style.transform = \"translate(\".concat(centerX1, \"px, \").concat(centerY1, \"px) rotate(\").concat(angle, \"deg)\");\n\n document.body.appendChild(line); \n }\n console.log(\"Render link from \".concat(link.source, \" to \").concat(link.target, \" with label: \").concat(link.label));\n }\n\n nodes.forEach(function (node) {\n var nodeElement = document.createElement(\"div\");\n nodeElement.textContent = node.label;\n nodeElement.classList.add(\"concept-map-node\", \"btn\", \"btn-secondary\");\n nodeElement.id = node.id;\n\n nodeElement.setAttribute(\"draggable\", \"true\");\n nodeElement.addEventListener(\"dragstart\", dragStart);\n nodeElement.addEventListener(\"dragend\", dragEnd);\n nodeElement.addEventListener(\"dragover\", dragOver);\n mapContainer.appendChild(nodeElement);\n });\n\n links.forEach(renderLink);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Connections\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkConnections(links, contentData.feedback, feedbackArea);\n });\n contentArea.appendChild(checkButton);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n\n function dragStart(event) {\n currentDraggingNode = event.target;\n }\n function dragOver(event) {\n event.preventDefault();\n }\n function dragEnd(event) {\n var targetNode = event.target;\n if (targetNode !== currentDraggingNode && targetNode.classList.contains(\"concept-map-node\")) {\n var linkLabel = prompt(\"Enter a label for the connection:\");\n if (linkLabel) {\n links.push({\n source: currentDraggingNode.id,\n target: targetNode.id,\n label: linkLabel\n });\n renderLink({\n source: currentDraggingNode.id,\n target: targetNode.id,\n label: linkLabel\n });\n console.log(\"New link:\", links);\n }\n }\n currentDraggingNode = null;\n }\n}\nfunction checkConnections(userLinks, feedbackText, feedbackArea) {\n\n feedbackArea.innerHTML = \"<h3>Feedback</h3><p>\".concat(feedbackText, \"</p>\");\n}\n\n\nfunction createExpositoryWriting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Topic\", contentData.topic);\n (0, _SharedScript.addLessonSection)(contentArea, \"Introduction\", contentData.introduction);\n (0, _SharedScript.addLessonSection)(contentArea, \"Body\", contentData.body, 'p'); \n (0, _SharedScript.addLessonSection)(contentArea, \"Conclusion\", contentData.conclusion);\n}\n\nfunction createNarrativeDescriptions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Description\", contentData.description, 'p');\n}\n\nfunction createAnalogiesAndMetaphors(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.items.forEach(function (item) {\n var itemDiv = document.createElement(\"div\");\n itemDiv.classList.add(\"analogy-metaphor-item\");\n var conceptHeading = document.createElement(\"h3\");\n conceptHeading.textContent = item.concept;\n itemDiv.appendChild(conceptHeading);\n var analogyMetaphorParagraph = document.createElement(\"p\");\n analogyMetaphorParagraph.textContent = \"\".concat(item.figureOfSpeech === \"simile\" ? \"Simile:\" : \"Metaphor:\", \" \").concat(item.text);\n analogyMetaphorParagraph.classList.add(\"paragraph\");\n itemDiv.appendChild(analogyMetaphorParagraph);\n var explanationParagraph = document.createElement(\"p\");\n explanationParagraph.textContent = item.explanation;\n explanationParagraph.classList.add(\"paragraph\");\n itemDiv.appendChild(explanationParagraph);\n contentArea.appendChild(itemDiv);\n });\n}\n\n\nfunction createStructuralMarkers(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.classList.add('structural-markers-activity');\n\n if (!contentData || typeof contentData.title !== 'string' || typeof contentData.content !== 'string' || !Array.isArray(contentData.markers) || contentData.markers.some(function (marker) {\n return _typeof(marker) !== 'object' || !marker.type || !['heading', 'subheading', 'transition'].includes(marker.type) || typeof marker.text !== 'string';\n })) {\n console.error(\"Invalid contentData for Structural Markers. Check required properties and types.\");\n return;\n }\n\n var contentSections = contentData.content.split(/<h3>/);\n contentSections.shift(); \n\n contentData.markers.forEach(function (marker, index) {\n var markerContainer = document.createElement(\"div\");\n\n var markerElement = document.createElement(marker.type === \"heading\" ? \"h3\" : \"p\");\n markerElement.textContent = marker.text;\n\n if (marker.type === \"heading\") {\n markerElement.classList.add(\"title\");\n } else if (marker.type === \"subheading\") {\n markerElement.classList.add(\"subheading\");\n } else {\n markerElement.classList.add(\"transition\");\n }\n markerContainer.appendChild(markerElement);\n\n var contentSection = contentSections[index];\n\n if (contentSection) {\n if (marker.type === 'heading' && contentSection.startsWith('<h3>')) {\n contentSection = '<h3>' + contentSection;\n }\n var contentParagraph = document.createElement(\"p\");\n contentParagraph.classList.add(\"paragraph\");\n contentParagraph.innerHTML = contentSection;\n markerContainer.appendChild(contentParagraph);\n\n addCoverAndRevealFunctionality(contentParagraph, \"Content\");\n }\n\n contentArea.appendChild(markerContainer);\n });\n}\n\nfunction createLogicalProgression(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var stepsContainer = document.createElement(\"ol\"); \n stepsContainer.classList.add(\"list\"); \n\n contentData.steps.forEach(function (step) {\n var stepItem = document.createElement(\"li\");\n stepItem.innerHTML = \"\\n <h3>\".concat(step.step, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(step.explanation, \"</p>\\n \");\n stepsContainer.appendChild(stepItem); \n });\n contentArea.appendChild(stepsContainer); \n}\n\nfunction createFaq(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var faqContainer = document.createElement(\"div\");\n faqContainer.classList.add(\"faq-container\");\n contentData.faqs.forEach(function (faq, index) {\n var faqItem = document.createElement(\"details\");\n faqItem.innerHTML = \"\\n <summary class=\\\"paragraph\\\">\".concat(faq.question, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(faq.answer, \"</p>\\n \");\n faqContainer.appendChild(faqItem);\n });\n contentArea.appendChild(faqContainer);\n}\n\nfunction createScenarioBasedExplanation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.scenarios.forEach(function (scenario, index) {\n var scenarioDiv = document.createElement(\"div\");\n scenarioDiv.classList.add(\"scenario\");\n var scenarioHeading = document.createElement(\"h3\"); \n scenarioHeading.textContent = \"Scenario \".concat(index + 1);\n scenarioDiv.appendChild(scenarioHeading);\n var scenarioText = document.createElement(\"p\");\n scenarioText.textContent = scenario.scenario;\n scenarioText.classList.add(\"paragraph\");\n scenarioDiv.appendChild(scenarioText);\n var explanation = document.createElement(\"p\");\n explanation.textContent = scenario.explanation;\n explanation.classList.add(\"paragraph\");\n explanation.style.display = \"none\"; \n scenarioDiv.appendChild(explanation);\n var revealButton = document.createElement(\"button\");\n revealButton.textContent = \"Reveal Explanation\";\n revealButton.classList.add(\"btn\", \"btn-primary\");\n revealButton.addEventListener(\"click\", function () {\n explanation.style.display = \"block\"; \n revealButton.style.display = \"none\"; \n });\n scenarioDiv.appendChild(revealButton);\n contentArea.appendChild(scenarioDiv);\n });\n}\n\nfunction applyVisualTextFormatting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || typeof contentData.title !== 'string' || typeof contentData.content !== 'string' || !Array.isArray(contentData.formatting) || contentData.formatting.some(function (format) {\n return _typeof(format) !== 'object' || !format.text || !Array.isArray(format.style) || format.style.some(function (style) {\n return !['bold', 'italic', 'highlight', 'underline'].includes(style);\n }) || format.color && typeof format.color !== 'string';\n })) {\n console.error(\"Invalid contentData for Visual Text Formatting. Check required properties and types.\");\n return;\n }\n var formattedContent = contentData.content;\n contentData.formatting.forEach(function (format) {\n var searchRegex = new RegExp(escapeRegExp(format.text), 'g');\n\n var styleString = '';\n if (format.style.includes('bold')) {\n styleString += 'font-weight: bold;';\n }\n if (format.style.includes('italic')) {\n styleString += 'font-style: italic;';\n }\n if (format.style.includes('highlight') && format.color) {\n styleString += \"background-color: \".concat(format.color, \"; padding: 0.2em; border-radius: 0.3em;\");\n }\n if (format.style.includes('underline')) {\n styleString += 'text-decoration: underline;';\n }\n var replaceString = \"<span style=\\\"\".concat(styleString, \"\\\">\").concat(format.text, \"</span>\");\n formattedContent = formattedContent.replace(searchRegex, replaceString);\n });\n var contentParagraph = document.createElement(\"p\");\n contentParagraph.classList.add(\"paragraph\");\n contentParagraph.innerHTML = formattedContent;\n contentArea.appendChild(contentParagraph);\n}\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n\nfunction createConceptualOverview(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var overview = document.createElement(\"p\");\n overview.textContent = contentData.overview;\n overview.classList.add(\"paragraph\");\n contentArea.appendChild(overview);\n}\n\nfunction createIncrementalComplexity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevelIndex = 0;\n displayLevel(currentLevelIndex);\n function displayLevel(index) {\n var level = contentData.levels[index];\n contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(level.content, \"</p>\");\n\n var buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Level\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayLevel(index - 1);\n });\n buttonContainer.appendChild(prevButton);\n }\n if (index < contentData.levels.length - 1) {\n var _nextButton = document.createElement(\"button\");\n _nextButton.textContent = \"Next Level\";\n _nextButton.classList.add(\"btn\", \"btn-primary\");\n _nextButton.addEventListener(\"click\", function () {\n return displayLevel(index + 1);\n });\n buttonContainer.appendChild(_nextButton);\n }\n contentArea.appendChild(buttonContainer);\n }\n}\n\nfunction createSocraticQuestions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.content, \"</p>\");\n var questionList = document.createElement(\"ol\");\n questionList.classList.add(\"list\");\n contentData.questions.forEach(function (question, index) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = question;\n questionList.appendChild(listItem);\n\n var responseInput = document.createElement(\"textarea\");\n responseInput.classList.add(\"textarea\");\n responseInput.placeholder = \"Your response...\";\n listItem.appendChild(responseInput);\n });\n contentArea.appendChild(questionList);\n}\n\nfunction createComparativeTable(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var table = document.createElement(\"table\");\n table.classList.add(\"table\", \"table-striped\"); \n\n var headerRow = table.insertRow();\n contentData.headers.forEach(function (headerText) {\n var th = document.createElement(\"th\");\n th.textContent = headerText;\n headerRow.appendChild(th);\n });\n\n contentData.rows.forEach(function (row) {\n var tr = table.insertRow();\n row.forEach(function (cellData) {\n var td = tr.insertCell();\n td.textContent = cellData;\n });\n });\n contentArea.appendChild(table);\n}\n\nfunction createContrastingCases(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var casesContainer = document.createElement(\"div\");\n casesContainer.classList.add(\"cases-container\");\n contentData.cases.forEach(function (caseItem) {\n var caseDiv = document.createElement(\"div\");\n caseDiv.classList.add(\"case\");\n var caseTitle = document.createElement(\"h3\"); \n caseTitle.textContent = caseItem.title;\n caseDiv.appendChild(caseTitle);\n var description = document.createElement(\"p\");\n description.textContent = caseItem.description;\n description.classList.add(\"paragraph\");\n caseDiv.appendChild(description);\n addCoverAndRevealFunctionality(description, \"Description\");\n casesContainer.appendChild(caseDiv);\n });\n contentArea.appendChild(casesContainer);\n}\n\nfunction createComparativeAnalysis(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var analysisPointsList = document.createElement(\"ul\");\n analysisPointsList.classList.add(\"analysis-points\", \"list\");\n contentData.analysisPoints.forEach(function (point) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = point;\n analysisPointsList.appendChild(listItem);\n });\n contentArea.appendChild(analysisPointsList);\n var comparisonTable = document.createElement(\"table\");\n comparisonTable.classList.add(\"table\", \"table-striped\");\n var headerRow = comparisonTable.insertRow();\n headerRow.insertCell().textContent = \"Source\";\n headerRow.insertCell().textContent = \"Text\";\n contentData.texts.forEach(function (text) {\n var row = comparisonTable.insertRow();\n row.insertCell().textContent = text.source;\n var textCell = row.insertCell();\n textCell.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(text.text, \"</p>\"); \n });\n contentArea.appendChild(comparisonTable);\n}\n\n\nfunction createPersonalizedFeedback(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var feedbackList = document.createElement(\"ul\");\n feedbackList.classList.add(\"list\");\n contentData.feedback.forEach(function (feedbackItem) {\n var isConditionMet = checkFeedbackCondition(feedbackItem.condition);\n if (isConditionMet) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = feeedbackItem.message;\n listItem.classList.add(feedbackItem.condition === \"correctAnswer\" ? \"correct-feedback\" : \"incorrect-feedback\"); \n feedbackList.appendChild(listItem);\n }\n });\n contentArea.appendChild(feedbackList);\n\n function checkFeedbackCondition(condition) {\n if (condition === \"correctAnswer\") return Math.random() < 0.5; \n else if (condition === \"incorrectAnswer\") return Math.random() >= 0.5;else return false; \n }\n}\n\n},{\"./SharedScript.js\":30}],19:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAIChatbot = createAIChatbot;\nexports.createAIPoweredWritingAssistant = createAIPoweredWritingAssistant;\nexports.createAdaptiveLearning = createAdaptiveLearning;\nexports.createAdaptiveQuiz = createAdaptiveQuiz;\nexports.createAnnotations = createAnnotations;\nexports.createAudioNarration = createAudioNarration;\nexports.createBulletPoints = createBulletPoints;\nexports.createCaseStudy = createCaseStudy;\nexports.createCauseAndEffect = createCauseAndEffect;\nexports.createChunkedText = createChunkedText;\nexports.createClozePassage = createClozePassage;\nexports.createConceptMap = createConceptMap;\nexports.createCriticalThinkingExercises = createCriticalThinkingExercises;\nexports.createCrosswordOrWordSearch = createCrosswordOrWordSearch;\nexports.createDefinitions = createDefinitions;\nexports.createDefinitionsWithEtymology = createDefinitionsWithEtymology;\nexports.createDetailedSummary = createDetailedSummary;\nexports.createDragAndDropActivity = createDragAndDropActivity;\nexports.createDragAndDropTextSequencing = createDragAndDropTextSequencing;\nexports.createDropZones97 = createDropZones97;\nexports.createErrorCorrectionExercise = createErrorCorrectionExercise;\nexports.createExamPreparationTips = createExamPreparationTips;\nexports.createExamplesAndAnalogies = createExamplesAndAnalogies;\nexports.createFactVsOpinion = createFactVsOpinion;\nexports.createFillInTheBlankExercise = createFillInTheBlankExercise;\nexports.createFillInTheBlanks = createFillInTheBlanks;\nexports.createFlashcards = createFlashcards;\nexports.createHeadingsAndSubheadings = createHeadingsAndSubheadings;\nexports.createHierarchicalStructure = createHierarchicalStructure;\nexports.createInteractiveAudiobooks = createInteractiveAudiobooks;\nexports.createInteractiveCulturalActivities = createInteractiveCulturalActivities;\nexports.createInteractiveDiagram = createInteractiveDiagram;\nexports.createInteractiveEbook = createInteractiveEbook;\nexports.createInteractiveGlossary = createInteractiveGlossary;\nexports.createInteractiveGrammarLesson = createInteractiveGrammarLesson;\nexports.createInteractiveReadingQuizzes = createInteractiveReadingQuizzes;\nexports.createInteractiveSimulation = createInteractiveSimulation;\nexports.createInteractiveTimeline = createInteractiveTimeline;\nexports.createInteractiveVocabularyQuiz = createInteractiveVocabularyQuiz;\nexports.createInvertedPyramid = createInvertedPyramid;\nexports.createKeyTermsList = createKeyTermsList;\nexports.createKeywords = createKeywords;\nexports.createLabels = createLabels;\nexports.createLists = createLists;\nexports.createMatchingGame = createMatchingGame;\nexports.createMnemonicDevices = createMnemonicDevices;\nexports.createMultipleChoiceExercise = createMultipleChoiceExercise;\nexports.createPersuasiveArguments = createPersuasiveArguments;\nexports.createPictureDescriptionGames = createPictureDescriptionGames;\nexports.createProblemAndSolution = createProblemAndSolution;\nexports.createProjectBasedLearning = createProjectBasedLearning;\nexports.createPronunciationDrillsWithFeedback = createPronunciationDrillsWithFeedback;\nexports.createProsAndCons = createProsAndCons;\nexports.createQuestionsAndAnswers = createQuestionsAndAnswers;\nexports.createRealWorldApplications = createRealWorldApplications;\nexports.createReverseOutlining = createReverseOutlining;\nexports.createSelfAssessmentQuiz = createSelfAssessmentQuiz;\nexports.createSequentialSteps = createSequentialSteps;\nexports.createShortSummary = createShortSummary;\nexports.createSimplifiedText = createSimplifiedText;\nexports.createStoryFormat = createStoryFormat;\nexports.createTabbedOutlines = createTabbedOutlines;\nexports.createTableOrChart = createTableOrChart;\nexports.createTextHighlighting = createTextHighlighting;\nexports.createThematicOverviews = createThematicOverviews;\nexports.createTimeManagementTips = createTimeManagementTips;\nexports.createTimedReading = createTimedReading;\nexports.createTrueFalseStatements = createTrueFalseStatements;\nexports.createVideoSummary = createVideoSummary;\nexports.createVocabularyChallengeGames = createVocabularyChallengeGames;\nexports.createVocabularyClozeSentences = createVocabularyClozeSentences;\nexports.createVocabularyQuizzes = createVocabularyQuizzes;\nexports.createWorksheet = createWorksheet;\nvar _SharedScript = require(\"./SharedScript.js\");\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _readOnlyError(r) { throw new TypeError('\"' + r + '\" is read-only'); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction createClozePassage(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"feedback-area\";\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n if (!feedbackArea) {\n feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n }\n\n var isFillInTheBlanks = contentData.type === \"fillInTheBlanks\";\n var container = isFillInTheBlanks ? document.createElement(\"ul\") : document.createElement(\"div\");\n container.classList.add(isFillInTheBlanks ? \"fill-in-the-blanks-list\" : \"cloze-passages-container\");\n contentData.passages.forEach(function (_ref, index) {\n var _ref2 = _slicedToArray(_ref, 2),\n statement = _ref2[0],\n correctAnswer = _ref2[1];\n var element = isFillInTheBlanks ? document.createElement(\"li\") : document.createElement(\"span\");\n element.classList.add(isFillInTheBlanks ? \"fill-in-the-blanks-item\" : \"cloze-passages-item\");\n\n var input = document.createElement(\"input\");\n input.type = \"text\";\n input.classList.add(\"cloze-input\", \"inline-input\");\n input.id = \"blank-\".concat(index);\n input.setAttribute(\"data-answer\", correctAnswer);\n input.setAttribute(\"data-caseSensitive\", contentData.blanks[index].caseSensitive || false);\n\n input.style.width = \"\".concat(Math.max(50, correctAnswer.length * 10), \"px\");\n\n var sentenceWithInput = statement.replace(/_+|________|blank|__________/gi, input.outerHTML);\n\n element.innerHTML = sentenceWithInput;\n container.appendChild(element);\n });\n contentArea.appendChild(container);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkClozeAnswers(feedbackAreaId, contentData.blanks.length);\n });\n contentArea.appendChild(checkButton);\n}\n\nfunction checkClozeAnswers(feedbackAreaId, totalBlanks) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = '';\n var correctCount = 0;\n var unansweredCount = 0;\n for (var index = 0; index < totalBlanks; index++) {\n var input = document.getElementById(\"blank-\".concat(index));\n\n if (!input) {\n console.warn(\"\\u26A0\\uFE0F Warning: Input field blank-\".concat(index, \" not found! Skipping.\"));\n continue;\n }\n var userAnswer = input.value.trim();\n var correctAnswer = input.getAttribute('data-answer');\n var isCaseSensitive = input.getAttribute('data-caseSensitive') === 'true';\n var isCorrect = false;\n if (userAnswer === \"\") {\n unansweredCount++;\n input.classList.add(\"unanswered\");\n } else {\n isCorrect = isCaseSensitive ? userAnswer === correctAnswer : userAnswer.toLowerCase() === correctAnswer.toLowerCase();\n input.classList.toggle('correct-answer', isCorrect);\n input.classList.toggle('wrong-answer', !isCorrect);\n if (isCorrect) correctCount++;\n }\n }\n\n var feedbackMessage = \"<p class=\\\"score-feedback\\\">Your score: \".concat(correctCount, \" / \").concat(totalBlanks, \"</p>\");\n if (unansweredCount > 0) {\n feedbackMessage += \"<p class=\\\"warning-feedback\\\">You left \".concat(unansweredCount, \" blank(s). Try filling them in!</p>\");\n }\n feedbackArea.innerHTML = feedbackMessage;\n}\n\nfunction createWorksheet(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var questionList = document.createElement(\"ol\");\n questionList.classList.add(\"list\");\n contentData.questions.forEach(function (question, index) {\n var listItem = document.createElement(\"li\");\n listItem.classList.add(\"paragraph\");\n var questionLabel = document.createElement(\"label\");\n questionLabel.htmlFor = \"answer\".concat(index);\n questionLabel.textContent = question.question;\n listItem.appendChild(questionLabel);\n var answerInput = document.createElement(\"input\");\n answerInput.type = \"text\"; \n answerInput.classList.add(\"input\");\n answerInput.id = \"answer\".concat(index);\n listItem.appendChild(answerInput);\n questionList.appendChild(listItem);\n });\n contentArea.appendChild(questionList);\n\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answers\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkWorksheetAnswers(contentData, questionList, feedbackAreaId);\n });\n contentArea.appendChild(button);\n}\n\nfunction checkWorksheetAnswers(contentData, questionList, feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var score = 0;\n contentData.questions.forEach(function (question, index) {\n var answerInput = questionList.querySelector(\"#answer\".concat(index));\n if (answerInput) {\n var userInput = answerInput.value.trim().toLowerCase();\n var isCorrect = false;\n if (Array.isArray(question.answer)) {\n isCorrect = question.answer.some(function (correctAnswer) {\n return correctAnswer.toLowerCase() === userInput;\n });\n } else {\n isCorrect = question.answer.toLowerCase() === userInput;\n }\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. The correct answer is: \".concat(Array.isArray(question.answer) ? question.answer.join(\", \") : question.answer);\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) score++;\n } else {\n console.error(\"Input element with id answer\".concat(index, \" not found.\"));\n }\n });\n feedbackArea.innerHTML += \"<p>Your score: \".concat(score, \" out of \").concat(contentData.questions.length, \"</p>\");\n}\n\nfunction createFlashcards(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var flashcardContainer = document.createElement('div');\n flashcardContainer.classList.add('flashcard-container');\n contentArea.appendChild(flashcardContainer);\n\n contentData.cards.forEach(function (card) {\n var flashcard = document.createElement('div');\n flashcard.classList.add('flashcard');\n\n flashcard.classList.remove(\"flipped\");\n flashcard.innerHTML = \"\\n <div class=\\\"flashcard-front\\\">\".concat(card.term, \"</div>\\n <div class=\\\"flashcard-back\\\">\").concat(card.definition, \"</div>\\n \");\n\n flashcard.addEventListener('click', function () {\n flashcard.classList.toggle('flipped');\n });\n flashcardContainer.appendChild(flashcard);\n });\n\n}\n\nfunction createSelfAssessmentQuiz(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var quizForm = document.createElement(\"form\");\n quizForm.classList.add(\"quiz-form\");\n contentData.questions.forEach(function (question, index) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n questionDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n questionDiv.appendChild(optionsList);\n } else if (question.type === \"trueFalse\") {\n questionDiv.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\");\n questionDiv.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"false\\\"> False</label>\");\n } else if (question.type === \"shortAnswer\") {\n questionDiv.innerHTML += \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"\\\">\");\n }\n quizForm.appendChild(questionDiv);\n });\n var submitButton = document.createElement(\"button\");\n submitButton.type = \"submit\";\n submitButton.textContent = \"Submit Quiz\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n quizForm.appendChild(submitButton);\n quizForm.addEventListener(\"submit\", function (event) {\n event.preventDefault();\n checkQuizAnswers5(contentData, quizForm, feedbackAreaId);\n });\n contentArea.appendChild(quizForm);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n}\n\nfunction checkQuizAnswers5(contentData, quizForm, feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var score = 0;\n contentData.questions.forEach(function (question, index) {\n var userInput;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var selectedOption = quizForm.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\")); \n userInput = selectedOption ? selectedOption.value : null;\n } else if (question.type === \"shortAnswer\") {\n userInput = quizForm.querySelector(\"#answer\".concat(index)).value; \n }\n var isCorrect = userInput !== null && (question.type === \"shortAnswer\" || question.type === \"fillInTheBlank\") ? userInput.toLowerCase() === question.answer.toLowerCase() : userInput === question.answer;\n var feedbackMessage = document.createElement(\"p\");\n if (userInput === null) {\n feedbackMessage.textContent = \"Please answer all questions.\";\n feedbackMessage.classList.add(\"incorrect-feedback\"); \n } else {\n var _question$feedback, _question$feedback2;\n feedbackMessage.textContent = isCorrect ? ((_question$feedback = question.feedback) === null || _question$feedback === void 0 ? void 0 : _question$feedback.correct) || \"Correct!\" : ((_question$feedback2 = question.feedback) === null || _question$feedback2 === void 0 ? void 0 : _question$feedback2.incorrect) || \"Incorrect!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n if (isCorrect) score++;\n }\n feedbackArea.appendChild(feedbackMessage);\n });\n feedbackArea.innerHTML += \"<p>Your score: \".concat(score, \" out of \").concat(contentData.questions.length, \"</p>\");\n}\n\nfunction createErrorCorrectionExercise(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.passages.forEach(function (passage, index) {\n var passageDiv = document.createElement(\"div\");\n passageDiv.classList.add(\"passage\");\n passageDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(passage.originalText, \"</p>\");\n var correctionInput = document.createElement(\"input\");\n correctionInput.type = \"text\";\n correctionInput.classList.add(\"input\");\n correctionInput.id = \"correction\".concat(index);\n correctionInput.placeholder = \"Enter corrected text here\";\n passageDiv.appendChild(correctionInput);\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkCorrection(correctionInput, passage, feedbackAreaId);\n });\n passageDiv.appendChild(checkButton);\n contentArea.appendChild(passageDiv);\n });\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n}\nfunction checkCorrection(inputElement, passageData, feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var userInput = inputElement.value;\n var isCorrect = userInput.toLowerCase() === passageData.correctedText.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n if (isCorrect) {\n feedbackMessage.textContent = \"Correct!\";\n feedbackMessage.classList.add(\"correct-feedback\");\n } else {\n feedbackMessage.textContent = \"Incorrect. The correct text is: \".concat(passageData.correctedText, \". Explanation: \").concat(passageData.explanation);\n feedbackMessage.classList.add(\"incorrect-feedback\");\n }\n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createTimeManagementTips(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.tips.forEach(function (tip) {\n var section = document.createElement(\"section\");\n var tipHeading = document.createElement(\"h3\");\n tipHeading.textContent = tip.tip;\n section.appendChild(tipHeading);\n var explanation = document.createElement(\"p\");\n explanation.textContent = tip.explanation;\n explanation.classList.add(\"paragraph\");\n section.appendChild(explanation);\n if (tip.examples) {\n var examplesList = document.createElement(\"ul\");\n examplesList.classList.add(\"list\");\n tip.examples.forEach(function (example) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = example;\n examplesList.appendChild(listItem);\n });\n section.appendChild(examplesList);\n }\n contentArea.appendChild(section);\n });\n}\n\nfunction createExamPreparationTips(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.tips.forEach(function (tip) {\n var section = document.createElement(\"section\");\n var areaHeading = document.createElement(\"h3\");\n areaHeading.textContent = tip.area.charAt(0).toUpperCase() + tip.area.slice(1); \n section.appendChild(areaHeading);\n var tipParagraph = document.createElement(\"p\");\n tipParagraph.textContent = tip.tip;\n tipParagraph.classList.add(\"paragraph\");\n section.appendChild(tipParagraph);\n var explanation = document.createElement(\"p\");\n explanation.textContent = tip.explanation;\n explanation.classList.add(\"paragraph\");\n section.appendChild(explanation);\n contentArea.appendChild(section);\n });\n}\n\nfunction createCriticalThinkingExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.exercises.forEach(function (exercise, index) {\n var section = document.createElement(\"section\");\n section.classList.add(\"critical-thinking-exercise\");\n var scenarioHeading = document.createElement(\"h3\");\n scenarioHeading.textContent = \"Scenario \".concat(index + 1, \": \").concat(exercise.title || \"\"); \n section.appendChild(scenarioHeading);\n var scenarioParagraph = document.createElement(\"p\");\n scenarioParagraph.textContent = exercise.scenario;\n scenarioParagraph.classList.add(\"paragraph\");\n section.appendChild(scenarioParagraph);\n var questionsList = document.createElement(\"ol\");\n questionsList.classList.add(\"list\");\n exercise.questions.forEach(function (question) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = question;\n questionsList.appendChild(listItem);\n });\n section.appendChild(questionsList);\n contentArea.appendChild(section);\n });\n}\n\nfunction createVocabularyClozeSentences(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.sentences.forEach(function (sentenceData, index) {\n var sentenceDiv = document.createElement(\"div\");\n sentenceDiv.classList.add(\"sentence\", \"paragraph\");\n var sentenceHTML = sentenceData.sentence.replace(sentenceData.missingWord, \"[blank]\");\n sentenceData.blanks = [{\n position: sentenceHTML.indexOf(\"[blank]\"),\n length: \"[blank]\".length,\n answer: sentenceData.missingWord,\n feedback: sentenceData.feedback\n }];\n sentenceHTML = sentenceHTML.replace(/\\[blank]/g, \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"\\\">\"));\n sentenceDiv.innerHTML = sentenceHTML;\n contentArea.appendChild(sentenceDiv);\n\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answer\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkClozeAnswer(\"answer\".concat(index), sentenceData.blanks[0], \"feedback\".concat(index));\n }); \n sentenceDiv.appendChild(button);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n sentenceDiv.appendChild(feedbackArea);\n });\n}\nfunction checkClozeAnswer(inputId, blankData, feedbackId) {\n var feedbackArea = document.getElementById(feedbackId);\n feedbackArea.innerHTML = \"\";\n var userInput = document.getElementById(inputId).value;\n var isCorrect = blankData.caseSensitive ? userInput === blankData.answer : userInput.toLowerCase() === blankData.answer.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? blankData.feedback.correct || \"Correct!\" : blankData.feedback.incorrect || \"Try again!\";\n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createDefinitions(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.terms.forEach(function (term) {\n var termItem = document.createElement(\"div\");\n termItem.classList.add(\"term-item\"); \n\n var termHeading = document.createElement(\"h3\");\n termHeading.textContent = term.term;\n termHeading.classList.add(\"term\");\n termItem.appendChild(termHeading);\n var definitionParagraph = document.createElement(\"p\");\n definitionParagraph.textContent = term.definition;\n definitionParagraph.classList.add(\"paragraph\");\n termItem.appendChild(definitionParagraph);\n\n if (term.examples && term.examples.length > 0) {\n var examplesList = document.createElement(\"ul\");\n examplesList.classList.add(\"list\");\n term.examples.forEach(function (example) {\n var exampleItem = document.createElement(\"li\");\n exampleItem.textContent = example;\n examplesList.appendChild(exampleItem);\n });\n termItem.appendChild(examplesList);\n }\n contentArea.appendChild(termItem);\n });\n}\n\nfunction createDefinitionsWithEtymology(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.terms.forEach(function (term) {\n var termItem = document.createElement(\"div\");\n termItem.classList.add(\"term-item\"); \n\n var termHeading = document.createElement(\"h3\");\n termHeading.textContent = term.term;\n termHeading.classList.add(\"term\"); \n termItem.appendChild(termHeading);\n var definitionParagraph = document.createElement(\"p\");\n definitionParagraph.textContent = term.definition;\n definitionParagraph.classList.add(\"paragraph\"); \n termItem.appendChild(definitionParagraph);\n var etymologyParagraph = document.createElement(\"p\");\n etymologyParagraph.classList.add(\"etymology\"); \n etymologyParagraph.innerHTML = \"<em>Origin:</em> \".concat(term.etymology); \n termItem.appendChild(etymologyParagraph);\n contentArea.appendChild(termItem);\n });\n}\n\nfunction createKeyTermsList(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var termList = document.createElement(\"ul\");\n termList.classList.add(\"list\");\n contentData.terms.forEach(function (term) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = term;\n termList.appendChild(listItem);\n });\n contentArea.appendChild(termList);\n}\n\nfunction createInteractiveGlossary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var glossaryList = document.createElement(\"ul\");\n glossaryList.classList.add(\"list\", \"glossary\");\n contentData.terms.forEach(function (term) {\n var listItem = document.createElement(\"li\");\n listItem.classList.add(\"glossary-term\");\n listItem.textContent = term.term;\n var definitionDiv = document.createElement(\"div\");\n definitionDiv.classList.add(\"definition\");\n definitionDiv.style.display = \"none\";\n if (term.examples) {\n var examplesList = document.createElement(\"ul\");\n examplesList.classList.add(\"list\");\n term.examples.forEach(function (example) {\n var exampleItem = document.createElement(\"li\");\n exampleItem.textContent = example;\n examplesList.appendChild(exampleItem);\n });\n definitionDiv.appendChild(examplesList);\n }\n if (term.images) {\n term.images.forEach(function (imageSrc) {\n var image = document.createElement(\"img\");\n image.src = imageSrc;\n image.alt = term.term;\n definitionDiv.appendChild(image);\n });\n }\n if (term.audio) {\n var audio = document.createElement(\"audio\");\n audio.src = term.audio;\n audio.controls = true;\n definitionDiv.appendChild(audio);\n }\n listItem.addEventListener(\"click\", function () {\n definitionDiv.style.display = definitionDiv.style.display === \"none\" ? \"block\" : \"none\";\n });\n listItem.appendChild(definitionDiv);\n glossaryList.appendChild(listItem);\n });\n contentArea.appendChild(glossaryList);\n}\n\nfunction createInteractiveVocabularyQuiz(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var quizForm = document.createElement(\"form\");\n quizForm.classList.add(\"quiz-form\");\n contentData.questions.forEach(function (question, index) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n questionDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n questionDiv.appendChild(optionsList);\n quizForm.appendChild(questionDiv);\n });\n var submitButton = document.createElement(\"button\");\n submitButton.type = \"submit\";\n submitButton.textContent = \"Submit Quiz\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n quizForm.appendChild(submitButton);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n quizForm.addEventListener(\"submit\", function (event) {\n event.preventDefault();\n checkQuizAnswers62(contentData, quizForm, feedbackArea);\n });\n contentArea.appendChild(quizForm);\n}\nfunction checkQuizAnswers62(contentData, quizForm, feedbackArea) {\n var score = 0;\n feedbackArea.innerHTML = \"\"; \n contentData.questions.forEach(function (question, index) {\n var selectedOption = quizForm.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n var userInput = selectedOption ? selectedOption.value : null;\n var isCorrect = userInput === question.answer;\n var feedbackMessage = document.createElement(\"p\");\n if (userInput === null) {\n feedbackMessage.textContent = \"Please answer all questions.\";\n feedbackMessage.classList.add(\"incorrect-feedback\");\n } else {\n var _question$feedback3, _question$feedback4;\n feedbackMessage.textContent = isCorrect ? ((_question$feedback3 = question.feedback) === null || _question$feedback3 === void 0 ? void 0 : _question$feedback3.correct) || \"Correct!\" : ((_question$feedback4 = question.feedback) === null || _question$feedback4 === void 0 ? void 0 : _question$feedback4.incorrect) || \"Incorrect!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n if (isCorrect) {\n score++;\n }\n }\n feedbackArea.appendChild(feedbackMessage);\n });\n feedbackArea.innerHTML += \"<p>Your score: \".concat(score, \" out of \").concat(contentData.questions.length, \"</p>\");\n}\n\nfunction createDragAndDropTextSequencing(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var shuffledSegments = shuffleArray(_toConsumableArray(contentData.segments));\n var segmentsContainer = document.createElement(\"div\");\n segmentsContainer.classList.add(\"segments-container\", \"flex-container\", \"wrap\");\n shuffledSegments.forEach(function (segment, index) {\n var segmentDiv = document.createElement(\"div\");\n segmentDiv.classList.add(\"segment\", \"btn\", \"btn-secondary\");\n segmentDiv.textContent = segment;\n segmentDiv.setAttribute(\"draggable\", \"true\");\n segmentDiv.id = \"segment-\".concat(index); \n segmentDiv.dataset.originalIndex = index; \n\n segmentDiv.addEventListener(\"dragstart\", dragStart);\n segmentDiv.addEventListener(\"dragover\", dragOver);\n segmentDiv.addEventListener(\"drop\", function (event) {\n return dragDrop63(event, segmentsContainer);\n });\n segmentsContainer.appendChild(segmentDiv);\n });\n contentArea.appendChild(segmentsContainer);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Order\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkOrder(contentData, segmentsContainer, feedbackAreaId);\n });\n contentArea.appendChild(checkButton);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n}\n\n\n\nfunction dragDrop63(event, container) {\n event.preventDefault();\n var sourceId = event.dataTransfer.getData(\"text/plain\");\n var sourceSegment = document.getElementById(sourceId);\n var targetSegment = event.target;\n if (sourceSegment && targetSegment.classList.contains(\"segment\") && sourceSegment !== targetSegment) {\n container.insertBefore(sourceSegment, targetSegment);\n }\n}\n\nfunction checkOrder(contentData, segmentsContainer, feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var segments = Array.from(segmentsContainer.querySelectorAll(\".segment\"));\n var isCorrect = segments.every(function (segment, index) {\n return parseInt(segment.dataset.originalIndex, 10) === contentData.correctOrder[index];\n });\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. Try again.\";\n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction shuffleArray(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var _ref3 = [array[j], array[i]];\n array[i] = _ref3[0];\n array[j] = _ref3[1];\n }\n return array;\n}\n\nfunction createAdaptiveLearning(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevel = localStorage.getItem(\"currentLevel\") || \"beginner\";\n var currentContent = contentData.content.find(function (level) {\n return level.level === currentLevel;\n });\n if (currentContent) {\n contentArea.innerHTML += \"<h2 class=\\\"title\\\">\".concat(contentData.title, \"</h2>\"); \n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(currentContent.content, \"</p>\");\n\n var buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"button-container\");\n if (currentLevel !== \"advanced\") {\n var nextLevelButton = document.createElement(\"button\");\n nextLevelButton.textContent = \"Next Level\";\n nextLevelButton.classList.add(\"btn\", \"btn-primary\");\n nextLevelButton.addEventListener(\"click\", function () {\n localStorage.setItem(\"currentLevel\", getNextLevel(currentLevel));\n createAdaptiveLearning(contentData);\n });\n buttonContainer.appendChild(nextLevelButton);\n }\n if (currentLevel !== \"beginner\") {\n var previousLevelButton = document.createElement(\"button\");\n previousLevelButton.textContent = \"Previous Level\";\n previousLevelButton.classList.add(\"btn\", \"btn-secondary\");\n previousLevelButton.addEventListener(\"click\", function () {\n localStorage.setItem(\"currentLevel\", getPreviousLevel(currentLevel));\n createAdaptiveLearning(contentData);\n });\n buttonContainer.appendChild(previousLevelButton);\n }\n contentArea.appendChild(buttonContainer);\n } else {\n displayErrorMessage(\"No content found for your level.\");\n }\n}\n\nfunction getNextLevel(currentLevel) {\n switch (currentLevel) {\n case \"beginner\":\n return \"intermediate\";\n case \"intermediate\":\n return \"advanced\";\n default:\n return \"advanced\";\n }\n}\nfunction getPreviousLevel(currentLevel) {\n switch (currentLevel) {\n case \"advanced\":\n return \"intermediate\";\n case \"intermediate\":\n return \"beginner\";\n default:\n return \"beginner\";\n }\n}\n\nfunction createInteractiveDiagram(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var diagramContainer = document.createElement(\"div\");\n diagramContainer.classList.add(\"diagram-container\");\n contentArea.appendChild(diagramContainer);\n var image = new Image();\n image.src = contentData.image;\n image.classList.add(\"diagram-image\");\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkLabelPositions(contentData.labels, diagramContainer, feedbackArea);\n });\n contentArea.appendChild(checkButton); \n\n image.onload = function () {\n var labels = contentData.labels;\n createLabels(labels, diagramContainer, image);\n createDropZones97(labels, diagramContainer, image);\n };\n diagramContainer.appendChild(image);\n}\nfunction createLabels(labels, diagramContainer, image) {\n labels.forEach(function (label, index) {\n var labelElement = document.createElement(\"div\");\n labelElement.textContent = label.text;\n labelElement.classList.add(\"draggable-label\");\n labelElement.setAttribute(\"draggable\", \"true\");\n labelElement.id = label.id;\n\n labelElement.style.position = \"absolute\";\n labelElement.style.left = \"\".concat(image.width + 20 + index * 50, \"px\"); \n labelElement.style.top = \"\".concat(20, \"px\");\n labelElement.addEventListener(\"dragstart\", dragStart);\n labelElement.addEventListener(\"dragend\", dragEnd); \n diagramContainer.appendChild(labelElement);\n });\n}\nfunction createDropZones97(labels, diagramContainer, image) {\n labels.forEach(function (label) {\n var dropZone = document.createElement(\"div\");\n dropZone.classList.add(\"drop-zone\");\n dropZone.id = label.id + '-zone';\n\n var imageRect = image.getBoundingClientRect();\n dropZone.style.position = \"absolute\";\n dropZone.style.left = \"\".concat(label.correctPosition.x + imageRect.left - 10, \"px\"); \n dropZone.style.top = \"\".concat(label.correctPosition.y + imageRect.top - 10, \"px\");\n dropZone.style.width = \"\".concat(label.text.length * 12, \"px\"); \n dropZone.style.height = \"30px\";\n dropZone.style.backgroundColor = \"transparent\"; \n\n dropZone.addEventListener(\"dragover\", dragOver);\n dropZone.addEventListener(\"drop\", function (event) {\n dragDrop97(event, label, diagramContainer);\n }); \n\n diagramContainer.appendChild(dropZone);\n });\n}\n\n\n\nfunction dragDrop97(event, labelData, diagramContainer) {\n event.preventDefault();\n var labelId = event.dataTransfer.getData(\"text/plain\");\n var labelElement = document.getElementById(labelId);\n var dropZone = event.target.closest(\".drop-zone\");\n if (dropZone) {\n dropZone.appendChild(labelElement);\n labelElement.style.position = 'relative';\n labelElement.style.left = '0';\n labelElement.style.top = '0';\n checkLabelPositions(contentData.labels, diagramContainer);\n }\n}\nfunction dragEnd(event) {\n var labelElement = event.target;\n labelElement.style.removeProperty('position'); \n labelElement.style.removeProperty('left');\n labelElement.style.removeProperty('top');\n}\nfunction checkLabelPositions(labels, diagramContainer, feedbackArea, checkButton) {\n var numCorrect = 0;\n labels.forEach(function (label) {\n var labelElement = document.getElementById(label.id);\n var dropZone = document.getElementById(label.id + \"-zone\");\n var labelRect = labelElement.getBoundingClientRect();\n var dropZoneRect = dropZone.getBoundingClientRect();\n\n var errorRange = 15; \n var isCorrectX = Math.abs(labelRect.left + labelRect.width / 2 - (dropZoneRect.left + dropZoneRect.width / 2)) <= errorRange;\n var isCorrectY = Math.abs(labelRect.top + labelRect.height / 2 - (dropZoneRect.top + dropZoneRect.height / 2)) <= errorRange;\n if (isCorrectX && isCorrectY) {\n numCorrect++;\n labelElement.classList.add(\"correct-label\");\n labelElement.classList.remove(\"incorrect-label\");\n dropZone.style.backgroundColor = \"lightgreen\"; \n } else {\n labelElement.classList.add(\"incorrect-label\");\n labelElement.classList.remove(\"correct-label\");\n dropZone.style.backgroundColor = \"lightcoral\"; \n }\n });\n if (numCorrect === labels.length) {\n checkButton.disabled = true;\n feedbackArea.innerHTML = '<p class=\"correct-feedback\">Congratulations! All labels are placed correctly.</p>';\n }\n}\n\nfunction createTimedReading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var quizForm = document.createElement(\"form\");\n quizForm.classList.add(\"quiz-form\", \"hidden\"); \n\n var timeLeft = contentData.timeLimit;\n var timerDisplay = document.createElement(\"p\");\n timerDisplay.classList.add(\"timer\");\n contentArea.appendChild(timerDisplay);\n var timerInterval = setInterval(function () {\n timeLeft--;\n if (timeLeft <= 0) {\n clearInterval(timerInterval);\n timerDisplay.textContent = \"Time's up!\";\n quizForm.classList.remove(\"hidden\"); \n }\n }, 1000);\n contentData.questions.forEach(function (question, index) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n optionsList.appendChild(listItem);\n });\n questionDiv.appendChild(optionsList);\n quizForm.appendChild(questionDiv);\n });\n var submitButton = document.createElement(\"button\");\n submitButton.type = \"submit\";\n submitButton.textContent = \"Submit Quiz\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n quizForm.appendChild(submitButton);\n quizForm.addEventListener(\"submit\", function (event) {\n event.preventDefault();\n checkQuizAnswers(contentData, quizForm);\n });\n contentArea.appendChild(quizForm);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n}\n\nfunction createAnnotations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var annotatedText = contentData.content;\n\n if (contentData.annotations && Array.isArray(contentData.annotations)) {\n contentData.annotations.forEach(function (annotation) {\n var startIndex = annotatedText.indexOf(annotation.term);\n var endIndex = startIndex + annotation.term.length;\n var before = annotatedText.slice(0, startIndex);\n var during = annotatedText.slice(startIndex, endIndex);\n var after = annotatedText.slice(endIndex);\n annotatedText = \"\".concat(before, \"<span class=\\\"annotation\\\" title=\\\"\").concat(annotation.definition, \"\\\">\").concat(during, \"</span>\").concat(after);\n });\n }\n var paragraph = document.createElement(\"p\");\n paragraph.classList.add(\"paragraph\");\n paragraph.innerHTML = annotatedText;\n contentArea.appendChild(paragraph);\n}\n\nfunction createReverseOutlining(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var contentParagraph = document.createElement(\"p\");\n contentParagraph.textContent = contentData.content;\n contentParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(contentParagraph);\n\n var studentOutlineContainer = document.createElement(\"div\");\n studentOutlineContainer.id = \"student-outline-editor\";\n contentArea.appendChild(studentOutlineContainer);\n\n var quill = new Quill(\"#student-outline-editor\", {\n theme: \"snow\",\n modules: {\n toolbar: [[{\n header: [1, 2, 3, false]\n }], [\"bold\", \"italic\", \"underline\"], [{\n list: \"ordered\"\n }, {\n list: \"bullet\"\n }], [{\n color: []\n }, {\n background: []\n }], [{\n indent: \"-1\"\n }, {\n indent: \"+1\"\n }], [{\n align: []\n }]]\n }\n });\n var aiOutlinesContainer = document.createElement(\"div\");\n aiOutlinesContainer.classList.add(\"ai-outlines-container\");\n contentArea.appendChild(aiOutlinesContainer);\n\n var revealButton = document.createElement(\"button\");\n revealButton.textContent = \"Reveal AI Outlines\";\n revealButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n revealButton.addEventListener(\"click\", function () {\n aiOutlinesContainer.classList.remove(\"hidden\");\n revealButton.style.display = \"none\";\n createTabbedOutlines(contentData, aiOutlinesContainer);\n });\n contentArea.appendChild(revealButton);\n}\n\nfunction createTabbedOutlines(contentData, container) {\n var tabsContainer = document.createElement(\"div\");\n tabsContainer.classList.add(\"ai-outlines-tabs\");\n\n var contentContainer = document.createElement(\"div\");\n contentContainer.classList.add(\"ai-outlines-content\");\n container.appendChild(contentContainer);\n var activeTabIndex = 0; \n\n contentData.aiOutlines.forEach(function (outline, index) {\n var tabButton = document.createElement(\"button\");\n tabButton.textContent = \"Outline \".concat(index + 1);\n tabButton.classList.add(\"btn\", \"btn-secondary\");\n if (index === activeTabIndex) {\n tabButton.classList.add(\"active\");\n }\n tabButton.addEventListener(\"click\", function () {\n activeTabIndex = index; \n displayAIOutline(outline.outline, contentContainer, activeTabIndex); \n });\n tabsContainer.appendChild(tabButton);\n });\n container.appendChild(tabsContainer);\n\n displayAIOutline(contentData.aiOutlines[activeTabIndex].outline, contentContainer, activeTabIndex);\n}\nfunction displayAIOutline(outlinePoints, container, activeIndex) {\n container.innerHTML = \"\";\n var outlineList = document.createElement(\"ol\");\n outlineList.classList.add(\"list\", \"outline-list\");\n outlineList.style.listStyleType = \"none\";\n outlinePoints.forEach(function (point) {\n var listItem = document.createElement(\"li\");\n\n var level = point.search(/\\S/) / 4; \n listItem.innerHTML = \"<span style=\\\"margin-left: \".concat(20 * level, \"px;\\\">\").concat(point.trim(), \"</span>\");\n outlineList.appendChild(listItem);\n });\n container.appendChild(outlineList);\n\n var tabButtons = container.parentNode.querySelectorAll(\".ai-outlines-tabs button\");\n tabButtons.forEach(function (button, i) {\n if (i === activeIndex) {\n button.classList.add(\"active\");\n } else {\n button.classList.remove(\"active\");\n }\n });\n}\n\nfunction createChunkedText(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Content\", contentData.content, 'p');\n}\n\nfunction createTextHighlighting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var textContent = document.createElement(\"p\");\n textContent.classList.add(\"paragraph\");\n contentData.content.split(\" \").forEach(function (word) {\n var span = document.createElement(\"span\");\n span.textContent = word + \" \"; \n if (contentData.highlightedTerms.includes(word.toLowerCase())) {\n span.classList.add(\"highlight\");\n }\n textContent.appendChild(span);\n });\n contentArea.appendChild(textContent);\n}\n\nfunction createHeadingsAndSubheadings(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var parser = new DOMParser();\n var doc = parser.parseFromString(contentData.content, \"text/html\");\n\n var elements = doc.body.childNodes;\n\n if (!contentData.content.includes(\"<h2>\") && !contentData.content.includes(\"<h1>\") && !contentData.content.includes(\"<h3>\")) {\n var _title = document.createElement(\"h2\");\n _title.textContent = contentData.title;\n _title.classList.add(\"title\");\n contentArea.prepend(_title); \n }\n elements.forEach(function (element) {\n var clonedElement = element.cloneNode(true);\n\n if (clonedElement.nodeName === \"P\") {\n clonedElement.classList.add(\"paragraph\");\n } else if (clonedElement.nodeName === \"UL\" || clonedElement.nodeName === \"OL\") {\n clonedElement.classList.add(\"list\");\n }\n\n if (clonedElement.nodeName.startsWith(\"H\")) {\n var level = parseInt(clonedElement.nodeName.substring(1)); \n clonedElement.style.fontSize = \"\".concat(2 - 0.2 * (level - 1), \"em\"); \n }\n contentArea.appendChild(clonedElement); \n });\n}\n\nfunction createTableOrChart(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n if (contentData.type === \"table\") {\n var table = document.createElement(\"table\");\n table.classList.add(\"table\", \"table-striped\"); \n\n var headerRow = table.insertRow();\n contentData.headers.forEach(function (headerText) {\n var th = document.createElement(\"th\");\n th.textContent = headerText;\n headerRow.appendChild(th);\n });\n\n contentData.data.forEach(function (row) {\n var tr = table.insertRow();\n for (var key in row) {\n var td = tr.insertCell();\n td.textContent = row[key];\n }\n });\n contentArea.appendChild(table);\n } else if (contentData.type === \"chart\") {\n console.log(\"Chart creation not implemented yet\");\n }\n}\n\nfunction createLists(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"List\", contentData.items, 'ul');\n}\n\nfunction createHierarchicalStructure(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var hierarchyContainer = document.createElement(\"div\");\n function renderHierarchy(levels, parentElement) {\n levels.forEach(function (level) {\n var levelElement = document.createElement(\"div\");\n levelElement.classList.add(\"hierarchy-level\");\n var heading = document.createElement(\"h\".concat(level.level + 2)); \n heading.textContent = level.content;\n levelElement.appendChild(heading);\n if (level.children && level.children.length > 0) {\n var childrenContainer = document.createElement(\"div\");\n childrenContainer.classList.add(\"children\");\n renderHierarchy(level.children, childrenContainer); \n levelElement.appendChild(childrenContainer);\n }\n parentElement.appendChild(levelElement);\n });\n }\n renderHierarchy(contentData.levels, hierarchyContainer);\n contentArea.appendChild(hierarchyContainer);\n}\n\nfunction createSequentialSteps(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Steps\", contentData.steps, 'ol'); \n}\n\nfunction createInvertedPyramid(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n contentArea.classList.add(\"inverted-pyramid\");\n\n (0, _SharedScript.addLessonSection)(contentArea, \"Main Point\", contentData.mainPoint, 'p');\n (0, _SharedScript.addLessonSection)(contentArea, \"Supporting Details\", contentData.supportingDetails, 'p');\n (0, _SharedScript.addLessonSection)(contentArea, \"Background Information\", contentData.backgroundInfo, 'p');\n}\n\nfunction createCauseAndEffect(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.pairs.forEach(function (pair) {\n var pairDiv = document.createElement(\"div\");\n pairDiv.classList.add(\"cause-effect-pair\");\n var causeParagraph = document.createElement(\"p\");\n causeParagraph.classList.add(\"paragraph\");\n causeParagraph.innerHTML = \"<strong>Cause:</strong> \".concat(pair.cause);\n pairDiv.appendChild(causeParagraph);\n var effectParagraph = document.createElement(\"p\");\n effectParagraph.classList.add(\"paragraph\");\n effectParagraph.textContent = \"Effect: \".concat(pair.effect);\n pairDiv.appendChild(effectParagraph);\n\n addCoverAndRevealFunctionality(effectParagraph, \"Effect\");\n contentArea.appendChild(pairDiv);\n });\n}\n\nfunction createProblemAndSolution(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"content-area\";\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var problemSection = document.createElement(\"section\");\n problemSection.classList.add(\"problem-section\");\n var problemHeading = document.createElement(\"h3\");\n problemHeading.textContent = \"Problem:\";\n problemHeading.classList.add(\"problem-heading\"); \n problemSection.appendChild(problemHeading);\n var problemParagraph = document.createElement(\"p\");\n problemParagraph.textContent = contentData.problem;\n problemParagraph.classList.add(\"paragraph\");\n problemSection.appendChild(problemParagraph);\n contentArea.appendChild(problemSection);\n\n var solutionsSection = document.createElement(\"section\");\n solutionsSection.classList.add(\"solutions-section\");\n var solutionsHeading = document.createElement(\"h3\");\n solutionsHeading.textContent = \"Solutions:\";\n solutionsHeading.classList.add(\"solutions-heading\"); \n solutionsSection.appendChild(solutionsHeading);\n var solutionList = document.createElement(\"ul\");\n solutionList.classList.add(\"list\");\n contentData.solutions.forEach(function (solution) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = solution;\n listItem.classList.add(\"paragraph\"); \n solutionList.appendChild(listItem);\n });\n solutionsSection.appendChild(solutionList);\n addCoverAndRevealFunctionality(solutionList, \"Solution\");\n contentArea.appendChild(solutionsSection);\n}\n\nfunction createFactVsOpinion(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.statements.forEach(function (statement, index) {\n var statementDiv = document.createElement(\"div\");\n statementDiv.classList.add(\"statement\");\n statementDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(statement.statement, \"</p>\");\n\n var options = [\"Fact\", \"Opinion\"];\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option.toLowerCase(), \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n statementDiv.appendChild(optionsList);\n\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answer\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkFactVsOpinionAnswer(statement, index);\n });\n statementDiv.appendChild(button);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n statementDiv.appendChild(feedbackArea);\n contentArea.appendChild(statementDiv);\n });\n}\nfunction checkFactVsOpinionAnswer(statement, index) {\n var feedbackArea = document.getElementById(\"feedback\".concat(index));\n feedbackArea.innerHTML = \"\";\n var selectedOption = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n var userAnswer = selectedOption ? selectedOption.value : null;\n var isCorrect = userAnswer === statement.type;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. This is a \".concat(statement.type, \".\");\n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createShortSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var summaryParagraph = document.createElement('p');\n summaryParagraph.textContent = contentData.summary;\n summaryParagraph.classList.add('paragraph');\n contentArea.appendChild(summaryParagraph);\n}\n\nfunction createDetailedSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var summaryParagraph = document.createElement(\"p\");\n summaryParagraph.textContent = contentData.summary;\n summaryParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(summaryParagraph);\n\n}\n\nfunction createBulletPoints(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n displayList(contentArea, null, contentData.points, 'ul', 4);\n}\n\nfunction createKeywords(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var keywordsContainer = document.createElement(\"div\");\n keywordsContainer.classList.add(\"keywords-container\", \"flex-container\");\n var definitionAndExamplesContainer = document.createElement(\"div\");\n definitionAndExamplesContainer.classList.add(\"definition-examples-container\"); \n definitionAndExamplesContainer.style.display = \"none\"; \n\n contentData.words.forEach(function (keywordData) {\n var keywordButton = document.createElement(\"button\");\n keywordButton.textContent = keywordData.word;\n keywordButton.classList.add(\"btn\", \"btn-secondary\", \"keyword-button\");\n keywordButton.addEventListener(\"click\", function () {\n displayDefinitionAndExample(keywordData, definitionAndExamplesContainer);\n });\n keywordsContainer.appendChild(keywordButton);\n });\n contentArea.appendChild(keywordsContainer);\n contentArea.appendChild(definitionAndExamplesContainer); \n}\n\nfunction displayDefinitionAndExample(keywordData, container) {\n container.innerHTML = \"\";\n var definition = document.createElement(\"p\");\n definition.classList.add(\"paragraph\");\n definition.innerHTML = \"<strong>Definition:</strong> \".concat(keywordData.definition);\n container.appendChild(definition);\n if (keywordData.example) {\n var example = document.createElement(\"p\");\n example.classList.add(\"paragraph\");\n example.innerHTML = \"<strong>Example:</strong> \".concat(keywordData.example);\n container.appendChild(example);\n }\n container.style.display = 'block'; \n}\n\nfunction createSimplifiedText(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.simplifiedText, \"</p>\");\n\n}\n\nfunction createStoryFormat(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n (0, _SharedScript.addLessonSection)(contentArea, \"Story\", contentData.story, 'p');\n (0, _SharedScript.addLessonSection)(contentArea, \"Characters\", contentData.characters, 'ul');\n (0, _SharedScript.addLessonSection)(contentArea, \"Theme\", contentData.theme);\n}\n\nfunction createExamplesAndAnalogies(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.items.forEach(function (item) {\n var itemDiv = document.createElement(\"div\");\n itemDiv.classList.add(\"example-analogy-item\");\n var conceptHeading = document.createElement(\"h3\");\n conceptHeading.textContent = item.concept;\n itemDiv.appendChild(conceptHeading);\n if (item.example) {\n var exampleParagraph = document.createElement(\"p\");\n exampleParagraph.textContent = \"Example: \".concat(item.example);\n exampleParagraph.classList.add(\"paragraph\");\n itemDiv.appendChild(exampleParagraph);\n }\n if (item.analogy) {\n var analogyParagraph = document.createElement(\"p\");\n analogyParagraph.textContent = \"Analogy: \".concat(item.analogy);\n analogyParagraph.classList.add(\"paragraph\");\n itemDiv.appendChild(analogyParagraph);\n }\n var explanationParagraph = document.createElement(\"p\");\n explanationParagraph.textContent = item.explanation;\n explanationParagraph.classList.add(\"paragraph\");\n itemDiv.appendChild(explanationParagraph);\n addCoverAndRevealFunctionality(explanationParagraph, \"Explanation\");\n contentArea.appendChild(itemDiv);\n });\n}\n\nfunction createQuestionsAndAnswers(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.questions.forEach(function (qaItem, index) {\n var qaDiv = document.createElement(\"div\");\n qaDiv.classList.add(\"qa-item\");\n var question = document.createElement(\"p\");\n question.textContent = qaItem.question;\n question.classList.add(\"paragraph\");\n qaDiv.appendChild(question);\n var answer = document.createElement(\"p\");\n answer.textContent = qaItem.answer;\n answer.classList.add(\"paragraph\", \"answer\");\n answer.style.display = \"none\"; \n qaDiv.appendChild(answer);\n var revealButton = document.createElement(\"button\");\n revealButton.textContent = \"Reveal Answer\";\n revealButton.classList.add(\"btn\", \"btn-primary\");\n revealButton.addEventListener(\"click\", function () {\n answer.style.display = \"block\"; \n revealButton.style.display = \"none\"; \n });\n qaDiv.appendChild(revealButton);\n contentArea.appendChild(qaDiv);\n });\n}\n\nfunction createInteractiveEbook(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var chaptersContainer = document.createElement(\"div\");\n chaptersContainer.id = \"chapters-container\"; \n contentArea.appendChild(chaptersContainer);\n var currentChapterIndex = 0;\n displayChapter(currentChapterIndex);\n\n function displayChapter(index) {\n chaptersContainer.innerHTML = \"\"; \n\n if (index < 0 || index >= contentData.chapters.length) {\n displayErrorMessage(\"Chapter not found.\");\n return;\n }\n var chapter = contentData.chapters[index];\n var chapterTitle = document.createElement(\"h3\");\n chapterTitle.textContent = chapter.title;\n chapterTitle.classList.add(\"title\");\n chaptersContainer.appendChild(chapterTitle);\n chapter.content.forEach(function (item) {\n switch (item.type) {\n case \"text\":\n var paragraph = document.createElement(\"p\");\n paragraph.textContent = item.data.text;\n paragraph.classList.add(\"paragraph\");\n chaptersContainer.appendChild(paragraph);\n break;\n case \"image\":\n var img = document.createElement(\"img\");\n img.src = item.data.src || item.data.url || \"\";\n img.alt = item.data.alt || \"Image\";\n img.classList.add(\"image\");\n chaptersContainer.appendChild(img);\n break;\n case \"video\":\n var videoContainer = document.createElement(\"div\");\n videoContainer.classList.add(\"video-container\");\n var video = document.createElement(\"iframe\");\n\n if (typeof item.data === 'string' && item.data.includes(\"youtube.com/watch\")) {\n var videoId = item.data.split(\"v=\")[1];\n video.src = \"https://www.youtube.com/embed/\".concat(videoId);\n } else if (_typeof(item.data) === 'object' && item.data.url) {\n video.src = item.data.url;\n } else {\n console.error(\"Invalid video data Format:\", item.data);\n return;\n }\n video.allowFullscreen = true;\n video.classList.add(\"video\"); \n videoContainer.appendChild(video);\n chaptersContainer.appendChild(videoContainer);\n break;\n case \"quiz\":\n createSelfAssessmentQuiz(item.data, chaptersContainer);\n break;\n default:\n console.warn(\"Unknown content type: \".concat(item.type));\n break;\n }\n });\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"navigation-buttons\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Chapter\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n displayChapter(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < contentData.chapters.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Chapter\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n displayChapter(index + 1);\n });\n navButtons.appendChild(nextButton);\n }\n chaptersContainer.appendChild(navButtons);\n }\n}\n\nfunction createProsAndCons(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var topicTitle = document.createElement(\"h3\");\n topicTitle.textContent = \"Topic: \".concat(contentData.topic);\n contentArea.appendChild(topicTitle);\n\n var prosHeading = document.createElement(\"h4\");\n prosHeading.textContent = \"Pros:\";\n contentArea.appendChild(prosHeading);\n var prosList = document.createElement(\"ul\");\n contentData.pros.forEach(function (pro) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = pro;\n prosList.appendChild(listItem);\n });\n contentArea.appendChild(prosList);\n addCoverAndRevealFunctionality(prosList, \"Pros List\");\n\n var consHeading = document.createElement(\"h4\");\n consHeading.textContent = \"Cons:\";\n contentArea.appendChild(consHeading);\n var consList = document.createElement(\"ul\");\n contentData.cons.forEach(function (con) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = con;\n consList.appendChild(listItem);\n });\n contentArea.appendChild(consList);\n addCoverAndRevealFunctionality(consList, \"Cons List\");\n\n topicTitle.classList.add(\"mt-4\"); \n prosHeading.classList.add(\"mt-3\");\n consHeading.classList.add(\"mt-3\");\n prosList.classList.add(\"list-disc\", \"list-inside\", \"ml-4\"); \n consList.classList.add(\"list-disc\", \"list-inside\", \"ml-4\");\n}\n\nfunction createPersuasiveArguments(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var topicParagraph = document.createElement(\"p\");\n topicParagraph.textContent = \"Topic: \".concat(contentData.topic);\n topicParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(topicParagraph);\n var stanceHeading = document.createElement(\"h3\");\n stanceHeading.textContent = contentData.stance === \"for\" ? \"Arguments For:\" : \"Arguments Against:\";\n contentArea.appendChild(stanceHeading);\n var argumentsList = document.createElement(\"ul\");\n argumentsList.classList.add(\"list\");\n contentData.arguments.forEach(function (argument) {\n var listItem = document.createElement(\"li\");\n var pointParagraph = document.createElement(\"p\");\n pointParagraph.classList.add(\"paragraph\");\n pointParagraph.innerHTML = \"<strong>\".concat(argument.point, \"</strong>\");\n listItem.appendChild(pointParagraph);\n var evidenceParagraph = document.createElement(\"p\");\n evidenceParagraph.classList.add(\"paragraph\");\n evidenceParagraph.textContent = argument.evidence;\n listItem.appendChild(evidenceParagraph);\n\n addCoverAndRevealFunctionality(evidenceParagraph, \"Evidence\");\n argumentsList.appendChild(listItem);\n });\n contentArea.appendChild(argumentsList);\n}\n\nfunction createThematicOverviews(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData.themes || !Array.isArray(contentData.themes)) {\n console.error(\"Invalid contentData for Thematic Overviews. 'themes' property is missing or not an array.\");\n\n var errorMessage = document.createElement('p');\n errorMessage.textContent = 'Error: Invalid data format for Thematic Overviews.';\n errorMessage.style.color = 'red';\n contentArea.appendChild(errorMessage);\n return;\n }\n contentData.themes.forEach(function (theme) {\n var themeDiv = document.createElement(\"div\");\n themeDiv.classList.add(\"theme\");\n var themeTitle = document.createElement(\"h3\");\n themeTitle.classList.add(\"theme-title\");\n themeTitle.textContent = theme.theme;\n themeDiv.appendChild(themeTitle);\n var summaryParagraph = document.createElement(\"p\");\n summaryParagraph.classList.add(\"paragraph\");\n summaryParagraph.textContent = theme.summary;\n themeDiv.appendChild(summaryParagraph);\n\n addCoverAndRevealFunctionality(summaryParagraph);\n contentArea.appendChild(themeDiv);\n });\n}\n\nfunction createAudioNarration(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.content, \"</p>\");\n var audioPlayer = document.createElement(\"audio\");\n audioPlayer.src = contentData.audioUrl;\n audioPlayer.controls = true;\n audioPlayer.classList.add(\"audio\");\n contentArea.appendChild(audioPlayer);\n}\n\nfunction createVideoSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.videoUrl.includes(\"youtube.com\")) {\n var videoId = contentData.videoUrl.split(\"v=\")[1];\n contentArea.innerHTML += \"<div class=\\\"video-container\\\"><iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/\".concat(videoId, \"\\\" frameborder=\\\"0\\\" allowfullscreen></iframe></div>\");\n } else {\n contentArea.innerHTML += \"<video controls width=\\\"560\\\" height=\\\"315\\\" class=\\\"video\\\">\\n <source src=\\\"\".concat(contentData.videoUrl, \"\\\" type=\\\"video/mp4\\\">\\n Your browser does not support the video tag.\\n </video>\");\n }\n\n var summary = document.createElement(\"p\");\n summary.textContent = contentData.summary;\n summary.classList.add(\"paragraph\");\n contentArea.appendChild(summary);\n}\n\nfunction createInteractiveSimulation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.scenario, \"</p>\");\n\n contentData.variables.forEach(function (variable) {\n var label = document.createElement(\"label\");\n label.textContent = \"\".concat(variable, \": \");\n contentArea.appendChild(label);\n var input = document.createElement(\"input\");\n input.type = \"range\"; \n input.min = \"0\"; \n input.max = \"100\";\n input.value = \"50\";\n input.id = \"variable-\".concat(variable.replace(/\\s+/g, \"-\").toLowerCase());\n contentArea.appendChild(input);\n });\n\n var simulateButton = document.createElement(\"button\");\n simulateButton.textContent = \"Simulate\";\n simulateButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n simulateButton.addEventListener(\"click\", function () {\n var variableValues = {};\n contentData.variables.forEach(function (variable) {\n var input = document.getElementById(\"variable-\".concat(variable.replace(/\\s+/g, \"-\").toLowerCase()));\n variableValues[variable] = input.value;\n });\n\n var outcome = simulateOutcome(variableValues, contentData.outcomes);\n displayOutcome(outcome, contentAreaId);\n });\n contentArea.appendChild(simulateButton);\n}\nfunction simulateOutcome(variableValues, outcomes) {\n return outcomes[Math.floor(Math.random() * outcomes.length)]; \n}\nfunction displayOutcome(outcome, contentAreaId) {\n var contentArea = document.getElementById(contentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Outcome: \".concat(outcome, \"</p>\");\n}\n\nfunction createFillInTheBlanks(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n} \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction createTrueFalseStatements(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var statementList = document.createElement(\"ul\");\n statementList.classList.add(\"list\");\n contentData.statements.forEach(function (statement, index) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(statement.statement, \"</p>\\n <label><input type=\\\"radio\\\" name=\\\"q\").concat(index, \"\\\" value=\\\"true\\\"> True</label>\\n <label><input type=\\\"radio\\\" name=\\\"q\").concat(index, \"\\\" value=\\\"false\\\"> False</label>\\n <div id=\\\"feedback\").concat(index, \"\\\"></div>\\n \");\n statementList.appendChild(listItem);\n });\n contentArea.appendChild(statementList);\n\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answers\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkTrueFalseAnswers(contentData, statementList);\n });\n contentArea.appendChild(button);\n}\nfunction checkTrueFalseAnswers(contentData, statementList) {\n contentData.statements.forEach(function (statement, index) {\n var feedbackArea = statementList.querySelector(\"#feedback\".concat(index));\n feedbackArea.innerHTML = \"\";\n var selectedOption = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n if (!selectedOption) {\n feedbackArea.innerHTML = \"<p class=\\\"incorrect-feedback\\\">Please select an answer.</p>\";\n return;\n }\n var userAnswer = selectedOption.value === \"true\";\n var isCorrect = userAnswer === statement.isTrue;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? statement.feedback || \"Correct!\" : statement.feedback || \"Incorrect!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n });\n}\n\nfunction createDragAndDropActivity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"feedback-area\";\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.style.position = \"relative\";\n var itemsContainer = document.createElement(\"div\");\n itemsContainer.classList.add(\"items-container\", \"flex-container\", \"wrap\");\n\n var shuffledItems = shuffleArray(_toConsumableArray(contentData.items));\n shuffledItems.forEach(function (item) {\n var itemDiv = document.createElement(\"div\");\n itemDiv.textContent = item.text;\n itemDiv.classList.add(\"draggable-item\", \"btn\", \"btn-secondary\");\n itemDiv.setAttribute(\"draggable\", true);\n itemDiv.dataset.category = item.category;\n itemDiv.id = \"item-\".concat(item.id);\n\n itemDiv.addEventListener(\"dragstart\", dragStart67);\n itemsContainer.appendChild(itemDiv);\n });\n contentArea.appendChild(itemsContainer);\n\n var categoriesContainer = document.createElement(\"div\");\n categoriesContainer.classList.add(\"categories-container\", \"flex-container\", \"wrap\");\n contentData.categories.forEach(function (category) {\n var categoryDiv = document.createElement(\"div\");\n categoryDiv.classList.add(\"category\", \"drop-zone\");\n categoryDiv.textContent = category;\n categoryDiv.dataset.category = category;\n\n categoryDiv.addEventListener(\"dragover\", dragOver67);\n categoryDiv.addEventListener(\"dragleave\", dragLeave67);\n categoryDiv.addEventListener(\"drop\", function (event) {\n dragDrop67(event, categoryDiv, contentData, itemsContainer, categoriesContainer);\n });\n categoriesContainer.appendChild(categoryDiv);\n });\n contentArea.appendChild(categoriesContainer);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n if (!feedbackArea) {\n feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n }\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkDragAndDropAnswers(contentData, itemsContainer, categoriesContainer, feedbackAreaId);\n });\n contentArea.appendChild(checkButton);\n}\nfunction checkDragAndDropAnswers(contentData, itemsContainer, categoriesContainer, feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n\n if (!feedbackArea) {\n console.error(\"Error: Feedback area with ID \\\"\".concat(feedbackAreaId, \"\\\" not found.\"));\n return;\n }\n feedbackArea.innerHTML = \"\";\n var numCorrect = 0;\n var totalDropped = 0; \n\n contentData.items.forEach(function (item) {\n var itemElement = document.getElementById(\"item-\".concat(item.id));\n var correctCategory = categoriesContainer.querySelector(\".drop-zone[data-category=\\\"\".concat(item.category, \"\\\"]\"));\n\n var currentCategory = itemElement.closest(\".drop-zone\");\n if (currentCategory) {\n totalDropped++; \n\n if (currentCategory.dataset.category === correctCategory.dataset.category) {\n numCorrect++;\n itemElement.classList.add(\"correct-answer\");\n itemElement.classList.remove(\"incorrect-answer\");\n correctCategory.classList.add(\"correct-category\");\n correctCategory.classList.remove(\"incorrect-category\");\n } else {\n itemElement.classList.add(\"incorrect-answer\");\n itemElement.classList.remove(\"correct-answer\");\n currentCategory.classList.add(\"incorrect-category\");\n currentCategory.classList.remove(\"correct-category\");\n }\n } else {\n itemElement.classList.remove(\"correct-answer\", \"incorrect-answer\");\n }\n });\n\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.classList.add(numCorrect === totalDropped ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackMessage.textContent = numCorrect === totalDropped ? \"All \".concat(numCorrect, \" items placed correctly!\") : \"You got \".concat(numCorrect, \" out of \").concat(totalDropped, \" correct. Keep going!\");\n feedbackArea.appendChild(feedbackMessage);\n}\nfunction dragStart67(event) {\n event.dataTransfer.setData(\"text/plain\", event.target.id);\n event.currentTarget.classList.add(\"dragging\");\n}\nfunction dragOver67(event) {\n event.preventDefault(); \n event.currentTarget.classList.add(\"drag-over\"); \n}\nfunction dragLeave67(event) {\n event.currentTarget.classList.remove(\"drag-over\"); \n}\nfunction dragDrop67(event, dropZone, contentData, itemsContainer, categoriesContainer, feedbackAreaId) {\n event.preventDefault();\n var itemId = event.dataTransfer.getData(\"text/plain\");\n var itemElement = document.getElementById(itemId);\n\n if (itemElement.parentNode && itemElement.parentNode.classList.contains(\"drop-zone\")) {\n itemElement.parentNode.removeChild(itemElement);\n }\n\n dropZone.appendChild(itemElement);\n\n itemElement.style.position = \"\";\n itemElement.style.left = \"\";\n itemElement.style.top = \"\";\n\n checkDragAndDropAnswers(contentData, itemsContainer, categoriesContainer, feedbackAreaId);\n}\n\n\nfunction createCaseStudy(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.caseStudies.forEach(function (caseStudy) {\n var caseStudyDiv = document.createElement(\"div\");\n caseStudyDiv.classList.add(\"case-study\");\n caseStudyDiv.innerHTML = \"\\n <h3 class=\\\"case-title\\\">\".concat(caseStudy.caseTitle, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(caseStudy.description, \"</p>\\n <ol class=\\\"list\\\">\\n \").concat(caseStudy.questions.map(function (q) {\n return \"<li class=\\\"paragraph\\\">\".concat(q, \"</li>\");\n }).join(''), \"\\n </ol>\\n \");\n contentArea.appendChild(caseStudyDiv);\n });\n}\n\nfunction createMnemonicDevices(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var mnemonicsList = document.createElement(\"ul\");\n mnemonicsList.classList.add(\"list\");\n contentData.mnemonics.forEach(function (mnemonic) {\n var listItem = document.createElement(\"li\");\n\n var termElement = document.createElement(\"p\");\n termElement.classList.add(\"paragraph\");\n termElement.innerHTML = \"<strong>\".concat(mnemonic.term, \":</strong> \").concat(mnemonic.mnemonic);\n listItem.appendChild(termElement);\n\n if (mnemonic.explanation) {\n var explanationParagraph = document.createElement(\"p\");\n explanationParagraph.classList.add(\"paragraph\");\n explanationParagraph.textContent = \"Explanation: \".concat(mnemonic.explanation);\n listItem.appendChild(explanationParagraph);\n\n addCoverAndRevealFunctionality(explanationParagraph, \"Explanation\");\n }\n mnemonicsList.appendChild(listItem);\n });\n contentArea.appendChild(mnemonicsList);\n}\n\nfunction createRealWorldApplications(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.applications.forEach(function (application) {\n var applicationDiv = document.createElement(\"div\");\n applicationDiv.classList.add(\"application\");\n var conceptHeading = document.createElement(\"h3\");\n conceptHeading.classList.add(\"concept\");\n conceptHeading.textContent = application.concept;\n applicationDiv.appendChild(conceptHeading);\n var applicationParagraph = document.createElement(\"p\");\n applicationParagraph.classList.add(\"paragraph\");\n applicationParagraph.innerHTML = \"<strong>Application:</strong> \".concat(application.application);\n applicationDiv.appendChild(applicationParagraph);\n var explanationParagraph = document.createElement(\"p\");\n explanationParagraph.classList.add(\"paragraph\");\n explanationParagraph.textContent = application.explanation;\n applicationDiv.appendChild(explanationParagraph);\n\n addCoverAndRevealFunctionality(explanationParagraph, \"Explanation\");\n contentArea.appendChild(applicationDiv);\n });\n}\n\nfunction createProjectBasedLearning(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.projectDescription, \"</p>\");\n var objectivesList = document.createElement(\"ul\");\n objectivesList.classList.add(\"list\");\n contentData.objectives.forEach(function (objective) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = objective;\n objectivesList.appendChild(listItem);\n });\n contentArea.appendChild(objectivesList);\n if (contentData.steps) {\n contentArea.innerHTML += \"<h3>Steps:</h3>\";\n var stepsList = document.createElement(\"ol\");\n stepsList.classList.add(\"list\");\n contentData.steps.forEach(function (step) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = step;\n stepsList.appendChild(listItem);\n });\n contentArea.appendChild(stepsList);\n }\n if (contentData.resources) {\n contentArea.innerHTML += \"<h3>Resources:</h3>\";\n var resourcesList = document.createElement(\"ul\");\n resourcesList.classList.add(\"list\");\n contentData.resources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<a href=\\\"\".concat(resource, \"\\\" class=\\\"link\\\">\").concat(resource, \"</a>\");\n resourcesList.appendChild(listItem);\n });\n contentArea.appendChild(resourcesList);\n }\n}\n\nfunction createAIChatbot(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var chatbotContainer = document.createElement(\"div\");\n chatbotContainer.classList.add(\"chatbot-container\");\n var chatLog = document.createElement(\"div\");\n chatLog.classList.add(\"chat-log\");\n var inputArea = document.createElement(\"div\");\n inputArea.classList.add(\"input-area\");\n var userInput = document.createElement(\"input\");\n userInput.type = \"text\";\n userInput.classList.add(\"input\");\n userInput.placeholder = \"Ask me a question...\";\n var sendButton = document.createElement(\"button\");\n sendButton.textContent = \"Send\";\n sendButton.classList.add(\"btn\", \"btn-primary\");\n\n sendButton.addEventListener(\"click\", function () {\n var message = userInput.value.trim();\n if (message) {\n sendMessage(message);\n userInput.value = \"\"; \n }\n });\n inputArea.appendChild(userInput);\n inputArea.appendChild(sendButton);\n chatbotContainer.appendChild(chatLog);\n chatbotContainer.appendChild(inputArea);\n contentArea.appendChild(chatbotContainer);\n displayGreeting(contentData.greeting);\n function displayGreeting(greeting) {\n var botMessage = createBotMessage(greeting);\n chatLog.appendChild(botMessage);\n }\n function sendMessage(message) {\n var userMessage = createUserMessage(message);\n chatLog.appendChild(userMessage);\n var answer = getBotResponse(message, contentData.questions);\n var botMessage = createBotMessage(answer);\n chatLog.appendChild(botMessage);\n }\n function createBotMessage(text) {\n var message = document.createElement(\"div\");\n message.classList.add(\"message\", \"bot-message\");\n message.textContent = text;\n return message;\n }\n function createUserMessage(text) {\n var message = document.createElement(\"div\");\n message.classList.add(\"message\", \"user-message\");\n message.textContent = text;\n return message;\n }\n function getBotResponse(message, questions) {\n var lowerCaseMessage = message.toLowerCase();\n var _iterator = _createForOfIteratorHelper(questions),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var question = _step.value;\n if (lowerCaseMessage.includes(question.question.toLowerCase())) {\n return question.answer;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return \"I don't have an answer for that yet. Please try asking another question.\";\n }\n}\n\nfunction createConceptMap(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var mapContainer = document.createElement(\"div\");\n mapContainer.id = \"concept-map-container\";\n mapContainer.classList.add(\"concept-map-container\");\n contentArea.appendChild(mapContainer);\n\n var instance = jsPlumb.getInstance({\n Container: \"concept-map-container\",\n Endpoint: [\"Dot\", {\n radius: 2\n }],\n Connector: [\"StateMachine\", {\n curviness: 20\n }],\n Anchor: \"Continuous\",\n PaintStyle: {\n stroke: \"#555555\",\n strokeWidth: 2\n }\n });\n\n var nodeMap = new Map();\n contentData.nodes.forEach(function (nodeData, index) {\n var node = document.createElement(\"div\");\n node.id = nodeData.id;\n node.classList.add(\"concept-map-node\");\n node.textContent = nodeData.label;\n\n var angle = index / contentData.nodes.length * 2 * Math.PI;\n var radius = 150; \n node.style.left = \"\".concat(50 + radius * Math.cos(angle), \"%\");\n node.style.top = \"\".concat(50 + radius * Math.sin(angle), \"%\");\n\n instance.draggable(node, {\n containment: \"parent\" \n });\n mapContainer.appendChild(node);\n nodeMap.set(nodeData.id, node);\n });\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n\n var image = new Image();\n image.src = contentData.image;\n image.classList.add(\"diagram-image\");\n image.onload = function () {\n renderLinks(contentData.links, instance, nodeMap);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkConceptMap(contentData, instance, feedbackArea, mapContainer); \n });\n contentArea.appendChild(checkButton);\n };\n mapContainer.appendChild(image);\n}\nfunction renderLinks(links, instance, nodeMap) {\n links.forEach(function (linkData) {\n instance.connect({\n source: nodeMap.get(linkData.source),\n target: nodeMap.get(linkData.target),\n overlays: [[\"Label\", {\n label: linkData.label,\n location: 0.5\n }]]\n });\n });\n}\nfunction checkConceptMap(contentData, instance, feedbackArea) {\n var isCorrect = true;\n var feedback = \"\";\n var connections = instance.getAllConnections();\n contentData.links.forEach(function (link) {\n var connection = connections.find(function (c) {\n return c.sourceId === link.source && c.targetId === link.target || c.sourceId === link.target && c.targetId === link.source;\n });\n if (!connection || connection.getOverlay(\"label\").getLabel() !== link.label) {\n isCorrect = false;\n feedback += \"<p>Incorrect connection or label between \".concat(link.source, \" and \").concat(link.target, \"</p>\");\n var sourceNode = document.getElementById(link.source);\n var targetNode = document.getElementById(link.target);\n sourceNode.classList.add(\"incorrect-node\");\n targetNode.classList.add(\"incorrect-node\");\n connection.setPaintStyle({\n stroke: \"red\",\n strokeWidth: 3\n });\n } else {\n var _sourceNode = document.getElementById(link.source);\n var _targetNode = document.getElementById(link.target);\n _sourceNode.classList.remove(\"incorrect-node\");\n _targetNode.classList.remove(\"incorrect-node\");\n connection.setPaintStyle({\n stroke: \"#555555\",\n strokeWidth: 2\n }); \n }\n });\n feedbackArea.innerHTML = isCorrect ? '<p class=\"correct-feedback\">All connections are correct!</p>' : feedback;\n}\n\n\nfunction createAdaptiveQuiz(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentQuestionIndex = 0;\n var score = 0;\n function displayQuestion(index) {\n var question = contentData.questions[index];\n createContentHeader(contentData, ContentAreaId), _readOnlyError(\"contentArea\");\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n contentArea.appendChild(optionsList);\n } else if (question.type === \"trueFalse\") {\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\");\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"false\\\"> False</label>\");\n }\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = \"Next Question\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n return checkAnswer(index);\n });\n contentArea.appendChild(submitButton);\n }\n function checkAnswer(index) {\n var question = contentData.questions[index];\n var userInput;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var _document$querySelect;\n userInput = (_document$querySelect = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;\n }\n if (userInput === question.answer) {\n score += question.points;\n }\n\n\n if (currentQuestionIndex < contentData.questions.length) {\n displayQuestion(currentQuestionIndex);\n } else {\n contentArea.innerHTML += \"<p class=\\\"final-score\\\">Your score: \".concat(score, \"</p>\");\n }\n }\n\n function getNextQuestionIndex(questions, currentIndex, direction) {\n }\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createInteractiveTimeline(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var timelineContainer = document.createElement(\"div\");\n timelineContainer.classList.add(\"timeline-container\");\n contentData.events.forEach(function (event) {\n var eventDiv = document.createElement(\"div\");\n eventDiv.classList.add(\"timeline-event\");\n eventDiv.innerHTML = \"\\n <div class=\\\"timeline-date\\\">\".concat(event.date, \"</div>\\n <div class=\\\"timeline-content\\\">\\n <h3>\").concat(event.event, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(event.description, \"</p>\\n \").concat(event.image ? \"<img src=\\\"\".concat(event.image, \"\\\" alt=\\\"\").concat(event.event, \"\\\" class=\\\"image\\\">\") : \"\", \"\\n </div>\\n \");\n\n if (event.links && event.links.length > 0) {\n var linksContainer = document.createElement(\"div\");\n linksContainer.classList.add(\"links-container\");\n event.links.forEach(function (link) {\n var linkElement = document.createElement(\"a\");\n linkElement.href = link;\n linkElement.textContent = link;\n linkElement.target = \"_blank\";\n linkElement.classList.add(\"link\");\n linksContainer.appendChild(linkElement);\n });\n eventDiv.querySelector(\".timeline-content\").appendChild(linksContainer);\n }\n timelineContainer.appendChild(eventDiv);\n });\n contentArea.appendChild(timelineContainer);\n}\n\n\nfunction createInteractiveGrammarLesson(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var grammarPoint = document.createElement(\"h3\");\n grammarPoint.textContent = contentData.grammarPoint;\n grammarPoint.classList.add(\"grammar-point\", \"paragraph\");\n contentArea.appendChild(grammarPoint);\n\n var explanation = document.createElement(\"p\");\n explanation.textContent = contentData.explanation;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n\n if (contentData.examples && contentData.examples.length > 0) {\n var examplesList = document.createElement(\"ul\");\n examplesList.classList.add(\"list\");\n contentData.examples.forEach(function (example) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = example;\n listItem.classList.add(\"paragraph\");\n examplesList.appendChild(listItem);\n });\n contentArea.appendChild(examplesList);\n }\n\n contentData.exercises.forEach(function (exercise, index) {\n var exerciseDiv = document.createElement(\"div\");\n exerciseDiv.classList.add(\"exercise\");\n exerciseDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(exercise.prompt, \"</p>\");\n\n switch (exercise.type) {\n case \"multipleChoice\":\n createMultipleChoiceExercise(exercise, index, exerciseDiv);\n break;\n case \"fillInTheBlank\":\n createFillInTheBlankExercise(exercise, index, exerciseDiv);\n break;\n default:\n displayErrorMessage(\"Unsupported exercise type: \".concat(exercise.type));\n break;\n }\n contentArea.appendChild(exerciseDiv);\n });\n}\n\nfunction createMultipleChoiceExercise(exercise, index, exerciseDiv) {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n exercise.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkInteractiveGrammarLessonAnswer(exercise, index, exerciseDiv);\n });\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n exerciseDiv.appendChild(optionsList);\n exerciseDiv.appendChild(checkButton);\n exerciseDiv.appendChild(feedbackArea);\n}\n\nfunction createFillInTheBlankExercise(exercise, index, exerciseDiv) {\n var promptWithBlanks = exercise.prompt.replace(/\\[...\\]/g, \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"\\\">\"));\n exerciseDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(promptWithBlanks, \"</p>\");\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkInteractiveGrammarLessonAnswer(exercise, index, exerciseDiv);\n });\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n exerciseDiv.appendChild(checkButton);\n exerciseDiv.appendChild(feedbackArea);\n}\nfunction checkInteractiveGrammarLessonAnswer(exercise, index, exerciseDiv) {\n var _exercise$feedback, _exercise$feedback2;\n var feedbackArea = exerciseDiv.querySelector(\"#feedback\".concat(index));\n feedbackArea.innerHTML = \"\";\n var userInput = \"\";\n if (exercise.type === \"multipleChoice\") {\n var _exerciseDiv$querySel;\n userInput = (_exerciseDiv$querySel = exerciseDiv.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"))) === null || _exerciseDiv$querySel === void 0 ? void 0 : _exerciseDiv$querySel.value;\n } else {\n var _exerciseDiv$querySel2;\n userInput = (_exerciseDiv$querySel2 = exerciseDiv.querySelector(\"#answer\".concat(index))) === null || _exerciseDiv$querySel2 === void 0 ? void 0 : _exerciseDiv$querySel2.value;\n }\n var isCorrect = userInput !== null && userInput.toLowerCase() === exercise.answer.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? ((_exercise$feedback = exercise.feedback) === null || _exercise$feedback === void 0 ? void 0 : _exercise$feedback.correct) || \"Correct!\" : ((_exercise$feedback2 = exercise.feedback) === null || _exercise$feedback2 === void 0 ? void 0 : _exercise$feedback2.incorrect) || \"Incorrect. The correct answer is: \".concat(exercise.answer);\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\"); \n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createVocabularyQuizzes(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var currentQuestionIndex = 0;\n var score = 0;\n\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: 0\";\n contentArea.appendChild(scoreDisplay);\n function displayQuestion(index) {\n var question = contentData.questions[index];\n contentArea.innerHTML = \"\"; \n contentArea.appendChild(title); \n contentArea.appendChild(scoreDisplay);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n\n var answerElement;\n if (question.type === \"multipleChoice\") {\n answerElement = document.createElement(\"ul\");\n answerElement.classList.add(\"list\");\n question.options.forEach(function (option) {\n var optionItem = document.createElement(\"li\");\n optionItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n answerElement.appendChild(optionItem);\n });\n } else if (question.type === \"trueFalse\") {\n answerElement = document.createElement(\"div\");\n answerElement.innerHTML = \"\\n <label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\\n <label><input type=\\\"radio\\\" name=\\\"q\").concat(index, \"\\\" value=\\\"false\\\"> False</label>\\n \");\n } else if (question.type === \"shortAnswer\") {\n answerElement = document.createElement(\"input\");\n answerElement.type = \"text\";\n answerElement.classList.add(\"input\");\n } else {\n displayErrorMessage(\"Unsupported question type\");\n return; \n }\n answerElement.id = \"answer\".concat(index);\n contentArea.appendChild(answerElement);\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = index === contentData.questions.length - 1 ? \"Finish Quiz\" : \"Next Question\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n return checkAnswer(index);\n });\n contentArea.appendChild(submitButton);\n }\n function checkAnswer(index) {\n var _question$feedback5;\n var question = contentData.questions[index];\n var userInput;\n var isCorrect;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var _document$querySelect2;\n userInput = (_document$querySelect2 = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.value;\n } else if (question.type === \"shortAnswer\") {\n userInput = document.getElementById(\"answer\".concat(index)).value;\n }\n\n if (userInput === null) {\n displayFeedback(\"Please select an answer.\", false);\n return;\n }\n isCorrect = userInput.toLowerCase() === question.answer.toLowerCase();\n if (isCorrect) {\n score++;\n scoreDisplay.textContent = \"Score: \".concat(score);\n }\n displayFeedback(((_question$feedback5 = question.feedback) === null || _question$feedback5 === void 0 ? void 0 : _question$feedback5[isCorrect ? \"correct\" : \"incorrect\"]) || (isCorrect ? \"Correct!\" : \"Incorrect!\"), isCorrect);\n if (index < contentData.questions.length - 1) {\n currentQuestionIndex++;\n setTimeout(function () {\n return displayQuestion(currentQuestionIndex);\n }, 1000); \n } else {\n endQuiz();\n }\n }\n function displayFeedback(feedbackMessage, isCorrect) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var feedbackParagraph = document.createElement(\"p\");\n feedbackParagraph.textContent = feedbackMessage;\n feedbackParagraph.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackParagraph);\n }\n function endQuiz() {\n contentArea.innerHTML = \"\\n <h2 class=\\\"title\\\">Quiz Completed!</h2>\\n <p class=\\\"paragraph\\\">Your final score: \".concat(score, \"</p>\\n \");\n }\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createPictureDescriptionGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var images = shuffleArray(contentData.images); \n var currentImageIndex = 0;\n\n var imageDescriptionContainer = document.createElement('div');\n imageDescriptionContainer.classList.add('image-description-container'); \n\n var imageElement = document.createElement('img');\n imageElement.classList.add('image'); \n imageDescriptionContainer.appendChild(imageElement);\n\n var descriptionArea = document.createElement('div');\n descriptionArea.classList.add('description-area');\n imageDescriptionContainer.appendChild(descriptionArea);\n contentArea.appendChild(imageDescriptionContainer);\n displayImage(currentImageIndex);\n\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.disabled = true; \n prevButton.addEventListener(\"click\", function () {\n currentImageIndex = Math.max(0, currentImageIndex - 1);\n displayImage(currentImageIndex);\n updateButtonStates();\n });\n buttonsContainer.appendChild(prevButton);\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n currentImageIndex = Math.min(images.length - 1, currentImageIndex + 1);\n displayImage(currentImageIndex);\n updateButtonStates();\n });\n buttonsContainer.appendChild(nextButton);\n contentArea.appendChild(buttonsContainer); \n updateButtonStates(); \n\n function displayImage(index) {\n var imageData = images[index];\n imageElement.src = imageData.url;\n imageElement.alt = imageData.description || \"Image Description\";\n\n descriptionArea.innerHTML = \"\\n <textarea id=\\\"imageDescription\".concat(index, \"\\\" class=\\\"textarea\\\" placeholder=\\\"Describe the image...\\\"></textarea>\\n <button class=\\\"btn check-button\\\" onclick=\\\"checkDescription(\").concat(index, \")\\\">Check Description</button>\\n <div class=\\\"feedback\\\" id=\\\"feedback\").concat(index, \"\\\"></div>\\n \");\n }\n function checkDescription(index) {\n var userDescription = document.getElementById(\"imageDescription\".concat(index)).value.trim();\n var correctDescription = images[index].description;\n var feedback = document.getElementById(\"feedback\".concat(index));\n\n if (userDescription.toLowerCase() === correctDescription.toLowerCase()) {\n feedback.innerHTML = '<p class=\"correct-feedback\">Correct!</p>';\n } else {\n feedback.innerHTML = \"<p class=\\\"incorrect-feedback\\\">Try again! The correct description is: \".concat(correctDescription, \"</p>\");\n }\n }\n\n function updateButtonStates() {\n prevButton.disabled = currentImageIndex === 0;\n nextButton.disabled = currentImageIndex === images.length - 1;\n }\n}\n\nfunction createInteractiveAudiobooks(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var audioPlayer = document.createElement(\"audio\");\n audioPlayer.src = contentData.audioUrl;\n audioPlayer.controls = true;\n audioPlayer.classList.add(\"audio\");\n contentArea.appendChild(audioPlayer);\n\n var textContainer = document.createElement(\"div\");\n textContainer.id = \"text-container\";\n textContainer.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(contentData.content, \"</p>\");\n\n contentData.vocabulary.forEach(function (vocabItem) {\n var wordElements = textContainer.querySelectorAll(\".paragraph:contains(\\\"\".concat(vocabItem.term, \"\\\")\"));\n wordElements.forEach(function (wordElement) {\n var regex = new RegExp(vocabItem.term, 'gi'); \n wordElement.innerHTML = wordElement.innerHTML.replace(regex, \"<span class=\\\"vocab-term\\\" title=\\\"\".concat(vocabItem.definition, \"\\\">\").concat(vocabItem.term, \"</span>\"));\n });\n });\n contentArea.appendChild(textContainer);\n\n if (contentData.quizzes && contentData.quizzes.length > 0) {\n var displayQuiz = function displayQuiz(index) {\n quizContainer.innerHTML = \"\"; \n createSelfAssessmentQuiz(contentData.quizzes[index], quizContainer);\n }; \n var quizContainer = document.createElement(\"div\");\n quizContainer.classList.add(\"quiz-container\");\n contentArea.appendChild(quizContainer);\n var currentQuizIndex = 0;\n displayQuiz(currentQuizIndex);\n var quizNavButtons = document.createElement(\"div\");\n quizNavButtons.classList.add(\"button-container\", \"centered-button\");\n if (contentData.quizzes.length > 1) {\n var nextQuizButton = document.createElement(\"button\");\n nextQuizButton.textContent = \"Next Quiz\";\n nextQuizButton.classList.add(\"btn\", \"btn-primary\");\n nextQuizButton.addEventListener(\"click\", function () {\n currentQuizIndex = (currentQuizIndex + 1) % contentData.quizzes.length;\n displayQuiz(currentQuizIndex);\n });\n quizNavButtons.appendChild(nextQuizButton);\n }\n contentArea.appendChild(quizNavButtons);\n }\n\n audioPlayer.addEventListener(\"timeupdate\", function () {\n var currentTime = audioPlayer.currentTime;\n\n var wordElements = textContainer.querySelectorAll(\".vocab-term\");\n wordElements.forEach(function (wordElement) {\n wordElement.classList.remove(\"current-word\"); \n });\n var wordToHighlight = findWordAtTime(currentTime, contentData.content); \n if (wordToHighlight) {\n var highlightedElement = textContainer.querySelector(\".vocab-term:contains(\\\"\".concat(wordToHighlight, \"\\\")\"));\n if (highlightedElement) {\n highlightedElement.classList.add(\"current-word\");\n highlightedElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n }\n });\n}\n\nfunction findWordAtTime(time, text) {\n\n return null; \n}\n\nfunction createInteractiveReadingQuizzes(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentSectionIndex = 0;\n var score = 0;\n var totalQuestions = 0;\n\n contentData.content.forEach(function (section) {\n totalQuestions += section.questions.length;\n });\n\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: 0\";\n contentArea.appendChild(scoreDisplay);\n\n function displaySection(index) {\n var section = contentData.content[index];\n createContentHeader(contentData, ContentAreaId);\n contentArea.appendChild(scoreDisplay);\n\n var sectionTitle = document.createElement(\"h3\");\n sectionTitle.textContent = section.sectionTitle || \"Section \".concat(index + 1);\n sectionTitle.classList.add(\"title\");\n contentArea.appendChild(sectionTitle);\n var sectionText = document.createElement(\"p\");\n sectionText.textContent = section.text;\n sectionText.classList.add(\"paragraph\");\n contentArea.appendChild(sectionText);\n\n var quizContainer = document.createElement(\"div\");\n quizContainer.classList.add(\"quiz-container\");\n contentArea.appendChild(quizContainer);\n\n section.questions.forEach(function (question, questionIndex) {\n var questionDiv = document.createElement(\"div\");\n questionDiv.classList.add(\"question\");\n questionDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n\n var answerElement;\n if (question.type === \"multipleChoice\") {\n answerElement = document.createElement(\"ul\");\n answerElement.classList.add(\"list\");\n question.options.forEach(function (option) {\n var optionItem = document.createElement(\"li\");\n optionItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"-\").concat(questionIndex, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n answerElement.appendChild(optionItem);\n });\n } else if (question.type === \"shortAnswer\") {\n answerElement = document.createElement(\"input\");\n answerElement.type = \"text\";\n answerElement.classList.add(\"input\");\n }\n answerElement.id = \"answer\".concat(index, \"-\").concat(questionIndex);\n questionDiv.appendChild(answerElement);\n quizContainer.appendChild(questionDiv);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkQuizAnswer(index, questionIndex);\n });\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index, \"-\").concat(questionIndex);\n questionDiv.appendChild(checkButton);\n questionDiv.appendChild(feedbackArea);\n });\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Section\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displaySection(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < contentData.content.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Section\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displaySection(index + 1);\n });\n navButtons.appendChild(nextButton);\n }\n contentArea.appendChild(navButtons);\n }\n\n function checkQuizAnswer(sectionIndex, questionIndex) {\n var _question$feedback6, _question$feedback7;\n var section = contentData.content[sectionIndex];\n var question = section.questions[questionIndex];\n var feedbackArea = document.getElementById(\"feedback\".concat(sectionIndex, \"-\").concat(questionIndex));\n feedbackArea.innerHTML = \"\";\n var userInput;\n if (question.type === \"multipleChoice\") {\n var _document$querySelect3;\n userInput = (_document$querySelect3 = document.querySelector(\"input[name=\\\"q\".concat(sectionIndex, \"-\").concat(questionIndex, \"\\\"]:checked\"))) === null || _document$querySelect3 === void 0 ? void 0 : _document$querySelect3.value;\n } else {\n userInput = document.getElementById(\"answer\".concat(sectionIndex, \"-\").concat(questionIndex)).value;\n }\n var isCorrect = userInput !== null && userInput.toLowerCase() === question.answer.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? ((_question$feedback6 = question.feedback) === null || _question$feedback6 === void 0 ? void 0 : _question$feedback6.correct) || \"Correct!\" : ((_question$feedback7 = question.feedback) === null || _question$feedback7 === void 0 ? void 0 : _question$feedback7.incorrect) || \"Incorrect!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n score++;\n scoreDisplay.textContent = \"Score: \".concat(score, \" / \").concat(totalQuestions);\n }\n }\n displaySection(currentSectionIndex);\n}\n\nfunction createAIPoweredWritingAssistant(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var inputContainer = document.createElement(\"div\");\n inputContainer.classList.add(\"input-container\");\n var textArea = document.createElement(\"textarea\");\n textArea.classList.add(\"textarea\");\n textArea.placeholder = \"Enter your text here...\";\n inputContainer.appendChild(textArea);\n var button = document.createElement(\"button\");\n button.textContent = \"Get Feedback\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n var text = textArea.value;\n if (text.trim() !== \"\") {\n getAIWritingFeedback(text);\n } else {\n displayErrorMessage(\"Please enter some text.\");\n }\n });\n inputContainer.appendChild(button);\n contentArea.appendChild(inputContainer);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n}\n\nfunction getAIWritingFeedback(_x) {\n return _getAIWritingFeedback.apply(this, arguments);\n} \nfunction _getAIWritingFeedback() {\n _getAIWritingFeedback = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2(text) {\n var feedbackArea, feedback, words, _loop, key;\n return _regeneratorRuntime().wrap(function _callee2$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n feedback = {\n \"Grammar\": [],\n \"Style\": [],\n \"Vocabulary\": [],\n \"Suggestions\": []\n }; \n words = text.split(\" \");\n if (words.length > 2) {\n feedback.Grammar.push(\"Consider revising the sentence structure for clarity.\");\n feedback.Style.push(\"Vary your sentence length to make the writing more engaging.\");\n feedback.Vocabulary.push(\"Consider using the word 'fascinating' instead of 'interesting'.\");\n feedback.Suggestions.push(\"Expand on the idea in the third sentence.\");\n }\n _loop = _regeneratorRuntime().mark(function _loop() {\n var feedbackSection, sectionHeading, feedbackList;\n return _regeneratorRuntime().wrap(function _loop$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n feedbackSection = document.createElement(\"section\");\n sectionHeading = document.createElement(\"h3\");\n sectionHeading.textContent = key;\n feedbackSection.appendChild(sectionHeading);\n if (feedback[key].length > 0) {\n feedbackList = document.createElement(\"ul\");\n feedbackList.classList.add(\"list\");\n feedback[key].forEach(function (point) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = point;\n feedbackList.appendChild(listItem);\n });\n feedbackSection.appendChild(feedbackList);\n } else {\n feedbackSection.innerHTML += \"<p class='paragraph'>No suggestions.</p>\";\n }\n feedbackArea.appendChild(feedbackSection);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _loop);\n });\n _context3.t0 = _regeneratorRuntime().keys(feedback);\n case 7:\n if ((_context3.t1 = _context3.t0()).done) {\n _context3.next = 12;\n break;\n }\n key = _context3.t1.value;\n return _context3.delegateYield(_loop(), \"t2\", 10);\n case 10:\n _context3.next = 7;\n break;\n case 12:\n case \"end\":\n return _context3.stop();\n }\n }, _callee2);\n }));\n return _getAIWritingFeedback.apply(this, arguments);\n}\nfunction createVocabularyChallengeGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentGameIndex = 0;\n var score = 0;\n var games = contentData.games; \n\n var gameContainer = document.createElement(\"div\");\n gameContainer.id = \"game-container\";\n contentArea.appendChild(gameContainer);\n\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"score-display\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: \".concat(score);\n contentArea.appendChild(scoreDisplay);\n function displayGame(index) {\n var game = games[index];\n gameContainer.innerHTML = \"\";\n gameContainer.innerHTML += \"<h3 class=\\\"game-title\\\">\".concat(game.gameType, \"</h3>\");\n\n switch (game.gameType) {\n case \"matching\":\n createMatchingGame(game, gameContainer);\n break;\n case \"wordScramble\":\n createWordScrambleGame(game, gameContainer);\n break;\n case \"sentenceCompletion\":\n createSentenceCompletionGame(game, gameContainer);\n break;\n default:\n displayErrorMessage(\"Invalid game type.\");\n break;\n }\n }\n function createMatchingGame(game, container) {\n container.innerHTML = \"\"; \n\n var instructions = document.createElement(\"p\");\n instructions.textContent = \"Match the words with their definitions:\";\n instructions.classList.add(\"paragraph\");\n container.appendChild(instructions);\n\n var shuffledWords = shuffleArray(_toConsumableArray(game.words));\n var shuffledDefinitions = shuffleArray(_toConsumableArray(game.words).map(function (word) {\n return word.definition;\n }));\n var wordList = document.createElement(\"ul\");\n wordList.classList.add(\"list\", \"matching-word-list\");\n var definitionList = document.createElement(\"ul\");\n definitionList.classList.add(\"list\", \"matching-definition-list\");\n var pairs = []; \n shuffledWords.forEach(function (word, index) {\n var wordItem = document.createElement(\"li\");\n wordItem.textContent = word;\n wordItem.classList.add(\"word-item\", \"btn\", \"btn-secondary\");\n wordItem.setAttribute(\"draggable\", true);\n wordItem.id = \"word-\".concat(index);\n wordItem.addEventListener(\"dragstart\", dragStart);\n wordList.appendChild(wordItem);\n var definitionItem = document.createElement(\"li\");\n definitionItem.textContent = shuffledDefinitions[index]; \n definitionItem.classList.add(\"definition-item\", \"drop-zone\");\n definitionItem.id = \"definition-\".concat(index);\n definitionItem.addEventListener(\"dragover\", dragOver);\n definitionItem.addEventListener(\"drop\", function (event) {\n dragDropMatching(event, index);\n });\n definitionList.appendChild(definitionItem);\n\n pairs.push({\n word: word,\n definition: shuffledDefinitions[index]\n });\n });\n container.appendChild(wordList);\n container.appendChild(definitionList);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkMatchingAnswers(pairs, contentData, gameContainer);\n });\n container.appendChild(checkButton);\n }\n function dragStart(event) {\n event.dataTransfer.setData(\"text/plain\", event.target.id);\n }\n function dragOver(event) {\n event.preventDefault();\n }\n function dragDropMatching(event, definitionIndex) {\n event.preventDefault();\n var wordId = event.dataTransfer.getData(\"text/plain\");\n var wordElement = document.getElementById(wordId);\n var definitionElement = document.getElementById(\"definition-\".concat(definitionIndex));\n definitionElement.appendChild(wordElement);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n }\n function checkMatchingAnswers(pairs, contentData, gameContainer) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var score = 0;\n pairs.forEach(function (pair, index) {\n var wordItem = document.getElementById(\"word-\".concat(index));\n var definitionItem = document.getElementById(\"definition-\".concat(index));\n var isCorrect = wordItem.textContent === pair.word && definitionItem.textContent === pair.definition; \n\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n score += contentData.games[currentGameIndex].pointsPerWord || 1; \n }\n });\n\n var scoreDisplay = document.getElementById(\"score-display\");\n scoreDisplay.textContent = \"Score: \".concat(score);\n\n if (score === pairs.length) {\n feedbackArea.innerHTML += \"<p class=\\\"correct-feedback\\\">Congratulations! You matched all the pairs correctly.</p>\";\n }\n }\n function createWordScrambleGame(game, container) {\n container.innerHTML = \"\";\n var instructions = document.createElement(\"p\");\n instructions.textContent = \"Unscramble the words and type them in the boxes below:\";\n instructions.classList.add(\"paragraph\");\n container.appendChild(instructions);\n\n var shuffledWords = shuffleArray(game.words);\n shuffledWords.forEach(function (word, index) {\n var wordDiv = document.createElement(\"div\");\n wordDiv.classList.add(\"word-scramble-item\");\n var scrambledWord = shuffleWord(word.word);\n wordDiv.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(scrambledWord, \"</p>\\n <input type=\\\"text\\\" class=\\\"input\\\" id=\\\"scrambled-answer-\").concat(index, \"\\\">\\n \");\n container.appendChild(wordDiv);\n });\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkWordScrambleAnswers(shuffledWords, contentData, gameContainer);\n });\n container.appendChild(checkButton);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n container.appendChild(feedbackArea);\n }\n\n function shuffleWord(word) {\n var letters = word.split(\"\");\n for (var i = letters.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var _ref4 = [letters[j], letters[i]];\n letters[i] = _ref4[0];\n letters[j] = _ref4[1];\n }\n return letters.join(\"\");\n }\n function checkWordScrambleAnswers(shuffledWords, contentData, gameContainer) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var score = 0;\n shuffledWords.forEach(function (wordData, index) {\n var userInput = document.getElementById(\"scrambled-answer-\".concat(index)).value.trim().toLowerCase();\n var isCorrect = userInput === wordData.word.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. The answer is \".concat(wordData.word);\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n score += contentData.games[currentGameIndex].pointsPerWord || 1;\n }\n });\n\n var scoreDisplay = document.getElementById(\"score-display\");\n scoreDisplay.textContent = \"Score: \".concat(score);\n\n if (score === shuffledWords.length) {\n feedbackArea.innerHTML += \"<p class=\\\"correct-feedback\\\">Congratulations! You unscrambled all the words correctly.</p>\";\n }\n }\n function createSentenceCompletionGame(game, container) {\n container.innerHTML = \"\";\n var instructions = document.createElement(\"p\");\n instructions.textContent = \"Complete the sentences with the correct words:\";\n instructions.classList.add(\"paragraph\");\n container.appendChild(instructions);\n\n var shuffledSentences = shuffleArray(_toConsumableArray(game.words));\n shuffledSentences.forEach(function (wordData, index) {\n var sentenceDiv = document.createElement(\"div\");\n sentenceDiv.classList.add(\"sentence-completion-item\");\n\n var sentenceWithBlank = wordData.example.replace(wordData.word, \"[...]\"); \n\n sentenceDiv.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(sentenceWithBlank, \"</p>\\n <input type=\\\"text\\\" class=\\\"input\\\" id=\\\"completion-answer-\").concat(index, \"\\\">\\n \");\n container.appendChild(sentenceDiv);\n });\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkSentenceCompletionAnswers(shuffledSentences, contentData, gameContainer);\n });\n container.appendChild(checkButton);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n container.appendChild(feedbackArea);\n }\n function checkSentenceCompletionAnswers(shuffledSentences, contentData, gameContainer) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\"; \n var score = 0;\n shuffledSentences.forEach(function (wordData, index) {\n var userInput = document.getElementById(\"completion-answer-\".concat(index)).value.trim().toLowerCase();\n var isCorrect = userInput === wordData.word.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. The answer is \".concat(wordData.word);\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n score += contentData.games[currentGameIndex].pointsPerWord || 1;\n }\n });\n\n var scoreDisplay = document.getElementById(\"score-display\");\n scoreDisplay.textContent = \"Score: \".concat(score);\n\n if (score === shuffledSentences.length) {\n feedbackArea.innerHTML += \"<p class=\\\"correct-feedback\\\">Congratulations! You completed all the sentences correctly.</p>\";\n }\n }\n function checkGameAnswer(game, userInput) {\n if (game.words.includes(userInput)) {\n score += game.pointsPerWord;\n scoreDisplay.textContent = \"Score: \".concat(score);\n return true;\n }\n return false;\n }\n function nextGame() {\n currentGameIndex = (currentGameIndex + 1) % games.length;\n displayGame(currentGameIndex);\n }\n displayGame(currentGameIndex);\n}\n\nfunction createPronunciationDrillsWithFeedback(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = document.getElementById(ContentAreaId);\n var words = contentData.words;\n var currentWordIndex = 0;\n var isRecording = false;\n var mediaRecorder;\n var recordedChunks = [];\n var recordedAudioUrl = null;\n var userAudio = null; \n\n function displayWord(index) {\n var wordData = words[index];\n contentArea.innerHTML = \"\"; \n contentArea.innerHTML += \"<h2 class=\\\"title\\\">\".concat(contentData.title || \"Pronunciation Drills\", \"</h2>\");\n var wordDiv = document.createElement(\"div\");\n wordDiv.classList.add(\"word-drill\", \"paragraph\");\n wordDiv.innerHTML = \"\\n <p><strong>Word:</strong> \".concat(wordData.word, \"</p>\\n <audio controls src=\\\"\").concat(wordData.audioUrl, \"\\\" class=\\\"reference-audio\\\"></audio>\\n <button id=\\\"recordButton\\\" class=\\\"btn btn-primary\\\">Record</button>\\n <button id=\\\"compareButton\\\" class=\\\"btn btn-secondary\\\" disabled>Compare</button>\\n <div class=\\\"feedback\\\" id=\\\"feedback\\\"></div>\\n \");\n contentArea.appendChild(wordDiv);\n var recordButton = document.getElementById(\"recordButton\");\n var compareButton = document.getElementById(\"compareButton\");\n var feedbackArea = document.getElementById(\"feedback\");\n recordButton.addEventListener(\"click\", _asyncToGenerator(_regeneratorRuntime().mark(function _callee() {\n var stream;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!isRecording) {\n _context.next = 6;\n break;\n }\n mediaRecorder.stop();\n recordButton.textContent = \"Record\";\n compareButton.disabled = false;\n _context.next = 22;\n break;\n case 6:\n _context.prev = 6;\n _context.next = 9;\n return navigator.mediaDevices.getUserMedia({\n audio: true\n });\n case 9:\n stream = _context.sent;\n mediaRecorder = new MediaRecorder(stream);\n recordedChunks = [];\n mediaRecorder.ondataavailable = function (e) {\n return recordedChunks.push(e.data);\n };\n mediaRecorder.onstop = function () {\n var blob = new Blob(recordedChunks, {\n \"type\": \"audio/webm\"\n });\n recordedAudioUrl = URL.createObjectURL(blob);\n if (userAudio) {\n userAudio.src = recordedAudioUrl;\n } else {\n userAudio = new Audio(recordedAudioUrl);\n userAudio.controls = true;\n wordDiv.appendChild(userAudio);\n }\n };\n mediaRecorder.start();\n recordButton.textContent = \"Stop Recording\";\n _context.next = 22;\n break;\n case 18:\n _context.prev = 18;\n _context.t0 = _context[\"catch\"](6);\n console.error(\"Error accessing microphone:\", _context.t0);\n feedbackArea.textContent = \"Error accessing microphone.\";\n case 22:\n isRecording = !isRecording;\n case 23:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[6, 18]]);\n })));\n\n compareButton.addEventListener(\"click\", function () {\n\n var feedback = Math.random() > 0.5 ? \"Good pronunciation!\" : \"Try again!\";\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(feedback.startsWith(\"Good\") ? \"correct-feedback\" : \"incorrect-feedback\", \"\\\">\").concat(feedback, \"</p>\");\n });\n }\n\n function previousWord() {\n currentWordIndex = Math.max(0, currentWordIndex - 1);\n displayWord(currentWordIndex);\n }\n function nextWord() {\n currentWordIndex = Math.min(words.length - 1, currentWordIndex + 1);\n displayWord(currentWordIndex);\n }\n\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", previousWord);\n prevButton.disabled = currentWordIndex === 0;\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", nextWord);\n nextButton.disabled = currentWordIndex === words.length - 1;\n\n contentArea.appendChild(prevButton);\n contentArea.appendChild(nextButton);\n\n displayWord(currentWordIndex);\n}\n\nfunction createInteractiveCulturalActivities(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = document.getElementById(ContentAreaId);\n var title = document.createElement(\"h2\");\n title.textContent = contentData.title || \"Interactive Cultural Activities\";\n title.classList.add(\"title\");\n contentArea.appendChild(title);\n var currentActivityIndex = 0;\n var activities = contentData.activities;\n function displayActivity(index) {\n var activity = activities[index];\n contentArea.innerHTML = \"\";\n contentArea.appendChild(title);\n var activityDiv = document.createElement(\"div\");\n activityDiv.classList.add(\"activity\");\n activityDiv.innerHTML = \"\\n <h3 class=\\\"activity-title\\\">\".concat(activity.title, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(activity.description, \"</p>\\n \");\n\n switch (activity.type) {\n case \"game\":\n var imagePairs = activity.content.pairs;\n var shuffledPairs = shuffleArray(_toConsumableArray(imagePairs)); \n\n var imageContainer = document.createElement(\"div\");\n imageContainer.classList.add(\"matching-game-container\");\n shuffledPairs.forEach(function (pair) {\n var imageDiv = document.createElement(\"div\");\n imageDiv.classList.add(\"image-pair\");\n var img1 = document.createElement(\"img\");\n img1.src = pair.image1;\n img1.alt = \"Image 1\";\n img1.classList.add(\"matching-image\");\n img1.draggable = true;\n img1.addEventListener(\"dragstart\", dragStart);\n imageDiv.appendChild(img1);\n var img2 = document.createElement(\"img\");\n img2.src = pair.image2;\n img2.alt = \"Image 2\";\n img2.classList.add(\"matching-image\", \"drop-zone\");\n img2.addEventListener(\"dragover\", dragOver);\n img2.addEventListener(\"drop\", function (event) {\n return dragDropMatching(event, pair, imageDiv);\n });\n imageDiv.appendChild(img2);\n imageContainer.appendChild(imageDiv);\n });\n activityDiv.appendChild(imageContainer);\n\n var _checkButton = document.createElement(\"button\");\n _checkButton.textContent = \"Check Answers\";\n _checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n _checkButton.addEventListener(\"click\", function () {\n checkMatchingGameAnswers(shuffledPairs, activityDiv);\n });\n activityDiv.appendChild(_checkButton);\n break;\n case \"quiz\":\n createSelfAssessmentQuiz(activity.content, activityDiv);\n break;\n case \"video\":\n var videoContainer = document.createElement(\"div\");\n videoContainer.classList.add(\"video-container\");\n var iframe = document.createElement(\"iframe\");\n if (activity.content.includes(\"youtube.com/watch\")) {\n var videoId = activity.content.split(\"v=\")[1];\n iframe.src = \"https://www.youtube.com/embed/\".concat(videoId);\n } else {\n iframe.src = activity.content;\n }\n iframe.width = \"560\";\n iframe.height = \"315\";\n iframe.frameBorder = \"0\";\n iframe.allowFullscreen = true;\n videoContainer.appendChild(iframe);\n activityDiv.appendChild(videoContainer);\n break;\n default:\n displayErrorMessage(\"Unsupported activity type\");\n break;\n }\n contentArea.appendChild(activityDiv);\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Activity\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayActivity(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < activities.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Activity\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displayActivity(index + 1);\n });\n navButtons.appendChild(nextButton);\n }\n contentArea.appendChild(navButtons);\n }\n\n function dragStart(event) {\n event.dataTransfer.setData(\"text/plain\", event.target.id); \n }\n function dragOver(event) {\n event.preventDefault();\n }\n function dragDropMatching(event, pair, container) {\n event.preventDefault();\n var imageId = event.dataTransfer.getData(\"text/plain\");\n var imageElement = document.getElementById(imageId);\n var dropZone = event.target;\n dropZone.appendChild(imageElement);\n\n checkMatchingGameAnswers(contentData.activities[currentActivityIndex].content.pairs, container);\n }\n function checkMatchingGameAnswers(pairs, activityContainer) {\n var feedbackArea = activityContainer.querySelector(\"#feedback-area\");\n if (!feedbackArea) {\n var _feedbackArea = document.createElement(\"div\");\n _feedbackArea.id = feedbackAreaId;\n activityContainer.appendChild(_feedbackArea);\n }\n feedbackArea.innerHTML = \"\";\n var numCorrect = 0;\n pairs.forEach(function (pair) {\n var image1Element = document.querySelector(\"img[src=\\\"\".concat(pair.image1, \"\\\"]\"));\n var image2Element = document.querySelector(\"img[src=\\\"\".concat(pair.image2, \"\\\"]\"));\n var isCorrect = image1Element.parentNode === image2Element.parentNode;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. Try again!\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n numCorrect++;\n }\n });\n if (numCorrect === pairs.length) {\n feedbackArea.innerHTML += '<p class=\"correct-feedback\">Congratulations! You matched all the pairs correctly.</p>';\n }\n }\n displayActivity(currentActivityIndex);\n}\n\nfunction createMatchingGame(game, container) {\n container.innerHTML = \"\";\n var instructions = document.createElement(\"p\");\n instructions.textContent = \"Match the words with their corresponding images:\";\n instructions.classList.add(\"paragraph\");\n container.appendChild(instructions);\n\n var shuffledPairs = shuffleArray(_toConsumableArray(game.pairs));\n\n var wordList = document.createElement(\"ul\");\n wordList.classList.add(\"list\", \"matching-word-list\");\n container.appendChild(wordList);\n\n var imageList = document.createElement(\"ul\");\n imageList.classList.add(\"list\", \"matching-image-list\");\n container.appendChild(imageList);\n shuffledPairs.forEach(function (pair, index) {\n var wordItem = document.createElement(\"li\");\n wordItem.textContent = pair.word;\n wordItem.classList.add(\"word-item\", \"btn\", \"btn-secondary\", \"draggable-item\");\n wordItem.setAttribute(\"draggable\", true);\n wordItem.id = \"word-\".concat(index);\n wordItem.dataset.wordId = index;\n wordItem.addEventListener(\"dragstart\", dragStart);\n wordList.appendChild(wordItem);\n\n var imageItem = document.createElement(\"li\");\n imageItem.classList.add(\"image-item\", \"drop-zone\");\n imageItem.dataset.wordId = index;\n imageItem.addEventListener(\"dragover\", dragOver);\n imageItem.addEventListener(\"drop\", function (event) {\n dragDropMatching(event, index);\n });\n var image = document.createElement(\"img\");\n image.src = pair.imageUrl;\n image.alt = pair.word;\n image.classList.add(\"matching-image\");\n imageItem.appendChild(image);\n imageList.appendChild(imageItem);\n });\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n checkMatchingAnswers(shuffledPairs, contentData, gameContainer);\n });\n container.appendChild(checkButton);\n}\n\n\n\nfunction dragDropMatching(event, definitionIndex) {\n event.preventDefault();\n var wordId = event.dataTransfer.getData(\"text/plain\");\n var wordElement = document.getElementById(wordId);\n var imageItem = document.getElementById(\"definition-\".concat(definitionIndex));\n imageItem.innerHTML = '';\n imageItem.appendChild(wordElement);\n\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n}\nfunction checkMatchingAnswers(pairs, contentData, gameContainer) {\n var feedbackArea = gameContainer.querySelector(\"#feedback-area\");\n feedbackArea.innerHTML = \"\";\n var score = 0;\n var correctAnswersCount = 0;\n pairs.forEach(function (pair, index) {\n var wordItem = document.getElementById(\"word-\".concat(index));\n var definitionItem = document.getElementById(\"definition-\".concat(index));\n\n var isCorrect = wordItem.textContent === pair.word && definitionItem.querySelector('img').alt.toLowerCase() === pair.word.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect, \".concat(pair.word, \" should be matched with its corresponding image.\");\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n correctAnswersCount++;\n score += contentData.games[currentGameIndex].pointsPerWord || 1; \n }\n });\n\n var scoreDisplay = document.getElementById(\"score-display\");\n scoreDisplay.textContent = \"Score: \".concat(score);\n\n if (correctAnswersCount === pairs.length) {\n feedbackArea.innerHTML += \"<p class=\\\"correct-feedback\\\">Congratulations! You matched all the pairs correctly.</p>\";\n\n var wordItems = document.querySelectorAll(\".word-item\");\n wordItems.forEach(function (item) {\n item.draggable = false;\n item.classList.remove('btn', 'btn-secondary'); \n });\n checkButton.disabled = true; \n }\n}\n\n\nfunction createCrosswordOrWordSearch(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = document.getElementById(ContentAreaId);\n var puzzleContainer = document.createElement(\"div\");\n puzzleContainer.classList.add(\"puzzle-container\");\n contentArea.appendChild(puzzleContainer);\n if (contentData.type === \"crossword\") {\n createCrosswordPuzzle(contentData, puzzleContainer);\n } else if (contentData.type === \"wordSearch\") {\n createWordSearchPuzzle(contentData, puzzleContainer);\n } else {\n displayErrorMessage(\"Invalid puzzle type\");\n }\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n if (contentData.type === \"crossword\") {\n checkCrosswordAnswers(contentData, puzzleContainer);\n } else if (contentData.type === \"wordSearch\") {\n checkWordSearchAnswers(contentData, puzzleContainer);\n }\n });\n contentArea.appendChild(checkButton);\n}\nfunction createCrosswordPuzzle(contentData, container) {\n var table = document.createElement(\"table\");\n table.classList.add(\"crossword-table\");\n for (var i = 0; i < contentData.grid.length; i++) {\n var row = table.insertRow();\n for (var j = 0; j < contentData.grid[i].length; j++) {\n var cell = row.insertCell();\n if (contentData.grid[i][j] === \"#\") {\n cell.classList.add(\"filled\");\n } else {\n var input = document.createElement(\"input\");\n input.type = \"text\";\n input.maxLength = \"1\";\n input.classList.add(\"input\", \"crossword-input\");\n input.id = \"crossword-input-\".concat(i, \"-\").concat(j);\n cell.appendChild(input);\n }\n }\n }\n container.appendChild(table);\n\n var cluesContainer = document.createElement(\"div\");\n cluesContainer.classList.add(\"clues-container\");\n contentData.clues.forEach(function (clue, index) {\n var clueItem = document.createElement(\"div\");\n clueItem.classList.add(\"clue-item\");\n clueItem.textContent = \"\".concat(index + 1, \". \").concat(clue);\n cluesContainer.appendChild(clueItem);\n });\n container.appendChild(cluesContainer);\n}\nfunction checkCrosswordAnswers(contentData, container) {\n var correctCount = 0;\n for (var i = 0; i < contentData.grid.length; i++) {\n for (var j = 0; j < contentData.grid[i].length; j++) {\n if (contentData.grid[i][j] !== \"#\") {\n var input = container.querySelector(\"#crossword-input-\".concat(i, \"-\").concat(j));\n var answer = contentData.answers[contentData.grid[i][j]];\n if (input.value.toLowerCase() === answer.toLowerCase()) {\n correctCount++;\n input.classList.add(\"correct-answer\");\n } else {\n input.classList.add(\"incorrect-answer\");\n }\n }\n }\n }\n\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"<p>\".concat(correctCount, \" out of \").concat(contentData.answers.length, \" correct!</p>\");\n}\n\nfunction createWordSearchPuzzle(contentData, container) {\n var table = document.createElement(\"table\");\n table.classList.add(\"word-search-table\"); \n\n for (var i = 0; i < contentData.grid.length; i++) {\n var row = table.insertRow();\n for (var j = 0; j < contentData.grid[i].length; j++) {\n var cell = row.insertCell();\n var letterSpan = document.createElement(\"span\");\n letterSpan.textContent = contentData.grid[i][j];\n cell.appendChild(letterSpan);\n }\n }\n container.appendChild(table);\n\n var wordsToFind = document.createElement(\"div\");\n wordsToFind.classList.add(\"words-to-find\");\n wordsToFind.innerHTML = \"<h3>Words to Find:</h3> <ul class=\\\"list\\\">\\n \".concat(contentData.answers.map(function (word) {\n return \"<li>\".concat(word, \"</li>\");\n }).join(''), \"\\n </ul>\");\n container.appendChild(wordsToFind);\n}\n\nfunction checkWordSearchAnswers(contentData, container) {\n var foundWords = [];\n var allSpans = container.querySelectorAll(\".word-search-table span\");\n var wordsToFind = contentData.answers.map(function (word) {\n return word.toLowerCase();\n });\n allSpans.forEach(function (span) {\n span.classList.remove('word-found'); \n });\n wordsToFind.forEach(function (word) {\n var wordLength = word.length;\n var directions = [[0, 1],\n [1, 0],\n [1, 1],\n [1, -1] \n ];\n for (var i = 0; i < contentData.grid.length; i++) {\n for (var j = 0; j < contentData.grid[i].length; j++) {\n if (contentData.grid[i][j].toLowerCase() === word[0]) {\n var _iterator2 = _createForOfIteratorHelper(directions),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n dx = _step2$value[0],\n dy = _step2$value[1];\n var k = void 0,\n x = i,\n y = j;\n for (k = 1; k < wordLength; k++) {\n x += dx;\n y += dy;\n if (x < 0 || x >= contentData.grid.length || y < 0 || y >= contentData.grid[x].length || contentData.grid[x][y].toLowerCase() !== word[k]) {\n break; \n }\n }\n if (k === wordLength) {\n foundWords.push(word);\n for (var l = 0; l < wordLength; l++) {\n allSpans[i + l * dx + l * dy * contentData.grid.length].classList.add(\"word-found\");\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }\n });\n\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"<h3>Found Words:</h3>\";\n if (foundWords.length > 0) {\n var foundWordsList = document.createElement(\"ul\");\n foundWordsList.classList.add(\"list\");\n foundWords.forEach(function (word) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = word;\n foundWordsList.appendChild(listItem);\n });\n feedbackArea.appendChild(foundWordsList);\n } else {\n feedbackArea.innerHTML += \"<p>No words found.</p>\";\n }\n if (foundWords.length === wordsToFind.length) {\n feedbackArea.innerHTML += \"<p>You found all the words!</p>\";\n }\n}\n\n},{\"./SharedScript.js\":30}],20:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.applyCognitiveLoadManagement = applyCognitiveLoadManagement;\nexports.applyDynamicHighlighting = applyDynamicHighlighting;\nexports.createContentLayering = createContentLayering;\nexports.createContextualEmbedding = createContextualEmbedding;\nexports.createDescriptiveImagery = createDescriptiveImagery;\nexports.createDifferentiatedVocabularyExercises = createDifferentiatedVocabularyExercises;\nexports.createDifferentiatedVocabularyExercisesVer2 = createDifferentiatedVocabularyExercisesVer2;\nexports.createDistributedSummaries = createDistributedSummaries;\nexports.createDynamicTextAdjustment = createDynamicTextAdjustment;\nexports.createEmbeddedCaseStudies = createEmbeddedCaseStudies;\nexports.createEmbeddedSocraticMethod = createEmbeddedSocraticMethod;\nexports.createExemplification = createExemplification;\nexports.createFlashcardApp = createFlashcardApp;\nexports.createFormulaFlashcards = createFormulaFlashcards;\nexports.createGamifiedQuiz = createGamifiedQuiz;\nexports.createGlossary = createGlossary;\nexports.createGrammarDrills = createGrammarDrills;\nexports.createGrammarExercises = createGrammarExercises;\nexports.createIntegratedAnnotations = createIntegratedAnnotations;\nexports.createInteractiveConversationSimulations = createInteractiveConversationSimulations;\nexports.createInteractiveNumberLine = createInteractiveNumberLine;\nexports.createInteractiveNumberLine2 = createInteractiveNumberLine2;\nexports.createIterativeExplanations = createIterativeExplanations;\nexports.createIterativeRefinement = createIterativeRefinement;\nexports.createLogicalStructuring = createLogicalStructuring;\nexports.createNoteTakingTemplates = createNoteTakingTemplates;\nexports.createPacingTechniques = createPacingTechniques;\nexports.createPedagogicalScaffolding = createPedagogicalScaffolding;\nexports.createProgressTracking = createProgressTracking;\nexports.createRhetoricalStructure = createRhetoricalStructure;\nexports.createScaffoldedLearningPath = createScaffoldedLearningPath;\nexports.createSentenceCompletion = createSentenceCompletion;\nexports.createSentenceTransformationExercises = createSentenceTransformationExercises;\nexports.createSimilesAndMetaphors = createSimilesAndMetaphors;\nexports.createSpacedRepetition = createSpacedRepetition;\nexports.createStreamlinedContent = createStreamlinedContent;\nexports.createStudySmarterTips = createStudySmarterTips;\nexports.createTemporalStructuring = createTemporalStructuring;\nexports.createVerbConjugationPractice = createVerbConjugationPractice;\nexports.createVocabularySentenceCreation = createVocabularySentenceCreation;\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction createStudySmarterTips(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var tipsList = document.createElement(\"ul\");\n tipsList.classList.add(\"list\");\n contentData.tips.forEach(function (tip) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <details>\\n <summary class=\\\"paragraph\\\">\".concat(tip.tip, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(tip.explanation, \"</p>\\n </details>\\n \");\n tipsList.appendChild(listItem);\n });\n contentArea.appendChild(tipsList);\n}\n\nfunction createGrammarExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Language: \".concat(contentData.language, \"</p>\");\n contentData.exercises.forEach(function (exercise, index) {\n var exerciseDiv = document.createElement(\"div\");\n exerciseDiv.classList.add(\"exercise\");\n\n var exercisePrompt = document.createElement(\"p\");\n exercisePrompt.classList.add(\"paragraph\");\n if (exercise.type === \"multipleChoice\") {\n exercisePrompt.textContent = exercise.prompt;\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n exercise.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n exerciseDiv.appendChild(exercisePrompt);\n exerciseDiv.appendChild(optionsList);\n } else if (exercise.type === \"fillInTheBlank\") {\n var input = document.createElement(\"input\");\n input.type = \"text\";\n input.classList.add(\"input\");\n input.id = \"answer\".concat(index);\n\n var label = document.createElement(\"label\");\n label.htmlFor = \"answer\".concat(index);\n label.innerHTML = exercise.prompt.replace(\"[...]\", input.outerHTML);\n exerciseDiv.appendChild(label);\n } else if (exercise.type === \"sentenceTransformation\") {\n exercisePrompt.textContent = exercise.prompt;\n exerciseDiv.appendChild(exercisePrompt);\n exerciseDiv.innerHTML += \"<textarea class=\\\"textarea\\\" id=\\\"answer\".concat(index, \"\\\"></textarea>\");\n } else if (exercise.type === \"errorCorrection\") {\n exercisePrompt.textContent = exercise.prompt;\n exerciseDiv.appendChild(exercisePrompt);\n exerciseDiv.innerHTML += \"<textarea class=\\\"textarea\\\" id=\\\"answer\".concat(index, \"\\\"></textarea>\");\n }\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkExerciseAnswer(exercise, index, exerciseDiv);\n });\n exerciseDiv.appendChild(checkButton);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n exerciseDiv.appendChild(feedbackArea);\n contentArea.appendChild(exerciseDiv);\n });\n}\n\nfunction createInteractiveConversationSimulations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentScenarioIndex = 0;\n var currentDialogueIndex = 0;\n function handleOptionSelected(nextIndex) {\n if (nextIndex < contentData.scenarios[currentScenarioIndex].dialogues.length) {\n currentDialogueIndex = nextIndex;\n displayDialogue();\n } else {\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">End of conversation.</p>\";\n }\n }\n function displayDialogue() {\n if (!contentData.scenarios || contentData.scenarios.length === 0) {\n displayErrorMessage(\"No conversation scenarios found.\");\n return;\n }\n var scenario = contentData.scenarios[currentScenarioIndex];\n if (!scenario || !scenario.dialogues || scenario.dialogues.length === 0) {\n displayErrorMessage(\"No dialogues found for this scenario.\");\n return;\n }\n if (currentDialogueIndex >= scenario.dialogues.length) {\n currentScenarioIndex++;\n currentDialogueIndex = 0;\n if (currentScenarioIndex < contentData.scenarios.length) {\n displayDialogue();\n } else {\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">End of conversation.</p>\";\n }\n return;\n }\n var dialogue = scenario.dialogues[currentDialogueIndex];\n var dialogueContainer = document.createElement(\"div\");\n dialogueContainer.classList.add(\"dialogue-container\");\n var context = document.createElement(\"p\");\n context.textContent = scenario.context || \"\"; \n context.classList.add(\"paragraph\");\n dialogueContainer.appendChild(context);\n var speaker = document.createElement(\"p\");\n speaker.textContent = dialogue.speaker + \": \";\n speaker.classList.add(\"speaker\");\n dialogueContainer.appendChild(speaker);\n var text = document.createElement(\"p\");\n text.textContent = dialogue.text;\n text.classList.add(\"paragraph\");\n dialogueContainer.appendChild(text);\n\n if (dialogue.options && dialogue.options.length > 0) {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n dialogue.options.forEach(function (option) {\n var optionItem = document.createElement(\"li\");\n optionItem.innerHTML = \"<button class=\\\"btn\\\">\".concat(option.text, \"</button>\");\n optionItem.querySelector(\"button\").addEventListener(\"click\", function () {\n handleOptionSelected(option.nextDialogueIndex || currentDialogueIndex + 1);\n });\n optionsList.appendChild(optionItem);\n });\n dialogueContainer.appendChild(optionsList);\n } else {\n var continueButton = document.createElement(\"button\");\n continueButton.textContent = \"Continue\";\n continueButton.classList.add(\"btn\", \"btn-primary\");\n continueButton.addEventListener(\"click\", function () {\n handleOptionSelected(currentDialogueIndex + 1);\n });\n dialogueContainer.appendChild(continueButton);\n }\n contentArea.appendChild(dialogueContainer);\n }\n\n displayDialogue();\n}\n\nfunction createFlashcardApp(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentCardIndex = 0;\n var cards = contentData.cards;\n var numCards = cards.length;\n var flashcard = document.createElement(\"div\");\n flashcard.classList.add(\"flashcard\");\n contentArea.appendChild(flashcard);\n var front = document.createElement(\"div\");\n front.classList.add(\"flashcard-front\", \"paragraph\");\n flashcard.appendChild(front);\n var back = document.createElement(\"div\");\n back.classList.add(\"flashcard-back\", \"paragraph\");\n flashcard.appendChild(back);\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n contentArea.appendChild(buttonsContainer);\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n currentCardIndex = Math.max(0, currentCardIndex - 1);\n updateFlashcard();\n });\n buttonsContainer.appendChild(prevButton);\n var flipButton = document.createElement(\"button\");\n flipButton.textContent = \"Flip\";\n flipButton.classList.add(\"btn\");\n flipButton.addEventListener(\"click\", function () {\n flashcard.classList.toggle(\"flipped\");\n });\n buttonsContainer.appendChild(flipButton);\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n currentCardIndex = Math.min(numCards - 1, currentCardIndex + 1);\n updateFlashcard();\n });\n buttonsContainer.appendChild(nextButton);\n function updateFlashcard() {\n front.textContent = cards[currentCardIndex].term;\n back.textContent = cards[currentCardIndex].definition;\n prevButton.disabled = currentCardIndex === 0;\n nextButton.disabled = currentCardIndex === numCards - 1;\n }\n updateFlashcard();\n}\n\nfunction createNoteTakingTemplates(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var templatesContainer = document.createElement(\"div\");\n templatesContainer.id = \"templates-container\";\n contentData.templates.forEach(function (template) {\n var templateSection = document.createElement(\"section\");\n templateSection.classList.add(\"template-item\");\n\n templateSection.innerHTML = \"\\n <h3 class=\\\"template-title\\\">\".concat(template.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(template.description, \"</p>\\n \");\n var templateContent = document.createElement(\"div\");\n templateContent.classList.add(\"template-content\");\n switch (template.name) {\n case \"Cornell Method\":\n createCornellTemplate(template, templateContent);\n break;\n case \"Mind Mapping\":\n createMindMapTemplate(template, templateContent);\n break;\n case \"Outline\":\n createOutlineTemplate(template, templateContent);\n break;\n default:\n templateContent.innerHTML = \"<p>Template not supported yet.</p>\";\n break;\n }\n templateSection.appendChild(templateContent);\n templatesContainer.appendChild(templateSection);\n });\n contentArea.appendChild(templatesContainer);\n}\nfunction createOutlineTemplate(template, container) {\n var outlineList = document.createElement(\"ul\");\n outlineList.classList.add(\"list\", \"outline\");\n template.sections.forEach(function (section) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h4>\".concat(section.name, \"</h4>\\n <ul class=\\\"inner-list\\\">\\n \").concat(section.type === \"bulletPoints\" ? \"<li contenteditable=\\\"true\\\" class=\\\"paragraph\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\"></li>\" \n : \"\", \"\\n \").concat(section.type === \"numberedList\" ? \"<ol><li contenteditable=\\\"true\\\" class=\\\"paragraph\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\"></li></ol>\" \n : \"\", \"\\n \").concat(section.type === \"text\" ? \"<textarea class=\\\"textarea\\\" placeholder=\\\"Add your notes here...\\\"></textarea>\" : \"\", \"\\n </ul>\\n \");\n outlineList.appendChild(listItem);\n });\n container.appendChild(outlineList);\n}\nfunction createCornellTemplate(template, container) {\n container.innerHTML = \"\\n <div class=\\\"cornell-notes\\\">\\n <div class=\\\"key-points-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Key Points</h4>\\n </div>\\n <div class=\\\"notes-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Notes</h4>\\n </div>\\n <div class=\\\"summary-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Summary</h4>\\n </div>\\n </div>\\n \";\n}\nfunction createMindMapTemplate(template, container) {\n container.innerHTML = \"\\n <div class=\\\"mind-map\\\">\\n <div class=\\\"central-node\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n \".concat(template.sections[0].name, \"\\n </div>\\n </div>\\n \");\n\n}\n\nfunction createDifferentiatedVocabularyExercisesVer2(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levelSelect = document.createElement(\"select\");\n levelSelect.classList.add(\"select\");\n contentData.exercises.forEach(function (exercise) {\n var option = document.createElement(\"option\");\n option.value = exercise.level;\n option.text = exercise.level.charAt(0).toUpperCase() + exercise.level.slice(1); \n levelSelect.add(option);\n });\n levelSelect.addEventListener(\"change\", function () {\n var selectedLevel = levelSelect.value;\n var exercise = contentData.exercises.find(function (ex) {\n return ex.level === selectedLevel;\n });\n displayExercise(exercise);\n });\n contentArea.appendChild(levelSelect);\n var initialExercise = contentData.exercises[0];\n displayExercise(initialExercise);\n function displayExercise(exercise) {\n var exerciseContainer = document.createElement(\"div\");\n var wordList = document.createElement(\"ul\");\n wordList.classList.add(\"list\");\n exercise.words.forEach(function (wordData) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<strong>\".concat(wordData.word, \":</strong> \").concat(wordData.definition);\n wordList.appendChild(listItem);\n });\n exerciseContainer.appendChild(wordList);\n if (exercise.type === \"matching\") {\n createMatchingExercise(exercise, exerciseContainer);\n } else if (exercise.type === \"fillInTheBlank\") {\n createFillInTheBlankExercise(exercise, exerciseContainer);\n } else if (exercise.type === \"crossword\") {\n createCrosswordExercise(exercise, exerciseContainer);\n } else if (exercise.type === \"wordGames\") {\n createWordGameExercise(exercise, exerciseContainer);\n }\n contentArea.appendChild(exerciseContainer);\n }\n function createMatchingExercise(exercise, container) {\n }\n function createFillInTheBlankExercise(exercise, container) {\n }\n function createCrosswordExercise(exercise, container) {\n }\n function createWordGameExercise(exercise, container) {\n }\n}\nfunction createFormulaFlashcards(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.subject) {\n var subject = document.createElement(\"p\");\n subject.textContent = \"Subject: \".concat(contentData.subject);\n contentArea.appendChild(subject);\n }\n var flashcardContainer = document.createElement(\"div\");\n flashcardContainer.classList.add(\"flashcard-container\");\n contentData.cards.forEach(function (card, index) {\n var flashcard = document.createElement(\"div\");\n flashcard.classList.add(\"flashcard\");\n flashcard.id = \"flashcard\".concat(index);\n var front = document.createElement(\"div\");\n front.classList.add(\"flashcard-front\");\n front.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(card.formula, \"</p>\"); \n flashcard.appendChild(front);\n var back = document.createElement(\"div\");\n back.classList.add(\"flashcard-back\");\n back.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(card.explanation, \"</p>\"); \n if (card.example) {\n back.innerHTML += \"<p class=\\\"example\\\">Example: \".concat(card.example, \"</p>\");\n }\n flashcard.appendChild(back);\n flashcard.addEventListener(\"click\", function () {\n flashcard.classList.toggle(\"flipped\");\n });\n flashcardContainer.appendChild(flashcard);\n });\n contentArea.appendChild(flashcardContainer);\n}\n\nfunction createGrammarDrills(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Focus: \".concat(contentData.rule, \"</p>\");\n contentData.exercises.forEach(function (exercise, index) {\n var exerciseDiv = document.createElement(\"div\");\n exerciseDiv.classList.add(\"exercise\");\n exerciseDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(exercise.prompt, \"</p>\");\n if (exercise.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n exercise.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n exerciseDiv.appendChild(optionsList);\n } else if (exercise.type === \"fillInTheBlank\") {\n var promptWithInput = exercise.prompt.replace(\"[...]\", \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"\\\">\"));\n exerciseDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(promptWithInput, \"</p>\");\n } else if (exercise.type === \"sentenceTransformation\") {\n exerciseDiv.innerHTML += \"<textarea class=\\\"textarea\\\" id=\\\"answer\".concat(index, \"\\\"></textarea>\");\n } else if (exercise.type === \"errorCorrection\") {\n exerciseDiv.innerHTML += \"<textarea class=\\\"textarea\\\" id=\\\"answer\".concat(index, \"\\\">\").concat(exercise.prompt, \"</textarea>\");\n }\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkExerciseAnswer(exercise, index, exerciseDiv);\n });\n exerciseDiv.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n exerciseDiv.appendChild(feedbackArea);\n contentArea.appendChild(exerciseDiv);\n });\n}\nfunction createInteractiveNumberLine(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var numberLineContainer = document.createElement(\"div\");\n numberLineContainer.classList.add(\"number-line-container\");\n contentArea.appendChild(numberLineContainer);\n var start = contentData.numberRange[0];\n var end = contentData.numberRange[1];\n for (var i = start; i <= end; i++) {\n var tick = document.createElement(\"div\");\n tick.classList.add(\"tick\");\n tick.textContent = i;\n numberLineContainer.appendChild(tick);\n }\n var point = document.createElement(\"div\");\n point.classList.add(\"point\");\n point.setAttribute(\"draggable\", true);\n numberLineContainer.appendChild(point);\n var currentPosition = start;\n var offsetX = 0;\n point.style.left = \"\".concat((currentPosition - start) * 50, \"px\"); \n point.addEventListener(\"dragstart\", function (e) {\n offsetX = e.clientX - point.offsetLeft;\n });\n point.addEventListener(\"drag\", function (e) {\n e.preventDefault();\n var newLeft = e.clientX - offsetX;\n newLeft = Math.max(0, Math.min(newLeft, (end - start) * 50));\n point.style.left = \"\".concat(newLeft, \"px\");\n currentPosition = start + Math.round(newLeft / 50);\n });\n var challengeArea = document.createElement(\"div\");\n challengeArea.classList.add(\"challenge-area\");\n contentArea.appendChild(challengeArea);\n contentData.challenges.forEach(function (challenge, index) {\n var challengeItem = document.createElement(\"div\");\n challengeItem.classList.add(\"challenge-item\");\n challengeItem.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(challenge.problem, \"</p>\\n <input type=\\\"number\\\" class=\\\"input\\\" id=\\\"challenge-answer-\").concat(index, \"\\\">\\n \");\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\"); \n checkButton.addEventListener(\"click\", function () {\n checkNumberLineChallengeAnswer(challenge, index, currentPosition);\n });\n challengeItem.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"challenge-feedback-\".concat(index);\n challengeItem.appendChild(feedbackArea);\n challengeArea.appendChild(challengeItem);\n });\n function checkNumberLineChallengeAnswer(challenge, index, userPosition) {\n var feedbackArea = document.getElementById(\"challenge-feedback-\".concat(index));\n feedbackArea.innerHTML = \"\";\n var isCorrect = userPosition === challenge.answer;\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(isCorrect ? 'correct-feedback' : 'incorrect-feedback', \"\\\">\").concat(isCorrect ? \"Correct!\" : \"Incorrect. Try again!\", \"</p>\");\n }\n function shuffleArray(array) {\n for (var _i = array.length - 1; _i > 0; _i--) {\n var j = Math.floor(Math.random() * (_i + 1));\n var _ref = [array[j], array[_i]];\n array[_i] = _ref[0];\n array[j] = _ref[1];\n }\n return array;\n }\n}\n\nfunction createInteractiveNumberLine2(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n var numberLineContainer = document.createElement(\"div\");\n numberLineContainer.classList.add(\"number-line-container\");\n var numberLine = document.createElement(\"div\");\n numberLine.classList.add(\"number-line\");\n\n var numberRange = contentData.numberRange,\n operations = contentData.operations,\n challenges = contentData.challenges;\n var start = numberRange[0];\n var end = numberRange[1];\n var tickCount = end - start + 1; \n var tickSpacing = 800 / tickCount; \n\n for (var i = start; i <= end; i++) {\n var tick = document.createElement(\"div\");\n tick.classList.add(\"tick\");\n tick.style.left = \"\".concat((i - start) * tickSpacing, \"px\"); \n var label = document.createElement(\"span\");\n label.textContent = i;\n tick.appendChild(label);\n numberLine.appendChild(tick);\n }\n\n var point = document.createElement(\"div\");\n point.classList.add(\"point\", \"btn\", \"btn-primary\"); \n point.setAttribute(\"draggable\", true);\n numberLine.appendChild(point);\n var currentPosition = start;\n var offsetX = 0;\n point.style.left = \"\".concat((currentPosition - start) * tickSpacing, \"px\"); \n\n point.addEventListener(\"dragstart\", function (e) {\n offsetX = e.clientX - point.offsetLeft;\n });\n point.addEventListener(\"drag\", function (e) {\n e.preventDefault();\n var newLeft = e.clientX - offsetX;\n newLeft = Math.max(0, Math.min(newLeft, (end - start) * tickSpacing));\n point.style.left = \"\".concat(newLeft, \"px\");\n currentPosition = start + Math.round(newLeft / tickSpacing);\n\n displayChallenge(currentPosition);\n });\n\n var challengeArea = document.createElement(\"div\");\n challengeArea.classList.add(\"challenge-area\");\n contentArea.appendChild(challengeArea);\n\n displayChallenge(currentPosition);\n numberLineContainer.appendChild(numberLine);\n contentArea.appendChild(numberLineContainer);\n function displayChallenge(position) {\n var challenge = challenges.find(function (c) {\n return c.answer === position;\n });\n challengeArea.innerHTML = \"\";\n if (challenge) {\n challengeArea.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(challenge.problem, \"</p>\");\n } else {\n challengeArea.innerHTML = \"<p class=\\\"paragraph\\\">Move the point to a number to see a challenge.</p>\";\n }\n }\n}\n\n\nfunction createSentenceCompletion(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.sentences.forEach(function (sentenceData, index) {\n var sentenceDiv = document.createElement(\"div\");\n sentenceDiv.classList.add(\"sentence\");\n var sentenceHTML = sentenceData.sentence.replace(sentenceData.missingWord, \"[blank]\");\n sentenceData.blanks = [{\n position: sentenceHTML.indexOf(\"[blank]\"),\n length: \"[blank]\".length,\n answer: sentenceData.missingWord,\n feedback: sentenceData.feedback\n }];\n var optionsList = document.createElement(\"select\"); \n optionsList.classList.add(\"select\");\n var blankOption = document.createElement(\"option\");\n blankOption.value = \"\";\n blankOption.textContent = \"Select an option\";\n optionsList.appendChild(blankOption);\n sentenceData.options.forEach(function (option) {\n var optionItem = document.createElement(\"option\");\n optionItem.value = option;\n optionItem.textContent = option;\n optionsList.appendChild(optionItem);\n });\n sentenceHTML = sentenceHTML.replace(\"[blank]\", optionsList.outerHTML);\n sentenceDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(sentenceHTML, \"</p>\");\n contentArea.appendChild(sentenceDiv);\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answer\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkSentenceCompletionAnswer(\"answer\".concat(index), sentenceData.blanks[0], \"feedback\".concat(index), optionsList);\n }); \n sentenceDiv.appendChild(button);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n sentenceDiv.appendChild(feedbackArea);\n });\n}\nfunction checkSentenceCompletionAnswer(inputId, blankData, feedbackId, selectElement) {\n var feedbackArea = document.getElementById(feedbackId);\n feedbackArea.innerHTML = \"\";\n var userInput = selectElement.value;\n var isCorrect = blankData.caseSensitive ? userInput === blankData.answer : userInput.toLowerCase() === blankData.answer.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? blankData.feedback.correct || \"Correct!\" : blankData.feedback.incorrect || \"Try again!\";\n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createSentenceTransformationExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Transformation Type: \".concat(contentData.transformationType, \"</p>\");\n contentData.sentences.forEach(function (sentence, index) {\n var sentenceDiv = document.createElement(\"div\");\n sentenceDiv.classList.add(\"sentence\");\n sentenceDiv.innerHTML = \"\\n <p class=\\\"paragraph\\\">Original: \".concat(sentence.originalSentence, \"</p>\\n <textarea class=\\\"textarea\\\" id=\\\"answer\").concat(index, \"\\\"></textarea>\\n \");\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkTransformationAnswer(sentence, index);\n });\n sentenceDiv.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index);\n sentenceDiv.appendChild(feedbackArea);\n contentArea.appendChild(sentenceDiv);\n });\n}\nfunction checkTransformationAnswer(sentence, index) {\n var feedbackArea = document.getElementById(\"feedback\".concat(index));\n feedbackArea.innerHTML = \"\";\n var userInput = document.getElementById(\"answer\".concat(index)).value.trim().toLowerCase();\n var correctAnswer = sentence.transformedSentence.toLowerCase();\n var isCorrect = userInput === correctAnswer;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? sentence.explanation || \"Correct!\" : \"Incorrect. \".concat(sentence.explanation);\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\"); \n feedbackArea.appendChild(feedbackMessage);\n}\n\nfunction createVerbConjugationPractice(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">Language: \".concat(contentData.language, \"</p>\");\n contentData.verbs.forEach(function (verbData, index) {\n var verbSection = document.createElement(\"section\");\n verbSection.classList.add(\"verb-section\");\n var verbHeading = document.createElement(\"h3\");\n verbHeading.textContent = verbData.verb;\n verbSection.appendChild(verbHeading);\n verbData.tenses.forEach(function (tense, tenseIndex) {\n var tenseDiv = document.createElement(\"div\");\n tenseDiv.classList.add(\"tense\");\n tenseDiv.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(tense, \":</p>\");\n verbData.prompts.forEach(function (prompt, promptIndex) {\n if (prompt.type === \"fillInTheBlank\") {\n var promptWithInput = prompt.prompt.replace(\"[...]\", \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"-\").concat(tenseIndex, \"-\").concat(promptIndex, \"\\\">\"));\n tenseDiv.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(promptWithInput, \"</p>\");\n } else if (prompt.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n prompt.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"-\").concat(tenseIndex, \"-\").concat(promptIndex, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n tenseDiv.appendChild(optionsList);\n }\n });\n var button = document.createElement(\"button\");\n button.textContent = \"Check Answers\";\n button.classList.add(\"btn\", \"btn-primary\");\n button.addEventListener(\"click\", function () {\n return checkConjugationAnswers(verbData, tense, tenseIndex, index);\n });\n tenseDiv.appendChild(button);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback\".concat(index, \"-\").concat(tenseIndex);\n tenseDiv.appendChild(feedbackArea);\n verbSection.appendChild(tenseDiv);\n });\n contentArea.appendChild(verbSection);\n });\n}\nfunction checkConjugationAnswers(verbData, tense, tenseIndex, verbIndex) {\n var feedbackArea = document.getElementById(\"feedback\".concat(verbIndex, \"-\").concat(tenseIndex));\n feedbackArea.innerHTML = \"\";\n var allCorrect = true;\n verbData.prompts.forEach(function (prompt, promptIndex) {\n var userInput = \"\";\n if (prompt.type === \"multipleChoice\") {\n var _document$querySelect;\n userInput = (_document$querySelect = document.querySelector(\"input[name=\\\"q\".concat(verbIndex, \"-\").concat(tenseIndex, \"-\").concat(promptIndex, \"\\\"]:checked\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;\n } else {\n var _document$getElementB;\n userInput = (_document$getElementB = document.getElementById(\"answer\".concat(verbIndex, \"-\").concat(tenseIndex, \"-\").concat(promptIndex))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.value;\n }\n var isCorrect = userInput !== null && userInput.toLowerCase() === prompt.answer.toLowerCase();\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? prompt.explanation || \"Correct!\" : \"Incorrect. \".concat(prompt.explanation);\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (!isCorrect) {\n allCorrect = false;\n }\n });\n if (allCorrect) {\n feedbackArea.innerHTML += \"<p>All answers for \".concat(tense, \" are correct!</p>\");\n }\n}\n\nfunction createVocabularySentenceCreation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var wordList = document.createElement(\"ul\");\n wordList.classList.add(\"list\");\n contentData.words.forEach(function (word) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = word;\n wordList.appendChild(listItem);\n });\n contentArea.appendChild(wordList);\n var sentenceInput = document.createElement(\"textarea\");\n sentenceInput.classList.add(\"textarea\");\n sentenceInput.placeholder = \"Write your sentence here...\";\n contentArea.appendChild(sentenceInput);\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Sentence\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n checkVocabularySentence(sentenceInput.value, contentData.words);\n });\n contentArea.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback-area\";\n contentArea.appendChild(feedbackArea);\n}\nfunction checkVocabularySentence(sentence, words) {\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n var wordsUsed = words.filter(function (word) {\n return sentence.toLowerCase().includes(word.toLowerCase());\n });\n if (wordsUsed.length === words.length) {\n feedbackArea.innerHTML = \"<p class=\\\"correct-feedback\\\">Great job! You used all the vocabulary words correctly in a sentence.</p>\";\n } else {\n var missingWords = words.filter(function (word) {\n return !wordsUsed.includes(word);\n });\n feedbackArea.innerHTML = \"<p class=\\\"incorrect-feedback\\\">Try again! You haven't used these words: \".concat(missingWords.join(\", \"), \"</p>\");\n }\n}\n\nfunction createDifferentiatedVocabularyExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var levelSelect = document.createElement(\"select\");\n levelSelect.classList.add(\"select\");\n contentData.exercises.forEach(function (exercise) {\n var option = document.createElement(\"option\");\n option.value = exercise.level;\n option.text = exercise.level.charAt(0).toUpperCase() + exercise.level.slice(1);\n levelSelect.add(option);\n });\n contentArea.appendChild(levelSelect);\n var exerciseContainer = document.createElement(\"div\");\n exerciseContainer.id = \"exercise-container\";\n contentArea.appendChild(exerciseContainer);\n levelSelect.addEventListener(\"change\", function () {\n var selectedLevel = levelSelect.value;\n var exercise = contentData.exercises.find(function (ex) {\n return ex.level === selectedLevel;\n });\n displayExercise(exercise);\n });\n displayExercise(contentData.exercises[0]);\n function displayExercise(exercise) {\n exerciseContainer.innerHTML = \"\"; \n var wordList = document.createElement(\"ul\");\n wordList.classList.add(\"list\");\n exercise.words.forEach(function (wordData) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<strong>\".concat(wordData.word, \":</strong> \").concat(wordData.definition);\n if (wordData.example) {\n listItem.innerHTML += \"<br>Example: \".concat(wordData.example);\n }\n if (wordData.image) {\n listItem.innerHTML += \"<br><img src=\\\"\".concat(wordData.image, \"\\\" alt=\\\"\").concat(wordData.word, \"\\\" class=\\\"image\\\">\");\n }\n if (wordData.audio) {\n listItem.innerHTML += \"<br><audio controls><source src=\\\"\".concat(wordData.audio, \"\\\" type=\\\"audio/mpeg\\\"></audio>\");\n }\n wordList.appendChild(listItem);\n });\n exerciseContainer.appendChild(wordList);\n var exerciseType = document.createElement(\"p\");\n exerciseType.classList.add('paragraph');\n exerciseType.textContent = \"Exercise Type: \".concat(exercise.type);\n exerciseContainer.appendChild(exerciseType);\n }\n}\n\nfunction createProgressTracking(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var progressList = document.createElement(\"ul\");\n progressList.classList.add(\"list\");\n contentData.sections.forEach(function (section) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <input type=\\\"checkbox\\\" id=\\\"\".concat(section.sectionName.replace(/\\s+/g, \"-\"), \"\\\" \").concat(section.completed ? \"checked\" : \"\", \">\\n <label for=\\\"\").concat(section.sectionName.replace(/\\s+/g, \"-\"), \"\\\">\").concat(section.sectionName, \"</label>\\n \");\n progressList.appendChild(listItem);\n });\n contentArea.appendChild(progressList);\n}\n\nfunction createSpacedRepetition(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var feedbackArea = document.getElementById(feedbackAreaId); \n\n var currentIndex = 0;\n var currentInterval = 1;\n var isAnswerVisible = false;\n\n var reviewTimes = contentData.items.map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n nextReview: Date.now() + item.interval * 24 * 60 * 60 * 1000\n });\n });\n\n function displayItem(index) {\n var item = reviewTimes[index];\n contentArea.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(item.content, \"</p>\\n <div id=\\\"answer\\\" style=\\\"display: none;\\\"></div>\\n \");\n showFeedbackButtons(); \n }\n\n function showFeedbackButtons() {\n feedbackArea.innerHTML = \"\";\n [\"Again\", \"Hard\", \"Good\", \"Easy\"].forEach(function (difficulty) {\n var button = document.createElement(\"button\");\n button.textContent = difficulty;\n button.classList.add(\"btn\");\n button.addEventListener(\"click\", function () {\n return handleDifficultyFeedback(difficulty.toLowerCase());\n });\n feedbackArea.appendChild(button);\n });\n }\n\n function handleDifficultyFeedback(difficulty) {\n var currentItem = _objectSpread({}, items[currentIndex]); \n var currentReviewTime = reviewTimes[currentIndex];\n\n switch (difficulty) {\n case \"again\":\n currentInterval = 1;\n break;\n case \"hard\":\n currentInterval = Math.round(currentInterval * 1.2);\n break;\n case \"good\":\n currentInterval = Math.round(currentInterval * 2);\n break;\n case \"easy\":\n currentInterval = Math.round(currentInterval * 2.5);\n break;\n }\n\n var nextReviewTime = Date.now() + currentInterval * 24 * 60 * 60 * 1000; \n\n currentReviewTime.nextReview = nextReviewTime;\n\n reviewTimes.sort(function (a, b) {\n return a.nextReview - b.nextReview;\n });\n\n currentIndex = reviewTimes.findIndex(function (item) {\n return item.nextReview <= Date.now();\n }) || 0;\n isAnswerVisible = false;\n displayItem(currentIndex);\n }\n\n displayItem(currentIndex);\n}\n\nfunction createGamifiedQuiz(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentQuestionIndex = 0;\n var score = 0;\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: 0\";\n contentArea.appendChild(scoreDisplay);\n function displayQuestion(index) {\n var question = contentData.questions[index];\n contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.appendChild(scoreDisplay);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(question.question, \"</p>\");\n if (question.type === \"multipleChoice\") {\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n question.options.forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n contentArea.appendChild(optionsList);\n } else if (question.type === \"trueFalse\") {\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\");\n contentArea.innerHTML += \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"false\\\"> False</label>\");\n }\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = index === contentData.questions.length - 1 ? \"Finish Quiz\" : \"Next Question\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n return checkAnswer(index, feedbackAreaId);\n });\n contentArea.appendChild(submitButton);\n }\n function checkAnswer(index) {\n var question = contentData.questions[index];\n var userInput;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var _document$querySelect2;\n userInput = (_document$querySelect2 = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.value;\n }\n if (userInput === question.answer) {\n score += question.points;\n scoreDisplay.textContent = \"Score: \".concat(score);\n displayFeedback(question.feedback, true);\n } else {\n displayFeedback(question.feedback, false);\n }\n if (index < contentData.questions.length - 1) {\n currentQuestionIndex++;\n setTimeout(function () {\n return displayQuestion(currentQuestionIndex);\n }, 1000); \n } else {\n endQuiz();\n }\n }\n function displayFeedback(feedbackMessage, isCorrect) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n var feedbackParagraph = document.createElement(\"p\");\n feedbackParagraph.textContent = feedbackMessage;\n feedbackParagraph.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackParagraph);\n }\n function endQuiz() {\n contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"\\n <h2 class=\\\"title\\\">Quiz Completed!</h2>\\n <p class=\\\"paragraph\\\">Your final score: \".concat(score, \"</p>\\n \");\n }\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createRhetoricalStructure(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var structureType = document.createElement(\"p\");\n structureType.textContent = \"Rhetorical Structure: \".concat(contentData.structureType);\n structureType.classList.add(\"paragraph\");\n contentArea.appendChild(structureType);\n\n var part1 = document.createElement(\"p\");\n part1.textContent = contentData.content.part1;\n part1.classList.add(\"paragraph\");\n contentArea.appendChild(part1);\n if (contentData.structureType === \"comparisonContrast\") {\n } else if (contentData.structureType === \"causeAndEffect\") {\n } else if (contentData.structureType === \"problemSolution\") {\n }\n var part2 = document.createElement(\"p\");\n part2.textContent = contentData.content.part2;\n part2.classList.add(\"paragraph\");\n contentArea.appendChild(part2);\n}\n\nfunction createTemporalStructuring(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var timelineContainer = document.createElement(\"div\");\n timelineContainer.classList.add(\"timeline-container\");\n contentData.events.forEach(function (event) {\n var eventDiv = document.createElement(\"div\");\n eventDiv.classList.add(\"timeline-event\");\n eventDiv.innerHTML = \"\\n <div class=\\\"timeline-date\\\">\".concat(event.date, \"</div>\\n <div class=\\\"timeline-content\\\">\\n <h3>\").concat(event.event, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(event.description, \"</p>\\n </div>\\n \");\n timelineContainer.appendChild(eventDiv);\n });\n contentArea.appendChild(timelineContainer);\n}\n\nfunction createExemplification(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var conceptHeading = document.createElement(\"h3\"); \n conceptHeading.textContent = \"Key Concept:\"; \n contentArea.appendChild(conceptHeading);\n var concept = document.createElement(\"p\");\n concept.textContent = contentData.concept;\n concept.classList.add(\"concept-description\", \"border-b\"); \n contentArea.appendChild(concept);\n\n contentData.examples.forEach(function (example, index) {\n var exampleHeading = document.createElement(\"h4\");\n exampleHeading.textContent = \"Example \".concat(index + 1, \":\");\n exampleHeading.classList.add(\"mt-3\"); \n contentArea.appendChild(exampleHeading);\n\n var description = document.createElement(\"p\");\n description.textContent = example.description;\n description.classList.add(\"example-description\", \"mb-2\"); \n contentArea.appendChild(description);\n\n if (example.explanation) {\n var explanationContainer = document.createElement(\"div\"); \n\n var explanationTitle = document.createElement(\"strong\"); \n explanationTitle.textContent = \"Explanation:\";\n explanationContainer.appendChild(explanationTitle);\n var explanationText = document.createElement(\"p\");\n explanationText.textContent = example.explanation;\n explanationText.classList.add(\"example-explanation\", \"italic\"); \n explanationContainer.appendChild(explanationText);\n contentArea.appendChild(explanationContainer);\n addCoverAndRevealFunctionality(explanationContainer, \"Explanation\");\n }\n if (example.visualAid) {\n }\n\n if (example.level) {\n }\n });\n}\nfunction createStreamlinedContent(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var originalText = document.createElement(\"p\");\n originalText.textContent = contentData.originalText;\n originalText.classList.add(\"paragraph\", \"original-text\");\n originalText.style.display = \"none\"; \n contentArea.appendChild(originalText);\n var streamlinedText = document.createElement(\"p\");\n streamlinedText.textContent = contentData.streamlinedText;\n streamlinedText.classList.add(\"paragraph\");\n contentArea.appendChild(streamlinedText);\n\n var toggleButton239 = document.createElement(\"button\");\n toggleButton239.textContent = \"View Original Text\";\n toggleButton239.classList.add(\"btn\", \"btn-secondary\");\n toggleButton239.addEventListener(\"click\", function () {\n originalText.style.display = originalText.style.display === \"none\" ? \"block\" : \"none\";\n streamlinedText.style.display = streamlinedText.style.display === \"none\" ? \"block\" : \"none\";\n\n toggleButton239.textContent = originalText.style.display === \"none\" ? \"View Original Text\" : \"View Streamlined Text\";\n });\n contentArea.appendChild(toggleButton239);\n}\n\nfunction createIntegratedAnnotations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var paragraph = document.createElement(\"p\");\n paragraph.classList.add(\"paragraph\");\n var currentPosition = 0;\n contentData.annotations.forEach(function (annotation) {\n var textBeforeAnnotation = contentData.content.substring(currentPosition, annotation.position);\n paragraph.innerHTML += textBeforeAnnotation;\n paragraph.innerHTML += \"<span class=\\\"annotation\\\" title=\\\"\".concat(annotation.definition, \"\\\">\").concat(annotation.term, \"</span>\");\n currentPosition = annotation.position + annotation.term.length;\n });\n\n paragraph.innerHTML += contentData.content.substring(currentPosition);\n contentArea.appendChild(paragraph);\n}\n\nfunction createDistributedSummaries(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.summaries.forEach(function (summary) {\n var section = document.createElement(\"section\");\n section.classList.add(\"summary-section\"); \n\n var sectionTitle = document.createElement(\"h3\");\n sectionTitle.textContent = summary.sectionTitle;\n section.appendChild(sectionTitle);\n var summaryParagraph = document.createElement(\"p\");\n summaryParagraph.textContent = summary.summary;\n summaryParagraph.classList.add(\"paragraph\");\n section.appendChild(summaryParagraph);\n contentArea.appendChild(section);\n });\n}\n\nfunction createGlossary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var glossaryList = document.createElement(\"ul\");\n glossaryList.classList.add(\"list\", \"glossary\");\n contentData.terms.forEach(function (term) {\n var listItem = document.createElement(\"li\");\n var termSpan = document.createElement(\"span\");\n termSpan.classList.add('glossary-term');\n termSpan.innerHTML = \"<strong>\".concat(term.term, \"</strong>\");\n listItem.appendChild(termSpan);\n\n var br = document.createElement(\"br\");\n listItem.appendChild(br);\n var definitionElement = document.createElement(\"span\");\n definitionElement.classList.add('glossary-definition');\n definitionElement.textContent = term.definition;\n\n if (term.examples && term.examples.length > 0) {\n definitionElement.innerHTML += \" (e.g., \".concat(term.examples.join(\", \"), \")\");\n }\n listItem.appendChild(definitionElement);\n\n addCoverAndRevealFunctionality(definitionElement, \"Definition\");\n glossaryList.appendChild(listItem);\n });\n contentArea.appendChild(glossaryList);\n}\n\nfunction createDescriptiveImagery(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var description = document.createElement(\"p\");\n description.textContent = contentData.content;\n description.classList.add(\"paragraph\");\n contentArea.appendChild(description);\n\n}\n\nfunction applyCognitiveLoadManagement(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.strategies.forEach(function (strategy) {\n switch (strategy.name) {\n case \"Chunking\":\n break;\n case \"Spacing\":\n break;\n case \"Dual Coding\":\n break;\n }\n });\n}\n\nfunction createSimilesAndMetaphors(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var itemsList = document.createElement(\"ul\");\n itemsList.classList.add(\"list\");\n contentData.items.forEach(function (item) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <p class=\\\"paragraph\\\">\\n <strong>\".concat(item.figureOfSpeech.charAt(0).toUpperCase() + item.figureOfSpeech.slice(1), \":</strong> \").concat(item.text, \"\\n </p>\\n <details>\\n <summary class=\\\"paragraph\\\">Explanation</summary>\\n <p class=\\\"paragraph\\\">\").concat(item.explanation, \"</p>\\n </details>\\n \");\n itemsList.appendChild(listItem);\n });\n contentArea.appendChild(itemsList);\n}\n\n\nfunction applyDynamicHighlighting(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.content, \"</p>\");\n\n var keywordsContainer = document.createElement(\"div\");\n keywordsContainer.classList.add(\"keywords-container\", \"flex-container\"); \n\n contentData.keywords.forEach(function (keyword) {\n var keywordButton = document.createElement(\"button\");\n keywordButton.textContent = keyword;\n keywordButton.classList.add(\"btn\", \"btn-secondary\", \"keyword-button\");\n\n keywordButton.addEventListener(\"click\", function () {\n highlightKeyword(keyword);\n });\n keywordsContainer.appendChild(keywordButton);\n });\n contentArea.appendChild(keywordsContainer);\n function highlightKeyword(keyword) {\n var paragraphs = contentArea.querySelectorAll(\".paragraph\");\n paragraphs.forEach(function (paragraph) {\n var regex = new RegExp(keyword, 'gi');\n paragraph.innerHTML = paragraph.innerHTML.replace(regex, function (match) {\n return \"<span class=\\\"highlight\\\">\".concat(match, \"</span>\");\n });\n });\n }\n}\n\nfunction createPedagogicalScaffolding(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentTaskIndex = 0;\n displayTask(currentTaskIndex);\n function displayTask(index) {\n var task = contentData.tasks[index];\n contentArea.innerHTML = \"\"; \n contentArea.innerHTML += \"<h2 class=\\\"title\\\">\".concat(contentData.title, \"</h2>\");\n contentArea.innerHTML += \"\\n <h3>\".concat(task.task, \" (Level: \").concat(task.level, \")</h3>\\n <p class=\\\"paragraph\\\">\").concat(task.instructions, \"</p>\\n \");\n if (task.hints) {\n var hintsList = document.createElement(\"ul\");\n hintsList.classList.add(\"list\");\n task.hints.forEach(function (hint) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = hint;\n hintsList.appendChild(listItem);\n });\n contentArea.appendChild(hintsList);\n }\n if (task.scaffolding) {\n var scaffoldingDiv = document.createElement(\"div\");\n scaffoldingDiv.classList.add(\"scaffolding\");\n scaffoldingDiv.innerHTML = task.scaffolding;\n contentArea.appendChild(scaffoldingDiv);\n }\n\n contentArea.innerHTML += \"\\n <button class=\\\"btn btn-primary\\\" onclick=\\\"displayTask(\".concat(index + 1, \")\\\">Next Task</button>\\n <button class=\\\"btn btn-secondary\\\" onclick=\\\"displayTask(\").concat(index - 1, \")\\\">Previous Task</button>\\n \");\n }\n}\n\nfunction createIterativeExplanations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea;\n var currentLevel = 1;\n\n displayExplanation(currentLevel);\n function displayExplanation(level) {\n var explanationData = contentData.explanations.find(function (exp) {\n return exp.level === level;\n });\n if (!explanationData) {\n displayErrorMessage(\"Explanation not found for this level.\");\n return;\n }\n contentArea = createContentHeader(contentData, ContentAreaId);\n\n var explanation = document.createElement(\"p\");\n explanation.textContent = explanationData.explanation;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n\n var buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"button-container\", \"centered-button\");\n if (level < contentData.explanations.length) {\n var nextLevelButton = document.createElement(\"button\");\n nextLevelButton.textContent = \"More Detail\";\n nextLevelButton.classList.add(\"btn\", \"btn-primary\");\n nextLevelButton.addEventListener(\"click\", function () {\n displayExplanation(level + 1);\n });\n buttonContainer.appendChild(nextLevelButton);\n }\n if (level > 1) {\n var previousLevelButton = document.createElement(\"button\");\n previousLevelButton.textContent = \"Less Detail\";\n previousLevelButton.classList.add(\"btn\", \"btn-secondary\");\n previousLevelButton.addEventListener(\"click\", function () {\n displayExplanation(level - 1);\n });\n buttonContainer.appendChild(previousLevelButton);\n }\n contentArea.appendChild(buttonContainer);\n }\n}\n\n\nfunction createPacingTechniques(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var techniquesList = document.createElement(\"ul\");\n techniquesList.classList.add(\"list\");\n contentData.techniques.forEach(function (technique) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(technique.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(technique.description, \"</p>\\n <ul class=\\\"list\\\">\\n \").concat(technique.examples.map(function (example) {\n return \"<li>\".concat(example, \"</li>\");\n }).join(\"\"), \"\\n </ul>\\n \");\n techniquesList.appendChild(listItem);\n });\n contentArea.appendChild(techniquesList);\n\n}\n\nfunction createEmbeddedSocraticMethod(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var paragraphs = contentData.content.split(\"\\n\\n\");\n paragraphs.forEach(function (paragraphText, index) {\n var p = document.createElement(\"p\");\n p.textContent = paragraphText;\n p.classList.add(\"paragraph\");\n contentArea.appendChild(p);\n\n if (contentData.questions[index]) {\n var question = document.createElement(\"p\");\n question.textContent = contentData.questions[index];\n question.classList.add(\"socratic-question\");\n contentArea.appendChild(question);\n }\n });\n}\n\nfunction createDynamicTextAdjustment(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n var currentLevel = \"original\"; \n\n var contentParagraph = document.createElement(\"p\");\n contentParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(contentParagraph);\n\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n var levels = [\"simplified\", \"original\", \"advanced\"];\n levels.forEach(function (level) {\n if (contentData[level]) {\n var button = document.createElement(\"button\");\n button.textContent = level.charAt(0).toUpperCase() + level.slice(1);\n button.classList.add(\"btn\", \"btn-secondary\");\n if (currentLevel === level) button.classList.add(\"active\"); \n button.addEventListener(\"click\", function () {\n currentLevel = level;\n updateContent(level); \n updateButtonStyles(level); \n });\n buttonsContainer.appendChild(button);\n }\n });\n contentArea.appendChild(buttonsContainer);\n\n function updateContent(level) {\n contentParagraph.textContent = contentData[level] || \"Content not available for this level.\"; \n }\n\n function updateButtonStyles(activeLevel) {\n buttonsContainer.querySelectorAll(\".btn\").forEach(function (button) {\n button.classList.remove(\"active\");\n if (button.textContent.toLowerCase() === activeLevel) {\n button.classList.add(\"active\");\n }\n });\n }\n\n updateContent(currentLevel);\n}\n\nfunction createEmbeddedCaseStudies(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.caseStudies.forEach(function (caseStudy, index) {\n var caseStudyDiv = document.createElement(\"details\"); \n caseStudyDiv.innerHTML = \"\\n <summary class=\\\"paragraph\\\">\".concat(caseStudy.caseTitle, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(caseStudy.description, \"</p>\\n <ol class=\\\"list\\\">\\n \").concat(caseStudy.questions.map(function (question) {\n return \"<li>\".concat(question, \"</li>\");\n }).join(\"\"), \"\\n </ol>\\n \");\n contentArea.appendChild(caseStudyDiv);\n });\n}\n\nfunction createLogicalStructuring(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var mainIdea = document.createElement(\"p\");\n mainIdea.textContent = contentData.mainIdea;\n mainIdea.classList.add(\"paragraph\", \"main-idea\"); \n contentArea.appendChild(mainIdea);\n var detailsList = document.createElement(\"ul\");\n detailsList.classList.add(\"list\");\n contentData.supportingDetails.forEach(function (detail) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = detail;\n detailsList.appendChild(listItem);\n });\n contentArea.appendChild(detailsList);\n\n}\n\nfunction createContentLayering(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevel = \"Basic\"; \n var contentParagraph = document.createElement(\"p\");\n contentParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(contentParagraph);\n\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n var levels = [\"Basic\", \"Intermediate\", \"Advanced\", \"Expert\"];\n levels.forEach(function (level) {\n if (contentData.layers.find(function (layer) {\n return layer.level.toLowerCase() === level.toLowerCase();\n })) {\n var button = document.createElement(\"button\");\n button.textContent = level.charAt(0).toUpperCase() + level.slice(1);\n button.classList.add(\"btn\", \"btn-secondary\");\n if (currentLevel.toLowerCase() === level.toLowerCase()) button.classList.add(\"active\");\n button.addEventListener(\"click\", function () {\n currentLevel = level;\n updateContent(level);\n updateButtonStyles(level);\n });\n buttonsContainer.appendChild(button);\n }\n });\n contentArea.appendChild(buttonsContainer);\n\n function updateContent(level) {\n var layer = contentData.layers.find(function (l) {\n return l.level.toLowerCase() === level.toLowerCase();\n }); \n if (layer && layer.content) {\n contentParagraph.textContent = layer.content;\n } else {\n contentParagraph.textContent = \"Content not available for this level.\";\n }\n }\n\n function updateButtonStyles(activeLevel) {\n buttonsContainer.querySelectorAll(\".btn\").forEach(function (button) {\n button.classList.remove(\"active\");\n if (button.textContent.toLowerCase() === activeLevel.toLowerCase()) {\n button.classList.add(\"active\");\n }\n });\n }\n\n updateContent(currentLevel);\n}\n\nfunction createScaffoldedLearningPath(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentStepIndex = 0;\n function displayStep(index) {\n var step = contentData.pathway[index];\n contentArea.innerHTML = \"\"; \n contentArea.appendChild(title); \n\n var stepHeading = document.createElement(\"h3\");\n stepHeading.textContent = \"Step \".concat(index + 1, \": \").concat(step.task);\n stepHeading.classList.add(\"title\"); \n contentArea.appendChild(stepHeading);\n var instructions = document.createElement(\"p\");\n instructions.textContent = step.instructions;\n instructions.classList.add(\"paragraph\"); \n contentArea.appendChild(instructions);\n if (step.hints) {\n var hintsList = document.createElement(\"ul\");\n hintsList.classList.add(\"list\"); \n step.hints.forEach(function (hint) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = hint;\n hintsList.appendChild(listItem);\n });\n contentArea.appendChild(hintsList);\n }\n if (step.resources) {\n var resourcesList = document.createElement(\"ul\");\n resourcesList.classList.add(\"list\");\n step.resources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<a href=\\\"\".concat(resource, \"\\\" class=\\\"link\\\">\").concat(resource, \"</a>\"); \n resourcesList.appendChild(listItem);\n });\n contentArea.appendChild(resourcesList);\n }\n\n if (step.assessment) {\n var assessmentDiv = document.createElement(\"div\");\n assessmentDiv.classList.add(\"assessment\");\n assessmentDiv.innerHTML = \"<p class=\\\"paragraph\\\">Assessment: \".concat(step.assessment, \"</p>\"); \n\n var assessmentButton = document.createElement(\"button\");\n assessmentButton.textContent = \"Start Assessment\";\n assessmentButton.classList.add(\"btn\", \"btn-primary\");\n assessmentButton.addEventListener(\"click\", function () {\n });\n assessmentDiv.appendChild(assessmentButton);\n contentArea.appendChild(assessmentDiv);\n }\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Step\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayStep(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < contentData.pathway.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Step\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displayStep(index + 1);\n });\n navButtons.appendChild(nextButton);\n }\n contentArea.appendChild(navButtons);\n }\n\n displayStep(currentStepIndex);\n}\n\nfunction createContextualEmbedding(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var contextParagraph = document.createElement(\"p\");\n contextParagraph.textContent = contentData.context;\n contextParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(contextParagraph);\n var newInformationContainer = document.createElement(\"div\");\n newInformationContainer.classList.add(\"new-information-container\"); \n newInformationContainer.innerHTML = \"<p class=\\\"paragraph new-information\\\">\".concat(contentData.newInformation, \"</p>\");\n contentArea.appendChild(newInformationContainer);\n}\n\nfunction createIterativeRefinement(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var textParagraph = document.createElement(\"p\");\n textParagraph.textContent = contentData.text;\n textParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(textParagraph);\n\n var promptParagraph = document.createElement(\"p\");\n promptParagraph.textContent = contentData.initialPrompt;\n promptParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(promptParagraph);\n\n var responseArea = document.createElement(\"textarea\");\n responseArea.classList.add(\"textarea\");\n responseArea.placeholder = \"Write your response here...\";\n contentArea.appendChild(responseArea);\n\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.classList.add(\"feedback-area\");\n contentArea.appendChild(feedbackArea);\n\n var feedbackButton = document.createElement(\"button\");\n feedbackButton.textContent = \"Get Feedback\";\n feedbackButton.classList.add(\"btn\", \"btn-primary\");\n feedbackButton.addEventListener(\"click\", function () {\n var userInput = responseArea.value.trim();\n fetchAIRefinementFeedback(userInput, contentData.text, contentData.title).then(function (aiFeedback) {\n displayAIOutlineFeedback(aiFeedback, feedbackArea);\n });\n });\n contentArea.appendChild(feedbackButton);\n}\nfunction fetchAIRefinementFeedback(_x, _x2, _x3) {\n return _fetchAIRefinementFeedback.apply(this, arguments);\n}\nfunction _fetchAIRefinementFeedback() {\n _fetchAIRefinementFeedback = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(userInput, contextText, contentTitle) {\n var prompt, response, data;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n prompt = \"Give feedback on the following response in relation to this text: '\".concat(contextText, \"'\\n\\nUser's Response: \").concat(userInput);\n _context.next = 3;\n return fetch('http://localhost:3000/generateContent?formatId=298&title=' + contentTitle + '&content=' + prompt + '&age=14&country=Ireland');\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n data = _context.sent;\n return _context.abrupt(\"return\", data);\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _fetchAIRefinementFeedback.apply(this, arguments);\n}\nfunction displayAIOutlineFeedback(aiFeedback, container) {\n container.innerHTML = \"\";\n var feedbackParagraph = document.createElement(\"p\");\n feedbackParagraph.textContent = aiFeedback.feedback[0]; \n feedbackParagraph.classList.add(\"paragraph\");\n container.appendChild(feedbackParagraph);\n}\n\n},{}],21:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createConceptSortingActivity = createConceptSortingActivity;\nexports.createEpisodicStructure = createEpisodicStructure;\nexports.createGraphicOrganizerCreator = createGraphicOrganizerCreator;\nexports.createHypotheticalScenarios = createHypotheticalScenarios;\nexports.createInteractiveGeometryTools = createInteractiveGeometryTools;\nexports.createInteractiveGraph = createInteractiveGraph;\nexports.createInteractiveNoteTakingTemplates = createInteractiveNoteTakingTemplates;\nexports.createInteractiveTextbook = createInteractiveTextbook;\nexports.createInteractiveVocabularyBuilder = createInteractiveVocabularyBuilder;\nexports.createOutline = createOutline;\nexports.createScientificVocabularyBuilder = createScientificVocabularyBuilder;\nexports.createSummarizationTool = createSummarizationTool;\nfunction createInteractiveTextbookVer2(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.chapters.forEach(function (ch) {\n var chapterContainer = document.createElement(\"div\");\n chapterContainer.classList.add(\"chapter-container\");\n chapterContainer.innerHTML += \"<h3 class=\\\"chapter-title\\\">\".concat(ch.title, \"</h3>\");\n ch.content.forEach(function (subContent) {\n if (subContent.type === 'text') {\n var paragraph = document.createElement('p');\n paragraph.classList.add('paragraph');\n paragraph.innerHTML = subContent.data;\n chapterContainer.appendChild(paragraph);\n } else if (subContent.type === 'image') {\n var image = document.createElement(\"img\");\n image.src = subContent.data;\n image.alt = 'Image';\n image.classList.add(\"image\");\n chapterContainer.appendChild(image);\n } else if (subContent.type === 'video') {\n var video = document.createElement(\"iframe\");\n video.src = subContent.data;\n video.allow = \"fullscreen\";\n video.classList.add(\"video\");\n chapterContainer.appendChild(video);\n } else if (subContent.type === 'quiz') {\n createSelfAssessmentQuiz(subContent.data);\n }\n });\n contentArea.appendChild(chapterContainer);\n });\n}\n\nfunction createConceptSortingActivity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.topic) {\n var topicParagraph = document.createElement(\"p\");\n topicParagraph.textContent = \"Topic: \".concat(contentData.topic);\n topicParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(topicParagraph);\n }\n var conceptsContainer = document.createElement(\"div\");\n conceptsContainer.classList.add(\"concepts-container\", \"flex-container\", \"wrap\"); \n var categoriesContainer = document.createElement(\"div\");\n categoriesContainer.classList.add(\"categories-container\", \"flex-container\", \"wrap\"); \n contentData.concepts.forEach(function (concept, index) {\n var conceptDiv = document.createElement(\"div\");\n conceptDiv.classList.add(\"concept\", \"btn\", \"btn-secondary\");\n conceptDiv.textContent = concept;\n conceptDiv.setAttribute(\"draggable\", \"true\");\n conceptDiv.id = \"concept-\".concat(index);\n conceptDiv.addEventListener(\"dragstart\", dragStart);\n conceptsContainer.appendChild(conceptDiv);\n });\n contentData.categories.forEach(function (category) {\n var categoryDiv = document.createElement(\"div\");\n categoryDiv.classList.add(\"category\", \"drop-zone\");\n categoryDiv.textContent = category;\n categoryDiv.addEventListener(\"dragover\", dragOver);\n categoryDiv.addEventListener(\"drop\", function (event) {\n return dragDrop352(event, category);\n });\n categoriesContainer.appendChild(categoryDiv);\n });\n contentArea.appendChild(conceptsContainer);\n contentArea.appendChild(categoriesContainer);\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answers\";\n checkButton.classList.add(\"btn\", \"btn-primary\", \"centered-button\");\n checkButton.addEventListener(\"click\", function () {\n return checkSorting(contentData, categoriesContainer);\n });\n contentArea.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = \"feedback-area\";\n contentArea.appendChild(feedbackArea);\n}\nfunction dragStart(event) {\n event.dataTransfer.setData(\"text/plain\", event.target.id);\n}\nfunction dragOver(event) {\n event.preventDefault();\n}\nfunction dragDrop352(event, category) {\n event.preventDefault();\n var conceptId = event.dataTransfer.getData(\"text/plain\");\n var conceptElement = document.getElementById(conceptId);\n category.appendChild(conceptElement);\n checkSorting(contentData, categoriesContainer);\n}\nfunction checkSorting(contentData, categoriesContainer) {\n}\nfunction createGraphicOrganizerCreator(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var templateSelect = document.createElement(\"select\");\n templateSelect.classList.add(\"select\");\n contentData.templates.forEach(function (template) {\n var option = document.createElement(\"option\");\n option.value = template.name;\n option.textContent = template.name;\n templateSelect.appendChild(option);\n });\n contentArea.appendChild(templateSelect);\n var organizerContainer = document.createElement(\"div\");\n organizerContainer.id = \"organizer-container\";\n contentArea.appendChild(organizerContainer);\n templateSelect.addEventListener(\"change\", function () {\n var selectedTemplate = contentData.templates.find(function (t) {\n return t.name === templateSelect.value;\n });\n renderOrganizer(selectedTemplate);\n });\n renderOrganizer(contentData.templates[0]);\n function renderOrganizer(template) {\n organizerContainer.innerHTML = \"\"; \n switch (template.name) {\n case \"Venn Diagram\":\n break;\n case \"Flowchart\":\n break;\n case \"Concept Map\":\n break;\n }\n }\n}\n\nfunction createInteractiveNoteTakingTemplates(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var templateSelect = document.createElement(\"select\");\n templateSelect.classList.add(\"select\");\n contentData.templates.forEach(function (template) {\n var option = document.createElement(\"option\");\n option.value = template.name;\n option.textContent = template.name;\n templateSelect.appendChild(option);\n });\n contentArea.appendChild(templateSelect);\n var templateContainer = document.createElement(\"div\");\n templateContainer.id = \"template-container\";\n contentArea.appendChild(templateContainer);\n templateSelect.addEventListener(\"change\", function () {\n var selectedTemplate = contentData.templates.find(function (t) {\n return t.name === templateSelect.value;\n });\n renderTemplate(selectedTemplate);\n });\n renderTemplate(contentData.templates[0]); \n function renderTemplate(template) {\n templateContainer.innerHTML = \"\"; \n switch (template.layout) {\n case \"outline\":\n createOutlineTemplate(template, templateContainer);\n break;\n case \"cornell\":\n createCornellTemplate(template, templateContainer);\n break;\n case \"mindMap\":\n createMindMapTemplate(template, templateContainer);\n break;\n default:\n break;\n }\n }\n function createOutlineTemplate(template, container) {\n var outlineList = document.createElement(\"ul\");\n outlineList.classList.add(\"list\", \"outline\");\n template.sections.forEach(function (section) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h4>\".concat(section.name, \"</h4>\\n <ul class=\\\"inner-list\\\">\\n \").concat(section.type === \"bulletPoints\" ? \"<li contenteditable=\\\"true\\\" class=\\\"paragraph\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\"></li>\" \n : \"\", \"\\n \").concat(section.type === \"numberedList\" ? \"<ol><li contenteditable=\\\"true\\\" class=\\\"paragraph\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\"></li></ol>\" \n : \"\", \"\\n \").concat(section.type === \"text\" ? \"<textarea class=\\\"textarea\\\" placeholder=\\\"Add your notes here...\\\"></textarea>\" : \"\", \"\\n </ul>\\n \");\n outlineList.appendChild(listItem);\n });\n container.appendChild(outlineList);\n }\n function createCornellTemplate(template, container) {\n container.innerHTML = \"\\n <div class=\\\"cornell-notes\\\">\\n <div class=\\\"key-points-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Key Points</h4>\\n </div>\\n <div class=\\\"notes-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Notes</h4>\\n </div>\\n <div class=\\\"summary-section\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n <h4>Summary</h4>\\n </div>\\n </div>\\n \";\n }\n function createMindMapTemplate(template, container) {\n container.innerHTML = \"\\n <div class=\\\"mind-map\\\">\\n <div class=\\\"central-node\\\" contenteditable=\\\"true\\\" role=\\\"textbox\\\" aria-multiline=\\\"true\\\">\\n \".concat(template.sections[0].name, \"\\n </div>\\n </div>\\n \");\n }\n}\n\nfunction createOutline(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var outlineList = document.createElement(\"ol\");\n outlineList.classList.add(\"outline\", \"list\"); \n function renderListItems(items, parentList) {\n items.forEach(function (item) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = item.text;\n if (item.items && item.items.length > 0) {\n var nestedList = document.createElement(\"ol\");\n nestedList.classList.add(\"list\");\n renderListItems(item.items, nestedList); \n listItem.appendChild(nestedList);\n }\n parentList.appendChild(listItem);\n });\n }\n renderListItems(contentData.items, outlineList); \n contentArea.appendChild(outlineList);\n}\nfunction createScientificVocabularyBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n}\nfunction createSummarizationTool(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.explanation, \"</p>\");\n var textArea = document.createElement(\"textarea\");\n textArea.classList.add(\"textarea\");\n textArea.placeholder = \"Paste your text here...\";\n contentArea.appendChild(textArea);\n var summaryButton = document.createElement(\"button\");\n summaryButton.textContent = \"Summarize\";\n summaryButton.classList.add(\"btn\", \"btn-primary\");\n summaryButton.addEventListener(\"click\", function () {\n });\n contentArea.appendChild(summaryButton);\n}\nfunction createInteractiveGeometryTools(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var toolsContainer = document.createElement(\"div\");\n toolsContainer.classList.add(\"tools-container\", \"flex-container\"); \n contentData.tools.forEach(function (tool) {\n var toolButton = document.createElement(\"button\");\n toolButton.textContent = tool.charAt(0).toUpperCase() + tool.slice(1); \n toolButton.classList.add(\"btn\", \"btn-secondary\");\n toolButton.addEventListener(\"click\", function () {\n alert(\"Activate \".concat(tool, \" tool\"));\n });\n toolsContainer.appendChild(toolButton);\n });\n contentArea.appendChild(toolsContainer);\n}\n\nfunction createInteractiveGraph(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var graphContainer = document.createElement(\"div\");\n graphContainer.id = \"graph-container\";\n contentArea.appendChild(graphContainer);\n var ctx = document.createElement(\"canvas\");\n graphContainer.appendChild(ctx);\n var myChart = new Chart(ctx, {\n \"type\": contentData.chartType,\n data: {\n labels: contentData.data.map(function (item) {\n return item.x;\n }),\n datasets: [{\n label: contentData.title,\n data: contentData.data.map(function (item) {\n return item.y;\n })\n }]\n },\n \"options\": {\n scales: {\n x: {\n title: {\n display: true,\n text: contentData.axisLabels.x\n }\n },\n y: {\n title: {\n display: true,\n text: contentData.axisLabels.y\n }\n }\n }\n }\n });\n}\nfunction createInteractiveVocabularyBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.theme) {\n var themeParagraph = document.createElement(\"p\");\n themeParagraph.textContent = \"Theme: \".concat(contentData.theme);\n contentArea.appendChild(themeParagraph);\n }\n var wordListContainer = document.createElement(\"div\");\n wordListContainer.classList.add(\"word-list-container\", \"flex-container\", \"wrap\"); \n contentData.words.forEach(function (wordData) {\n var wordItem = document.createElement(\"div\");\n wordItem.classList.add(\"word-item\");\n if (wordData.image) {\n var image = document.createElement(\"img\");\n image.src = wordData.image;\n image.alt = wordData.word;\n wordItem.appendChild(image);\n }\n var wordHeading = document.createElement(\"h3\");\n wordHeading.textContent = wordData.word;\n wordItem.appendChild(wordHeading);\n var definition = document.createElement(\"p\");\n definition.textContent = \"Definition: \".concat(wordData.definition);\n definition.classList.add(\"paragraph\");\n wordItem.appendChild(definition);\n if (wordData.example) {\n var example = document.createElement(\"p\");\n example.textContent = \"Example: \".concat(wordData.example);\n example.classList.add(\"paragraph\");\n wordItem.appendChild(example);\n }\n wordListContainer.appendChild(wordItem);\n });\n contentArea.appendChild(wordListContainer);\n}\n\nfunction createInteractiveTextbook(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.chapters.forEach(function (chapter) {\n var chapterSection = document.createElement(\"section\");\n chapterSection.classList.add(\"chapter\");\n var chapterTitle = document.createElement(\"h2\");\n chapterTitle.textContent = chapter.title;\n chapterTitle.classList.add(\"title\");\n chapterSection.appendChild(chapterTitle);\n chapter.content.forEach(function (item) {\n switch (item.FormatType) {\n case \"text\":\n var paragraph = document.createElement(\"p\");\n paragraph.textContent = item.data;\n paragraph.classList.add(\"paragraph\");\n chapterSection.appendChild(paragraph);\n break;\n case \"image\":\n var image = document.createElement(\"img\");\n image.src = item.data.src;\n image.alt = item.data.alt || \"Image\";\n image.classList.add(\"image\");\n chapterSection.appendChild(image);\n break;\n case \"video\":\n var video = document.createElement(\"iframe\");\n video.src = item.data;\n video.allowFullscreen = true;\n video.classList.add(\"video\");\n chapterSection.appendChild(video);\n break;\n case \"quiz\":\n createSelfAssessmentQuiz(item.data); \n break;\n default:\n console.warn(\"Unknown content type: \".concat(item.FormatType));\n break;\n }\n });\n contentArea.appendChild(chapterSection);\n });\n}\n\nfunction createEpisodicStructure(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentEpisodeIndex = 0; \n\n displayEpisode(currentEpisodeIndex);\n function displayEpisode(index) {\n var episode = contentData.episodes[index];\n contentArea = createContentHeader(contentData, ContentAreaId);\n var episodeTitle = document.createElement(\"h3\");\n episodeTitle.textContent = episode.title;\n episodeTitle.classList.add(\"title\"); \n contentArea.appendChild(episodeTitle);\n var episodeContent = document.createElement(\"p\");\n episodeContent.textContent = episode.content;\n episodeContent.classList.add(\"paragraph\"); \n contentArea.appendChild(episodeContent);\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Episode\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayEpisode(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < contentData.episodes.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Episode\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displayEpisode(index + 1);\n });\n navButtons.appendChild(nextButton);\n }\n contentArea.appendChild(navButtons);\n }\n}\n\nfunction createHypotheticalScenarios(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.scenarios.forEach(function (scenario, index) {\n var scenarioDiv = document.createElement(\"div\");\n scenarioDiv.classList.add(\"scenario\");\n var scenarioHeading = document.createElement(\"h3\"); \n scenarioHeading.textContent = \"Scenario \".concat(index + 1);\n scenarioDiv.appendChild(scenarioHeading);\n var scenarioText = document.createElement(\"p\");\n scenarioText.textContent = scenario.scenario;\n scenarioText.classList.add(\"paragraph\");\n scenarioDiv.appendChild(scenarioText);\n var questionsList = document.createElement(\"ol\");\n questionsList.classList.add(\"list\");\n scenario.questions.forEach(function (question) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = question;\n questionsList.appendChild(listItem);\n });\n scenarioDiv.appendChild(questionsList);\n contentArea.appendChild(scenarioDiv);\n });\n}\n\n},{}],22:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAccessibleSummary = createAccessibleSummary;\nexports.createELI5 = createELI5;\nexports.createKeyTakeawaysInfographic = createKeyTakeawaysInfographic;\nexports.createMathFormulas = createMathFormulas;\nexports.createSimplifiedExplanation = createSimplifiedExplanation;\nexports.createTextSummaryWithKeyPoints = createTextSummaryWithKeyPoints;\nfunction createELI5(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var topicParagraph = document.createElement(\"p\");\n topicParagraph.textContent = \"Topic: \".concat(contentData.topic);\n topicParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(topicParagraph);\n var explanation = document.createElement(\"p\");\n explanation.textContent = contentData.explanation;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n}\nfunction createAccessibleSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var originalText = document.createElement(\"div\");\n originalText.classList.add(\"original-text\");\n originalText.textContent = contentData.text;\n contentArea.appendChild(originalText);\n var summary = document.createElement(\"p\");\n summary.textContent = contentData.summary;\n summary.classList.add(\"paragraph\");\n contentArea.appendChild(summary);\n contentArea.style.fontSize = \"18px\"; \n contentArea.style.lineHeight = \"1.6\"; \n}\n\nfunction createKeyTakeawaysInfographic(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var infographicContainer = document.createElement(\"div\");\n infographicContainer.classList.add(\"infographic-container\");\n contentData.points.forEach(function (point) {\n var pointDiv = document.createElement(\"div\");\n pointDiv.classList.add(\"infographic-point\");\n pointDiv.innerHTML = \"\\n \".concat(point.icon ? \"<span class=\\\"icon\\\">\".concat(point.icon, \"</span>\") : \"\", \"\\n <p class=\\\"paragraph\\\">\").concat(point.text, \"</p>\\n \");\n infographicContainer.appendChild(pointDiv);\n });\n contentArea.appendChild(infographicContainer);\n}\n\nfunction createMathFormulas(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.subject) {\n var subject = document.createElement(\"p\");\n subject.textContent = \"Subject: \".concat(contentData.subject);\n contentArea.appendChild(subject);\n }\n var formulaList = document.createElement(\"ul\");\n formulaList.classList.add(\"formula-list\", \"list\");\n contentData.formulas.forEach(function (formulaData) {\n var formulaItem = document.createElement(\"li\");\n formulaItem.innerHTML = \"\\n <details>\\n <summary class=\\\"paragraph\\\">\".concat(formulaData.formula, \"</summary>\\n <p class=\\\"paragraph\\\">\").concat(formulaData.explanation, \"</p>\\n \").concat(formulaData.examples ? \"<ul class=\\\"list\\\">\\n \".concat(formulaData.examples.map(function (example) {\n return \"<li class=\\\"paragraph\\\">\".concat(example, \"</li>\");\n }).join(''), \"\\n </ul>\") : '', \"\\n </details>\\n \");\n formulaList.appendChild(formulaItem);\n });\n contentArea.appendChild(formulaList);\n}\nfunction createSimplifiedExplanation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var topicParagraph = document.createElement(\"p\");\n topicParagraph.textContent = \"Topic: \".concat(contentData.topic);\n topicParagraph.classList.add(\"paragraph\");\n contentArea.appendChild(topicParagraph);\n var explanation = document.createElement(\"p\");\n explanation.textContent = contentData.explanation;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n}\n\nfunction createTextSummaryWithKeyPoints(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(contentData.summary, \"</p>\");\n var keyPointsList = document.createElement(\"ul\");\n keyPointsList.classList.add(\"list\");\n contentData.keyPoints.forEach(function (point) {\n var listItem = document.createElement(\"li\");\n listItem.textContent = point;\n keyPointsList.appendChild(listItem);\n });\n contentArea.appendChild(keyPointsList);\n}\n\n},{}],23:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAiEssayGrading = createAiEssayGrading;\nexports.createAnimatedDataVisualization = createAnimatedDataVisualization;\nexports.createAstronomySimulation = createAstronomySimulation;\nexports.createBubbleChart = createBubbleChart;\nexports.createCauseEffect = createCauseEffect;\nexports.createConceptMap = createConceptMap;\nexports.createDigitalStorytelling = createDigitalStorytelling;\nexports.createDragDropActivity = createDragDropActivity;\nexports.createFiveWsChart = createFiveWsChart;\nexports.createFlowchart = createFlowchart;\nexports.createFlowchartLight = createFlowchartLight;\nexports.createFrayerModel = createFrayerModel;\nexports.createGamifiedLearning = createGamifiedLearning;\nexports.createGraphicOrganizer = createGraphicOrganizer;\nexports.createInteractiveDataDashboard = createInteractiveDataDashboard;\nexports.createInteractiveDebate = createInteractiveDebate;\nexports.createInteractiveMap = createInteractiveMap;\nexports.createMindMap = createMindMap;\nexports.createMolecularModel = createMolecularModel;\nexports.createNetworkDiagram = createNetworkDiagram;\nexports.createSequenceDiagram = createSequenceDiagram;\nexports.createSpeechTextIntegration = createSpeechTextIntegration;\nexports.createStackedAreaChart = createStackedAreaChart;\nexports.createStateDiagram = createStateDiagram;\nexports.createStoryboardGrid = createStoryboardGrid;\nexports.createStudentChatbot = createStudentChatbot;\nexports.createSunburst = createSunburst;\nexports.createTimeline = createTimeline;\nexports.createTreeDiagram = createTreeDiagram;\nexports.createTreemap = createTreemap;\nexports.createTypingTrainer = createTypingTrainer;\nexports.createUMLClassDiagram = createUMLClassDiagram;\nexports.createVennDiagram = createVennDiagram;\nexports.createVirtualScienceLab = createVirtualScienceLab;\nexports.createVirtualWhiteboard = createVirtualWhiteboard;\nexports.createWordCloud = createWordCloud;\nexports.renderEducationalComponent = renderEducationalComponent;\nexports.renderMindMap = renderMindMap;\nexports.renderPeriodicTableExplorer = renderPeriodicTableExplorer;\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\nfunction renderEducationalComponent(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var isTeacherMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n switch (contentData.type) {\n case \"flowchart\":\n isTeacherMode ? createFlowchart(contentData, contentArea) : createFlowchartLight(contentData, contentArea);\n break;\n case \"conceptMap\":\n isTeacherMode ? createConceptMap(contentData, contentArea) : createConceptMap(contentData, contentArea);\n break;\n case \"timeline\":\n isTeacherMode ? createTimeline(contentData, contentArea) : createTimeline(contentData, contentArea);\n break;\n case \"interactiveMap\":\n isTeacherMode ? createInteractiveMap(contentData, contentArea) : createInteractiveMap(contentData, contentArea);\n break;\n case \"vennDiagram\":\n isTeacherMode ? createVennDiagram(contentData, contentArea, d3) : createVennDiagram(contentData, contentArea, d3);\n break;\n case \"stateDiagram\":\n isTeacherMode ? createStateDiagram(contentData, contentArea) : createStateDiagram(contentData, contentArea);\n break;\n case \"sequenceDiagram\":\n isTeacherMode ? createSequenceDiagram(contentData, contentArea) : createSequenceDiagram(contentData, contentArea);\n break;\n case \"umlClassDiagram\":\n isTeacherMode ? createUMLClassDiagram(contentData, contentArea) : createUMLClassDiagram(contentData, contentArea);\n break;\n case \"networkDiagram\":\n isTeacherMode ? createNetworkDiagram(contentData, contentArea) : createNetworkDiagram(contentData, contentArea);\n break;\n case \"interactiveDataDashboard\":\n isTeacherMode ? createInteractiveDataDashboard(contentData, contentArea) : createInteractiveDataDashboard(contentData, contentArea);\n break;\n case \"animatedDataVisualization\":\n isTeacherMode ? createAnimatedDataVisualization(contentData, contentArea) : createAnimatedDataVisualization(contentData, contentArea);\n break;\n case \"interactiveQuiz\":\n isTeacherMode ? createInteractiveQuiz(contentData, contentArea) : createInteractiveQuiz(contentData, contentArea);\n break;\n case \"virtualLaboratory\":\n isTeacherMode ? createVirtualLaboratory(contentData, contentArea) : createVirtualLaboratory(contentData, contentArea);\n break;\n case \"physicsSimulation\":\n isTeacherMode ? createPhysicsSimulation(contentData, contentArea) : createPhysicsSimulation(contentData, contentArea);\n break;\n case \"molecularModel\":\n isTeacherMode ? createMolecularModel(contentData, contentArea) : createMolecularModel(contentData, contentArea);\n break;\n case \"periodicTableExplorer\":\n isTeacherMode ? renderPeriodicTableExplorer(contentData, contentArea) : renderPeriodicTableExplorer(contentData, contentArea);\n break;\n case \"astronomySimulation\":\n isTeacherMode ? createAstronomySimulation(contentData, contentArea) : createAstronomySimulation(contentData, contentArea);\n break;\n case \"bodySystemsExplorer\":\n isTeacherMode ? renderBodySystemsExplorer(contentData, contentArea) : renderBodySystemsExplorer(contentData, contentArea);\n break;\n case \"languageLearningGame\":\n isTeacherMode ? createLanguageLearningGame(contentData, contentArea) : createLanguageLearningGame(contentData, contentArea);\n break;\n case \"dragDropActivity\":\n isTeacherMode ? createDragDropActivity(contentData, contentArea) : createDragDropActivity(contentData, contentArea);\n break;\n case \"digitalStorytelling\":\n isTeacherMode ? createDigitalStorytelling(contentData, contentArea) : createDigitalStorytelling(contentData, contentArea);\n break;\n case \"virtualWhiteboard\":\n isTeacherMode ? createVirtualWhiteboard(contentData, contentArea) : createVirtualWhiteboard(contentData, contentArea);\n break;\n case \"gamifiedLearning\":\n isTeacherMode ? createGamifiedLearning(contentData, contentArea) : createGamifiedLearning(contentData, contentArea);\n break;\n case \"codeExecution\":\n isTeacherMode ? createCodeExecution(contentData, contentArea) : createCodeExecution(contentData, contentArea);\n break;\n case \"sentenceConstruction\":\n isTeacherMode ? createSentenceConstruction(contentData, contentArea) : createSentenceConstruction(contentData, contentArea);\n break;\n case \"speechTextIntegration\":\n isTeacherMode ? createSpeechTextIntegration(contentData, contentArea) : createSpeechTextIntegration(contentData, contentArea);\n break;\n case \"studentChatbot\":\n isTeacherMode ? createStudentChatbot(contentData, contentArea) : createStudentChatbot(contentData, contentArea);\n break;\n case \"virtualScienceLab\":\n isTeacherMode ? createVirtualScienceLab(contentData, contentArea) : createVirtualScienceLab(contentData, contentArea);\n break;\n case \"interactiveDebate\":\n isTeacherMode ? createInteractiveDebate(contentData, contentArea) : createInteractiveDebate(contentData, contentArea);\n break;\n case \"aiEssayGrading\":\n isTeacherMode ? createAiEssayGrading(contentData, contentArea) : createAiEssayGrading(contentData, contentArea);\n break;\n case \"typingTrainer\":\n isTeacherMode ? createTypingTrainer(contentData, contentArea) : createTypingTrainer(contentData, contentArea);\n break;\n case \"toneDetection\":\n isTeacherMode ? createToneDetection(contentData, contentArea) : createToneDetection(contentData, contentArea);\n break;\n case \"sentimentAnalysis\":\n isTeacherMode ? createSentimentAnalysis(contentData, contentArea) : createSentimentAnalysis(contentData, contentArea);\n break;\n case \"speechTextLearning\":\n isTeacherMode ? createSpeechTextLearning(contentData, contentArea) : createSpeechTextLearning(contentData, contentArea);\n break;\n case \"wordCloud\":\n isTeacherMode ? createWordCloud(contentData, contentArea) : createWordCloud(contentData, contentArea);\n break;\n case \"mindMap\":\n isTeacherMode ? createMindMap(contentData, contentArea) : createMindMap(contentData, contentArea);\n break;\n case \"treeDiagram\":\n isTeacherMode ? createTreeDiagram(contentData, contentArea) : createTreeDiagram(contentData, contentArea);\n break;\n case \"sunburst\":\n isTeacherMode ? createSunburst(contentData, contentArea) : createSunburst(contentData, contentArea);\n break;\n case \"bubbleChart\":\n isTeacherMode ? createBubbleChart(contentData, contentArea) : createBubbleChart(contentData, contentArea);\n break;\n case \"treemap\":\n isTeacherMode ? createTreemap(contentData, contentArea) : createTreemap(contentData, contentArea);\n break;\n case \"stackedArea\":\n isTeacherMode ? createStackedAreaChart(contentData, contentArea) : createStackedAreaChart(contentData, contentArea);\n break;\n case \"frayerModel\":\n isTeacherMode ? createFrayerModel(contentData, contentArea) : createFrayerModel(contentData, contentArea);\n break;\n case \"storyboardGrid\":\n isTeacherMode ? createStoryboardGrid(contentData, contentArea) : createStoryboardGrid(contentData, contentArea);\n break;\n case \"fiveWsChart\":\n isTeacherMode ? createFiveWsChart(contentData, contentArea) : createFiveWsChart(contentData, contentArea);\n break;\n case \"causeEffect\":\n isTeacherMode ? createCauseEffect(contentData, contentArea) : createCauseEffect(contentData, contentArea);\n break;\n case \"graphicOrganizer\":\n isTeacherMode ? createGraphicOrganizer(contentData, contentArea) : createGraphicOrganizer(contentData, contentArea);\n break;\n default:\n console.error(\"Unsupported content type:\", contentData.type);\n break;\n }\n}\n\n\nfunction createFlowchartLight(contentData, ContentArea) {\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var flowchartContainer = document.createElement(\"div\");\n flowchartContainer.classList.add(\"mermaid\");\n contentArea.appendChild(flowchartContainer);\n\n var mermaidDefinition = \"graph TD;\\n\";\n\n contentData.steps.forEach(function (step) {\n mermaidDefinition += \"\".concat(step.id, \"[\\\"\").concat(step.text, \"\\\"];\\n\");\n\n if (step.connections && step.connections.length > 0) {\n step.connections.forEach(function (connection) {\n mermaidDefinition += \"\".concat(step.id, \" --> \").concat(connection, \";\\n\");\n });\n }\n });\n\n flowchartContainer.textContent = mermaidDefinition;\n\n if (window.mermaid) {\n window.mermaid.init(undefined, flowchartContainer);\n } else {\n console.error(\"Mermaid.js is not loaded.\");\n }\n}\nfunction createFlowchart(contentData, contentArea) {\n if (!contentData || !contentData.steps || !Array.isArray(contentData.steps)) {\n console.error(\"Invalid flowchart data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid flowchart data.</p>\";\n return;\n }\n\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var networkContainer = document.createElement(\"div\");\n networkContainer.style.width = \"800px\";\n networkContainer.style.height = \"600px\";\n contentArea.appendChild(networkContainer);\n\n var nodes = contentData.steps.map(function (step) {\n var shape = \"box\"; \n\n if (step.text.toLowerCase().includes(\"does\")) {\n shape = \"diamond\"; \n } else if (step.text.toLowerCase().includes(\"start\") || step.text.toLowerCase().includes(\"end\")) {\n shape = \"ellipse\"; \n }\n return {\n id: step.id,\n label: step.text,\n shape: shape,\n color: step.color || '#97C2FC'\n };\n });\n var edges = [];\n contentData.steps.forEach(function (step) {\n if (step.connections && step.connections.length > 0) {\n step.connections.forEach(function (connection) {\n edges.push({\n from: step.id,\n to: connection.to,\n label: connection.label\n });\n });\n }\n });\n\n var data = {\n nodes: new vis.DataSet(nodes),\n edges: new vis.DataSet(edges)\n };\n var options = {\n layout: {\n hierarchical: {\n enabled: true \n }\n },\n edges: {\n arrows: {\n to: {\n enabled: true\n }\n }\n },\n interaction: {\n dragNodes: true,\n zoomView: true\n },\n physics: {\n enabled: false \n }\n };\n var network = new vis.Network(networkContainer, data, options);\n}\nfunction createStateDiagram(contentData, contentArea) {\n if (!contentData || !contentData.states || !Array.isArray(contentData.states)) {\n console.error(\"Invalid state diagram data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid state diagram data.</p>\";\n return;\n }\n\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var networkContainer = document.createElement(\"div\");\n networkContainer.style.width = \"800px\";\n networkContainer.style.height = \"600px\";\n contentArea.appendChild(networkContainer);\n\n var nodes = contentData.states.map(function (state) {\n return {\n id: state.id,\n label: state.name,\n title: state.description,\n color: state.color || '#97C2FC',\n shape: state.shape || 'box',\n size: 30\n };\n });\n var edges = [];\n contentData.states.forEach(function (state) {\n if (state.transitions && state.transitions.length > 0) {\n state.transitions.forEach(function (transition) {\n edges.push({\n from: state.id,\n to: transition.to,\n label: transition.event,\n arrows: {\n to: {\n enabled: true\n }\n }\n });\n });\n }\n });\n\n var data = {\n nodes: new vis.DataSet(nodes),\n edges: new vis.DataSet(edges)\n };\n var options = {\n layout: {\n hierarchical: false\n },\n interaction: {\n dragNodes: true,\n zoomView: true\n },\n physics: {\n enabled: true\n }\n };\n var network = new vis.Network(networkContainer, data, options);\n}\n\nfunction createSequenceDiagram(contentData, contentArea) {\n if (!contentData || !contentData.entities || !contentData.interactions) {\n console.error(\"Invalid sequence diagram data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid sequence diagram data.</p>\";\n return;\n }\n\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var nodes = contentData.entities.map(function (entity) {\n return {\n id: entity,\n label: entity,\n shape: \"box\",\n margin: 10\n };\n });\n var edges = contentData.interactions.map(function (interaction, index) {\n var arrows = {\n to: {\n enabled: true\n }\n };\n var font = {\n align: 'center'\n }; \n\n if (interaction.type === 'bidirectional') {\n arrows = {\n from: {\n enabled: true\n },\n to: {\n enabled: true\n }\n };\n } else if (interaction.type === \"reply\") {\n arrows = {\n to: {\n enabled: true,\n type: \"triangle-tee\"\n }\n };\n } else {\n arrows = {\n to: {\n enabled: true\n }\n };\n }\n\n var fromOffset = 0;\n var toOffset = 0;\n\n if (interaction.from < interaction.to) {\n font.vadjust = -10; \n fromOffset = 5;\n toOffset = 5;\n } else {\n font.vadjust = 10; \n fromOffset = -5;\n toOffset = -5;\n }\n return {\n id: \"edge-\".concat(index),\n from: interaction.from,\n to: interaction.to,\n label: interaction.message,\n arrows: arrows,\n smooth: {\n enabled: true,\n roundness: 0.5\n },\n labelHighlightBold: false,\n font: font,\n fromOffset: fromOffset,\n toOffset: toOffset,\n color: interaction.type === \"destroy\" ? \"red\" : undefined\n };\n });\n\n var networkContainer = document.createElement(\"div\");\n networkContainer.style.width = \"100%\";\n networkContainer.style.height = \"400px\";\n contentArea.appendChild(networkContainer);\n\n var data = {\n nodes: nodes,\n edges: edges\n };\n var options = {\n layout: {\n hierarchical: {\n direction: \"UD\",\n sortMethod: \"directed\"\n }\n },\n nodes: {\n shape: \"box\",\n margin: 10\n },\n edges: {\n arrows: {\n to: {\n enabled: true\n }\n },\n smooth: {\n enabled: true,\n roundness: 0.5\n }\n },\n physics: false\n };\n var network = new vis.Network(networkContainer, data, options);\n}\nfunction generateMermaidNodes(steps) {\n return steps.map(function (step) {\n return \"\".concat(step.id, \"[\\\"\").concat(step.text, \"\\\"]\");\n }).join('\\n');\n}\nfunction generateSequenceNodes(interactions) {\n return interactions.map(function (_int) {\n return \"\".concat(_int.from, \"->>\").concat(_int.to, \": \").concat(_int.message);\n }).join('\\n');\n}\n\n\nfunction createConceptMap(contentData, contentArea) {\n var isTeacherMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!contentData || !contentData.concepts || !Array.isArray(contentData.concepts)) {\n console.error(\"Invalid concept map data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid concept map data.</p>\";\n return;\n }\n\n var networkContainer = document.createElement('div');\n networkContainer.style.width = '800px'; \n networkContainer.style.height = '600px'; \n contentArea.appendChild(networkContainer);\n var nodes = contentData.concepts.map(function (concept) {\n return {\n id: concept.id,\n label: concept.text,\n title: concept.description,\n shape: 'ellipse',\n color: concept.color || '#97C2FC'\n };\n });\n var edges = [];\n contentData.concepts.forEach(function (concept) {\n if (concept.connections && Array.isArray(concept.connections)) {\n concept.connections.forEach(function (connection) {\n edges.push({\n from: concept.id,\n to: connection.to,\n label: connection.label,\n color: connection.color,\n dashes: connection.style === 'dashed',\n physics: connection.style !== 'dotted'\n });\n });\n }\n });\n var data = {\n nodes: new vis.DataSet(nodes),\n edges: new vis.DataSet(edges)\n };\n var options = {\n layout: {\n hierarchical: false\n },\n edges: {\n arrows: {\n to: {\n enabled: true\n }\n }\n },\n interaction: {\n dragNodes: true,\n zoomView: true,\n hover: true\n },\n nodes: {\n shape: 'ellipse',\n size: 30,\n font: {\n size: 14\n }\n }\n };\n var network = new vis.Network(networkContainer, data, options);\n if (isTeacherMode) {\n network.on(\"doubleClick\", function (params) {\n if (params.nodes.length === 1) {\n var nodeId = params.nodes[0];\n var node = nodes.find(function (n) {\n return n.id === nodeId;\n });\n if (node) {\n var newLabel = prompt(\"Edit node label:\", node.label);\n if (newLabel !== null) {\n nodes.find(function (n) {\n return n.id === nodeId;\n }).label = newLabel;\n network.setData({\n nodes: new vis.DataSet(nodes),\n edges: new vis.DataSet(edges)\n });\n }\n }\n }\n });\n }\n}\n\nfunction createNetworkDiagram(contentData, contentArea) {\n if (!contentData || !contentData.nodes || !contentData.edges) {\n console.error(\"Invalid network diagram data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid network diagram data.</p>\";\n return;\n }\n\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var networkContainer = document.createElement(\"div\");\n networkContainer.style.width = \"100%\";\n networkContainer.style.height = \"500px\"; \n contentArea.appendChild(networkContainer);\n var nodes = contentData.nodes.map(function (node) {\n return {\n id: node.id,\n label: node.label,\n color: node.color,\n shape: node.shape\n };\n });\n var edges = contentData.edges.map(function (edge) {\n return {\n from: edge.from,\n to: edge.to,\n label: edge.label,\n color: edge.color,\n arrows: edge.arrows ? {\n to: {\n enabled: true,\n type: edge.arrows\n }\n } : undefined,\n dashes: edge.dashes\n };\n });\n var networkData = {\n nodes: new vis.DataSet(nodes),\n edges: new vis.DataSet(edges)\n };\n var options = {\n physics: {\n enabled: true,\n barnesHut: {\n gravitationalConstant: -2000,\n centralGravity: 0.3,\n springLength: 95,\n springConstant: 0.04,\n damping: 0.09\n },\n forceAtlas2Based: {\n gravitationalConstant: -50,\n centralGravity: 0.01,\n springConstant: 0.08,\n springLength: 100,\n damping: 0.4,\n avoidOverlap: 0.9\n },\n maxVelocity: 50,\n minVelocity: 0.1,\n solver: 'forceAtlas2Based',\n timestep: 0.55\n },\n edges: {\n arrows: {\n to: {\n enabled: true\n }\n }\n }\n };\n new vis.Network(networkContainer, networkData, options);\n}\n\nfunction createTimeline(contentData, contentArea) {\n if (!contentData || !contentData.events || !Array.isArray(contentData.events)) {\n console.error(\"Invalid timeline data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid timeline data.</p>\";\n return;\n }\n\n if (contentData.description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n\n var timelineContainer = document.createElement(\"div\");\n timelineContainer.id = \"mytimeline\"; \n timelineContainer.style.width = \"100%\";\n timelineContainer.style.height = \"400px\";\n timelineContainer.style.border = \"1px solid #ccc\";\n contentArea.appendChild(timelineContainer);\n\n var items = new vis.DataSet(contentData.events.map(function (event) {\n var startDate, endDate;\n try {\n startDate = new Date(event.date);\n if (isNaN(startDate.getTime())) {\n throw new Error(\"Invalid start date\");\n }\n if (event.endDate) {\n endDate = new Date(event.endDate);\n if (isNaN(endDate.getTime())) {\n throw new Error(\"Invalid end date\");\n }\n } else {\n endDate = new Date(startDate.getTime() + 24 * 60 * 60 * 1000); \n }\n } catch (error) {\n console.error(\"Error parsing date:\", event, error);\n startDate = new Date(); \n endDate = new Date(startDate.getTime() + 24 * 60 * 60 * 1000);\n }\n var itemClass = '';\n if (event.shape) {\n itemClass += \"shape-\".concat(event.shape, \" \");\n }\n if (event.icon) {\n itemClass += \"icon-\".concat(event.icon, \" \");\n }\n return {\n id: event.date + event.event,\n start: startDate,\n end: endDate,\n content: \"<b>\".concat(event.event, \"</b><br>\").concat(event.description),\n group: event.category,\n style: event.color ? \"background-color: \".concat(event.color, \";\") : undefined,\n className: itemClass.trim(),\n title: (event.event ? \"<b>\".concat(event.event, \"</b><br>\") : '') + (\n event.description ? \"\".concat(event.description, \"<br>\") : '') + (\n event.media ? \"<a href=\\\"\".concat(event.media, \"\\\" target=\\\"_blank\\\">Media</a>\") : '')\n };\n }));\n\n var groupSet = new vis.DataSet(); \n contentData.events.forEach(function (event) {\n if (event.category && !groupSet.get(event.category)) {\n groupSet.add({\n id: event.category,\n content: event.category\n });\n }\n });\n\n var options = {\n zoomMin: 1000 * 60 * 60 * 24 * 7,\n zoomMax: 1000 * 60 * 60 * 24 * 365 * 100,\n stack: false,\n zoomable: true,\n moveable: true\n };\n\n try {\n var timeline = new vis.Timeline(timelineContainer, items, groupSet, options); \n console.log(\"Timeline created successfully:\", timeline);\n } catch (error) {\n console.error(\"Error creating timeline:\", error);\n contentArea.innerHTML = \"<p>Error: \".concat(error.message, \"</p>\");\n }\n}\n\n\nfunction renderMindMap(contentData, contentArea) {\n var $ = go.GraphObject.make;\n var diagram = $(go.Diagram, contentArea, {\n layout: $(go.TreeLayout)\n });\n diagram.nodeTemplate = $(go.Node, 'Auto', $(go.Shape, 'RoundedRectangle', {\n fill: 'lightblue'\n }), $(go.TextBlock, {\n margin: 5\n }, new go.Binding('text', 'text')));\n diagram.model = new go.TreeModel(contentData.concepts.map(function (concept) {\n return {\n key: concept.id,\n parent: concept.connections.length ? concept.connections[0] : null,\n text: concept.text\n };\n }));\n}\n\n\nfunction createUMLClassDiagram(contentData, contentArea) {\n if (!contentData || !contentData.classes) {\n console.error(\"Invalid UML class diagram data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid UML class diagram data.</p>\";\n return;\n }\n var $ = go.GraphObject.make;\n\n var diagramDiv = document.createElement(\"div\");\n diagramDiv.style.width = \"100%\";\n diagramDiv.style.height = \"500px\"; \n contentArea.appendChild(diagramDiv); \n\n var diagram = $(go.Diagram, diagramDiv, {\n layout: $(go.LayeredDigraphLayout, {\n direction: 90\n }),\n \"undoManager.isEnabled\": true\n });\n\n diagram.nodeTemplate = $(go.Node, \"Table\", {\n locationSpot: go.Spot.Center\n }, $(go.Shape, \"Rectangle\", {\n fill: \"white\",\n stroke: \"black\"\n }), $(go.Panel, \"Vertical\", {\n margin: 3\n }, $(go.TextBlock, {\n row: 0,\n column: 0,\n font: \"bold 12pt sans-serif\"\n }, new go.Binding(\"text\", \"name\")), $(go.TextBlock, {\n row: 1,\n column: 0,\n textAlign: \"left\"\n }, new go.Binding(\"text\", \"attributes\", function (attributes) {\n return attributes ? attributes.join(\"\\n\") : \"\";\n })), $(go.TextBlock, {\n row: 2,\n column: 0,\n textAlign: \"left\"\n }, new go.Binding(\"text\", \"methods\", function (methods) {\n return methods ? methods.join(\"\\n\") : \"\";\n }))));\n\n diagram.linkTemplate = $(go.Link, {\n routing: go.Link.Orthogonal,\n corner: 5\n }, $(go.Shape, {\n strokeWidth: 2\n }), $(go.Shape, {\n toArrow: \"Standard\"\n }));\n\n var nodeDataArray = contentData.classes.map(function (cls) {\n return {\n key: cls.name,\n name: cls.name,\n attributes: cls.attributes,\n methods: cls.methods\n };\n });\n\n var linkDataArray = contentData.classes.flatMap(function (cls) {\n return cls.relationships.map(function (rel) {\n return {\n from: cls.name,\n to: rel\n };\n });\n });\n\n diagram.model = new go.GraphLinksModel(nodeDataArray, linkDataArray);\n}\n\nfunction createVennDiagram(contentData, contentArea) {\n if (contentData.visualDescription) {\n var visualDescription = document.createElement(\"p\");\n visualDescription.textContent = contentData.visualDescription;\n visualDescription.classList.add(\"instruction-text\");\n contentArea.appendChild(visualDescription);\n } else {\n var _visualDescription = document.createElement(\"p\");\n _visualDescription.textContent = \"This Venn diagram compares and contrasts multiple concepts using overlapping circles. Each circle represents a set, and the overlapping areas show shared properties.\";\n _visualDescription.classList.add(\"instruction-text\");\n contentArea.appendChild(_visualDescription);\n }\n\n if (contentData.Description) {\n var description = document.createElement(\"p\");\n description.textContent = contentData.Description;\n description.classList.add(\"instruction-text\");\n contentArea.appendChild(description);\n }\n var width = 600;\n var height = 400;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height);\n var sets = contentData.sets.map(function (set, index) {\n return _objectSpread(_objectSpread({}, set), {}, {\n cx: width / (contentData.sets.length + 1) * (index + 1),\n cy: height / 2,\n r: 80,\n fill: set.color || \"rgba(\".concat(Math.random() * 255, \", \").concat(Math.random() * 255, \", \").concat(Math.random() * 255, \", 0.3)\"),\n stroke: \"black\"\n });\n });\n sets.forEach(function (set) {\n svg.append(\"circle\").attr(\"cx\", set.cx).attr(\"cy\", set.cy).attr(\"r\", set.r).attr(\"fill\", set.fill).attr(\"stroke\", set.stroke);\n\n svg.append(\"text\").attr(\"x\", set.cx).attr(\"y\", set.cy - set.r - 10) \n .attr(\"text-anchor\", \"middle\").text(set.label);\n if (set.description) {\n svg.append(\"title\").text(set.description);\n }\n });\n if (contentData.intersections) {\n contentData.intersections.forEach(function (intersection) {\n var intersectionSets = sets.filter(function (set) {\n return intersection.sets.includes(set.label);\n });\n if (intersectionSets.length === 2) {\n var overlapArea = calculateOverlap(intersectionSets[0], intersectionSets[1]);\n if (overlapArea) {\n svg.append(\"path\").attr(\"d\", overlapArea).attr(\"fill\", \"rgba(200, 200, 200, 0.5)\");\n if (intersection.label) {\n svg.append(\"text\").attr(\"x\", (intersectionSets[0].cx + intersectionSets[1].cx) / 2).attr(\"y\", intersectionSets[0].cy + 20) \n .attr(\"text-anchor\", \"middle\").text(intersection.label);\n }\n }\n }\n });\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction calculateOverlap(set1, set2) {\n var distance = Math.sqrt(Math.pow(set1.cx - set2.cx, 2) + Math.pow(set1.cy - set2.cy, 2));\n if (distance > set1.r + set2.r) return null;\n var a = Math.acos((Math.pow(set1.r, 2) + Math.pow(distance, 2) - Math.pow(set2.r, 2)) / (2 * set1.r * distance));\n var b = Math.acos((Math.pow(set2.r, 2) + Math.pow(distance, 2) - Math.pow(set1.r, 2)) / (2 * set2.r * distance));\n var path = \"\\n M \".concat(set1.cx + set1.r * Math.cos(a), \" \").concat(set1.cy + set1.r * Math.sin(a), \"\\n A \").concat(set1.r, \" \").concat(set1.r, \" 0 0 1 \").concat(set1.cx + set1.r * Math.cos(-a), \" \").concat(set1.cy + set1.r * Math.sin(-a), \"\\n L \").concat(set2.cx + set2.r * Math.cos(b), \" \").concat(set2.cy - set2.r * Math.sin(b), \"\\n A \").concat(set2.r, \" \").concat(set2.r, \" 0 0 1 \").concat(set2.cx + set2.r * Math.cos(-b), \" \").concat(set2.cy - set2.r * Math.sin(-b), \"\\n Z\\n \");\n return path;\n}\n\nfunction renderChartWidget(widgetData, contentArea) {\n var chartType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'bar';\n if (!widgetData || !widgetData.data || !widgetData.data.data_points) {\n contentArea.innerHTML = \"<p>Error: Invalid chart widget data.</p>\";\n return;\n }\n var chartData = widgetData.data;\n var margin = {\n top: 40,\n right: 30,\n bottom: 50,\n left: 60\n };\n var width = 800 - margin.left - margin.right;\n var height = 500 - margin.top - margin.bottom;\n contentArea.innerHTML = \"\";\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width + margin.left + margin.right).attr(\"height\", height + margin.top + margin.bottom).append(\"g\").attr(\"transform\", \"translate(\".concat(margin.left, \",\").concat(margin.top, \")\"));\n var x = d3.scaleBand().domain(chartData.data_points.map(function (d) {\n return d.object;\n })).range([0, width]).padding(0.1);\n var y = d3.scaleLinear().domain([0, d3.max(chartData.data_points, function (d) {\n return d.velocity;\n })]).nice().range([height, 0]);\n var xAxis = svg.append(\"g\").attr(\"transform\", \"translate(0,\".concat(height, \")\")).call(d3.axisBottom(x)).selectAll(\"text\").style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\").attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\");\n svg.append(\"g\").call(d3.axisLeft(y));\n svg.append(\"text\").attr(\"transform\", \"translate(\" + width / 2 + \", \" + (height + margin.top + 20) + \")\").style(\"text-anchor\", \"middle\").text(chartData.x_axis || \"Object Type\");\n svg.append(\"text\").attr(\"transform\", \"rotate(-90)\").attr(\"y\", 0 - margin.left).attr(\"x\", 0 - height / 2).attr(\"dy\", \"1em\").style(\"text-anchor\", \"middle\").text(chartData.y_axis || \"Velocity (m/s)\");\n svg.append(\"text\").attr(\"x\", width / 2).attr(\"y\", 0 - margin.top / 2).attr(\"text-anchor\", \"middle\").style(\"font-size\", \"16px\").text(chartData.title || \"Objects in Motion\");\n switch (chartType) {\n case 'bar':\n default:\n svg.selectAll(\"rect\").data(chartData.data_points).enter().append(\"rect\").attr(\"x\", function (d) {\n return x(d.object);\n }).attr(\"width\", x.bandwidth()).attr(\"y\", function (d) {\n return y(d.velocity);\n }).attr(\"height\", function (d) {\n return height - y(d.velocity);\n }).attr(\"fill\", \"steelblue\");\n break;\n case 'line':\n var line = d3.line().x(function (d) {\n return x(d.object) + x.bandwidth() / 2;\n }).y(function (d) {\n return y(d.velocity);\n });\n svg.append(\"path\").datum(chartData.data_points).attr(\"fill\", \"none\").attr(\"stroke\", \"steelblue\").attr(\"stroke-width\", 2).attr(\"d\", line);\n break;\n case 'pie':\n var pie = d3.pie().value(function (d) {\n return d.velocity;\n });\n var radius = Math.min(width, height) / 2;\n var arc = d3.arc().outerRadius(radius).innerRadius(0);\n var labelRadius = radius * 0.8;\n var g = svg.append(\"g\").attr(\"transform\", \"translate(\".concat(width / 2, \", \").concat(height / 2, \")\"));\n var pieSlices = g.selectAll(\"path.slice\").data(pie(chartData.data_points)).enter().append(\"path\").attr(\"class\", \"slice\").attr(\"d\", arc).attr(\"fill\", function (d, i) {\n return [\"#1f77b4\", \"#ff7f0e\", \"#2ca02c\", \"#d62728\"][i % 4];\n }).attr(\"stroke\", \"white\").attr(\"stroke-width\", 2);\n\n var labels = g.selectAll(\"text.label\").data(pie(chartData.data_points)).enter().append(\"text\").attr(\"class\", \"label\").attr(\"transform\", function (d) {\n return \"translate(\".concat(arc.centroid(d), \")\");\n }).attr(\"dy\", \"0.35em\").style(\"text-anchor\", \"middle\").style(\"font-size\", \"12px\").text(function (d) {\n return d.data.object;\n });\n\n var percentages = g.selectAll(\"text.percentage\").data(pie(chartData.data_points)).enter().append(\"text\").attr(\"class\", \"percentage\").attr(\"transform\", function (d) {\n var c = arc.centroid(d);\n return \"translate(\".concat(c[0] * 1.4, \", \").concat(c[1] * 1.4, \")\");\n }).attr(\"dy\", \"0.35em\").style(\"text-anchor\", \"middle\").style(\"font-size\", \"10px\").text(function (d) {\n return (d.data.velocity / d3.sum(chartData.data_points, function (d) {\n return d.velocity;\n }) * 100).toFixed(1) + \"%\";\n });\n break;\n case 'scatter':\n var xScatter = d3.scaleLinear().domain([0, d3.max(chartData.data_points, function (d) {\n return d.object.charCodeAt(0);\n })]).range([0, width]); \n var yScatter = d3.scaleLinear().domain([0, d3.max(chartData.data_points, function (d) {\n return d.velocity;\n })]).range([height, 0]);\n svg.selectAll(\"circle\").data(chartData.data_points).enter().append(\"circle\").attr(\"cx\", function (d) {\n return xScatter(d.object.charCodeAt(0));\n }).attr(\"cy\", function (d) {\n return yScatter(d.velocity);\n }).attr(\"r\", 5).attr(\"fill\", \"steelblue\");\n\n svg.append(\"g\").attr(\"transform\", \"translate(0, \".concat(height, \")\")).call(d3.axisBottom(xScatter)).selectAll(\"text\") \n .style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\").attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\");\n svg.append(\"g\").call(d3.axisLeft(yScatter));\n break;\n case 'area':\n var xArea = d3.scaleBand().domain(chartData.data_points.map(function (d) {\n return d.object;\n })).range([0, width]);\n var yArea = d3.scaleLinear().domain([0, d3.max(chartData.data_points, function (d) {\n return d.velocity;\n })]).range([height, 0]);\n var area = d3.area().x(function (d) {\n return xArea(d.object) + xArea.bandwidth() / 2;\n }).y0(height).y1(function (d) {\n return yArea(d.velocity);\n });\n svg.append(\"path\").datum(chartData.data_points).attr(\"class\", \"area\").attr(\"fill\", \"steelblue\").attr(\"d\", area);\n\n svg.append(\"g\").attr(\"transform\", \"translate(0, \".concat(height, \")\")).call(d3.axisBottom(xArea)).selectAll(\"text\") \n .style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\").attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\");\n svg.append(\"g\").call(d3.axisLeft(yArea));\n break;\n case 'histogram':\n var xHist = d3.scaleLinear().domain([d3.min(chartData.data_points.map(function (d) {\n return d.velocity;\n })), d3.max(chartData.data_points.map(function (d) {\n return d.velocity;\n }))]).range([0, width]);\n var yHist = d3.scaleLinear().domain([0, d3.max(chartData.data_points.map(function (d) {\n return d.velocity;\n }))]).range([height, 0]);\n var histogram = d3.bin().value(function (d) {\n return d.velocity;\n }).thresholds(10);\n var bins = histogram(chartData.data_points);\n svg.selectAll(\"rect\").data(bins).enter().append(\"rect\").attr(\"x\", function (d) {\n return xHist(d.x0);\n }).attr(\"width\", function (d) {\n return xHist(d.x1) - xHist(d.x0) - 1;\n }).attr(\"y\", function (d) {\n return yHist(d.length);\n }).attr(\"height\", function (d) {\n return height - yHist(d.length);\n }).attr(\"fill\", \"steelblue\");\n\n svg.append(\"g\").attr(\"transform\", \"translate(0, \".concat(height, \")\")).call(d3.axisBottom(xHist)).selectAll(\"text\") \n .style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\") \n .attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\"); \n svg.append(\"g\").call(d3.axisLeft(yHist));\n break;\n case 'box':\n var velocityData = chartData.data_points.map(function (d) {\n return d.velocity;\n });\n var yBox = d3.scaleLinear().domain([d3.min(velocityData), d3.max(velocityData)]).range([height, 0]);\n var box = svg.append(\"g\").attr(\"transform\", \"translate(\".concat(width / 2, \", 0)\")); \n\n var q1 = d3.quantile(velocityData, 0.25);\n var median = d3.quantile(velocityData, 0.5);\n var q3 = d3.quantile(velocityData, 0.75);\n var iqr = q3 - q1;\n var min = d3.min(velocityData);\n var max = d3.max(velocityData);\n\n box.append(\"rect\").attr(\"x\", -25).attr(\"y\", yBox(q3)).attr(\"width\", 50).attr(\"height\", yBox(q1) - yBox(q3)).attr(\"fill\", \"steelblue\");\n\n box.append(\"line\").attr(\"x1\", -25).attr(\"y1\", yBox(median)).attr(\"x2\", 25).attr(\"y2\", yBox(median)).attr(\"stroke\", \"white\").attr(\"stroke-width\", 2);\n\n box.append(\"line\").attr(\"x1\", 0).attr(\"y1\", yBox(min)).attr(\"x2\", 0).attr(\"y2\", yBox(q1)).attr(\"stroke\", \"black\");\n box.append(\"line\").attr(\"x1\", 0).attr(\"y1\", yBox(max)).attr(\"x2\", 0).attr(\"y2\", yBox(q3)).attr(\"stroke\", \"black\");\n\n box.append(\"line\").attr(\"x1\", -25).attr(\"y1\", yBox(min)).attr(\"x2\", 25).attr(\"y2\", yBox(min)).attr(\"stroke\", \"black\");\n box.append(\"line\").attr(\"x1\", -25).attr(\"y1\", yBox(max)).attr(\"x2\", 25).attr(\"y2\", yBox(max)).attr(\"stroke\", \"black\");\n break;\n case 'bubble':\n var maxVelocity = d3.max(chartData.data_points, function (d) {\n return d.velocity;\n });\n var radiusScale = d3.scaleLinear().domain([0, maxVelocity]).range([5, 20]); \n\n var xBubble = d3.scaleBand().domain(chartData.data_points.map(function (d) {\n return d.object;\n })).range([0, width]).padding(0.2); \n\n var yBubble = d3.scaleLinear().domain([0, d3.max(chartData.data_points, function (d) {\n return d.velocity;\n })]).nice().range([height, 0]);\n svg.selectAll(\"circle\").data(chartData.data_points).enter().append(\"circle\").attr(\"cx\", function (d) {\n return xBubble(d.object) + xBubble.bandwidth() / 2;\n }).attr(\"cy\", function (d) {\n return yBubble(d.velocity);\n }).attr(\"r\", function (d) {\n return radiusScale(d.velocity);\n }).attr(\"fill\", \"steelblue\").attr(\"opacity\", 0.7).on(\"mouseover\", function (event, d) {\n var tooltip = d3.select(\"body\").append(\"div\").attr(\"class\", \"tooltip\").style(\"position\", \"absolute\").style(\"background-color\", \"white\").style(\"border\", \"1px solid black\").style(\"padding\", \"10px\").style(\"border-radius\", \"5px\").html(\"Object: \".concat(d.object, \"<br>Velocity: \").concat(d.velocity));\n var _event = _slicedToArray(event, 2),\n x = _event[0],\n y = _event[1];\n tooltip.style(\"left\", x + \"px\").style(\"top\", y + \"px\");\n d3.select(this).attr(\"stroke\", \"black\").attr(\"stroke-width\", 2);\n }).on(\"mouseout\", function () {\n d3.select(\".tooltip\").remove();\n d3.select(this).attr(\"stroke\", null).attr(\"stroke-width\", 0);\n });\n\n svg.append(\"g\").attr(\"transform\", \"translate(0, \".concat(height, \")\")).call(d3.axisBottom(xBubble)).selectAll(\"text\") \n .style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\").attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\");\n svg.append(\"g\").call(d3.axisLeft(yBubble));\n break;\n }\n}\nfunction renderTableWidget(widgetData, contentArea) {\n if (!widgetData || !widgetData.data || !widgetData.data.headers || !widgetData.data.rows) {\n contentArea.innerHTML = \"<p>Error: Invalid table widget data.</p>\";\n return;\n }\n\n var tableContainer = document.createElement(\"div\");\n tableContainer.classList.add(\"table-container\");\n var table = document.createElement(\"table\");\n var thead = document.createElement(\"thead\");\n var tbody = document.createElement(\"tbody\");\n\n var headerRow = document.createElement(\"tr\");\n widgetData.data.headers.forEach(function (headerText) {\n var th = document.createElement(\"th\");\n th.textContent = headerText;\n headerRow.appendChild(th);\n });\n thead.appendChild(headerRow);\n table.appendChild(thead);\n\n widgetData.data.rows.forEach(function (rowData) {\n var row = document.createElement(\"tr\");\n rowData.forEach(function (cellData) {\n var td = document.createElement(\"td\");\n td.textContent = cellData;\n row.appendChild(td);\n });\n tbody.appendChild(row);\n });\n table.appendChild(tbody);\n tableContainer.appendChild(table);\n contentArea.appendChild(tableContainer);\n}\nfunction renderMapWidget(widgetData, contentArea) {\n if (!widgetData || !widgetData.data || !widgetData.data.locations) {\n contentArea.innerHTML = \"<p>Error: Invalid map widget data.</p>\";\n return;\n }\n var mapContainer = document.createElement(\"div\");\n mapContainer.style.width = \"100%\";\n mapContainer.style.height = \"300px\";\n contentArea.innerHTML = \"\";\n\n if (widgetData.data.description) {\n var descriptionElement = document.createElement(\"p\");\n descriptionElement.textContent = widgetData.data.description;\n contentArea.appendChild(descriptionElement);\n }\n contentArea.appendChild(mapContainer);\n var map = L.map(mapContainer).setView([0, 0], 2);\n L.tileLayer(\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\", {\n attribution: '© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n }).addTo(map);\n widgetData.data.locations.forEach(function (location) {\n if (Array.isArray(location.coordinates) && location.coordinates.length >= 2) {\n var latLng = L.latLng(location.coordinates[0], location.coordinates[1]);\n L.marker(latLng, {\n title: location.location\n }).bindPopup(\"<b>\".concat(location.location, \"</b><br>\").concat(location.description)).addTo(map);\n } else {\n console.error(\"Missing coordinates for location:\", location);\n }\n });\n}\nfunction renderSummaryWidget(widgetData, contentArea) {\n if (!widgetData || !widgetData.data || !widgetData.data.points) {\n contentArea.innerHTML = \"<p>Error: Invalid summary widget data.</p>\";\n return;\n }\n var summary = \"\";\n if (widgetData.data.title) {\n summary += \"<h3>\".concat(widgetData.data.title, \"</h3>\");\n }\n if (widgetData.data.points) {\n summary += \"<ul>\";\n widgetData.data.points.forEach(function (point) {\n summary += \"<li>\".concat(point, \"</li>\");\n });\n summary += \"</ul>\";\n }\n contentArea.innerHTML = summary;\n}\nfunction createInteractiveDataDashboard(dashboardData, contentArea) {\n if (!dashboardData || !dashboardData.widgets || !Array.isArray(dashboardData.widgets)) {\n contentArea.innerHTML = \"<p>Error: Invalid dashboard data.</p>\";\n return;\n }\n if (dashboardData.description) {\n var descriptionContainer = document.createElement(\"div\");\n descriptionContainer.innerHTML = \"<p>\".concat(dashboardData.description, \"</p>\");\n contentArea.appendChild(descriptionContainer);\n }\n dashboardData.widgets.forEach(function (widget) {\n if (widget.includeWidget) {\n var _widget$data, _widget$data2;\n var widgetContainer = document.createElement(\"div\");\n widgetContainer.id = widget.id;\n widgetContainer.classList.add(\"dashboard-widget\");\n contentArea.appendChild(widgetContainer);\n\n if ((_widget$data = widget.data) !== null && _widget$data !== void 0 && _widget$data.title) {\n var titleElement = document.createElement(\"h3\");\n titleElement.textContent = widget.data.title;\n widgetContainer.appendChild(titleElement);\n }\n if ((_widget$data2 = widget.data) !== null && _widget$data2 !== void 0 && _widget$data2.description) {\n var descriptionElement = document.createElement(\"p\");\n descriptionElement.textContent = widget.data.description;\n widgetContainer.appendChild(descriptionElement);\n }\n if (widget.type === \"chart\") {\n var chartTypeSelector = document.createElement('div');\n chartTypeSelector.id = \"chart-type-selector-\".concat(widget.id);\n chartTypeSelector.style.marginBottom = '10px';\n chartTypeSelector.innerHTML = \"\\n <label for=\\\"chart-type-dropdown-\".concat(widget.id, \"\\\">Chart Type:</label>\\n <select id=\\\"chart-type-dropdown-\").concat(widget.id, \"\\\">\\n <option value=\\\"bar\\\">Bar Chart</option>\\n <option value=\\\"line\\\">Line Chart</option>\\n <option value=\\\"pie\\\">Pie Chart</option>\\n <option value=\\\"scatter\\\">Scatter Plot</option>\\n <option value=\\\"area\\\">Area Chart</option>\\n <option value=\\\"histogram\\\">Histogram</option>\\n <option value=\\\"box\\\">Box Plot</option>\\n <option value=\\\"bubble\\\">Bubble Chart</option>\\n </select>\\n \");\n widgetContainer.appendChild(chartTypeSelector);\n\n var chartContainerDiv = document.createElement('div');\n chartContainerDiv.id = \"chart-container-\".concat(widget.id);\n widgetContainer.appendChild(chartContainerDiv);\n\n var initialChartType = widget.data.chartType || 'bar';\n renderChartWidget(widget, chartContainerDiv, initialChartType);\n\n var chartTypeDropdownElement = document.getElementById(\"chart-type-dropdown-\".concat(widget.id));\n if (chartTypeDropdownElement) {\n chartTypeDropdownElement.value = initialChartType;\n chartTypeDropdownElement.addEventListener('change', function (event) {\n var selectedChartType = event.target.value;\n renderChartWidget(widget, chartContainerDiv, selectedChartType);\n });\n }\n } else {\n switch (widget.type) {\n case \"table\":\n renderTableWidget(widget, widgetContainer);\n break;\n case \"map\":\n if (dashboardData.includeMap) {\n renderMapWidget(widget, widgetContainer);\n }\n break;\n case \"summary\":\n renderSummaryWidget(widget, widgetContainer);\n break;\n default:\n widgetContainer.innerHTML = \"<p>Widget type '\".concat(widget.type, \"' not supported.</p>\");\n }\n }\n }\n });\n}\nfunction createAnimatedDataVisualization(contentData, contentArea) {\n if (!contentData || !contentData.dataSeries || contentData.dataSeries.length === 0) {\n contentArea.innerHTML = \"<p>No data available for visualization.</p>\";\n return;\n }\n var margin = {\n top: 40,\n right: 30,\n bottom: 50,\n left: 60\n };\n var width = 600 - margin.left - margin.right;\n var height = 400 - margin.top - margin.bottom;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width + margin.left + margin.right).attr(\"height\", height + margin.top + margin.bottom).append(\"g\").attr(\"transform\", \"translate(\".concat(margin.left, \",\").concat(margin.top, \")\"));\n var x = d3.scaleBand().domain(contentData.dataSeries.map(function (d) {\n return d.label;\n })).range([0, width]).padding(0.1);\n var y = d3.scaleLinear().domain([0, d3.max(contentData.dataSeries, function (d) {\n return d3.max(d.values);\n })]).nice().range([height, 0]);\n svg.append(\"g\").attr(\"transform\", \"translate(0,\".concat(height, \")\")).call(d3.axisBottom(x)).selectAll(\"text\").style(\"text-anchor\", \"end\").attr(\"dx\", \"-.8em\").attr(\"dy\", \".15em\").attr(\"transform\", \"rotate(-45)\");\n svg.append(\"g\").call(d3.axisLeft(y));\n svg.append(\"text\").attr(\"transform\", \"translate(\" + width / 2 + \", \" + (height + margin.top + 20) + \")\").style(\"text-anchor\", \"middle\").text(\"Categories\");\n svg.append(\"text\").attr(\"transform\", \"rotate(-90)\").attr(\"y\", 0 - margin.left).attr(\"x\", 0 - height / 2).attr(\"dy\", \"1em\").style(\"text-anchor\", \"middle\").text(\"Values\");\n svg.append(\"text\").attr(\"x\", width / 2).attr(\"y\", 0 - margin.top / 2).attr(\"text-anchor\", \"middle\").style(\"font-size\", \"16px\").text(contentData.title || \"Animated Data Visualization\");\n var bars = svg.selectAll(\"rect\").data(contentData.dataSeries).enter().append(\"rect\").attr(\"x\", function (d) {\n return x(d.label);\n }).attr(\"width\", x.bandwidth()).attr(\"y\", height).attr(\"height\", 0).attr(\"fill\", \"steelblue\");\n bars.transition().duration(1500).attr(\"y\", function (d) {\n return y(d.values[0]);\n }).attr(\"height\", function (d) {\n return height - y(d.values[0]);\n });\n svg.selectAll(\".text\").data(contentData.dataSeries).enter().append(\"text\").attr(\"class\", \"text\").attr(\"x\", function (d) {\n return x(d.label) + x.bandwidth() / 2;\n }).attr(\"y\", function (d) {\n return y(d.values[0]) - 5;\n }).attr(\"text-anchor\", \"middle\").text(function (d) {\n return d.values[0];\n });\n}\nfunction renderPeriodicTableExplorer(contentData, contentArea) {\n contentArea.innerHTML = \"\";\n var table = d3.select(contentArea).append(\"table\");\n var rows = table.selectAll(\"tr\").data(contentData.elements).enter().append(\"tr\");\n rows.append(\"td\").text(function (d) {\n return d.atomicNumber;\n });\n rows.append(\"td\").text(function (d) {\n return d.symbol;\n });\n rows.append(\"td\").text(function (d) {\n return d.name;\n });\n}\n\n\n\n\n\n\n\n\n\n\nfunction createMolecularModel(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var scene = new THREE.Scene();\n var camera = new THREE.PerspectiveCamera(75, contentArea.clientWidth / contentArea.clientHeight, 0.1, 1000);\n var renderer = new THREE.WebGLRenderer();\n renderer.setSize(contentArea.clientWidth, contentArea.clientHeight);\n contentArea.appendChild(renderer.domElement);\n contentData.atoms.forEach(function (atom) {\n var _sphere$position;\n var geometry = new THREE.SphereGeometry(0.2, 32, 32);\n var material = new THREE.MeshBasicMaterial({\n color: Math.random() * 0xffffff\n });\n var sphere = new THREE.Mesh(geometry, material);\n (_sphere$position = sphere.position).set.apply(_sphere$position, _toConsumableArray(atom.position));\n scene.add(sphere);\n });\n camera.position.z = 5;\n function animate() {\n requestAnimationFrame(animate);\n renderer.render(scene, camera);\n }\n animate();\n}\n\nfunction createAstronomySimulation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var scene = new THREE.Scene();\n var camera = new THREE.PerspectiveCamera(75, contentArea.clientWidth / contentArea.clientHeight, 0.1, 1000);\n var renderer = new THREE.WebGLRenderer();\n renderer.setSize(contentArea.clientWidth, contentArea.clientHeight);\n contentArea.appendChild(renderer.domElement);\n contentData.celestialBodies.forEach(function (body) {\n var _sphere$position2;\n var geometry = new THREE.SphereGeometry(body.mass / 10, 32, 32);\n var material = new THREE.MeshBasicMaterial({\n color: Math.random() * 0xffffff\n });\n var sphere = new THREE.Mesh(geometry, material);\n (_sphere$position2 = sphere.position).set.apply(_sphere$position2, _toConsumableArray(body.orbit));\n scene.add(sphere);\n });\n camera.position.z = 10;\n function animate() {\n requestAnimationFrame(animate);\n renderer.render(scene, camera);\n }\n animate();\n}\n\n\nfunction createInteractiveMap(contentData, contentArea) {\n if (!contentArea || !(contentArea instanceof HTMLElement)) {\n console.error(\"Invalid contentArea:\", contentArea);\n return;\n }\n if (!contentData || !contentData.locations || !Array.isArray(contentData.locations)) {\n console.error(\"Invalid map data:\", contentData);\n var errorPara = document.createElement('p');\n errorPara.textContent = \"Error: Invalid map data.\";\n errorPara.style.color = 'red';\n contentArea.appendChild(errorPara);\n return;\n }\n if (contentData.title) {\n var titleElement = document.createElement('h2');\n titleElement.textContent = contentData.title;\n contentArea.appendChild(titleElement);\n }\n var mapContainer = document.createElement('div');\n mapContainer.id = 'interactive-map';\n mapContainer.style.width = '100%';\n mapContainer.style.height = '500px';\n mapContainer.style.border = '1px solid #ccc';\n contentArea.appendChild(mapContainer);\n var map;\n try {\n map = L.map('interactive-map');\n\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution: '© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n }).addTo(map);\n\n var locations = contentData.locations;\n if (locations.length > 0) {\n var sumLat = 0;\n var sumLng = 0;\n var validLocationCount = 0; \n\n locations.forEach(function (loc) {\n if (loc.coordinates && Array.isArray(loc.coordinates) && loc.coordinates.length === 2) {\n var _loc$coordinates = _slicedToArray(loc.coordinates, 2),\n lat = _loc$coordinates[0],\n lng = _loc$coordinates[1];\n sumLat += lat;\n sumLng += lng;\n validLocationCount++;\n }\n });\n if (validLocationCount === 0) {\n map.setView([0, 0], 2); \n return; \n }\n var centerLat = sumLat / validLocationCount;\n var centerLng = sumLng / validLocationCount;\n\n var MIN_SPAN = 0.05;\n\n var minLat = centerLat - MIN_SPAN / 2;\n var maxLat = centerLat + MIN_SPAN / 2;\n var minLng = centerLng - MIN_SPAN / 2;\n var maxLng = centerLng + MIN_SPAN / 2;\n\n var paddingFactor = 0.1;\n minLat -= MIN_SPAN * paddingFactor;\n maxLat += MIN_SPAN * paddingFactor;\n minLng -= MIN_SPAN * paddingFactor;\n maxLng += MIN_SPAN * paddingFactor;\n\n if (isFinite(minLat) && isFinite(maxLat) && isFinite(minLng) && isFinite(maxLng)) {\n var bounds = L.latLngBounds([[minLat, minLng], [maxLat, maxLng]]);\n map.fitBounds(bounds);\n } else {\n map.setView([0, 0], 2);\n }\n } else {\n map.setView([0, 0], 2);\n }\n contentData.locations.forEach(function (location) {\n if (!location.coordinates || !Array.isArray(location.coordinates) || location.coordinates.length !== 2) {\n console.error(\"Invalid coordinates:\", location);\n return; \n }\n var markerOptions = {\n title: location.name\n };\n\n if (location.markerIcon) {\n markerOptions.className = location.markerIcon; \n }\n var marker = L.marker(location.coordinates, markerOptions).bindPopup(\"<b>\".concat(location.name, \"</b><br>\").concat(location.description));\n marker.on('click', function (e) {\n console.log(\"Marker clicked:\", e.latlng);\n });\n marker.addTo(map);\n });\n\n setTimeout(function () {\n map.invalidateSize();\n }, 10);\n } catch (error) {\n console.error(\"Error creating map:\", error);\n var _errorPara = document.createElement('p');\n _errorPara.textContent = \"Error creating map: \".concat(error.message);\n _errorPara.style.color = 'red';\n contentArea.appendChild(_errorPara);\n }\n}\n\n\nfunction createVirtualWhiteboard(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var container = document.createElement('div');\n container.id = 'whiteboard-container';\n container.style.width = '100%';\n container.style.height = '500px';\n contentArea.appendChild(container);\n var stage = new Konva.Stage({\n container: 'whiteboard-container',\n width: container.clientWidth,\n height: container.clientHeight\n });\n var layer = new Konva.Layer();\n stage.add(layer);\n var line = new Konva.Line({\n stroke: 'black',\n strokeWidth: 2,\n lineCap: 'round',\n lineJoin: 'round',\n points: []\n });\n layer.add(line);\n var isDrawing = false;\n stage.on('mousedown touchstart', function () {\n isDrawing = true;\n line.points([]);\n });\n stage.on('mousemove touchmove', function (e) {\n if (!isDrawing) return;\n var pos = stage.getPointerPosition();\n line.points(line.points().concat([pos.x, pos.y]));\n layer.batchDraw();\n });\n stage.on('mouseup touchend', function () {\n isDrawing = false;\n });\n}\n\nfunction createDragDropActivity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var container = document.createElement('div');\n container.id = 'drag-drop-container';\n container.style.width = '100%';\n container.style.height = '500px';\n contentArea.appendChild(container);\n var stage = new Konva.Stage({\n container: 'drag-drop-container',\n width: container.clientWidth,\n height: container.clientHeight\n });\n var layer = new Konva.Layer();\n stage.add(layer);\n contentData.items.forEach(function (item, index) {\n var rect = new Konva.Rect({\n x: 50 + index * 100,\n y: 50,\n width: 80,\n height: 40,\n fill: 'blue',\n draggable: true\n });\n rect.on('dragend', function () {\n console.log(\"Item \".concat(item.label, \" dropped at\"), rect.x(), rect.y());\n });\n layer.add(rect);\n });\n stage.add(layer);\n}\n\n\nfunction createDigitalStorytelling(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var gameContainer = document.createElement('div');\n gameContainer.id = 'storytelling-game';\n contentArea.appendChild(gameContainer);\n var config = {\n type: Phaser.AUTO,\n width: 800,\n height: 600,\n parent: 'storytelling-game',\n scene: {\n preload: preload,\n create: create\n }\n };\n var game = new Phaser.Game(config);\n function preload() {\n this.load.image('background', 'path/to/background.jpg');\n }\n function create() {\n var _this = this;\n this.add.image(400, 300, 'background');\n contentData.scenes.forEach(function (scene, index) {\n var text = _this.add.text(50, 100 + index * 50, scene.text, {\n fill: '#fff'\n });\n text.setInteractive();\n text.on('pointerdown', function () {\n console.log(\"Selected choice: \".concat(scene.choices[0].text));\n });\n });\n }\n}\n\nfunction createGamifiedLearning(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = document.getElementById(ContentAreaId) || document.body;\n var gameContainer = document.createElement('div');\n gameContainer.id = 'gamified-learning';\n contentArea.appendChild(gameContainer);\n var config = {\n type: Phaser.AUTO,\n width: 800,\n height: 600,\n parent: 'gamified-learning',\n scene: {\n preload: preload,\n create: create\n }\n };\n var game = new Phaser.Game(config);\n function preload() {\n this.load.image('reward', 'path/to/reward.png');\n }\n function create() {\n var _this2 = this;\n contentData.challenges.forEach(function (challenge, index) {\n var text = _this2.add.text(50, 100 + index * 50, challenge.task, {\n fill: '#fff'\n });\n text.setInteractive();\n text.on('pointerdown', function () {\n _this2.add.image(400, 300, 'reward');\n console.log(\"Completed challenge: \".concat(challenge.task));\n });\n });\n }\n}\n\n\n\n\n\n\n\n\n\n\nfunction createSpeechTextIntegration(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var speechContainer = document.createElement(\"div\");\n speechContainer.classList.add(\"speech-text-container\");\n\n var recordButton = document.createElement(\"button\");\n recordButton.textContent = \"Start Recording\";\n recordButton.onclick = function () {\n return startSpeechToText(recordButton, outputText);\n };\n speechContainer.appendChild(recordButton);\n var outputText = document.createElement(\"p\");\n outputText.classList.add(\"speech-output\");\n speechContainer.appendChild(outputText);\n\n var textInput = document.createElement(\"textarea\");\n textInput.placeholder = \"Enter text to read aloud\";\n speechContainer.appendChild(textInput);\n var speakButton = document.createElement(\"button\");\n speakButton.textContent = \"Speak\";\n speakButton.onclick = function () {\n return startTextToSpeech(textInput.value);\n };\n speechContainer.appendChild(speakButton);\n contentArea.appendChild(speechContainer);\n}\nfunction startSpeechToText(button, outputElement) {\n var recognition = new window.SpeechRecognition();\n recognition.lang = 'en-US';\n recognition.start();\n recognition.onresult = function (event) {\n outputElement.textContent = event.results[0][0].transcript;\n };\n recognition.onspeechend = function () {\n recognition.stop();\n button.textContent = \"Start Recording\";\n };\n}\nfunction startTextToSpeech(text) {\n var synth = window.speechSynthesis;\n var utterance = new SpeechSynthesisUtterance(text);\n synth.speak(utterance);\n}\n\n\nfunction createVirtualLaboratory(contentData, contentArea) {\n var _camera$position, _light$position, _light$position2;\n if (!contentArea) {\n console.error('Content area container not found.');\n return;\n }\n var labContainer = document.createElement('div');\n labContainer.classList.add('threejs-lab-scene');\n contentArea.appendChild(labContainer);\n\n var scene = new THREE.Scene();\n\n var _contentData$camera = contentData.camera,\n camPos = _contentData$camera.position,\n camLookAt = _contentData$camera.lookAt;\n var camera = new THREE.PerspectiveCamera(75, labContainer.clientWidth / labContainer.clientHeight, 0.1, 1000);\n (_camera$position = camera.position).set.apply(_camera$position, _toConsumableArray(camPos));\n camera.lookAt(_construct(THREE.Vector3, _toConsumableArray(camLookAt)));\n\n var renderer = new THREE.WebGLRenderer({\n antialias: true\n });\n renderer.setSize(labContainer.clientWidth, labContainer.clientHeight);\n labContainer.appendChild(renderer.domElement);\n\n window.addEventListener('resize', function () {\n var clientWidth = labContainer.clientWidth,\n clientHeight = labContainer.clientHeight;\n camera.aspect = clientWidth / clientHeight;\n camera.updateProjectionMatrix();\n renderer.setSize(clientWidth, clientHeight);\n });\n\n var _contentData$lighting = contentData.lighting,\n lightType = _contentData$lighting.type,\n intensity = _contentData$lighting.intensity,\n lightPos = _contentData$lighting.position;\n var light;\n switch (lightType) {\n case 'ambient':\n light = new THREE.AmbientLight(0xffffff, intensity);\n break;\n case 'point':\n light = new THREE.PointLight(0xffffff, intensity);\n (_light$position = light.position).set.apply(_light$position, _toConsumableArray(lightPos));\n break;\n case 'directional':\n light = new THREE.DirectionalLight(0xffffff, intensity);\n (_light$position2 = light.position).set.apply(_light$position2, _toConsumableArray(lightPos));\n break;\n default:\n console.warn(\"Unsupported light type: \".concat(lightType));\n return;\n }\n scene.add(light);\n\n function createObject(objData) {\n var _mesh$position;\n var geometry;\n switch (objData.type) {\n case 'sphere':\n geometry = new THREE.SphereGeometry(1, 32, 32);\n break;\n case 'cube':\n geometry = new THREE.BoxGeometry(1, 1, 1);\n break;\n case 'cylinder':\n geometry = new THREE.CylinderGeometry(0.5, 0.5, 1, 32);\n break;\n case 'cone':\n geometry = new THREE.ConeGeometry(0.5, 1, 32);\n break;\n case 'plane':\n geometry = new THREE.PlaneGeometry(1, 1);\n break;\n default:\n console.warn(\"Unsupported object type: \".concat(objData.type));\n return null;\n }\n var material = new THREE.MeshStandardMaterial({\n color: objData.color || 0x00ff00\n });\n var mesh = new THREE.Mesh(geometry, material);\n (_mesh$position = mesh.position).set.apply(_mesh$position, _toConsumableArray(objData.position));\n mesh.userData = {\n animation: objData.animation || null\n };\n return mesh;\n }\n\n var objects = contentData.objects.map(function (objData) {\n var obj = createObject(objData);\n if (obj) {\n scene.add(obj);\n }\n return obj;\n }).filter(function (obj) {\n return obj !== null;\n });\n\n function animate() {\n requestAnimationFrame(animate);\n var time = performance.now() / 1000;\n objects.forEach(function (obj) {\n var anim = obj.userData.animation;\n if (anim) {\n var type = anim.type,\n direction = anim.direction,\n duration = anim.duration;\n var progress = time % duration / duration;\n switch (type) {\n case 'move':\n obj.position.set(obj.position.x + direction[0] * progress, obj.position.y + direction[1] * progress, obj.position.z + direction[2] * progress);\n break;\n case 'rotate':\n obj.rotation.set(obj.rotation.x + direction[0] * progress * Math.PI * 2, obj.rotation.y + direction[1] * progress * Math.PI * 2, obj.rotation.z + direction[2] * progress * Math.PI * 2);\n break;\n case 'scale':\n obj.scale.set(1 + direction[0] * progress, 1 + direction[1] * progress, 1 + direction[2] * progress);\n break;\n case 'bounce':\n obj.position.set(obj.position.x, obj.position.y + Math.abs(Math.sin(progress * Math.PI)) * direction[1], obj.position.z);\n break;\n default:\n console.warn(\"Unsupported animation type: \".concat(type));\n }\n }\n });\n renderer.render(scene, camera);\n }\n animate();\n\n var instructionBox = document.createElement('div');\n instructionBox.classList.add('lab-instruction-box');\n contentArea.appendChild(instructionBox);\n var currentInstructionIndex = 0;\n var instructions = contentData.instructions;\n function showNextInstruction() {\n if (currentInstructionIndex < instructions.length) {\n var _instructions$current = instructions[currentInstructionIndex],\n text = _instructions$current.text,\n time = _instructions$current.time;\n instructionBox.textContent = text;\n currentInstructionIndex++;\n setTimeout(showNextInstruction, time * 1000);\n }\n }\n showNextInstruction();\n\n var questionContainer = document.createElement('div');\n questionContainer.classList.add('lab-question-container');\n contentArea.appendChild(questionContainer);\n contentData.questions.forEach(function (q, index) {\n var questionDiv = document.createElement('div');\n questionDiv.classList.add('lab-question');\n var questionTitle = document.createElement('p');\n questionTitle.innerHTML = \"<strong>Q\".concat(index + 1, \": \").concat(q.question, \"</strong>\");\n questionDiv.appendChild(questionTitle);\n q.options.forEach(function (option) {\n var button = document.createElement('button');\n button.textContent = option;\n button.classList.add('lab-option');\n button.onclick = function () {\n if (option === q.answer) {\n button.classList.add('correct');\n } else {\n button.classList.add('incorrect');\n }\n };\n questionDiv.appendChild(button);\n });\n questionContainer.appendChild(questionDiv);\n });\n\n if (typeof ResizeObserver !== \"undefined\") {\n var resizeObserver = new ResizeObserver(function (entries) {\n var _iterator = _createForOfIteratorHelper(entries),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var entry = _step.value;\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n camera.aspect = width / height;\n camera.updateProjectionMatrix();\n renderer.setSize(width, height);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n });\n resizeObserver.observe(labContainer);\n } else {\n setTimeout(function () {\n var clientWidth = labContainer.clientWidth,\n clientHeight = labContainer.clientHeight;\n camera.aspect = clientWidth / clientHeight;\n camera.updateProjectionMatrix();\n renderer.setSize(clientWidth, clientHeight);\n }, 50);\n }\n}\nfunction createVirtualScienceLab(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var labContainer = document.createElement(\"div\");\n labContainer.classList.add(\"threejs-container\");\n contentArea.appendChild(labContainer);\n\n var scene = new THREE.Scene();\n var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);\n var renderer = new THREE.WebGLRenderer();\n renderer.setSize(600, 400);\n labContainer.appendChild(renderer.domElement);\n\n var geometry = new THREE.SphereGeometry(1, 32, 32);\n var material = new THREE.MeshBasicMaterial({\n color: 0x00ff00\n });\n var sphere = new THREE.Mesh(geometry, material);\n scene.add(sphere);\n camera.position.z = 5;\n function animate() {\n requestAnimationFrame(animate);\n sphere.rotation.y += 0.01;\n renderer.render(scene, camera);\n }\n animate();\n}\n\nfunction createInteractiveDebate(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var debateContainer = document.createElement(\"div\");\n debateContainer.classList.add(\"debate-container\");\n var startDebateButton = document.createElement(\"button\");\n startDebateButton.textContent = \"Start Debate\";\n startDebateButton.onclick = function () {\n return initializeWebRTC();\n };\n debateContainer.appendChild(startDebateButton);\n var videoContainer = document.createElement(\"div\");\n videoContainer.classList.add(\"video-container\");\n debateContainer.appendChild(videoContainer);\n contentArea.appendChild(debateContainer);\n}\nfunction initializeWebRTC() {\n navigator.mediaDevices.getUserMedia({\n video: true,\n audio: true\n }).then(function (stream) {\n var videoElement = document.createElement(\"video\");\n videoElement.srcObject = stream;\n videoElement.autoplay = true;\n document.querySelector(\".video-container\").appendChild(videoElement);\n })[\"catch\"](function (error) {\n return console.error(\"WebRTC Error:\", error);\n });\n}\nfunction createAiEssayGrading(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var gradingContainer = document.createElement(\"div\");\n gradingContainer.classList.add(\"grading-container\");\n var textarea = document.createElement(\"textarea\");\n textarea.classList.add(\"essay-input\");\n textarea.placeholder = \"Paste your essay here for AI-powered grading...\";\n gradingContainer.appendChild(textarea);\n var gradeButton = document.createElement(\"button\");\n gradeButton.textContent = \"Grade Essay\";\n gradeButton.classList.add(\"grade-button\");\n gradeButton.onclick = function () {\n var essayText = textarea.value.trim();\n if (!essayText) {\n alert(\"Please enter an essay before grading.\");\n return;\n }\n fetchAiGrading(essayText, feedbackAreaId);\n };\n gradingContainer.appendChild(gradeButton);\n contentArea.appendChild(gradingContainer);\n}\nfunction fetchAiGrading(_x, _x2) {\n return _fetchAiGrading.apply(this, arguments);\n}\nfunction _fetchAiGrading() {\n _fetchAiGrading = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(essayText, feedbackAreaId) {\n var response, result;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return fetch(\"/api/gradeEssay\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n essay: essayText\n })\n });\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n result = _context.sent;\n displayFeedback(feedbackAreaId, result.feedback);\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](0);\n console.error(\"Error grading essay:\", _context.t0);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 10]]);\n }));\n return _fetchAiGrading.apply(this, arguments);\n}\nfunction createStudentChatbot(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var chatContainer = document.createElement(\"div\");\n chatContainer.classList.add(\"chat-container\");\n var chatBox = document.createElement(\"div\");\n chatBox.classList.add(\"chat-box\");\n chatContainer.appendChild(chatBox);\n var inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.placeholder = \"Ask a question...\";\n inputField.classList.add(\"chat-input\");\n chatContainer.appendChild(inputField);\n var sendButton = document.createElement(\"button\");\n sendButton.textContent = \"Send\";\n sendButton.classList.add(\"chat-send\");\n sendButton.onclick = function () {\n var question = inputField.value.trim();\n if (!question) return;\n appendUserMessage(chatBox, question);\n fetchChatbotResponse(question, chatBox);\n inputField.value = \"\";\n };\n chatContainer.appendChild(sendButton);\n contentArea.appendChild(chatContainer);\n}\nfunction fetchChatbotResponse(_x3, _x4) {\n return _fetchChatbotResponse.apply(this, arguments);\n}\nfunction _fetchChatbotResponse() {\n _fetchChatbotResponse = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2(question, chatBox) {\n var response, result;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return fetch(\"/api/chatbot\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n message: question\n })\n });\n case 3:\n response = _context2.sent;\n _context2.next = 6;\n return response.json();\n case 6:\n result = _context2.sent;\n appendChatbotMessage(chatBox, result.response);\n _context2.next = 13;\n break;\n case 10:\n _context2.prev = 10;\n _context2.t0 = _context2[\"catch\"](0);\n console.error(\"Error fetching chatbot response:\", _context2.t0);\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 10]]);\n }));\n return _fetchChatbotResponse.apply(this, arguments);\n}\nfunction createTypingTrainer(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var trainerContainer = document.createElement(\"div\");\n trainerContainer.classList.add(\"typing-trainer-container\");\n var prompt = document.createElement(\"p\");\n prompt.textContent = \"Type the following text as fast and accurately as possible:\";\n trainerContainer.appendChild(prompt);\n var sampleText = document.createElement(\"p\");\n sampleText.classList.add(\"typing-sample\");\n sampleText.textContent = \"The quick brown fox jumps over the lazy dog.\";\n trainerContainer.appendChild(sampleText);\n var inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.classList.add(\"typing-input\");\n trainerContainer.appendChild(inputField);\n var startButton = document.createElement(\"button\");\n startButton.textContent = \"Start\";\n startButton.classList.add(\"typing-start\");\n startButton.onclick = function () {\n return startTypingTest(inputField, sampleText);\n };\n trainerContainer.appendChild(startButton);\n contentArea.appendChild(trainerContainer);\n}\nfunction startTypingTest(inputField, sampleText) {\n var startTime = Date.now();\n inputField.oninput = function () {\n if (inputField.value === sampleText.textContent) {\n var elapsedTime = (Date.now() - startTime) / 1000;\n alert(\"Completed in \".concat(elapsedTime, \" seconds!\"));\n }\n };\n}\n\nfunction createWordCloud(contentData, contentArea) {\n if (!contentData || !contentData.words || !contentData.container) {\n console.error(\"Invalid word cloud data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid word cloud data.</p>\";\n return;\n }\n\n var container = document.createElement(\"div\");\n container.style.width = contentData.container.width + \"px\";\n container.style.height = contentData.container.height + \"px\";\n container.classList.add(\"wordcloud-container\");\n contentArea.appendChild(container);\n\n var svg = d3.select(container).append(\"svg\").attr(\"width\", contentData.container.width).attr(\"height\", contentData.container.height);\n\n var g = svg.append(\"g\");\n\n svg.call(d3.zoom().on(\"zoom\", function (event) {\n g.attr(\"transform\", event.transform);\n }));\n\n var layout = d3.layout.cloud().size([contentData.container.width, contentData.container.height]).words(contentData.words.map(function (d) {\n return {\n text: d.text,\n size: d.size,\n color: d.color,\n font: d.font,\n tooltip: d.tooltip,\n interactive: d.interactive\n };\n })).padding(5).rotate(function () {\n return 0;\n }).font(function (d) {\n return d.font || \"Impact\";\n }).fontSize(function (d) {\n return d.size;\n }).on(\"end\", draw);\n layout.start();\n function draw(words) {\n var textElements = g.append(\"g\").attr(\"transform\", \"translate(\" + contentData.container.width / 2 + \",\" + contentData.container.height / 2 + \")\").selectAll(\"text\").data(words).enter().append(\"text\").style(\"font-size\", function (d) {\n return d.size + \"px\";\n }).style(\"font-family\", function (d) {\n return d.font || \"Impact\";\n }).style(\"fill\", function (d) {\n return d.color || \"#000\";\n }).attr(\"text-anchor\", \"middle\").attr(\"transform\", function (d) {\n return \"translate(\" + [d.x, d.y] + \")rotate(\" + d.rotate + \")\";\n }).text(function (d) {\n return d.text;\n });\n\n textElements.on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip).on(\"click\", function (event, d) {\n if (d.interactive) {\n alert(\"Clicked on word: \" + d.text);\n }\n });\n }\n}\n\nfunction createMindMap(contentData, contentArea) {\n if (!contentData || !contentData.centralNode || !contentData.nodes || !contentData.links) {\n console.error(\"Invalid mind map data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid mind map data.</p>\";\n return;\n }\n var width = 800,\n height = 600;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height).call(d3.zoom().on(\"zoom\", function (event) {\n svg.attr(\"transform\", event.transform);\n })).append(\"g\");\n var allNodes = [contentData.centralNode].concat(contentData.nodes);\n\n svg.selectAll(\"line\").data(contentData.links).enter().append(\"line\").attr(\"x1\", function (d) {\n var source = allNodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.x : 0;\n }).attr(\"y1\", function (d) {\n var source = allNodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.y : 0;\n }).attr(\"x2\", function (d) {\n var target = allNodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.x : 0;\n }).attr(\"y2\", function (d) {\n var target = allNodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.y : 0;\n }).attr(\"stroke\", function (d) {\n return d.color || \"#999\";\n }).attr(\"stroke-width\", 2).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip);\n\n svg.selectAll(\"circle\").data(allNodes).enter().append(\"circle\").attr(\"cx\", function (d) {\n return d.x;\n }).attr(\"cy\", function (d) {\n return d.y;\n }).attr(\"r\", 20).attr(\"fill\", function (d) {\n return d.color || \"#97C2FC\";\n }).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip).on(\"click\", function (event, d) {\n if (d.interactive) {\n alert(\"Clicked node: \" + d.label);\n }\n });\n\n svg.selectAll(\"text\").data(allNodes).enter().append(\"text\").attr(\"x\", function (d) {\n return d.x;\n }).attr(\"y\", function (d) {\n return d.y;\n }).attr(\"dy\", \".35em\").attr(\"text-anchor\", \"middle\").text(function (d) {\n return d.label;\n });\n}\n\nfunction createTreeDiagram(contentData, contentArea) {\n if (!contentData || !contentData.nodes) {\n console.error(\"Invalid tree diagram data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid tree diagram data.</p>\";\n return;\n }\n var width = 800,\n height = 600;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height).call(d3.zoom().on(\"zoom\", function (event) {\n svg.attr(\"transform\", event.transform);\n })).append(\"g\");\n\n if (contentData.links) {\n svg.selectAll(\"line\").data(contentData.links).enter().append(\"line\").attr(\"x1\", function (d) {\n var source = contentData.nodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.x : 0;\n }).attr(\"y1\", function (d) {\n var source = contentData.nodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.y : 0;\n }).attr(\"x2\", function (d) {\n var target = contentData.nodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.x : 0;\n }).attr(\"y2\", function (d) {\n var target = contentData.nodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.y : 0;\n }).attr(\"stroke\", function (d) {\n return d.color || \"#ccc\";\n }).attr(\"stroke-width\", function (d) {\n return d.strokeWidth || 2;\n }).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip);\n }\n\n svg.selectAll(\"rect\").data(contentData.nodes).enter().append(\"rect\").attr(\"x\", function (d) {\n return d.x;\n }).attr(\"y\", function (d) {\n return d.y;\n }).attr(\"width\", 100).attr(\"height\", 40).attr(\"fill\", function (d) {\n return d.color || \"#97C2FC\";\n }).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip).on(\"click\", function (event, d) {\n if (d.interactive) {\n alert(\"Clicked node: \" + d.label);\n }\n });\n\n svg.selectAll(\"text\").data(contentData.nodes).enter().append(\"text\").attr(\"x\", function (d) {\n return d.x + 50;\n }).attr(\"y\", function (d) {\n return d.y + 20;\n }).attr(\"text-anchor\", \"middle\").text(function (d) {\n return d.label;\n });\n}\n\nfunction createSunburst(contentData, contentArea) {\n if (!contentData || !contentData.data || !contentData.container) {\n console.error(\"Invalid sunburst data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid sunburst data.</p>\";\n return;\n }\n var width = contentData.container.width;\n var height = contentData.container.height;\n var radius = Math.min(width, height) / 2;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height).call(d3.zoom().on(\"zoom\", function (event) {\n svg.attr(\"transform\", event.transform);\n })).append(\"g\").attr(\"transform\", \"translate(\" + width / 2 + \",\" + height / 2 + \")\");\n var partition = d3.partition().size([2 * Math.PI, radius]);\n var root = d3.hierarchy(contentData.data).sum(function (d) {\n return d.value;\n });\n partition(root);\n var arc = d3.arc().startAngle(function (d) {\n return d.x0;\n }).endAngle(function (d) {\n return d.x1;\n }).innerRadius(function (d) {\n return d.y0;\n }).outerRadius(function (d) {\n return d.y1;\n });\n svg.selectAll(\"path\").data(root.descendants().filter(function (d) {\n return d.depth;\n })).enter().append(\"path\").attr(\"d\", arc).style(\"stroke\", \"#fff\").style(\"fill\", function (d) {\n return d.data.color || \"#ccc\";\n }).on(\"mouseover\", function (event, d) {\n if (d.data.tooltip) {\n showTooltip(event, d.data.tooltip);\n } else {\n showTooltip(event, d.data.name);\n }\n }).on(\"mouseout\", hideTooltip);\n}\n\nfunction createBubbleChart(contentData, contentArea) {\n if (!contentData || !contentData.bubbles) {\n console.error(\"Invalid bubble chart data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid bubble chart data.</p>\";\n return;\n }\n var width = 800,\n height = 600;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height);\n\n var g = svg.append(\"g\");\n\n svg.call(d3.zoom().on(\"zoom\", function (event) {\n g.attr(\"transform\", event.transform);\n }));\n\n var nodes = contentData.bubbles;\n\n var circles = g.selectAll(\"circle\").data(nodes).enter().append(\"circle\").attr(\"r\", function (d) {\n return d.r;\n }).attr(\"fill\", function (d) {\n return d.color || \"#97C2FC\";\n }).attr(\"stroke\", \"#333\").attr(\"stroke-width\", 1).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip).on(\"click\", function (event, d) {\n if (d.interactive) {\n alert(\"Bubble clicked: \" + d.label);\n }\n });\n\n var texts = g.selectAll(\"text\").data(nodes).enter().append(\"text\").attr(\"text-anchor\", \"middle\").attr(\"dy\", \".35em\").text(function (d) {\n return d.label;\n });\n\n var simulation = d3.forceSimulation(nodes).force(\"x\", d3.forceX(width / 2).strength(0.05)).force(\"y\", d3.forceY(height / 2).strength(0.05)).force(\"collide\", d3.forceCollide(function (d) {\n return d.r + 5;\n })).on(\"tick\", ticked);\n function ticked() {\n circles.attr(\"cx\", function (d) {\n return d.x;\n }).attr(\"cy\", function (d) {\n return d.y;\n });\n texts.attr(\"x\", function (d) {\n return d.x;\n }).attr(\"y\", function (d) {\n return d.y;\n });\n }\n}\n\nfunction createTreemap(contentData, contentArea) {\n if (!contentData || !contentData.data || !contentData.container) {\n console.error(\"Invalid treemap data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid treemap data.</p>\";\n return;\n }\n var width = contentData.container.width;\n var height = contentData.container.height;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height);\n var root = d3.hierarchy(contentData.data).sum(function (d) {\n return d.value;\n });\n d3.treemap().size([width, height]).padding(1)(root);\n var nodes = svg.selectAll(\"g\").data(root.leaves()).enter().append(\"g\").attr(\"transform\", function (d) {\n return \"translate(\" + d.x0 + \",\" + d.y0 + \")\";\n });\n nodes.append(\"rect\").attr(\"width\", function (d) {\n return d.x1 - d.x0;\n }).attr(\"height\", function (d) {\n return d.y1 - d.y0;\n }).attr(\"fill\", function (d) {\n return d.data.color || \"#97C2FC\";\n }).attr(\"stroke\", \"#fff\").on(\"mouseover\", function (event, d) {\n if (d.data.tooltip) {\n showTooltip(event, d.data.tooltip);\n }\n }).on(\"mouseout\", hideTooltip);\n nodes.append(\"text\").attr(\"x\", 5).attr(\"y\", 20).text(function (d) {\n return d.data.name;\n }).attr(\"fill\", \"#000\");\n}\n\nfunction createStackedAreaChart(contentData, contentArea) {\n if (!contentData || !contentData.data) {\n console.error(\"Invalid stacked area chart data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid stacked area chart data.</p>\";\n return;\n }\n var margin = {\n top: 20,\n right: 30,\n bottom: 30,\n left: 40\n };\n var width = contentData.container && contentData.container.width || 800;\n var height = contentData.container && contentData.container.height || 400;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height).call(d3.zoom().on(\"zoom\", function (event) {\n svg.attr(\"transform\", event.transform);\n })).append(\"g\");\n var keys = Object.keys(contentData.data[0].series);\n var stack = d3.stack().keys(keys).value(function (d, key) {\n return d.series[key];\n });\n var series = stack(contentData.data);\n var x = d3.scaleLinear().domain(d3.extent(contentData.data, function (d) {\n return d.x;\n })).range([margin.left, width - margin.right]);\n var y = d3.scaleLinear().domain([0, d3.max(series, function (s) {\n return d3.max(s, function (d) {\n return d[1];\n });\n })]).nice().range([height - margin.bottom, margin.top]);\n var area = d3.area().x(function (d) {\n return x(d.data.x);\n }).y0(function (d) {\n return y(d[0]);\n }).y1(function (d) {\n return y(d[1]);\n });\n svg.selectAll(\"path\").data(series).enter().append(\"path\").attr(\"fill\", function (d, i) {\n return d3.schemeCategory10[i % 10];\n }).attr(\"d\", area).on(\"mouseover\", function (event, d) {\n showTooltip(event, \"Series: \" + d.key);\n }).on(\"mouseout\", hideTooltip);\n var xAxis = d3.axisBottom(x);\n var yAxis = d3.axisLeft(y);\n svg.append(\"g\").attr(\"transform\", \"translate(0,\" + (height - margin.bottom) + \")\").call(xAxis);\n svg.append(\"g\").attr(\"transform\", \"translate(\" + margin.left + \",0)\").call(yAxis);\n}\n\nfunction createFrayerModel(contentData, contentArea) {\n if (!contentData || !contentData.quadrants) {\n console.error(\"Invalid Frayer model data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid Frayer model data.</p>\";\n return;\n }\n var container = document.createElement(\"div\");\n container.classList.add(\"frayer-model\");\n container.style.position = \"relative\";\n container.style.width = \"600px\";\n container.style.height = \"400px\";\n contentArea.appendChild(container);\n contentData.quadrants.forEach(function (q) {\n var quadrant = document.createElement(\"div\");\n quadrant.classList.add(\"frayer-quadrant\");\n quadrant.style.position = \"absolute\";\n quadrant.style.left = q.x + \"px\";\n quadrant.style.top = q.y + \"px\";\n quadrant.style.width = q.width + \"px\";\n quadrant.style.height = q.height + \"px\";\n quadrant.style.border = \"1px solid #000\";\n quadrant.style.boxSizing = \"border-box\";\n quadrant.style.padding = \"5px\";\n if (q.color) {\n quadrant.style.backgroundColor = q.color;\n }\n quadrant.innerHTML = \"<strong>\".concat(q.label, \"</strong><br>\").concat(q.content || \"\");\n if (q.tooltip) {\n quadrant.addEventListener(\"mouseover\", function (event) {\n return showTooltip(event, q.tooltip);\n });\n quadrant.addEventListener(\"mouseout\", hideTooltip);\n }\n container.appendChild(quadrant);\n });\n}\n\nfunction createStoryboardGrid(contentData, contentArea) {\n if (!contentData || !contentData.grid) {\n console.error(\"Invalid storyboard grid data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid storyboard grid data.</p>\";\n return;\n }\n var gridData = contentData.grid;\n var container = document.createElement(\"div\");\n container.classList.add(\"storyboard-grid\");\n container.style.display = \"grid\";\n container.style.gridTemplateColumns = \"repeat(\".concat(gridData.columns, \", \").concat(gridData.cellWidth, \"px)\");\n container.style.gridTemplateRows = \"repeat(\".concat(gridData.rows, \", \").concat(gridData.cellHeight, \"px)\");\n container.style.gap = \"5px\";\n contentArea.appendChild(container);\n gridData.cells.forEach(function (cell) {\n var cellDiv = document.createElement(\"div\");\n cellDiv.classList.add(\"storyboard-cell\");\n cellDiv.style.border = \"1px solid #ccc\";\n cellDiv.style.width = gridData.cellWidth + \"px\";\n cellDiv.style.height = gridData.cellHeight + \"px\";\n cellDiv.style.display = \"flex\";\n cellDiv.style.alignItems = \"center\";\n cellDiv.style.justifyContent = \"center\";\n cellDiv.textContent = cell.label;\n if (cell.tooltip) {\n cellDiv.addEventListener(\"mouseover\", function (event) {\n return showTooltip(event, cell.tooltip);\n });\n cellDiv.addEventListener(\"mouseout\", hideTooltip);\n }\n container.appendChild(cellDiv);\n });\n}\n\nfunction createFiveWsChart(contentData, contentArea) {\n if (!contentData || !contentData.sections) {\n console.error(\"Invalid Five Ws chart data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid Five Ws chart data.</p>\";\n return;\n }\n var container = document.createElement(\"div\");\n container.classList.add(\"five-ws-chart\");\n container.style.display = \"flex\";\n container.style.flexWrap = \"wrap\";\n container.style.justifyContent = \"space-around\";\n container.style.margin = \"20px auto\";\n contentArea.appendChild(container);\n contentData.sections.forEach(function (section) {\n var sectionDiv = document.createElement(\"div\");\n sectionDiv.classList.add(\"five-ws-section\");\n sectionDiv.style.border = \"1px solid #ccc\";\n sectionDiv.style.margin = \"5px\";\n sectionDiv.style.padding = \"10px\";\n sectionDiv.style.width = section.width + \"px\";\n sectionDiv.style.height = section.height + \"px\";\n sectionDiv.style.position = \"relative\";\n\n var header = document.createElement(\"h4\");\n header.textContent = section.label;\n header.style.margin = \"0 0 5px 0\";\n sectionDiv.appendChild(header);\n\n if (section.content) {\n var contentParagraph = document.createElement(\"p\");\n contentParagraph.textContent = section.content;\n sectionDiv.appendChild(contentParagraph);\n }\n\n if (section.tooltip) {\n sectionDiv.addEventListener(\"mouseover\", function (event) {\n return showTooltip(event, section.tooltip);\n });\n sectionDiv.addEventListener(\"mouseout\", hideTooltip);\n }\n container.appendChild(sectionDiv);\n });\n}\n\nfunction createCauseEffect(contentData, contentArea) {\n if (!contentData || !contentData.nodes) {\n console.error(\"Invalid cause-effect data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid cause-effect data.</p>\";\n return;\n }\n var width = 800,\n height = 600;\n var svg = d3.select(contentArea).append(\"svg\").attr(\"width\", width).attr(\"height\", height).call(d3.zoom().on(\"zoom\", function (event) {\n svg.attr(\"transform\", event.transform);\n })).append(\"g\");\n\n if (contentData.links) {\n svg.selectAll(\"line\").data(contentData.links).enter().append(\"line\").attr(\"x1\", function (d) {\n var source = contentData.nodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.x : 0;\n }).attr(\"y1\", function (d) {\n var source = contentData.nodes.find(function (n) {\n return n.id === d.from;\n });\n return source ? source.y : 0;\n }).attr(\"x2\", function (d) {\n var target = contentData.nodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.x : 0;\n }).attr(\"y2\", function (d) {\n var target = contentData.nodes.find(function (n) {\n return n.id === d.to;\n });\n return target ? target.y : 0;\n }).attr(\"stroke\", function (d) {\n return d.color || \"#888\";\n }).attr(\"stroke-width\", 2).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip);\n }\n\n svg.selectAll(\"circle\").data(contentData.nodes).enter().append(\"circle\").attr(\"cx\", function (d) {\n return d.x;\n }).attr(\"cy\", function (d) {\n return d.y;\n }).attr(\"r\", 20).attr(\"fill\", function (d) {\n return d.color || \"#97C2FC\";\n }).attr(\"stroke\", \"#333\").attr(\"stroke-width\", 1).on(\"mouseover\", function (event, d) {\n if (d.tooltip) {\n showTooltip(event, d.tooltip);\n }\n }).on(\"mouseout\", hideTooltip).on(\"click\", function (event, d) {\n if (d.interactive) {\n alert(\"Node clicked: \" + d.label);\n }\n });\n\n svg.selectAll(\"text\").data(contentData.nodes).enter().append(\"text\").attr(\"x\", function (d) {\n return d.x;\n }).attr(\"y\", function (d) {\n return d.y;\n }).attr(\"dy\", \".35em\").attr(\"text-anchor\", \"middle\").text(function (d) {\n return d.label;\n });\n}\n\nfunction createGraphicOrganizer(contentData, contentArea) {\n if (!contentData || !contentData.containers) {\n console.error(\"Invalid graphic organizer data:\", contentData);\n contentArea.innerHTML = \"<p>Error: Invalid graphic organizer data.</p>\";\n return;\n }\n\n\n var gridContainer = document.createElement(\"div\");\n gridContainer.classList.add(\"graphic-organizer-grid\");\n contentArea.appendChild(gridContainer);\n\n contentData.containers.forEach(function (containerData) {\n var section = document.createElement(\"div\");\n section.classList.add(\"organizer-section\");\n section.style.width = containerData.width + \"px\";\n section.style.height = containerData.height + \"px\";\n section.style.boxSizing = \"border-box\";\n section.style.padding = \"10px\";\n section.style.backgroundColor = containerData.color || \"#ffffff\";\n\n var sectionHeader = document.createElement(\"h4\");\n sectionHeader.textContent = containerData.label;\n section.appendChild(sectionHeader);\n\n if (containerData.content) {\n var contentP = document.createElement(\"p\");\n contentP.textContent = containerData.content;\n section.appendChild(contentP);\n }\n\n if (containerData.tooltip) {\n section.addEventListener(\"mouseover\", function (event) {\n return showTooltip(event, containerData.tooltip);\n });\n section.addEventListener(\"mouseout\", hideTooltip);\n }\n\n if (containerData.interactive) {\n section.addEventListener(\"click\", function () {\n alert(\"Clicked on section: \" + containerData.label);\n });\n }\n gridContainer.appendChild(section);\n });\n}\n\nfunction showTooltip(event, text) {\n var tooltip = d3.select(\"body\").select(\".tooltip\");\n if (tooltip.empty()) {\n tooltip = d3.select(\"body\").append(\"div\").attr(\"class\", \"tooltip\");\n }\n tooltip.html(text).style(\"left\", event.pageX + 10 + \"px\").style(\"top\", event.pageY + 10 + \"px\").style(\"opacity\", 1);\n}\nfunction hideTooltip() {\n d3.select(\"body\").select(\".tooltip\").style(\"opacity\", 0).html(\"\");\n}\n\n},{}],24:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createArithmeticPracticeGames = createArithmeticPracticeGames;\nexports.createDataAnalysisChallenge = createDataAnalysisChallenge;\nexports.createDebate = createDebate;\nexports.createEnhancedQuestionGenerator = createEnhancedQuestionGenerator;\nexports.createEscapeRoom = createEscapeRoom;\nexports.createFractionVisualizer = createFractionVisualizer;\nexports.createGamification = createGamification;\nexports.createGeometryPuzzles = createGeometryPuzzles;\nexports.createGraphingActivities = createGraphingActivities;\nexports.createHypothesisTesting = createHypothesisTesting;\nexports.createInteractiveQuiz = createInteractiveQuiz;\nexports.createLayeredExplanations = createLayeredExplanations;\nexports.createMathConceptExplainer = createMathConceptExplainer;\nexports.createMathFactsGenerator = createMathFactsGenerator;\nexports.createMathVocabularyBuilder = createMathVocabularyBuilder;\nexports.createMathWordProblems = createMathWordProblems;\nexports.createMicrolearningModules = createMicrolearningModules;\nexports.createMoneyMathGames = createMoneyMathGames;\nexports.createMysteryGame = createMysteryGame;\nexports.createParaphrasing = createParaphrasing;\nexports.createProblemSolvingChallenge = createProblemSolvingChallenge;\nexports.createRecursiveSummaries = createRecursiveSummaries;\nexports.createRolePlayingGame = createRolePlayingGame;\nexports.createScavengerHunt = createScavengerHunt;\nexports.createShapeIdentification = createShapeIdentification;\nexports.createStructuredProject = createStructuredProject;\nexports.createTextGames = createTextGames;\nexports.createTextSimulation = createTextSimulation;\nexports.createThematicClusters = createThematicClusters;\nexports.createVirtualLab = createVirtualLab;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _readOnlyError(r) { throw new TypeError('\"' + r + '\" is read-only'); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction createParaphrasing(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var originalTitle = document.createElement(\"h4\"); \n originalTitle.textContent = \"Original Text:\";\n originalTitle.classList.add(\"text-title\"); \n contentArea.appendChild(originalTitle);\n\n var originalText = document.createElement(\"p\");\n originalText.textContent = contentData.originalText;\n originalText.classList.add(\"paragraph\");\n contentArea.appendChild(originalText);\n\n var paraphraseTitle = document.createElement(\"h4\"); \n paraphraseTitle.textContent = \"Paraphrase:\";\n paraphraseTitle.classList.add(\"text-title\"); \n contentArea.appendChild(paraphraseTitle);\n\n var paraphrasedText = document.createElement(\"p\");\n paraphrasedText.textContent = contentData.paraphrasedText;\n paraphrasedText.classList.add(\"paragraph\");\n contentArea.appendChild(paraphrasedText);\n addCoverAndRevealFunctionality(paraphrasedText, \"Paraphrased Text\");\n}\n\n\nfunction createGamification(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n\n var suggestionsList = document.createElement(\"ul\");\n suggestionsList.classList.add(\"list\");\n contentData.suggestions.forEach(function (suggestion) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(suggestion.gameElement, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(suggestion.description, \"</p>\\n <p class=\\\"paragraph\\\">Example: \").concat(suggestion.example, \"</p>\\n \");\n suggestionsList.appendChild(listItem);\n });\n contentArea.appendChild(suggestionsList);\n}\n\nfunction createMicrolearningModules(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.modules.forEach(function (module, index) {\n var moduleDiv = document.createElement(\"div\");\n moduleDiv.classList.add(\"module\");\n moduleDiv.innerHTML = \"\\n <h3 class=\\\"module-title\\\">\".concat(module.title, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(module.content, \"</p>\\n \");\n contentArea.appendChild(moduleDiv);\n });\n}\n\nfunction createThematicClusters(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n contentData.clusters.forEach(function (cluster) {\n var clusterDiv = document.createElement(\"div\");\n clusterDiv.classList.add(\"cluster\");\n clusterDiv.innerHTML = \"\\n <h3 class=\\\"theme\\\">\".concat(cluster.theme, \"</h3>\\n <ul class=\\\"list\\\">\\n \").concat(cluster.items.map(function (item) {\n return \"<li>\".concat(item, \"</li>\");\n }).join(\"\"), \"\\n </ul>\\n \");\n contentArea.appendChild(clusterDiv);\n });\n}\n\n\nfunction createLayeredExplanations(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentLevel = 0; \n displayExplanation(currentLevel);\n function displayExplanation(levelIndex) {\n var level = contentData.levels[levelIndex];\n contentArea.innerHTML = \"\"; \n createContentHeader(contentData, ContentAreaId);\n var explanation = document.createElement(\"p\");\n explanation.textContent = level.content;\n explanation.classList.add(\"paragraph\");\n contentArea.appendChild(explanation);\n\n var buttonContainer = document.createElement(\"div\");\n buttonContainer.classList.add(\"button-container\", \"centered-button\");\n if (levelIndex > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Simpler Explanation\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayExplanation(levelIndex - 1);\n });\n buttonContainer.appendChild(prevButton);\n }\n if (levelIndex < contentData.levels.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"More Detailed Explanation\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displayExplanation(levelIndex + 1);\n });\n buttonContainer.appendChild(nextButton);\n }\n contentArea.appendChild(buttonContainer);\n }\n}\n\nfunction createRecursiveSummaries(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var summaryContainer = document.createElement(\"div\");\n summaryContainer.classList.add(\"summary-container\");\n contentArea.appendChild(summaryContainer);\n function renderSummary(summary) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var summaryDiv = document.createElement(\"div\");\n summaryDiv.classList.add(\"summary-level\", \"level-\".concat(level));\n var summaryHeading = document.createElement(\"h3\");\n summaryHeading.textContent = summary.level; \n summaryDiv.appendChild(summaryHeading);\n var summaryText = document.createElement(\"p\");\n summaryText.textContent = summary.summary;\n summaryText.classList.add(\"paragraph\");\n summaryDiv.appendChild(summaryText);\n addCoverAndRevealFunctionality(summaryText, \"Summary\");\n\n if (summary.subSummaries && summary.subSummaries.length > 0) {\n var subSummariesList = document.createElement(\"ul\");\n subSummariesList.classList.add(\"list\");\n summary.subSummaries.forEach(function (subSummary) {\n renderSummary(subSummary, level + 1); \n });\n summaryDiv.appendChild(subSummariesList);\n }\n summaryContainer.appendChild(summaryDiv);\n }\n\n renderSummary(contentData.summary);\n}\n\nfunction createArithmeticPracticeGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var currentQuestionIndex = 0;\n var score = 0;\n var timer; \n var timeLeft = 0; \n\n var questions = contentData.questions; \n\n var questionDisplay = document.createElement(\"p\");\n questionDisplay.classList.add(\"paragraph\");\n contentArea.appendChild(questionDisplay);\n var answerInput = document.createElement(\"input\");\n answerInput.type = \"text\"; \n answerInput.classList.add(\"input\");\n contentArea.appendChild(answerInput);\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = \"Submit\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", checkAnswer);\n contentArea.appendChild(submitButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n contentArea.appendChild(feedbackArea);\n var timerDisplay = document.createElement(\"p\");\n timerDisplay.id = \"timer-display\";\n timerDisplay.classList.add(\"paragraph\");\n contentArea.appendChild(timerDisplay);\n\n function displayQuestion(index) {\n var question = questions[index];\n questionDisplay.textContent = question.questionText;\n answerInput.value = \"\"; \n feedbackArea.innerHTML = \"\"; \n\n if (question.timeLimit) {\n timeLeft = question.timeLimit;\n startTimer();\n } else {\n timerDisplay.textContent = \"\"; \n }\n }\n\n function startTimer() {\n clearInterval(timer); \n timerDisplay.textContent = \"Time left: \".concat(timeLeft, \" seconds\");\n timer = setInterval(function () {\n timeLeft--;\n timerDisplay.textContent = \"Time left: \".concat(timeLeft, \" seconds\");\n if (timeLeft <= 0) {\n clearInterval(timer);\n checkAnswer(); \n }\n }, 1000);\n }\n\n function checkAnswer() {\n clearInterval(timer); \n\n var userAnswer = answerInput.type === \"number\" ? parseFloat(answerInput.value) : answerInput.value.trim();\n var question = questions[currentQuestionIndex];\n var isCorrect = userAnswer === question.answer;\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? \"Correct!\" : \"Incorrect. Try again.\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackMessage);\n if (isCorrect) {\n score++;\n }\n\n if (currentQuestionIndex < questions.length - 1) {\n currentQuestionIndex++;\n setTimeout(function () {\n return displayQuestion(currentQuestionIndex);\n }, 1000); \n } else {\n endGame();\n }\n }\n\n function endGame() {\n contentArea.innerHTML = \"\\n <h2 class=\\\"title\\\">Game Over!</h2>\\n <p class=\\\"paragraph\\\">Your final score: \".concat(score, \"/\").concat(questions.length, \"</p>\\n \");\n }\n\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createInteractiveQuiz(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n var currentQuestionIndex = 0;\n var score = 0;\n var totalQuestions = contentData.questions.length;\n var unansweredQuestions = new Set(contentData.questions.map(function (_, index) {\n return index;\n })); \n\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: \".concat(score, \" / \").concat(totalQuestions);\n contentArea.appendChild(scoreDisplay);\n function displayQuestion(index) {\n var question = contentData.questions[index];\n contentArea.innerHTML = \"\"; \n contentArea.appendChild(title); \n contentArea.appendChild(scoreDisplay);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(question.questionText, \"</p>\");\n\n var answerElement;\n if (question.type === \"multipleChoice\") {\n answerElement = document.createElement(\"ul\");\n answerElement.classList.add(\"list\");\n question.options.forEach(function (option) {\n var optionItem = document.createElement(\"li\");\n optionItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n answerElement.appendChild(optionItem);\n });\n } else if (question.type === \"trueFalse\") {\n answerElement = document.createElement(\"div\");\n answerElement.innerHTML = \"\\n <label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"true\\\"> True</label><br>\\n <label><input type=\\\"radio\\\" name=\\\"q\").concat(index, \"\\\" value=\\\"false\\\"> False</label>\\n \");\n } else if (question.type === \"shortAnswer\") {\n answerElement = document.createElement(\"input\");\n answerInput.type = \"text\";\n answerInput.classList.add(\"input\");\n } else if (question.type === \"matching\") {\n var wordPairs = question.options.map(function (option) {\n var _option$split = option.split(' - '),\n _option$split2 = _slicedToArray(_option$split, 2),\n word = _option$split2[0],\n definition = _option$split2[1];\n return {\n word: word,\n definition: definition\n };\n });\n answerElement = createMatchingGame({\n pairs: wordPairs\n }, contentArea);\n } else if (question.type === \"fillInTheBlank\") {\n answerElement = document.createElement('div');\n var promptWithInput = question.questionText.replace(/\\[...\\]/g, \"<input type=\\\"text\\\" class=\\\"input\\\" id=\\\"answer\".concat(index, \"\\\">\"));\n answerElement.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(promptWithInput, \"</p>\");\n } else {\n displayErrorMessage(\"Unsupported question type\");\n return;\n }\n if (question.type !== 'matching') {\n answerElement.id = \"answer\".concat(index);\n }\n contentArea.appendChild(answerElement);\n var submitButton = document.createElement(\"button\");\n submitButton.textContent = \"Submit Answer\";\n submitButton.classList.add(\"btn\", \"btn-primary\");\n submitButton.addEventListener(\"click\", function () {\n return checkAnswer(index);\n });\n contentArea.appendChild(submitButton);\n }\n function checkAnswer(index) {\n var _question$feedback;\n var question = contentData.questions[index];\n var userInput;\n var isCorrect;\n if (question.type === \"multipleChoice\" || question.type === \"trueFalse\") {\n var _document$querySelect;\n userInput = (_document$querySelect = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.value;\n } else if (question.type === \"shortAnswer\") {\n userInput = document.getElementById(\"answer\".concat(index)).value;\n } else if (question.type === \"matching\") {\n var matchingWordList = contentArea.querySelector('.matching-word-list');\n var matchingDefinitionList = contentArea.querySelector('.matching-definition-list');\n isCorrect = checkMatchingAnswers(question.options.map(function (option) {\n var _option$split3 = option.split(' - '),\n _option$split4 = _slicedToArray(_option$split3, 2),\n word = _option$split4[0],\n definition = _option$split4[1];\n return {\n word: word,\n definition: definition\n };\n }), contentData, matchingWordList, matchingDefinitionList);\n if (!isCorrect) {\n userInput = \"\";\n }\n } else if (question.type === \"fillInTheBlank\") {\n userInput = document.getElementById(\"answer\".concat(index)).value;\n isCorrect = userInput.toLowerCase() === question.answer.toLowerCase();\n }\n\n if (userInput === null || userInput === undefined) {\n displayFeedback(\"Please select an answer.\", false);\n return;\n }\n isCorrect = userInput.toLowerCase() === question.answer.toLowerCase();\n if (isCorrect) {\n score++;\n }\n unansweredQuestions[\"delete\"](index);\n scoreDisplay.textContent = \"Score: \".concat(score, \" / \").concat(totalQuestions);\n displayFeedback(((_question$feedback = question.feedback) === null || _question$feedback === void 0 ? void 0 : _question$feedback[isCorrect ? \"correct\" : \"incorrect\"]) || (isCorrect ? \"Correct!\" : \"Incorrect!\"), isCorrect);\n }\n\n function displayFeedback(feedbackMessage, isCorrect) {\n var feedbackArea = document.getElementById(\"feedback-area\");\n feedbackArea.innerHTML = \"\";\n var feedbackParagraph = document.createElement(\"p\");\n feedbackParagraph.textContent = feedbackMessage;\n feedbackParagraph.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\");\n feedbackArea.appendChild(feedbackParagraph);\n\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = currentQuestionIndex < contentData.questions.length - 1 ? \"Next Question\" : \"Finish Quiz\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n if (currentQuestionIndex < contentData.questions.length - 1) {\n currentQuestionIndex++;\n displayQuestion(currentQuestionIndex);\n } else {\n endQuiz();\n }\n });\n feedbackArea.appendChild(nextButton);\n }\n function endQuiz() {\n if (unansweredQuestions.size > 0) {\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">You have \".concat(unansweredQuestions.size, \" unanswered questions.</p>\");\n }\n contentArea.innerHTML += \"<p class=\\\"final-score\\\">Your final score: \".concat(score, \"/\").concat(totalQuestions, \"</p>\");\n }\n displayQuestion(currentQuestionIndex);\n}\n\nfunction createMathFactsGenerator(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var feedbackArea = document.getElementById(feedbackAreaId);\n var operations = contentData.operations || [\"addition\", \"subtraction\", \"multiplication\", \"division\"]; \n var _contentData$numberRa = _slicedToArray(contentData.numberRange, 2),\n minNumber = _contentData$numberRa[0],\n maxNumber = _contentData$numberRa[1];\n var numQuestions = contentData.numQuestions || 10; \n var timeLimit = contentData.timeLimit || 0; \n\n var currentQuestion = null;\n var startTime = null;\n var score = 0;\n var questionsAnswered = 0;\n\n function generateQuestion() {\n var operation = operations[Math.floor(Math.random() * operations.length)];\n var num1 = Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;\n var num2 = Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;\n var questionText, answer;\n switch (operation) {\n case \"addition\":\n questionText = \"\".concat(num1, \" + \").concat(num2, \" = ?\");\n answer = num1 + num2;\n break;\n case \"subtraction\":\n questionText = \"\".concat(Math.max(num1, num2), \" - \").concat(Math.min(num1, num2), \" = ?\");\n answer = Math.max(num1, num2) - Math.min(num1, num2);\n break;\n case \"multiplication\":\n questionText = \"\".concat(num1, \" x \").concat(num2, \" = ?\");\n answer = num1 * num2;\n break;\n case \"division\":\n while (num2 === 0 || num1 % num2 !== 0) {\n Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber, _readOnlyError(\"num2\");\n }\n questionText = \"\".concat(num1, \" \\xF7 \").concat(num2, \" = ?\");\n answer = num1 / num2;\n break;\n }\n return {\n questionText: questionText,\n answer: answer\n };\n }\n\n function displayQuestion() {\n currentQuestion = generateQuestion();\n contentArea.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(currentQuestion.questionText, \"</p>\\n <input type=\\\"number\\\" id=\\\"answerInput\\\" class=\\\"input\\\" />\\n <button id=\\\"submitButton\\\" class=\\\"btn btn-primary\\\">Submit</button>\\n \");\n if (timeLimit > 0) {\n startTime = Date.now();\n updateTimerDisplay();\n timerInterval = setInterval(updateTimerDisplay, 1000); \n }\n document.getElementById(\"submitButton\").addEventListener(\"click\", checkAnswer);\n }\n\n function updateTimerDisplay() {\n var elapsedTime = Math.floor((Date.now() - startTime) / 1000);\n var timeRemaining = Math.max(0, timeLimit - elapsedTime);\n timerDisplay.textContent = \"Time left: \".concat(timeRemaining, \" seconds\");\n if (timeRemaining <= 0) {\n clearInterval(timerInterval); \n checkAnswer(true); \n }\n }\n\n function checkAnswer() {\n var timedOut = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n clearInterval(timerInterval); \n var userAnswer = parseInt(document.getElementById(\"answerInput\").value);\n if (isNaN(userAnswer) && !timedOut) {\n feedbackArea.innerHTML = '<p class=\"error\">Please enter a valid number.</p>';\n return; \n }\n var isCorrect = userAnswer === currentQuestion.answer;\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\", \"\\\">\").concat(isCorrect ? \"Correct!\" : \"Incorrect. The answer is \".concat(currentQuestion.answer, \".\"), \"</p>\");\n if (isCorrect) {\n score++;\n }\n questionsAnswered++;\n if (questionsAnswered < numQuestions) {\n setTimeout(function () {\n displayQuestion();\n if (timeLimit > 0) {\n startTimer();\n }\n }, 1000); \n } else {\n endQuiz();\n }\n }\n\n function endQuiz() {\n contentArea.innerHTML = \"\\n <h2 class=\\\"title\\\">Quiz Finished!</h2>\\n <p class=\\\"paragraph\\\">You got \".concat(score, \" out of \").concat(numQuestions, \" correct.</p>\\n \");\n }\n\n displayQuestion();\n}\n\nfunction createShapeIdentification(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var currentQuestionIndex = 0;\n var score = 0;\n\n var shapesContainer = document.createElement(\"div\");\n shapesContainer.id = \"shapes-container\";\n shapesContainer.classList.add(\"shapes-container\", \"flex-container\");\n var optionsContainer = document.createElement(\"div\");\n optionsContainer.classList.add(\"options-container\");\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.id = feedbackAreaId;\n feedbackArea.classList.add(\"paragraph\");\n\n var shapes = shuffleArray(contentData.shapes);\n function dragStart(event) {\n event.dataTransfer.setData(\"text/plain\", event.target.id);\n }\n function dragOver(event) {\n event.preventDefault();\n }\n function dragDrop(event, dropZone) {\n event.preventDefault();\n var itemId = event.dataTransfer.getData(\"text/plain\");\n var itemElement = document.getElementById(itemId);\n dropZone.appendChild(itemElement);\n checkAnswer(currentQuestionIndex); \n }\n function displayQuestion(index) {\n var shape = shapes[index];\n contentArea.innerHTML = \"\";\n contentArea.appendChild(title);\n contentArea.appendChild(scoreDisplay);\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">What is the name of this shape?</p>\";\n\n var shapeImage = document.createElement(\"img\");\n shapeImage.src = shape.imageUrl;\n shapeImage.alt = shape.name;\n shapeImage.classList.add(\"shape-image\");\n contentArea.appendChild(shapeImage);\n\n if (contentData.activityType === \"multipleChoice\") {\n createMultipleChoiceOptions(shape, index, optionsContainer);\n } else if (contentData.activityType === \"dragAndDrop\") {\n createDragAndDropOptions(contentData, optionsContainer); \n }\n\n contentArea.appendChild(feedbackArea);\n feedbackArea.innerHTML = \"\";\n }\n function createMultipleChoiceOptions(shape, index, container) {\n container.innerHTML = \"\"; \n\n var optionsList = document.createElement(\"ul\");\n optionsList.classList.add(\"list\");\n shuffleArray([].concat(_toConsumableArray(shape.properties), [shape.name])).forEach(function (option) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"<label><input type=\\\"radio\\\" name=\\\"q\".concat(index, \"\\\" value=\\\"\").concat(option, \"\\\"> \").concat(option, \"</label>\");\n optionsList.appendChild(listItem);\n });\n container.appendChild(optionsList);\n contentArea.appendChild(container);\n }\n function createDragAndDropOptions(contentData, container) {\n container.innerHTML = \"\";\n\n var categories = Array.from(new Set(contentData.shapes.map(function (shape) {\n return shape.category;\n })));\n\n categories.forEach(function (category) {\n var dropZone = document.createElement(\"div\");\n dropZone.classList.add(\"drop-zone\", \"paragraph\");\n dropZone.textContent = category;\n dropZone.dataset.category = category; \n dropZone.addEventListener(\"dragover\", dragOver);\n dropZone.addEventListener(\"drop\", function (event) {\n dragDrop(event, dropZone);\n });\n container.appendChild(dropZone);\n });\n contentArea.appendChild(container);\n }\n function checkAnswer(index) {\n var shape = shapes[index];\n var feedbackArea = contentArea.querySelector(\"#feedback-area\");\n var isCorrect = false;\n if (contentData.activityType === \"multipleChoice\") {\n var selectedOption = document.querySelector(\"input[name=\\\"q\".concat(index, \"\\\"]:checked\"));\n isCorrect = selectedOption ? selectedOption.value.toLowerCase() === shape.name.toLowerCase() : false;\n } else if (contentData.activityType === \"dragAndDrop\") {\n var parentElement = document.getElementById(\"shape-\".concat(index)).parentNode;\n isCorrect = parentElement.dataset.category === shape.category;\n }\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\", \"\\\">\").concat(isCorrect ? \"Correct!\" : \"Incorrect. The answer is \".concat(shape.name, \".\"), \"</p>\");\n if (isCorrect) {\n score++;\n scoreDisplay.textContent = \"Score: \".concat(score, \"/\").concat(shapes.length);\n }\n if (currentQuestionIndex < shapes.length - 1) {\n currentQuestionIndex++;\n setTimeout(function () {\n return displayQuestion(currentQuestionIndex);\n }, 1000);\n } else {\n endQuiz();\n }\n }\n function endQuiz() {\n contentArea.innerHTML = \"\\n <h2 class=\\\"title\\\">Quiz Finished!</h2>\\n <p class=\\\"paragraph\\\">Your final score: \".concat(score, \"/\").concat(shapes.length, \"</p>\\n \");\n }\n var scoreDisplay = document.createElement(\"p\");\n scoreDisplay.id = \"quiz-score\";\n scoreDisplay.classList.add(\"paragraph\");\n scoreDisplay.textContent = \"Score: \".concat(score, \"/\").concat(shapes.length);\n contentArea.appendChild(scoreDisplay);\n displayQuestion(currentQuestionIndex); \n}\n\nfunction createFractionVisualizer(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n function createFractionElement(fraction) {\n var interactive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n var fractionDiv = document.createElement(\"div\");\n fractionDiv.classList.add(\"fraction\");\n if (interactive) {\n fractionDiv.classList.add(\"interactive\");\n fractionDiv.id = id;\n }\n var numeratorSpan = document.createElement(\"span\");\n numeratorSpan.textContent = fraction.numerator;\n numeratorSpan.classList.add(\"numerator\");\n fractionDiv.appendChild(numeratorSpan);\n var denominatorSpan = document.createElement(\"span\");\n denominatorSpan.textContent = fraction.denominator;\n denominatorSpan.classList.add(\"denominator\");\n fractionDiv.appendChild(denominatorSpan);\n return fractionDiv;\n }\n\n function visualizeFraction(fraction, containerId) {\n var container = document.getElementById(containerId);\n container.innerHTML = \"\"; \n\n var width = container.clientWidth;\n var height = container.clientHeight;\n var numParts = fraction.denominator;\n var filledParts = fraction.numerator;\n for (var i = 0; i < numParts; i++) {\n var part = document.createElement(\"div\");\n part.classList.add(\"fraction-part\");\n part.style.width = \"\".concat(width / numParts - 2, \"px\"); \n part.style.height = \"\".concat(height - 2, \"px\"); \n part.style.left = \"\".concat(i * (width / numParts), \"px\"); \n part.style.border = '1px solid black';\n if (i < filledParts) {\n part.classList.add(\"filled\"); \n }\n container.appendChild(part);\n }\n }\n\n contentData.fractions.forEach(function (fraction, index) {\n var fractionContainer = document.createElement(\"div\");\n fractionContainer.classList.add(\"fraction-container\");\n fractionContainer.id = \"fraction-container-\".concat(index);\n visualizeFraction(fraction, \"fraction-container-\".concat(index));\n contentArea.appendChild(fractionContainer);\n });\n\n var equivalentContainer = document.createElement(\"div\");\n equivalentContainer.classList.add(\"equivalent-container\");\n contentData.equivalentFractions.forEach(function (group, groupIndex) {\n var groupDiv = document.createElement(\"div\");\n groupDiv.classList.add(\"equivalent-group\");\n group.forEach(function (fraction, index) {\n var containerId = \"equivalent-container-\".concat(groupIndex, \"-\").concat(index);\n var fractionElement = createFractionElement(fraction, false, containerId);\n groupDiv.appendChild(fractionElement);\n fractionElement.addEventListener(\"click\", function () {\n visualizeFraction(fraction, containerId);\n });\n });\n equivalentContainer.appendChild(groupDiv);\n });\n contentArea.appendChild(equivalentContainer);\n\n contentData.operations.forEach(function (operation, index) {\n var operationDiv = document.createElement(\"div\");\n operationDiv.classList.add(\"operation\");\n operationDiv.id = \"operation-container-\".concat(index); \n\n operationDiv.innerHTML = \"\\n <p class=\\\"paragraph\\\">\\n \".concat(createFractionElement(operation.fraction1), \" \").concat(operation.operation, \" \").concat(createFractionElement(operation.fraction2), \" = \\n <span id=\\\"operation-result-\").concat(index, \"\\\"></span> \\n </p>\\n \");\n contentArea.appendChild(operationDiv);\n\n var resultSpan = document.getElementById(\"operation-result-\".concat(index));\n visualizeFraction(operation.result, resultSpan); \n });\n}\n\nfunction createGraphingActivities(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n var chartTypes = contentData.chartTypes || ['bar'];\n var datasets = contentData.dataSets; \n var currentChartTypeIndex = 0;\n var currentDataIndex = 0;\n var graphContainer = document.createElement(\"div\");\n graphContainer.id = \"graph-container\";\n graphContainer.classList.add(\"graph-container\");\n var canvas = document.createElement(\"canvas\");\n canvas.id = \"graph-canvas\";\n graphContainer.appendChild(canvas);\n contentArea.appendChild(graphContainer);\n var questionsContainer = document.createElement('div');\n questionsContainer.id = \"questions-container\";\n questionsContainer.classList.add(\"questions-container\");\n\n function displayChart() {\n var _contentData$labels, _contentData$labels2;\n var oldChart = Chart.getChart(\"graph-canvas\");\n if (oldChart) {\n oldChart.destroy();\n }\n var currentChartType = chartTypes[currentChartTypeIndex];\n var currentDataSet = datasets[currentDataIndex];\n\n if (!currentDataSet || currentDataSet.length === 0) {\n displayErrorMessage(\"No data available for this chart type.\");\n return;\n }\n var chartData = {\n labels: currentDataSet.map(function (item) {\n return item.x;\n }),\n datasets: [{\n label: contentData.title,\n data: currentDataSet.map(function (item) {\n return item.y;\n }),\n backgroundColor: currentChartType === 'bar' ? 'rgba(54, 162, 235, 0.5)' : [],\n borderColor: currentChartType === 'line' ? 'rgba(54, 162, 235, 1)' : [],\n borderWidth: 1,\n fill: currentChartType === 'line' \n }]\n };\n var myChart = new Chart(canvas, {\n \"type\": currentChartType,\n data: chartData,\n \"options\": {\n scales: {\n x: {\n title: {\n display: true,\n text: ((_contentData$labels = contentData.labels) === null || _contentData$labels === void 0 ? void 0 : _contentData$labels.x) || \"X-axis\" \n }\n },\n y: {\n title: {\n display: true,\n text: ((_contentData$labels2 = contentData.labels) === null || _contentData$labels2 === void 0 ? void 0 : _contentData$labels2.y) || \"Y-axis\" \n }\n }\n }\n }\n });\n }\n\n var chartTypeButtons = document.createElement(\"div\");\n chartTypeButtons.classList.add(\"button-container\", \"centered-button\");\n chartTypes.forEach(function (type, index) {\n var button = document.createElement(\"button\");\n button.textContent = type.charAt(0).toUpperCase() + type.slice(1);\n button.classList.add(\"btn\", \"btn-secondary\");\n if (index === 0) {\n button.classList.add(\"active\");\n }\n button.addEventListener(\"click\", function () {\n currentChartTypeIndex = index;\n updateChartTypeButtons();\n displayChart();\n });\n chartTypeButtons.appendChild(button);\n });\n contentArea.appendChild(chartTypeButtons);\n\n function updateChartTypeButtons() {\n chartTypeButtons.querySelectorAll(\".btn\").forEach(function (button, i) {\n button.classList.toggle(\"active\", i === currentChartTypeIndex);\n });\n }\n\n function displayQuestions() {\n questionsContainer.innerHTML = \"\";\n if (contentData.questions && contentData.questions.length > 0) {\n var questionsList = document.createElement(\"ol\");\n questionsList.classList.add(\"list\");\n contentData.questions.forEach(function (question) {\n var questionItem = document.createElement(\"li\");\n questionItem.textContent = question;\n questionItem.classList.add(\"paragraph\");\n questionsList.appendChild(questionItem);\n });\n questionsContainer.appendChild(questionsList);\n } else {\n questionsContainer.innerHTML = \"<p class=\\\"paragraph\\\">No questions available for this graph.</p>\";\n }\n }\n displayQuestions();\n contentArea.appendChild(questionsContainer);\n\n displayChart();\n}\n\nfunction createGeometryPuzzles(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentPuzzleIndex = 0;\n\n function displayPuzzle(index) {\n var puzzle = contentData.puzzles[index];\n contentArea.innerHTML = \"\"; \n contentArea.appendChild(title); \n\n var puzzleDiv = document.createElement(\"div\");\n puzzleDiv.classList.add(\"puzzle\");\n\n puzzleDiv.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(puzzle.question, \"</p>\");\n if (puzzle.diagram) {\n puzzleDiv.innerHTML += \"<img src=\\\"\".concat(puzzle.diagram, \"\\\" alt=\\\"Puzzle Diagram\\\" class=\\\"diagram\\\">\");\n }\n\n var answerInput;\n if (puzzle.puzzleType === \"multipleChoice\") {\n answerInput = createMultipleChoiceInput(puzzle.options);\n } else if (puzzle.puzzleType === \"angleCalculation\") {\n answerInput = createNumberInput();\n } else {\n answerInput = createTextInput();\n }\n answerInput.id = \"puzzle-answer-\".concat(index);\n puzzleDiv.appendChild(answerInput);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n return checkPuzzleAnswer(index);\n });\n puzzleDiv.appendChild(checkButton);\n var feedbackArea = document.createElement(\"div\");\n feedbackArea.classList.add(feedbackAreaId);\n feedbackArea.id = \"puzzle-feedback-\".concat(index);\n puzzleDiv.appendChild(feedbackArea);\n\n if (puzzle.hints && puzzle.hints.length > 0) {\n var currentHintIndex = 0; \n var hintButton = document.createElement(\"button\");\n hintButton.textContent = \"Hint\";\n hintButton.classList.add(\"btn\", \"btn-secondary\");\n hintButton.addEventListener(\"click\", function () {\n feedbackArea.innerHTML = \"<p class=\\\"paragraph\\\">\".concat(puzzle.hints[currentHintIndex], \"</p>\");\n currentHintIndex = (currentHintIndex + 1) % puzzle.hints.length; \n });\n puzzleDiv.appendChild(hintButton);\n }\n contentArea.appendChild(puzzleDiv);\n }\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Puzzle\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.disabled = true; \n prevButton.addEventListener(\"click\", function () {\n currentPuzzleIndex--;\n displayPuzzle(currentPuzzleIndex);\n updateButtonStates();\n });\n navButtons.appendChild(prevButton);\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Puzzle\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n currentPuzzleIndex++;\n displayPuzzle(currentPuzzleIndex);\n updateButtonStates();\n });\n navButtons.appendChild(nextButton);\n contentArea.appendChild(navButtons);\n\n function updateButtonStates() {\n prevButton.disabled = currentPuzzleIndex === 0;\n nextButton.disabled = currentPuzzleIndex === contentData.puzzles.length - 1;\n }\n\n function createMultipleChoiceInput(options) {\n var select = document.createElement(\"select\");\n select.classList.add(\"select\"); \n\n options.forEach(function (option) {\n var optionElement = document.createElement(\"option\");\n optionElement.value = option;\n optionElement.textContent = option;\n select.appendChild(optionElement);\n });\n return select;\n }\n\n function createNumberInput() {\n var input = document.createElement(\"input\");\n input.type = \"number\";\n input.classList.add(\"input\");\n return input;\n }\n\n function createTextInput() {\n var input = document.createElement(\"input\");\n input.type = \"text\";\n input.classList.add(\"input\");\n return input;\n }\n\n}\n\nfunction createMoneyMathGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var feedbackArea = document.getElementById(feedbackAreaId); \n\n var currentScenarioIndex = 0;\n var scenarios = contentData.scenarios;\n displayScenario(currentScenarioIndex);\n function displayScenario(index) {\n var scenario = scenarios[index];\n contentArea.innerHTML = \"\"; \n contentArea.appendChild(title); \n\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\">\".concat(scenario.scenario, \"</p>\");\n contentArea.innerHTML += \"<p class=\\\"paragraph\\\"><strong>Task:</strong> \".concat(scenario.task, \"</p>\");\n\n var input = document.createElement(typeof scenario.solution === 'number' ? 'input' : 'textarea');\n input.type = typeof scenario.solution === 'number' ? 'number' : 'text';\n input.classList.add(\"input\"); \n input.id = \"scenario-answer\";\n contentArea.appendChild(input);\n\n var checkButton = document.createElement(\"button\");\n checkButton.textContent = \"Check Answer\";\n checkButton.classList.add(\"btn\", \"btn-primary\");\n checkButton.addEventListener(\"click\", function () {\n return checkAnswer(index);\n });\n contentArea.appendChild(checkButton);\n\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"\";\n }\n function checkAnswer(index) {\n var scenario = scenarios[index];\n var userInput = document.getElementById(\"scenario-answer\").value.trim();\n var isCorrect;\n if (typeof scenario.solution === \"number\") {\n var userNumber = parseFloat(userInput);\n isCorrect = !isNaN(userNumber) && userNumber === scenario.solution;\n } else {\n isCorrect = userInput.toLowerCase() === scenario.solution.toLowerCase();\n }\n var feedbackMessage = document.createElement(\"p\");\n feedbackMessage.textContent = isCorrect ? scenario.feedback || \"Correct!\" : scenario.feedback || \"Incorrect. Try again.\";\n feedbackMessage.classList.add(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\"); \n feedbackArea.appendChild(feedbackMessage);\n\n var navButtons = document.createElement(\"div\");\n navButtons.classList.add(\"button-container\", \"centered-button\");\n if (index > 0) {\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous Scenario\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", function () {\n return displayScenario(index - 1);\n });\n navButtons.appendChild(prevButton);\n }\n if (index < scenarios.length - 1) {\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next Scenario\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", function () {\n return displayScenario(index + 1);\n });\n navButtons.appendChild(nextButton);\n } else {\n var restartButton = document.createElement(\"button\");\n restartButton.textContent = \"Restart\";\n restartButton.classList.add(\"btn\", \"btn-primary\");\n restartButton.addEventListener(\"click\", function () {\n return displayScenario(0);\n });\n navButtons.appendChild(restartButton);\n }\n contentArea.appendChild(navButtons);\n }\n}\n\nfunction createMathWordProblems(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n var feedbackArea = document.getElementById(feedbackAreaId); \n\n var currentProblemIndex = 0;\n var score = 0;\n var problems = contentData.problems;\n var numProblems = problems.length;\n\n function displayProblem(index) {\n var problem = problems[index];\n contentArea.innerHTML = \"\\n <p class=\\\"paragraph\\\">\".concat(problem.problem, \"</p>\\n <input type=\\\"text\\\" id=\\\"answerInput\\\" class=\\\"input\\\" placeholder=\\\"Enter your answer\\\" />\\n <button id=\\\"submitButton\\\" class=\\\"btn btn-primary\\\">Submit</button>\\n \");\n document.getElementById(\"submitButton\").addEventListener(\"click\", checkAnswer);\n }\n\n function checkAnswer() {\n var userAnswer = document.getElementById(\"answerInput\").value.trim();\n if (userAnswer === \"\") {\n feedbackArea.innerHTML = '<p class=\"error\">Please enter an answer.</p>';\n return; \n }\n var currentProblem = problems[currentProblemIndex];\n var isCorrect = checkAnswerLogic(userAnswer, currentProblem.solution); \n\n if ((typeof result === \"undefined\" ? \"undefined\" : _typeof(result)) === 'object' && result.partialMatch) {\n feedbackArea.innerHTML = \"<p class=\\\"partially-correct-feedback\\\">\".concat(result.message, \"</p>\");\n } else {\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(result ? \"correct-feedback\" : \"incorrect-feedback\", \"\\\">\").concat(result ? \"Correct!\" : \"Incorrect. The answer is \".concat(currentProblem.solution, \".\"), \"</p>\");\n if (result) {\n score++;\n }\n }\n feedbackArea.innerHTML = \"<p class=\\\"\".concat(isCorrect ? \"correct-feedback\" : \"incorrect-feedback\", \"\\\">\").concat(isCorrect ? currentProblem.explanation || \"Correct!\" : currentProblem.explanation || \"Incorrect. Try again.\", \"</p>\");\n if (isCorrect) {\n score++;\n }\n if (currentProblemIndex < numProblems - 1) {\n currentProblemIndex++;\n setTimeout(function () {\n return displayProblem(currentProblemIndex);\n }, 1000); \n } else {\n endQuiz();\n }\n }\n\n function endQuiz() {\n contentArea.innerHTML = \"\\n <h2 class=\\\"title\\\">Quiz Finished!</h2>\\n <p class=\\\"paragraph\\\">Your final score: \".concat(score, \"/\").concat(numProblems, \"</p>\\n \");\n }\n\n function checkAnswerLogic(userAnswer, correctAnswer) {\n if (!isNaN(parseFloat(correctAnswer))) {\n var userNumber = parseFloat(userAnswer);\n var correctNumber = parseFloat(correctAnswer);\n\n var tolerance = 0.01; \n\n if (!isNaN(userNumber) && Math.abs(userNumber - correctNumber) < tolerance) {\n return true;\n } else {\n return false;\n }\n } else {\n var normalizedUserAnswer = userAnswer.trim().toLowerCase();\n var normalizedCorrectAnswer = correctAnswer.trim().toLowerCase();\n\n if (normalizedUserAnswer === normalizedCorrectAnswer) {\n return true;\n }\n\n var missingUnits = !normalizedUserAnswer.includes(normalizedCorrectAnswer);\n if (missingUnits && normalizedUserAnswer.replace(/\\s+/g, '') === normalizedCorrectAnswer.replace(/\\s+/g, '')) {\n return {\n partialMatch: true,\n message: \"Correct, but don't forget the units!\"\n }; \n }\n\n\n return false;\n }\n }\n\n displayProblem(currentProblemIndex);\n}\n\nfunction createMathVocabularyBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var currentCardIndex = 0;\n var cards = contentData.terms; \n\n if (!cards || cards.length === 0) {\n displayErrorMessage(\"No vocabulary terms found.\");\n return;\n }\n\n var flashcard = document.createElement(\"div\");\n flashcard.classList.add(\"flashcard\");\n contentArea.appendChild(flashcard);\n var front = document.createElement(\"div\");\n front.classList.add(\"flashcard-front\", \"paragraph\"); \n flashcard.appendChild(front);\n var back = document.createElement(\"div\");\n back.classList.add(\"flashcard-back\", \"paragraph\");\n flashcard.appendChild(back);\n\n var buttonsContainer = document.createElement(\"div\");\n buttonsContainer.classList.add(\"button-container\", \"centered-button\");\n var prevButton = document.createElement(\"button\");\n prevButton.textContent = \"Previous\";\n prevButton.classList.add(\"btn\", \"btn-secondary\");\n prevButton.addEventListener(\"click\", showPreviousCard);\n buttonsContainer.appendChild(prevButton);\n var nextButton = document.createElement(\"button\");\n nextButton.textContent = \"Next\";\n nextButton.classList.add(\"btn\", \"btn-primary\");\n nextButton.addEventListener(\"click\", showNextCard);\n buttonsContainer.appendChild(nextButton);\n contentArea.appendChild(buttonsContainer); \n\n function showCard(index) {\n var card = cards[index];\n front.innerHTML = \"\";\n back.innerHTML = \"\";\n front.innerHTML = \"<p class=\\\"paragraph\\\"><strong>\".concat(card.term, \"</strong></p>\");\n if (card.image) {\n var image = document.createElement(\"img\");\n image.src = card.image;\n image.alt = card.term;\n image.classList.add(\"vocabulary-image\");\n front.appendChild(image);\n }\n var definition = document.createElement(\"p\");\n definition.textContent = card.definition;\n back.appendChild(definition);\n if (card.example) {\n var example = document.createElement(\"p\");\n example.textContent = \"Example: \".concat(card.example);\n back.appendChild(example);\n }\n }\n function showPreviousCard() {\n currentCardIndex = (currentCardIndex - 1 + cards.length) % cards.length;\n showCard(currentCardIndex);\n updateButtonStates();\n }\n function showNextCard() {\n currentCardIndex = (currentCardIndex + 1) % cards.length;\n showCard(currentCardIndex);\n updateButtonStates();\n }\n function updateButtonStates() {\n prevButton.disabled = currentCardIndex === 0;\n nextButton.disabled = currentCardIndex === cards.length - 1;\n }\n\n flashcard.addEventListener(\"click\", function () {\n flashcard.classList.toggle(\"flipped\");\n });\n\n showCard(currentCardIndex);\n}\n\nfunction createMathConceptExplainer(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var chatContainer = document.createElement(\"div\");\n chatContainer.classList.add(\"chatbot-container\");\n var chatMessages = document.createElement(\"div\");\n chatMessages.classList.add(\"chat-messages\");\n chatContainer.appendChild(chatMessages);\n var inputArea = document.createElement(\"div\");\n inputArea.classList.add(\"chatbot-input\");\n var inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.classList.add(\"input\");\n inputField.placeholder = \"Ask me about a math concept...\";\n var sendButton = document.createElement(\"button\");\n sendButton.textContent = \"Send\";\n sendButton.classList.add(\"btn\", \"btn-primary\");\n inputArea.appendChild(inputField);\n inputArea.appendChild(sendButton);\n chatContainer.appendChild(inputArea);\n contentArea.appendChild(chatContainer);\n\n displayBotMessage(\"Hello! How can I help you with math concepts?\");\n\n sendButton.addEventListener(\"click\", function () {\n var userQuestion = inputField.value.trim();\n if (userQuestion !== \"\") {\n displayUserMessage(userQuestion);\n getBotResponse(userQuestion);\n inputField.value = \"\";\n }\n });\n\n function displayUserMessage(message) {\n var messageElement = document.createElement(\"div\");\n messageElement.classList.add(\"chat-message\", \"user-message\");\n messageElement.textContent = message;\n chatMessages.appendChild(messageElement);\n }\n\n function displayBotMessage(message) {\n var messageElement = document.createElement(\"div\");\n messageElement.classList.add(\"chat-message\", \"bot-message\");\n messageElement.textContent = message;\n chatMessages.appendChild(messageElement);\n chatMessages.scrollTop = chatMessages.scrollHeight; \n }\n\n function getBotResponse(question) {\n var concept = contentData.concepts.find(function (c) {\n return c.name.toLowerCase() === question.toLowerCase();\n });\n if (concept) {\n displayBotMessage(\"\".concat(concept.explanation, \" \").concat(concept.examples ? 'For example: ' + concept.examples.join(\", \") : ''));\n } else {\n displayBotMessage(\"I don't have information about that concept yet.\");\n }\n }\n}\n\nfunction createTextSimulation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.title || !contentData.scenario || !contentData.steps) {\n console.error(\"Invalid or missing data for text simulation.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading simulation. Please try again.</p>\";\n return;\n }\n var simulationContainer = document.createElement('div');\n simulationContainer.classList.add('simulation-container');\n\n\n var scenarioElement = document.createElement('p');\n scenarioElement.textContent = contentData.scenario;\n simulationContainer.appendChild(scenarioElement);\n\n\n var stepsContainer = document.createElement('div');\n stepsContainer.classList.add('simulation-steps');\n\n var currentStepIndex = 0;\n var currentVariables = _objectSpread({}, contentData.variables); \n\n function showCurrentStep() {\n stepsContainer.innerHTML = \"\";\n var step = contentData.steps[currentStepIndex];\n\n var stepTextElement = document.createElement('p');\n stepTextElement.classList.add('paragraph');\n stepTextElement.textContent = step.text;\n stepsContainer.appendChild(stepTextElement);\n\n var choicesList = document.createElement('ul');\n step.choices.forEach(function (choice) {\n var choiceItem = document.createElement('li');\n var choiceButton = document.createElement('button');\n choiceButton.classList.add('btn');\n choiceButton.textContent = choice.text;\n choiceButton.addEventListener('click', function () {\n for (var varName in choice.effect) {\n currentVariables[varName] += choice.effect[varName];\n }\n\n if (currentStepIndex + 1 < contentData.steps.length) {\n currentStepIndex++;\n showCurrentStep();\n } else {\n showOutcome();\n }\n });\n choiceItem.appendChild(choiceButton);\n choicesList.appendChild(choiceItem);\n });\n stepsContainer.appendChild(choicesList);\n }\n function showOutcome() {\n stepsContainer.innerHTML = \"\";\n\n\n var outcomeElement = document.createElement('p');\n outcomeElement.textContent = outcome;\n stepsContainer.appendChild(outcomeElement);\n }\n simulationContainer.appendChild(stepsContainer);\n contentArea.appendChild(simulationContainer);\n showCurrentStep(); \n}\n\nfunction createVirtualLab(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.title || !contentData.introduction || !contentData.materials || !contentData.procedure) {\n console.error(\"Invalid or missing data for virtual lab.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading virtual lab. Please try again.</p>\";\n return;\n }\n var labContainer = document.createElement('div');\n labContainer.classList.add('virtual-lab-container');\n\n var introElement = document.createElement('p');\n introElement.classList.add('paragraph');\n introElement.textContent = contentData.introduction;\n labContainer.appendChild(introElement);\n\n var materialsList = document.createElement('ul');\n contentData.materials.forEach(function (material) {\n var materialItem = document.createElement('li');\n materialItem.textContent = material;\n materialsList.appendChild(materialItem);\n });\n labContainer.appendChild(materialsList);\n\n var procedureList = document.createElement('ol');\n contentData.procedure.forEach(function (step) {\n var stepItem = document.createElement('li');\n stepItem.textContent = step;\n procedureList.appendChild(stepItem);\n });\n labContainer.appendChild(procedureList);\n\n if (contentData.data && contentData.data.length > 0) {\n var dataContainer = document.createElement('div');\n dataContainer.classList.add('lab-data');\n labContainer.appendChild(dataContainer);\n }\n\n var questionsContainer = document.createElement('div');\n questionsContainer.classList.add('lab-questions');\n contentData.questions.forEach(function (question) {\n var questionElement = document.createElement('p');\n questionElement.textContent = question;\n questionsContainer.appendChild(questionElement);\n });\n labContainer.appendChild(questionsContainer);\n contentArea.appendChild(labContainer);\n}\n\nfunction createTextGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.title || !contentData.games || !Array.isArray(contentData.games)) {\n console.error(\"Invalid or missing data for text-based games.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading games. Please try again.</p>\";\n return;\n }\n var gamesContainer = document.createElement('div');\n gamesContainer.classList.add('text-games-container');\n contentData.games.forEach(function (game, gameIndex) {\n var gameContainer = document.createElement('div');\n gameContainer.classList.add('game-container', game.gameType);\n var gameTitle = document.createElement('h3');\n gameTitle.textContent = \"\".concat(game.gameType.toUpperCase(), \" Game \").concat(gameIndex + 1);\n gameContainer.appendChild(gameTitle);\n switch (game.gameType) {\n case \"trivia\":\n createTriviaGame(gameContainer, game.questions);\n break;\n case \"wordSearch\":\n createWordSearchGame(gameContainer, game.questions);\n break;\n case \"riddle\":\n createRiddleGame(gameContainer, game.questions);\n break;\n default:\n console.error(\"Unknown game type: \".concat(game.gameType));\n break;\n }\n gamesContainer.appendChild(gameContainer);\n });\n contentArea.appendChild(gamesContainer);\n}\nfunction createTriviaGame(gameContainer, questions) {\n questions.forEach(function (question, questionIndex) {\n var questionElement = document.createElement('div');\n questionElement.classList.add('trivia-question');\n var questionText = document.createElement('p');\n questionText.textContent = \"\".concat(questionIndex + 1, \". \").concat(question.question);\n questionElement.appendChild(questionText);\n var answerInput = document.createElement('input');\n answerInput.type = 'text';\n answerInput.placeholder = 'Enter your answer';\n questionElement.appendChild(answerInput);\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden'); \n questionElement.appendChild(feedbackElement);\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim();\n var isCorrect = userAnswer.toLowerCase() === question.answer.toLowerCase();\n feedbackElement.classList.remove('hidden');\n feedbackElement.textContent = isCorrect ? 'Correct!' : 'Incorrect. Try again.';\n if (!isCorrect && question.hints && question.hints.length > 0) {\n feedbackElement.textContent += \" Hint: \".concat(question.hints[0]);\n }\n });\n questionElement.appendChild(checkAnswerButton);\n gameContainer.appendChild(questionElement);\n });\n}\nfunction createWordSearchGame(gameContainer, questions) {\n\n\n gameContainer.innerHTML = 'Word Search game content'; \n}\nfunction createRiddleGame(gameContainer, questions) {\n questions.forEach(function (question, questionIndex) {\n var questionElement = document.createElement('div');\n questionElement.classList.add('riddle-question');\n var questionText = document.createElement('p');\n questionText.textContent = \"\".concat(questionIndex + 1, \". \").concat(question.question);\n questionElement.appendChild(questionText);\n var answerInput = document.createElement('input');\n answerInput.type = 'text';\n answerInput.placeholder = 'Enter your answer';\n questionElement.appendChild(answerInput);\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden'); \n questionElement.appendChild(feedbackElement);\n var currentHintIndex = 0;\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim();\n var isCorrect = userAnswer.toLowerCase() === question.answer.toLowerCase();\n feedbackElement.classList.remove('hidden');\n if (isCorrect) {\n feedbackElement.textContent = 'Correct!';\n } else {\n if (question.hints && currentHintIndex < question.hints.length) {\n feedbackElement.textContent = \"Incorrect. Hint: \".concat(question.hints[currentHintIndex]);\n currentHintIndex++;\n } else {\n feedbackElement.textContent = 'Incorrect. Try again.';\n }\n }\n });\n questionElement.appendChild(checkAnswerButton);\n gameContainer.appendChild(questionElement);\n });\n}\n\nfunction createDebate(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.topic || !contentData.stance || !contentData.arguments) {\n console.error(\"Invalid or missing data for debate.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading debate. Please try again.</p>\";\n return;\n }\n var debateContainer = document.createElement('div');\n debateContainer.classList.add('debate-container');\n\n var stanceElement = document.createElement('p');\n stanceElement.classList.add('paragraph', contentData.stance); \n stanceElement.textContent = \"Stance: \".concat(contentData.stance.toUpperCase());\n debateContainer.appendChild(stanceElement);\n\n var argumentsContainer = document.createElement('div');\n argumentsContainer.classList.add('arguments-container');\n contentData.arguments.forEach(function (argument) {\n var argumentElement = document.createElement('div');\n argumentElement.classList.add('argument', argument.type);\n var statementElement = document.createElement('p');\n statementElement.classList.add('statement');\n statementElement.textContent = argument.statement;\n argumentElement.appendChild(statementElement);\n var evidenceElement = document.createElement('p');\n evidenceElement.classList.add('evidence');\n evidenceElement.textContent = argument.evidence;\n argumentElement.appendChild(evidenceElement);\n\n var rebuttalElement = document.createElement('div');\n rebuttalElement.classList.add('rebuttal');\n argumentElement.appendChild(rebuttalElement);\n argumentsContainer.appendChild(argumentElement);\n });\n debateContainer.appendChild(argumentsContainer);\n contentArea.appendChild(debateContainer);\n}\n\nfunction createStructuredProject(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.title || !contentData.description || !contentData.objectives) {\n console.error(\"Invalid or missing data for structured project.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading project idea. Please try again.</p>\";\n return;\n }\n\n var descriptionElement = document.createElement('p');\n descriptionElement.classList.add('project-description');\n descriptionElement.textContent = contentData.description;\n contentArea.appendChild(descriptionElement);\n\n var objectivesHeading = document.createElement('h3');\n objectivesHeading.textContent = \"Objectives:\";\n contentArea.appendChild(objectivesHeading);\n var objectivesList = document.createElement('ul');\n objectivesList.classList.add('project-objectives', 'list-disc', 'list-inside'); \n contentData.objectives.forEach(function (objective) {\n var objectiveItem = document.createElement('li');\n objectiveItem.textContent = objective;\n objectivesList.appendChild(objectiveItem);\n });\n contentArea.appendChild(objectivesList);\n\n if (contentData.steps) {\n var stepsHeading = document.createElement('h3'); \n stepsHeading.textContent = \"Steps:\";\n contentArea.appendChild(stepsHeading);\n var stepsList = document.createElement('ol');\n stepsList.classList.add('project-steps', 'list-decimal', 'list-inside'); \n contentData.steps.forEach(function (step) {\n var stepItem = document.createElement('li');\n stepItem.textContent = step;\n stepsList.appendChild(stepItem);\n });\n contentArea.appendChild(stepsList);\n }\n\n if (contentData.materials) {\n var materialsHeading = document.createElement('h3'); \n materialsHeading.textContent = \"Materials:\";\n contentArea.appendChild(materialsHeading);\n var materialsList = document.createElement('ul');\n materialsList.classList.add('project-materials', 'list-disc', 'list-inside'); \n contentData.materials.forEach(function (material) {\n var materialItem = document.createElement('li');\n materialItem.textContent = material;\n materialsList.appendChild(materialItem);\n });\n contentArea.appendChild(materialsList);\n }\n\n if (contentData.assessmentCriteria) {\n var criteriaHeading = document.createElement('h3'); \n criteriaHeading.textContent = \"Assessment Criteria:\";\n contentArea.appendChild(criteriaHeading);\n var criteriaList = document.createElement('ul');\n criteriaList.classList.add('project-assessment', 'list-disc', 'list-inside'); \n contentData.assessmentCriteria.forEach(function (criterion) {\n var criterionItem = document.createElement('li');\n criterionItem.textContent = criterion;\n criteriaList.appendChild(criterionItem);\n });\n contentArea.appendChild(criteriaList);\n }\n\n}\n\nfunction createMysteryGame(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (!contentData || !contentData.title || !contentData.setting || !contentData.mystery || !contentData.clues) {\n console.error(\"Invalid or missing data for mystery game.\");\n contentArea.innerHTML = \"<p class='error-message'>Error loading mystery game. Please try again.</p>\";\n return;\n }\n var mysteryGameContainer = document.createElement('div');\n mysteryGameContainer.classList.add('mystery-game-container');\n\n var settingElement = document.createElement('p');\n settingElement.textContent = contentData.setting;\n mysteryGameContainer.appendChild(settingElement);\n\n var mysteryElement = document.createElement('p');\n mysteryElement.textContent = contentData.mystery;\n mysteryGameContainer.appendChild(mysteryElement);\n\n var cluesContainer = document.createElement('div');\n cluesContainer.classList.add('clues-container');\n contentData.clues.forEach(function (clue) {\n var clueElement = document.createElement('div');\n clueElement.classList.add('clue');\n var clueText = document.createElement('p');\n clueText.textContent = clue.clue;\n clueElement.appendChild(clueText);\n var revealButton = document.createElement('button');\n revealButton.classList.add('btn'); \n revealButton.textContent = 'Reveal Solution';\n revealButton.addEventListener('click', function () {\n var solutionElement = clueElement.querySelector('.solution');\n var hintElement = clueElement.querySelector('.hint');\n solutionElement.classList.remove('hidden');\n if (hintElement) {\n hintElement.classList.remove('hidden');\n }\n });\n clueElement.appendChild(revealButton);\n var solutionElement = document.createElement('p');\n solutionElement.classList.add('solution', 'hidden');\n solutionElement.textContent = clue.solution;\n clueElement.appendChild(solutionElement);\n if (clue.hint) {\n var hintElement = document.createElement('p');\n hintElement.classList.add('hint', 'hidden');\n hintElement.textContent = \"Hint: \".concat(clue.hint);\n clueElement.appendChild(hintElement);\n }\n cluesContainer.appendChild(clueElement);\n });\n mysteryGameContainer.appendChild(cluesContainer);\n contentArea.appendChild(mysteryGameContainer);\n}\n\nfunction createRolePlayingGame(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n var generatedContent = contentArea; \n\n if (!contentData || !contentData.title || !contentData.setting || !contentData.characters || !contentData.scenarios || !Array.isArray(contentData.characters) || !Array.isArray(contentData.scenarios)) {\n console.error(\"Invalid or missing data for role-playing game.\");\n\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading role-playing game. Please try again.</p>\";\n return;\n }\n var rpgContainer = document.createElement('div');\n rpgContainer.classList.add('rpg-container');\n\n var charactersSection = document.createElement('section');\n charactersSection.classList.add('rpg-characters');\n rpgContainer.appendChild(charactersSection);\n var charactersTitle = document.createElement('h3');\n charactersTitle.textContent = \"Characters\";\n charactersSection.appendChild(charactersTitle);\n var charactersList = document.createElement('ul');\n contentData.characters.forEach(function (character) {\n var characterItem = document.createElement('li');\n characterItem.innerHTML = \"<strong>\".concat(character.name, \"</strong> (\").concat(character.role, \"): \").concat(character.description);\n\n if (character.resources) {\n var resourcesList = document.createElement('ul');\n for (var resource in character.resources) {\n var resourceItem = document.createElement('li');\n resourceItem.textContent = \"\".concat(resource, \": \").concat(character.resources[resource]);\n resourcesList.appendChild(resourceItem);\n }\n characterItem.appendChild(resourcesList);\n }\n charactersList.appendChild(characterItem);\n });\n charactersSection.appendChild(charactersList);\n\n var scenariosSection = document.createElement('section');\n scenariosSection.classList.add('rpg-scenarios');\n rpgContainer.appendChild(scenariosSection);\n var currentScenarioIndex = 0;\n function showCurrentScenario() {\n scenariosSection.innerHTML = \"\"; \n\n var scenario = contentData.scenarios[currentScenarioIndex];\n var scenarioDescription = document.createElement('p');\n scenarioDescription.textContent = scenario.description;\n scenariosSection.appendChild(scenarioDescription);\n var choicesList = document.createElement('ul');\n scenario.choices.forEach(function (choice) {\n var choiceItem = document.createElement('li');\n var choiceButton = document.createElement('button');\n choiceButton.textContent = choice.text;\n choiceButton.classList.add('btn'); \n\n choiceButton.addEventListener('click', function () {\n console.log(\"Choice:\", choice.text);\n\n if (currentScenarioIndex + 1 < contentData.scenarios.length) {\n currentScenarioIndex++;\n showCurrentScenario();\n } else {\n }\n });\n choiceItem.appendChild(choiceButton);\n choicesList.appendChild(choiceItem);\n });\n scenariosSection.appendChild(choicesList);\n }\n\n showCurrentScenario();\n generatedContent.appendChild(rpgContainer); \n}\n\nfunction createEscapeRoom(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.puzzles || !Array.isArray(contentData.puzzles)) {\n console.error(\"Invalid or missing data for escape room.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading escape room. Please try again.</p>\";\n return;\n }\n var escapeRoomContainer = document.createElement('div');\n escapeRoomContainer.classList.add('escape-room-container');\n contentData.puzzles.forEach(function (puzzleData, index) {\n var puzzleContainer = document.createElement('div');\n puzzleContainer.classList.add('puzzle-container');\n var puzzleTitle = document.createElement('h3');\n puzzleTitle.textContent = \"Puzzle \".concat(index + 1);\n puzzleContainer.appendChild(puzzleTitle);\n var puzzleText = document.createElement('p');\n puzzleText.textContent = puzzleData.puzzle;\n puzzleContainer.appendChild(puzzleText);\n var answerInput = document.createElement('input');\n answerInput.type = 'text';\n answerInput.placeholder = 'Enter your answer';\n puzzleContainer.appendChild(answerInput);\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden');\n puzzleContainer.appendChild(feedbackElement);\n var currentHintIndex = 0;\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim().toLowerCase();\n var correctAnswer = puzzleData.solution.toLowerCase();\n feedbackElement.classList.remove('hidden');\n if (userAnswer === correctAnswer) {\n feedbackElement.textContent = 'Correct! You solved the puzzle.';\n } else {\n if (puzzleData.hints && currentHintIndex < puzzleData.hints.length) {\n feedbackElement.textContent = \"Incorrect. Hint: \".concat(puzzleData.hints[currentHintIndex]);\n currentHintIndex++;\n } else {\n feedbackElement.textContent = 'Incorrect. Try again.';\n }\n }\n });\n puzzleContainer.appendChild(checkAnswerButton);\n escapeRoomContainer.appendChild(puzzleContainer);\n });\n contentArea.appendChild(escapeRoomContainer);\n}\n\nfunction createProblemSolvingChallenge(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.problem || !contentData.steps || !contentData.answer) {\n console.error(\"Invalid or missing data for problem-solving challenge.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading problem-solving challenge. Please try again.</p>\";\n return;\n }\n var challengeContainer = document.createElement('div');\n challengeContainer.classList.add('problem-solving-container');\n\n var problemElement = document.createElement('p');\n problemElement.classList.add('problem-statement', 'paragraph');\n problemElement.textContent = contentData.problem;\n challengeContainer.appendChild(problemElement);\n\n var stepsList = document.createElement('ol');\n stepsList.classList.add('problem-steps');\n contentData.steps.forEach(function (step) {\n var stepItem = document.createElement('li');\n stepItem.textContent = step;\n stepsList.appendChild(stepItem);\n });\n challengeContainer.appendChild(stepsList);\n\n var answerInput = document.createElement('input');\n answerInput.type = 'text';\n answerInput.placeholder = 'Enter your answer';\n challengeContainer.appendChild(answerInput);\n\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden');\n challengeContainer.appendChild(feedbackElement);\n var hintsShown = 0;\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim().toLowerCase();\n var correctAnswer = contentData.answer.toLowerCase();\n feedbackElement.classList.remove('hidden');\n if (userAnswer === correctAnswer) {\n feedbackElement.textContent = 'Correct!';\n feedbackElement.classList.add('correct-answer'); \n } else {\n if (contentData.hints && hintsShown < contentData.hints.length) {\n feedbackElement.textContent = \"Incorrect. Hint: \".concat(contentData.hints[hintsShown]);\n hintsShown++;\n } else {\n feedbackElement.textContent = 'Incorrect. The answer is: ' + contentData.answer;\n feedbackElement.classList.add('incorrect-answer'); \n }\n }\n });\n challengeContainer.appendChild(checkAnswerButton);\n contentArea.appendChild(challengeContainer);\n}\n\n\nfunction createScavengerHunt(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.clues || !Array.isArray(contentData.clues)) {\n console.error(\"Invalid or missing data for scavenger hunt.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading scavenger hunt. Please try again.</p>\";\n return;\n }\n var scavengerHuntContainer = document.createElement('div');\n scavengerHuntContainer.classList.add('scavenger-hunt-container');\n var currentClueIndex = 0;\n var completedClues = 0;\n var totalClues = contentData.clues.length;\n function displayClue() {\n var clue = contentData.clues[currentClueIndex];\n var clueElement = document.createElement('div');\n clueElement.classList.add('clue-container');\n var clueText = document.createElement('p');\n clueText.classList.add('clue-text');\n clueText.textContent = clue.clue;\n clueElement.appendChild(clueText);\n var answerInput = document.createElement('input');\n answerInput.type = 'text';\n answerInput.placeholder = 'Enter your answer';\n clueElement.appendChild(answerInput);\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden');\n clueElement.appendChild(feedbackElement);\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim().toLowerCase();\n var correctAnswer = clue.solution.toLowerCase();\n feedbackElement.classList.remove('hidden');\n if (userAnswer === correctAnswer) {\n feedbackElement.textContent = 'Correct! Move on to the next clue.';\n feedbackElement.classList.add('correct-answer');\n completedClues++;\n if (completedClues === totalClues) {\n var completionMessage = document.createElement('p');\n completionMessage.textContent = 'Congratulations! You completed the scavenger hunt.';\n scavengerHuntContainer.appendChild(completionMessage);\n } else {\n currentClueIndex++;\n setTimeout(displayClue, 1000); \n }\n } else {\n feedbackElement.textContent = 'Incorrect. Try again.';\n feedbackElement.classList.add('incorrect-answer');\n }\n });\n clueElement.appendChild(checkAnswerButton);\n scavengerHuntContainer.appendChild(clueElement);\n }\n displayClue(); \n contentArea.appendChild(scavengerHuntContainer);\n}\n\n\nfunction createDataAnalysisChallenge(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.dataSet || !contentData.questions) {\n console.error(\"Invalid or missing data for data analysis challenge.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading data analysis challenge. Please try again.</p>\";\n return;\n }\n var challengeContainer = document.createElement('div');\n challengeContainer.classList.add('data-analysis-container');\n\n var titleElement = document.createElement('h2');\n titleElement.textContent = contentData.title;\n challengeContainer.appendChild(titleElement);\n\n var datasetContainer = document.createElement('div');\n datasetContainer.classList.add('dataset-container');\n if (typeof contentData.dataSet === 'string') {\n var datasetParagraph = document.createElement('p');\n datasetParagraph.textContent = contentData.dataSet;\n datasetContainer.appendChild(datasetParagraph);\n } else if (Array.isArray(contentData.dataSet)) {\n var datasetTable = document.createElement('table');\n var headerRow = datasetTable.insertRow();\n contentData.dataSet[0].forEach(function (header) {\n var th = document.createElement('th');\n th.textContent = header;\n headerRow.appendChild(th);\n });\n contentData.dataSet.slice(1).forEach(function (row) {\n var tr = datasetTable.insertRow();\n row.forEach(function (cell) {\n var td = tr.insertCell();\n td.textContent = cell;\n });\n });\n datasetContainer.appendChild(datasetTable);\n }\n challengeContainer.appendChild(datasetContainer);\n\n var questionsContainer = document.createElement('div');\n questionsContainer.classList.add('questions-container');\n contentData.questions.forEach(function (question, index) {\n var questionElement = document.createElement('div');\n questionElement.classList.add('question');\n var questionText = document.createElement('p');\n questionText.textContent = question;\n questionElement.appendChild(questionText);\n var answerInput = document.createElement('textarea');\n answerInput.placeholder = 'Enter your answer here...';\n questionElement.appendChild(answerInput);\n var feedbackElement = document.createElement('p');\n feedbackElement.classList.add('feedback', 'hidden');\n questionElement.appendChild(feedbackElement);\n var checkAnswerButton = document.createElement('button');\n checkAnswerButton.classList.add('btn'); \n checkAnswerButton.textContent = 'Check Answer';\n checkAnswerButton.addEventListener('click', function () {\n var userAnswer = answerInput.value.trim().toLowerCase(); \n var correctAnswer = contentData.questions[index].answer.toLowerCase(); \n\n feedbackElement.classList.remove('hidden');\n\n if (userAnswer === correctAnswer) {\n feedbackElement.textContent = 'Correct!';\n feedbackElement.classList.add('correct-answer');\n } else {\n if (contentData.questions[index].hints && contentData.questions[index].hints.length > 0) {\n feedbackElement.textContent = \"Incorrect. Hint: \".concat(contentData.questions[index].hints.shift());\n } else {\n feedbackElement.textContent = 'Incorrect. Please try again.';\n feedbackElement.classList.add('incorrect-answer');\n }\n }\n });\n questionElement.appendChild(checkAnswerButton);\n questionsContainer.appendChild(questionElement);\n });\n challengeContainer.appendChild(questionsContainer);\n\n if (contentData.hints && contentData.hints.length > 0) {\n var currentHintIndex = 0;\n var hintButton = document.createElement('button');\n hintButton.classList.add('btn'); \n hintButton.textContent = 'Show Hint';\n hintButton.addEventListener('click', function () {\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.textContent = contentData.hints[currentHintIndex];\n currentHintIndex = (currentHintIndex + 1) % contentData.hints.length;\n });\n challengeContainer.appendChild(hintButton);\n }\n contentArea.appendChild(challengeContainer);\n}\n\n\nfunction createHypothesisTesting(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.hypothesis || !contentData.experimentDesign || !contentData.dataCollection || !contentData.dataAnalysis || !contentData.conclusionTemplate) {\n console.error(\"Invalid or missing data for hypothesis testing.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading hypothesis testing activity. Please try again.</p>\";\n return;\n }\n var hypothesisContainer = document.createElement('div');\n hypothesisContainer.classList.add('hypothesis-testing-container');\n\n var titleElement = document.createElement('h2');\n titleElement.textContent = contentData.title;\n hypothesisContainer.appendChild(titleElement);\n\n var hypothesisElement = document.createElement('p');\n hypothesisElement.textContent = \"Hypothesis: \".concat(contentData.hypothesis);\n hypothesisContainer.appendChild(hypothesisElement);\n\n var experimentDesignElement = document.createElement('p');\n experimentDesignElement.textContent = \"Experiment Design: \".concat(contentData.experimentDesign);\n hypothesisContainer.appendChild(experimentDesignElement);\n\n var dataCollectionElement = document.createElement('p');\n dataCollectionElement.textContent = \"Data Collection: \".concat(contentData.dataCollection);\n hypothesisContainer.appendChild(dataCollectionElement);\n\n var dataAnalysisElement = document.createElement('p');\n dataAnalysisElement.textContent = \"Data Analysis: \".concat(contentData.dataAnalysis);\n hypothesisContainer.appendChild(dataAnalysisElement);\n\n var conclusionTemplateElement = document.createElement('textarea');\n conclusionTemplateElement.placeholder = contentData.conclusionTemplate;\n conclusionTemplateElement.disabled = true; \n hypothesisContainer.appendChild(conclusionTemplateElement);\n contentArea.appendChild(hypothesisContainer);\n}\n\nfunction createEnhancedQuestionGenerator(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.title || !contentData.topic || !contentData.questions) {\n console.error(\"Invalid or missing data for enhanced question generator.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading question generator. Please try again.</p>\";\n return;\n }\n var challengeContainer = document.createElement('div');\n challengeContainer.classList.add('question-generator-container');\n\n var titleElement = document.createElement('h2');\n titleElement.textContent = contentData.title;\n challengeContainer.appendChild(titleElement);\n\n if (contentData.learningObjectives) {\n var objectivesList = document.createElement('ul');\n contentData.learningObjectives.forEach(function (objective) {\n var objectiveItem = document.createElement('li');\n objectiveItem.textContent = objective;\n objectivesList.appendChild(objectiveItem);\n });\n challengeContainer.appendChild(objectivesList);\n }\n\n var questionsContainer = document.createElement('div');\n questionsContainer.classList.add('questions-container');\n contentData.questions.forEach(function (question, index) {\n var questionElement = document.createElement('div');\n questionElement.classList.add('question');\n var questionText = document.createElement('p');\n questionText.textContent = \"\".concat(index + 1, \". \").concat(question.questionText);\n questionElement.appendChild(questionText);\n if (question.type === \"multipleChoice\") {\n question.options.forEach(function (option) {\n var optionLabel = document.createElement('label');\n var optionInput = document.createElement('input');\n optionInput.type = 'radio';\n optionInput.name = \"question\".concat(index);\n optionInput.value = option;\n optionLabel.appendChild(optionInput);\n optionLabel.appendChild(document.createTextNode(option));\n questionElement.appendChild(optionLabel);\n });\n } else if (question.type === \"trueFalse\") {\n [\"True\", \"False\"].forEach(function (option) {\n var optionLabel = document.createElement('label');\n var optionInput = document.createElement('input');\n optionInput.type = 'radio';\n optionInput.name = \"question\".concat(index);\n optionInput.value = option;\n optionLabel.appendChild(optionInput);\n optionLabel.appendChild(document.createTextNode(option));\n questionElement.appendChild(optionLabel);\n });\n } else if (question.type === \"shortAnswer\" || question.type === \"essay\") {\n var _answerInput = document.createElement('textarea');\n _answerInput.placeholder = 'Enter your answer here...';\n questionElement.appendChild(_answerInput);\n }\n questionsContainer.appendChild(questionElement);\n });\n challengeContainer.appendChild(questionsContainer);\n contentArea.appendChild(challengeContainer);\n}\n\n\n},{}],25:[function(require,module,exports){\n\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.x=exports.topSchoolFormats=exports.rolesData=exports.newTTableData2=exports.newTTableData=void 0;var topSchoolFormats=exports.topSchoolFormats=[{formatName:\"Annotations\"},{formatName:\"Chunking into Smaller Paragraphs\"},{formatName:\"Text Highlighting\"},{formatName:\"Headings and Subheadings\"},{formatName:\"Tables and Charts\"},{formatName:\"Cause and Effect\"},{formatName:\"Short Summary\"},{formatName:\"Detailed Summary\"},{formatName:\"Bullet Points\"},{formatName:\"Simplified Text Language\"},{formatName:\"Examples and Analogies\"},{formatName:\"Interactive E-books\"},{formatName:\"Fill-in-the-Blanks\"},{formatName:\"True/False Statements\"},{formatName:\"Personalized Recommendations\"},{formatName:\"Self-Assessment Quizzes\"},{formatName:\"Flowcharts\"},{formatName:\"Adaptive Branching Stories\"},{formatName:\"Expository Writing\"},{formatName:\"Structural Markers\"},{formatName:\"Socratic Questioning\"},{formatName:\"Contrasting Cases\"},{formatName:\"Temporal Structuring\"},{formatName:\"Practical Applications\"},{formatName:\"Exemplification\"},{formatName:\"Streamlining Content\"}];var rolesData=exports.rolesData={1:\"Admin\",2:\"Instructional Designer\",3:\"Teacher\",4:\"Student\",5:\"Assistant Teacher\",6:\"Reviewer\"};\nvar newTTableData=exports.newTTableData=[{\"No\":2000,\"Category\":\"Recommendations\",\"Format\":\"General Recommendations\",\"Description\":\"Provides a balanced set of recommendations across different categories, suitable for a wide range of lessons and learners.\",\"type\":\"generalRecommendations\",\"functionName\":\"createGeneralRecommendations\"},{\"No\":2002,\"Category\":\"Recommendations\",\"Format\":\"Special Needs Recommendations\",\"Description\":\"Tailored to students with specific learning differences, such as dyslexia or ADHD, emphasizing multisensory learning, assistive technology, and differentiation techniques.\",\"type\":\"specialNeedsRecommendations\",\"functionName\":\"createSpecialNeedsRecommendations\"},{\"No\":2012,\"Category\":\"Recommendations\",\"Format\":\"The Differentiation Dynamo\",\"Description\":\"Recommends formats that cater to diverse learners and offer flexible approaches to content, process, and product.\",\"type\":\"differentiationDynamoRecommendations\",\"functionName\":\"createDifferentiationDynamoRecommendations\"},{\"No\":2024,\"Category\":\"Recommendations\",\"Format\":\"The Assessment Ace\",\"Description\":\"Recommends formats specifically geared towards assessment and feedback, such as formative assessment techniques, rubrics, and self-assessment strategies.\",\"type\":\"assessmentAceRecommendations\",\"functionName\":\"createAssessmentAceRecommendations\"},{\"No\":2025,\"Category\":\"Recommendations\",\"Format\":\"The Classroom Whisperer\",\"Description\":\"Prioritizes formats that foster a positive and productive learning environment, including classroom management techniques, positive behavior supports, and social-emotional learning activities.\",\"type\":\"classroomWhispererRecommendations\",\"functionName\":\"createClassroomWhispererRecommendations\"},{\"No\":2029,\"Category\":\"Recommendations\",\"Format\":\"The Twice-Exceptional Trailblazer\",\"Description\":\"Provides recommendations for twice-exceptional students (gifted with disabilities), combining strategies for both enrichment and support.\",\"type\":\"twiceExceptionalTrailblazerRecommendations\",\"functionName\":\"createTwiceExceptionalTrailblazerRecommendations\"},{\"No\":2031,\"Category\":\"Recommendations\",\"Format\":\"The Project-Based Prodigy\",\"Description\":\"Recommends formats that guide students through project-based learning experiences, emphasizing inquiry, collaboration, and real-world application.\",\"type\":\"projectBasedProdigyRecommendations\",\"functionName\":\"createProjectBasedProdigyRecommendations\"},{\"No\":2001,\"Category\":\"Recommendations\",\"Format\":\"Activity-Rich Recommendations\",\"Description\":\"Prioritizes interactive and engaging activities, suitable for hands-on learners or subjects that benefit from active learning.\",\"type\":\"activityRichRecommendations\",\"functionName\":\"createActivityRichRecommendations\"},{\"No\":2003,\"Category\":\"Recommendations\",\"Format\":\"Gifted Learner Recommendations\",\"Description\":\"Focuses on enrichment, acceleration, and challenging activities suitable for gifted and talented students.\",\"type\":\"giftedLearnerRecommendations\",\"functionName\":\"createGiftedLearnerRecommendations\"},{\"No\":2010,\"Category\":\"Recommendations\",\"Format\":\"The Efficiency Expert\",\"Description\":\"Prioritizes formats that maximize learning in minimal time, ideal for busy teachers or quick reviews.\",\"type\":\"efficiencyExpertRecommendations\",\"functionName\":\"createEfficiencyExpertRecommendations\"},{\"No\":2011,\"Category\":\"Recommendations\",\"Format\":\"The Engagement Catalyst\",\"Description\":\"Focuses on formats that spark curiosity and foster active participation, perfect for boosting student interest.\",\"type\":\"engagementCatalystRecommendations\",\"functionName\":\"createEngagementCatalystRecommendations\"},{\"No\":2013,\"Category\":\"Recommendations\",\"Format\":\"The Tech-Savvy Teacher's Toolkit\",\"Description\":\"Highlights formats that leverage technology for interactive learning, assessment, and classroom management.\",\"type\":\"techSavvyTeachersToolkitRecommendations\",\"functionName\":\"createTechSavvyTeachersToolkitRecommendations\"},{\"No\":2016,\"Category\":\"Recommendations\",\"Format\":\"The Literacy Luminary\",\"Description\":\"Focuses on formats that enhance reading, writing, and communication skills, such as close reading, collaborative writing, and debates.\",\"type\":\"literacyLuminaryRecommendations\",\"functionName\":\"createLiteracyLuminaryRecommendations\"},{\"No\":2021,\"Category\":\"Recommendations\",\"Format\":\"The English Language Learner (ELL) Empowerer\",\"Description\":\"Recommends formats that support ELLs, such as visual aids, simplified language, and collaborative activities.\",\"type\":\"ellEmpowererRecommendations\",\"functionName\":\"createEllEmpowererRecommendations\"},{\"No\":2027,\"Category\":\"Recommendations\",\"Format\":\"The Global Citizen Cultivator\",\"Description\":\"Recommends formats that promote global awareness, cultural understanding, and social responsibility.\",\"type\":\"globalCitizenCultivatorRecommendations\",\"functionName\":\"createGlobalCitizenCultivatorRecommendations\"},{\"No\":2028,\"Category\":\"Recommendations\",\"Format\":\"The Kinesthetic Commander\",\"Description\":\"Caters to kinesthetic learners with formats that emphasize movement, hands-on activities, and experiential learning.\",\"type\":\"kinestheticCommanderRecommendations\",\"functionName\":\"createKinestheticCommanderRecommendations\"},{\"No\":2030,\"Category\":\"Recommendations\",\"Format\":\"The Remote Learning Rockstar\",\"Description\":\"Offers formats specifically designed for online or blended learning environments, such as virtual field trips, interactive whiteboards, and collaborative online tools.\",\"type\":\"remoteLearningRockstarRecommendations\",\"functionName\":\"createRemoteLearningRockstarRecommendations\"},{\"No\":2034,\"Category\":\"Recommendations\",\"Format\":\"The Coding Connoisseur\",\"Description\":\"Focuses on formats that integrate coding and computational thinking into various subjects, such as creating algorithms, designing simulations, and analyzing data.\",\"type\":\"codingConnoisseurRecommendations\",\"functionName\":\"createCodingConnoisseurRecommendations\"},{\"No\":2004,\"Category\":\"Recommendations\",\"Format\":\"Sunday School Recommendations\",\"Description\":\"Prioritizes storytelling, creative activities, and group discussions suitable for a Sunday school setting.\",\"type\":\"sundaySchoolRecommendations\",\"functionName\":\"createSundaySchoolRecommendations\"},{\"No\":2005,\"Category\":\"Recommendations\",\"Format\":\"Extracurricular Activity Recommendations\",\"Description\":\"Emphasizes project-based learning, real-world connections, and creative expression for extracurricular activities or clubs.\",\"type\":\"extracurricularActivityRecommendations\",\"functionName\":\"createExtracurricularActivityRecommendations\"},{\"No\":2017,\"Category\":\"Recommendations\",\"Format\":\"The History Hero\",\"Description\":\"Suggests formats that bring history to life, such as interactive timelines, primary source analysis, and historical simulations.\",\"type\":\"historyHeroRecommendations\",\"functionName\":\"createHistoryHeroRecommendations\"},{\"No\":2018,\"Category\":\"Recommendations\",\"Format\":\"The Arts Advocate\",\"Description\":\"Recommends formats that promote creative expression and artistic exploration, such as visual arts projects, music composition, and drama activities.\",\"type\":\"artsAdvocateRecommendations\",\"functionName\":\"createArtsAdvocateRecommendations\"},{\"No\":2022,\"Category\":\"Recommendations\",\"Format\":\"The After-School All-Star\",\"Description\":\"Recommends formats that are engaging and fun for after-school programs or extracurricular activities.\",\"type\":\"afterSchoolAllStarRecommendations\",\"functionName\":\"createAfterSchoolAllStarRecommendations\"},{\"No\":2023,\"Category\":\"Recommendations\",\"Format\":\"The Homeschool Helper\",\"Description\":\"Provides recommendations for homeschooling environments, emphasizing flexibility, independent learning, and parent-child collaboration.\",\"type\":\"homeschoolHelperRecommendations\",\"functionName\":\"createHomeschoolHelperRecommendations\"},{\"No\":901,\"Category\":\"Educational Goals\",\"Format\":\"Revised Bloom's Taxonomy\",\"Description\":\"Goal setting based on the updated Bloom's Taxonomy, emphasizing action verbs.\",\"type\":\"revisedBloomsTaxonomy\",\"functionName\":\"createRevisedBloomsTaxonomy\"},{\"No\":909,\"Category\":\"Educational Goals\",\"Format\":\"Wiggins and McTighe's Backward Design\",\"Description\":\"Goal setting using the backward design framework, starting with desired outcomes.\",\"type\":\"backwardDesignTaxonomy\",\"functionName\":\"createBackwardDesignTaxonomy\"},{\"No\":914,\"Category\":\"Educational Goals\",\"Format\":\"Digital Bloom's Taxonomy\",\"Description\":\"Goal setting adapting Bloom's Taxonomy for the digital age, using technology tools and resources.\",\"type\":\"digitalBloomsTaxonomy\",\"functionName\":\"createDigitalBloomsTaxonomy\"},{\"No\":902,\"Category\":\"Educational Goals\",\"Format\":\"Depth of Knowledge (DOK)\",\"Description\":\"Goal setting based on the cognitive complexity of tasks.\",\"type\":\"dOKTaxonomy\",\"functionName\":\"createDOKTaxonomy\"},{\"No\":908,\"Category\":\"Educational Goals\",\"Format\":\"Partnership for 21st Century Skills (P21)\",\"Description\":\"Goal setting promoting core subjects, 21st-century themes, and learning and innovation skills.\",\"type\":\"p21Taxonomy\",\"functionName\":\"createP21Taxonomy\"},{\"No\":904,\"Category\":\"Educational Goals\",\"Format\":\"SOLO Taxonomy\",\"Description\":\"Goal setting designed to promote increasing complexity in student understanding.\",\"type\":\"soloTaxonomy\",\"functionName\":\"createSOLOTaxonomy\"},{\"No\":910,\"Category\":\"Educational Goals\",\"Format\":\"Krathwohl's Affective Domain Taxonomy\",\"Description\":\"Goal setting focusing on the emotional and attitudinal aspects of learning.\",\"type\":\"krathwohlsAffectiveTaxonomy\",\"functionName\":\"createKrathwohlsAffectiveTaxonomy\"},{\"No\":911,\"Category\":\"Educational Goals\",\"Format\":\"Harrow's Psychomotor Domain Taxonomy\",\"Description\":\"Goal setting focusing on the development of physical skills and coordination.\",\"type\":\"harrowsPsychomotorTaxonomy\",\"functionName\":\"createHarrowsPsychomotorTaxonomy\"},{\"No\":905,\"Category\":\"Educational Goals\",\"Format\":\"Marzano's New Taxonomy\",\"Description\":\"Goal setting addressing cognitive, metacognitive, and self-system factors in learning.\",\"type\":\"marzanosTaxonomy\",\"functionName\":\"createMarzanosTaxonomy\"},{\"No\":906,\"Category\":\"Educational Goals\",\"Format\":\"Fink's Taxonomy of Significant Learning\",\"Description\":\"Goal setting promoting holistic learning experiences and meaningful outcomes.\",\"type\":\"finksTaxonomy\",\"functionName\":\"createFinksTaxonomy\"},{\"No\":907,\"Category\":\"Educational Goals\",\"Format\":\"ISTE Standards for Students\",\"Description\":\"Goal setting fostering essential digital age skills.\",\"type\":\"iSTEStandardsTaxonomy\",\"functionName\":\"createISTEStandardsTaxonomy\"},{\"No\":912,\"Category\":\"Educational Goals\",\"Format\":\"Gagne's Nine Events of Instruction\",\"Description\":\"Goal setting using Gagne's nine-step model for effective instruction.\",\"type\":\"gagnesNineEventsTaxonomy\",\"functionName\":\"createGagnesNineEventsTaxonomy\"},{\"No\":913,\"Category\":\"Educational Goals\",\"Format\":\"Structure of the Knowledge Taxonomy\",\"Description\":\"Goal setting addressing educational objectives across cognitive, affective, and psychomotor domains.\",\"type\":\"knowledgeTaxonomy\",\"functionName\":\"createKnowledgeTaxonomy\"},{\"No\":950,\"Category\":\"Spiritual Goals\",\"Format\":\"Christ-Likeness Formation\",\"Description\":\"Guides believers in personal transformation to reflect Jesus’ character and virtues.\",\"type\":\"christLikenessFormation\",\"functionName\":\"createChristLikenessFormation\"},{\"No\":951,\"Category\":\"Spiritual Goals\",\"Format\":\"Spiritual Disciplines\",\"Description\":\"Developing habits like prayer, fasting, and Bible study to deepen intimacy with God.\",\"type\":\"spiritualDisciplines\",\"functionName\":\"createSpiritualDisciplines\"},{\"No\":952,\"Category\":\"Spiritual Goals\",\"Format\":\"Biblical Literacy\",\"Description\":\"Structured progression for enhancing scriptural knowledge, interpretation, and life application.\",\"type\":\"biblicalLiteracy\",\"functionName\":\"createBiblicalLiteracy\"},{\"No\":953,\"Category\":\"Spiritual Goals\",\"Format\":\"Apologetics & Theological Reflection\",\"Description\":\"Exploring and defending core Christian doctrines while reflecting on deeper theological questions.\",\"type\":\"apologeticsTheologicalReflection\",\"functionName\":\"createApologeticsTheologicalReflection\"},{\"No\":954,\"Category\":\"Spiritual Goals\",\"Format\":\"Church Body Engagement\",\"Description\":\"Moving from church attendance to active service, leadership, and unity within the local congregation.\",\"type\":\"churchBodyEngagement\",\"functionName\":\"createChurchBodyEngagement\"},{\"No\":955,\"Category\":\"Spiritual Goals\",\"Format\":\"Christian Relationships & Fellowship\",\"Description\":\"Focusing on authentic, accountable relationships and cultivating a supportive faith community.\",\"type\":\"christianRelationshipsFellowship\",\"functionName\":\"createChristianRelationshipsFellowship\"},{\"No\":956,\"Category\":\"Spiritual Goals\",\"Format\":\"Missional Living & Evangelism\",\"Description\":\"Equips believers to integrate evangelism and service into daily life, from local outreach to global missions.\",\"type\":\"missionalLivingEvangelism\",\"functionName\":\"createMissionalLivingEvangelism\"},{\"No\":957,\"Category\":\"Spiritual Goals\",\"Format\":\"Spiritual Warfare & Resilience\",\"Description\":\"Helps believers stand firm against spiritual opposition and foster faith-based resilience.\",\"type\":\"spiritualWarfareResilience\",\"functionName\":\"createSpiritualWarfareResilience\"},{\"No\":800,\"Category\":\"Lesson Plans\",\"Format\":\"Direct Instruction\",\"Description\":\"Teacher-centered approach where the instructor directly presents information and guides student learning.\",\"type\":\"directInstructionLesson\",\"functionName\":\"createDirectInstructionLesson\"},{\"No\":806,\"Category\":\"Lesson Plans\",\"Format\":\"Explicit Instruction\",\"Description\":\"Clear, structured explanations with modeling and guided practice to ensure students understand concepts.\",\"type\":\"explicitInstruction\",\"functionName\":\"createExplicitInstructionLesson\"},{\"No\":803,\"Category\":\"Lesson Plans\",\"Format\":\"Cooperative Learning\",\"Description\":\"Students work together in groups to achieve shared learning goals.\",\"type\":\"cooperativeLearning\",\"functionName\":\"createCooperativeLearningLesson\"},{\"No\":804,\"Category\":\"Lesson Plans\",\"Format\":\"Differentiated Instruction\",\"Description\":\"Tailoring instruction to meet the diverse needs of learners by modifying content, process, or product.\",\"type\":\"differentiatedInstruction\",\"functionName\":\"createDifferentiatedInstructionLesson\"},{\"No\":802,\"Category\":\"Lesson Plans\",\"Format\":\"Inquiry-Based Learning (IBL)\",\"Description\":\"Student-centered approach where learners explore questions, gather data, and draw conclusions through investigation.\",\"type\":\"inquiryBasedLearningLesson\",\"functionName\":\"createInquiryBasedLearningLesson\"},{\"No\":807,\"Category\":\"Lesson Plans\",\"Format\":\"Project-Based Learning (PBL)\",\"Description\":\"Students gain knowledge and skills by working for an extended period to investigate and respond to a complex question, problem, or challenge.\",\"type\":\"projectBasedLearningLesson\",\"functionName\":\"createProjectBasedLearningLesson\"},{\"No\":805,\"Category\":\"Lesson Plans\",\"Format\":\"Station Rotation\",\"Description\":\"Students rotate through different learning stations, each focusing on a specific activity or skill.\",\"type\":\"stationRotation\",\"functionName\":\"createStationRotationLesson\"},{\"No\":808,\"Category\":\"Lesson Plans\",\"Format\":\"Blended Learning\",\"Description\":\"Comb`1ines online and offline learning experiences, offering flexibility and personalization.\",\"type\":\"blendedLearning\",\"functionName\":\"createBlendedLearningLesson\"},{\"No\":801,\"Category\":\"Lesson Plans\",\"Format\":\"Flipped Classroom\",\"Description\":\"Students learn new content at home (often through videos or readings) and practice applying it in class.\",\"type\":\"flippedClassroom\",\"functionName\":\"createFlippedClassroomLesson\"},\n{\"No\":810,\"Category\":\"Lesson Plans\",\"Format\":\"Case-Based Learning (CBL)\",\"Description\":\"Students analyze real-world scenarios or cases to develop problem-solving and critical thinking skills.\",\"type\":\"caseBasedLearning\",\"functionName\":\"createCaseBasedLearningLesson\"},{\"No\":812,\"Category\":\"Lesson Plans\",\"Format\":\"Technology-Enhanced Learning (TEL)\",\"Description\":\"Uses technology to facilitate and enhance various aspects of teaching and learning.\",\"type\":\"technologyEnhancedLearning\",\"functionName\":\"createTechnologyEnhancedLearningLesson\"},{\"No\":813,\"Category\":\"Lesson Plans\",\"Format\":\"Universal Design for Learning (UDL)\",\"Description\":\"Framework for creating flexible learning environments that accommodate individual differences.\",\"type\":\"universalDesignForLearning\",\"functionName\":\"createUniversalDesignForLearningLesson\"},{\"No\":817,\"Category\":\"Lesson Plans\",\"Format\":\"Social-Emotional Learning (SEL)\",\"Description\":\"Focuses on developing students' self-awareness, social skills, and emotional regulation.\",\"type\":\"socialEmotionalLearning\",\"functionName\":\"createSocialEmotionalLearningLesson\"},{\"No\":829,\"Category\":\"Lesson Plans\",\"Format\":\"Personalized Learning\",\"Description\":\"Tailors instruction and learning paths to meet individual student needs and interests.\",\"type\":\"personalizedLearning\",\"functionName\":\"createPersonalizedLearningLesson\"},{\"No\":830,\"Category\":\"Lesson Plans\",\"Format\":\"Experiential Learning\",\"Description\":\"Emphasizes learning through hands-on experiences and reflection.\",\"type\":\"experientialLearning\",\"functionName\":\"createExperientialLearningLesson\"},{\"No\":814,\"Category\":\"Lesson Plans\",\"Format\":\"Culturally Responsive Teaching\",\"Description\":\"Recognizes and values students' cultural backgrounds and experiences to create inclusive learning environments.\",\"type\":\"culturallyResponsiveTeaching\",\"functionName\":\"createCulturallyResponsiveTeachingLesson\"},{\"No\":815,\"Category\":\"Lesson Plans\",\"Format\":\"Competency-Based Education\",\"Description\":\"Focuses on students demonstrating mastery of specific skills and knowledge, allowing them to progress at their own pace.\",\"type\":\"competencyBasedEducation\",\"functionName\":\"createCompetencyBasedEducationLesson\"},{\"No\":816,\"Category\":\"Lesson Plans\",\"Format\":\"Mastery Learning\",\"Description\":\"Students must demonstrate mastery of one concept before moving on to the next, with additional support provided as needed.\",\"type\":\"masteryLearning\",\"functionName\":\"createMasteryLearningLesson\"},{\"No\":817,\"Category\":\"Lesson Plans\",\"Format\":\"Social-Emotional Learning (SEL)\",\"Description\":\"Focuses on developing students' self-awareness, social skills, and emotional regulation.\",\"type\":\"socialEmotionalLearning\",\"functionName\":\"createSocialEmotionalLearningLesson\"},{\"No\":818,\"Category\":\"Lesson Plans\",\"Format\":\"Trauma-Informed Teaching\",\"Description\":\"Recognizes the impact of trauma on learning and creates safe, supportive environments that address students' needs.\",\"type\":\"traumaInformedTeaching\",\"functionName\":\"createTraumaInformedTeachingLesson\"},{\"No\":819,\"Category\":\"Lesson Plans\",\"Format\":\"Understanding by Design (UbD)\",\"Description\":\"Educators plan instruction by starting with desired outcomes and working backward to design assessments and activities.\",\"type\":\"understandingByDesign\",\"functionName\":\"createUnderstandingByDesignLesson\"},{\"No\":820,\"Category\":\"Lesson Plans\",\"Format\":\"The SAMR Model\",\"Description\":\"A framework for evaluating how technology is used in the classroom.\",\"type\":\"samrModel\",\"functionName\":\"createSamrModelLesson\"},{\"No\":821,\"Category\":\"Lesson Plans\",\"Format\":\"TPACK (Technological Pedagogical Content Knowledge)\",\"Description\":\"Emphasizes the importance of teachers understanding how technology, pedagogy, and content knowledge intersect.\",\"type\":\"tpack\",\"functionName\":\"createTpackLesson\"},{\"No\":822,\"Category\":\"Lesson Plans\",\"Format\":\"Constructivism\",\"Description\":\"Learners actively construct knowledge through their interactions with the world and prior experiences.\",\"type\":\"constructivism\",\"functionName\":\"createConstructivismLesson\"},{\"No\":823,\"Category\":\"Lesson Plans\",\"Format\":\"Behaviorism\",\"Description\":\"Learning is a change in behavior caused by external stimuli and reinforcement.\",\"type\":\"behaviorism\",\"functionName\":\"createBehaviorismLesson\"},{\"No\":824,\"Category\":\"Lesson Plans\",\"Format\":\"Multiple Intelligences Theory\",\"Description\":\"Proposes that intelligence encompasses various areas like linguistic, logical-mathematical, and spatial.\",\"type\":\"multipleIntelligences\",\"functionName\":\"createMultipleIntelligencesLesson\"},{\"No\":825,\"Category\":\"Lesson Plans\",\"Format\":\"Growth Mindset\",\"Description\":\"Belief that intelligence and abilities can be developed through effort and dedication.\",\"type\":\"growthMindset\",\"functionName\":\"createGrowthMindsetLesson\"},{\"No\":826,\"Category\":\"Lesson Plans\",\"Format\":\"Cognitivism\",\"Description\":\"Focuses on mental processes like memory, attention, and problem-solving in learning.\",\"type\":\"cognitivism\",\"functionName\":\"createCognitivismLesson\"},{\"No\":827,\"Category\":\"Lesson Plans\",\"Format\":\"Humanism\",\"Description\":\"Emphasizes individual potential, self-actualization, and learner-centered approaches.\",\"type\":\"humanism\",\"functionName\":\"createHumanismLesson\"},{\"No\":276,\"Category\":\"Lesson Plans\",\"Format\":\"Pacing Techniques\",\"Description\":\"Adjust the pace of content delivery or activities to maintain learner engagement and prevent overload.\",\"type\":\"pacingTechniques\",\"functionName\":\"createPacingTechniques\"},{\"No\":1500,\"Category\":\"Instructional Strategies\",\"Format\":\"Differentiation Techniques\",\"Description\":\"Tailoring instruction to meet the diverse needs of learners by modifying content, process, or product.\",\"type\":\"differentiationTechniques\",\"functionName\":\"createDifferentiationTechniques\"},{\"No\":1501,\"Category\":\"Instructional Strategies\",\"Format\":\"Questioning Strategies Techniques\",\"Description\":\"Using effective questions to promote critical thinking, participation, and deeper learning.\",\"type\":\"questioningStrategiesTechniques\",\"functionName\":\"createQuestioningStrategiesTechniques\"},{\"No\":1502,\"Category\":\"Instructional Strategies\",\"Format\":\"Active Learning Techniques\",\"Description\":\"Encouraging student participation and engagement through activities that require them to actively process information.\",\"type\":\"activeLearningTechniques\",\"functionName\":\"createActiveLearningTechniques\"},{\"No\":1503,\"Category\":\"Instructional Strategies\",\"Format\":\"Technology Integration Techniques\",\"Description\":\"Using technology tools to enhance instruction, engagement, and learning outcomes.\",\"type\":\"technologyIntegrationTechniques\",\"functionName\":\"createTechnologyIntegrationTechniques\"},{\"No\":1504,\"Category\":\"Instructional Strategies\",\"Format\":\"Motivation & Engagement Techniques\",\"Description\":\"Strategies for sparking student interest, curiosity, and enthusiasm for learning.\",\"type\":\"motivationAndEngagementTechniques\",\"functionName\":\"createMotivationAndEngagementTechniques\"},{\"No\":1505,\"Category\":\"Instructional Strategies\",\"Format\":\"Scaffolding Techniques\",\"Description\":\"Providing structured support to learners as they progress through increasingly complex tasks.\",\"type\":\"scaffoldingTechniques\",\"functionName\":\"createScaffoldingTechniques\"},{\"No\":1506,\"Category\":\"Instructional Strategies\",\"Format\":\"Modeling Techniques\",\"Description\":\"Demonstrating the desired learning outcome or process by thinking aloud and showing how to approach tasks.\",\"type\":\"modelingTechniques\",\"functionName\":\"createModelingTechniques\"},{\"No\":1507,\"Category\":\"Instructional Strategies\",\"Format\":\"Guided Practice Techniques\",\"Description\":\"Providing opportunities for students to practice new skills or concepts under direct teacher supervision.\",\"type\":\"guidedPracticeTechniques\",\"functionName\":\"createGuidedPracticeTechniques\"},{\"No\":1508,\"Category\":\"Instructional Strategies\",\"Format\":\"Independent Practice Techniques\",\"Description\":\"Allowing students to work on their own to further practice and reinforce their learning.\",\"type\":\"independentPracticeTechniques\",\"functionName\":\"createIndependentPracticeTechniques\"},{\"No\":1509,\"Category\":\"Instructional Strategies\",\"Format\":\"Feedback & Assessment Techniques\",\"Description\":\"Providing timely and constructive feedback to help students monitor their progress and identify areas for improvement.\",\"type\":\"feedbackAndAssessmentTechniques\",\"functionName\":\"createFeedbackAndAssessmentTechniques\"},{\"No\":1510,\"Category\":\"Instructional Strategies\",\"Format\":\"Collaborative Learning Techniques\",\"Description\":\"Promoting teamwork and cooperation among students through various activities and projects.\",\"type\":\"collaborativeLearningTechniques\",\"functionName\":\"createCollaborativeLearningTechniques\"},{\"No\":1511,\"Category\":\"Instructional Strategies\",\"Format\":\"Inquiry-Based Learning Techniques\",\"Description\":\"Fostering student-driven exploration and discovery through problem-based learning, research, and open-ended questions.\",\"type\":\"inquiryBasedLearningTechniques\",\"functionName\":\"createInquiryBasedLearningTechniques\"},{\"No\":1512,\"Category\":\"Instructional Strategies\",\"Format\":\"Formative Assessment Techniques\",\"Description\":\"Gathering evidence of student learning during instruction to inform teaching decisions and provide feedback.\",\"type\":\"formativeAssessmentTechniques\",\"functionName\":\"createFormativeAssessmentTechniques\"},{\"No\":1513,\"Category\":\"Instructional Strategies\",\"Format\":\"Culturally Responsive Teaching Techniques\",\"Description\":\"Acknowledging and valuing diverse cultural backgrounds and experiences to create an inclusive learning environment.\",\"type\":\"culturallyResponsiveTeachingTechniques\",\"functionName\":\"createCulturallyResponsiveTeachingTechniques\"},{\"No\":1514,\"Category\":\"Instructional Strategies\",\"Format\":\"Critical Thinking & Problem-Solving Techniques\",\"Description\":\"Challenging students to analyze, evaluate, and make informed decisions.\",\"type\":\"criticalThinkingProblemSolvingTechniques\",\"functionName\":\"createCriticalThinkingProblemSolvingTechniques\"},{\"No\":1516,\"Category\":\"Instructional Strategies\",\"Format\":\"Classroom Management Techniques\",\"Description\":\"Establishing a positive and productive learning environment with clear expectations and routines.\",\"type\":\"classroomManagementTechniques\",\"functionName\":\"createClassroomManagementTechniques\"},{\"No\":1517,\"Category\":\"Instructional Strategies\",\"Format\":\"Metacognitive Strategies Techniques\",\"Description\":\"Encouraging students to think about their own thinking processes, fostering self-awareness and self-regulation.\",\"type\":\"metacognitiveStrategiesTechniques\",\"functionName\":\"createMetacognitiveStrategiesTechniques\"},{\"No\":1518,\"Category\":\"Instructional Strategies\",\"Format\":\"Growth Mindset Techniques\",\"Description\":\"Cultivating a belief in students that their abilities and intelligence can be developed through effort.\",\"type\":\"growthMindsetTechniques\",\"functionName\":\"createGrowthMindsetTechniques\"},{\"No\":1519,\"Category\":\"Instructional Strategies\",\"Format\":\"Social-Emotional Learning (SEL) Techniques\",\"Description\":\"Fostering self-awareness, social skills, and emotional regulation for holistic development.\",\"type\":\"socialEmotionalLearningTechniques\",\"functionName\":\"createSocialEmotionalLearningTechniques\"},{\"No\":1520,\"Category\":\"Instructional Strategies\",\"Format\":\"Universal Design for Learning (UDL) Techniques\",\"Description\":\"Creating flexible learning environments that accommodate the needs and preferences of all learners.\",\"type\":\"universalDesignForLearningTechniques\",\"functionName\":\"createUniversalDesignForLearningTechniques\"},{\"No\":1521,\"Category\":\"Instructional Strategies\",\"Format\":\"Game-Based Learning Techniques\",\"Description\":\"Utilizing game elements and mechanics to motivate and engage students in learning activities.\",\"type\":\"gameBasedLearningTechniques\",\"functionName\":\"createGameBasedLearningTechniques\"},{\"No\":1522,\"Category\":\"Instructional Strategies\",\"Format\":\"Experiential Learning Techniques\",\"Description\":\"Providing hands-on experiences and opportunities for reflection to deepen understanding and application.\",\"type\":\"experientialLearningTechniques\",\"functionName\":\"createExperientialLearningTechniques\"},{\"No\":1523,\"Category\":\"Instructional Strategies\",\"Format\":\"Student-Centered Learning Techniques\",\"Description\":\"Empowering students to take ownership of their learning by providing choices and promoting autonomy.\",\"type\":\"studentCenteredLearningTechniques\",\"functionName\":\"createStudentCenteredLearningTechniques\"},{\"No\":1524,\"Category\":\"Instructional Strategies\",\"Format\":\"Storytelling & Narrative Techniques\",\"Description\":\"Using stories and real-world examples to capture student interest and make content more memorable.\",\"type\":\"storytellingNarrativeTechniques\",\"functionName\":\"createStorytellingNarrativeTechniques\"},{\"No\":1525,\"Category\":\"Instructional Strategies\",\"Format\":\"Visual Learning Tools Techniques\",\"Description\":\"Employing various visual aids to cater to visual learners and enhance understanding.\",\"type\":\"visualLearningToolsTechniques\",\"functionName\":\"createVisualLearningToolsTechniques\"},{\"No\":1526,\"Category\":\"Instructional Strategies\",\"Format\":\"Hands-on Learning Techniques\",\"Description\":\"Providing opportunities for students to engage in active learning through experiments, simulations, and projects.\",\"type\":\"handsOnLearningTechniques\",\"functionName\":\"createHandsOnLearningTechniques\"},{\"No\":1527,\"Category\":\"Instructional Strategies\",\"Format\":\"Student Choice & Voice Techniques\",\"Description\":\"Empowering students by giving them choices in how they learn and demonstrate their understanding.\",\"type\":\"studentChoiceVoiceTechniques\",\"functionName\":\"createStudentChoiceVoiceTechniques\"},{\"No\":1528,\"Category\":\"Instructional Strategies\",\"Format\":\"Real-World Connections Techniques\",\"Description\":\"Relating learning to real-life situations and contexts to increase relevance and motivation.\",\"type\":\"realWorldConnectionsTechniques\",\"functionName\":\"createRealWorldConnectionsTechniques\"},{\"No\":1529,\"Category\":\"Instructional Strategies\",\"Format\":\"Reflection & Metacognition Techniques\",\"Description\":\"Encouraging students to think about their learning process and set goals for improvement.\",\"type\":\"reflectionMetacognitionTechniques\",\"functionName\":\"createReflectionMetacognitionTechniques\"},{\"No\":1530,\"Category\":\"Instructional Strategies\",\"Format\":\"Personalized Learning Techniques\",\"Description\":\"Tailoring instruction and learning experiences to meet individual student needs and interests.\",\"type\":\"personalizedLearningTechniques\",\"functionName\":\"createPersonalizedLearningTechniques\"},{\"No\":1531,\"Category\":\"Instructional Strategies\",\"Format\":\"Creativity & Innovation Techniques\",\"Description\":\"Fostering a culture of creativity and innovation by encouraging exploration and problem-solving.\",\"type\":\"creativityInnovationTechniques\",\"functionName\":\"createCreativityInnovationTechniques\"},{\"No\":1532,\"Category\":\"Instructional Strategies\",\"Format\":\"Peer Assessment Techniques\",\"Description\":\"Students provide feedback to each other, promoting reflection and collaboration.\",\"type\":\"peerAssessmentTechniques\",\"functionName\":\"createPeerAssessmentTechniques\"},{\"No\":1533,\"Category\":\"Instructional Strategies\",\"Format\":\"Self-Assessment Techniques\",\"Description\":\"Encourage students to evaluate their own work and set goals for improvement.\",\"type\":\"selfAssessmentTechniques\",\"functionName\":\"createSelfAssessmentTechniques\"},{\"No\":1534,\"Category\":\"Instructional Strategies\",\"Format\":\"Rubrics Techniques\",\"Description\":\"Provide clear criteria and expectations for assignments, guiding student work and facilitating objective assessment.\",\"type\":\"rubricsTechniques\",\"functionName\":\"createRubricsTechniques\"},{\"No\":1535,\"Category\":\"Instructional Strategies\",\"Format\":\"Brain-Based Learning Techniques\",\"Description\":\"Incorporating strategies based on neuroscience research to optimize learning and memory.\",\"type\":\"brainBasedLearningTechniques\",\"functionName\":\"createBrainBasedLearningTechniques\"},{\"No\":1536,\"Category\":\"Instructional Strategies\",\"Format\":\"Global Awareness & Cultural Competence Techniques\",\"Description\":\"Helping students develop understanding and appreciation for different cultures and perspectives.\",\"type\":\"globalAwarenessCulturalCompetenceTechniques\",\"functionName\":\"createGlobalAwarenessCulturalCompetenceTechniques\"},{\"No\":1537,\"Category\":\"Instructional Strategies\",\"Format\":\"Flipped Classroom Techniques\",\"Description\":\"Students learn new content at home and practice applying it in class, maximizing in-class time for active learning.\",\"type\":\"flippedClassroomTechniques\",\"functionName\":\"createFlippedClassroomTechniques\"},{\"No\":1538,\"Category\":\"Instructional Strategies\",\"Format\":\"Adaptive Learning Platforms Techniques\",\"Description\":\"Personalize learning pathways for individual students, providing tailored content and support.\",\"type\":\"adaptiveLearningPlatformsTechniques\",\"functionName\":\"createAdaptiveLearningPlatformsTechniques\"},{\"No\":1539,\"Category\":\"Instructional Strategies\",\"Format\":\"Genius Hour Techniques\",\"Description\":\"Dedicated time for students to explore their passions and pursue self-directed projects.\",\"type\":\"geniusHourTechniques\",\"functionName\":\"createGeniusHourTechniques\"},{\"No\":1540,\"Category\":\"Instructional Strategies\",\"Format\":\"Student-Led Conferences Techniques\",\"Description\":\"Empower students to lead conferences with their parents or guardians, showcasing progress and setting goals.\",\"type\":\"studentLedConferencesTechniques\",\"functionName\":\"createStudentLedConferencesTechniques\"},{\"No\":1541,\"Category\":\"Instructional Strategies\",\"Format\":\"Podcasts Techniques\",\"Description\":\"Utilize podcasts to introduce topics, provide expert perspectives, or offer diverse learning resources.\",\"type\":\"podcastsTechniques\",\"functionName\":\"createPodcastsTechniques\"},{\"No\":1542,\"Category\":\"Instructional Strategies\",\"Format\":\"Screencasts Techniques\",\"Description\":\"Create instructional videos to demonstrate skills, provide explanations, or review key concepts.\",\"type\":\"screencastsTechniques\",\"functionName\":\"createScreencastsTechniques\"},{\"No\":1543,\"Category\":\"Instructional Strategies\",\"Format\":\"Virtual Field Trips Techniques\",\"Description\":\"Explore places and events beyond the classroom through online tours and interactive experiences.\",\"type\":\"virtualFieldTripsTechniques\",\"functionName\":\"createVirtualFieldTripsTechniques\"},{\"No\":1544,\"Category\":\"Instructional Strategies\",\"Format\":\"Mindfulness Activities Techniques\",\"Description\":\"Incorporate brief mindfulness exercises to enhance focus, attention, and emotional regulation.\",\"type\":\"mindfulnessActivitiesTechniques\",\"functionName\":\"createMindfulnessActivitiesTechniques\"},{\"No\":1545,\"Category\":\"Instructional Strategies\",\"Format\":\"Brain Breaks Techniques\",\"Description\":\"Provide short breaks with physical movement or energizing activities to help students recharge and refocus.\",\"type\":\"brainBreaksTechniques\",\"functionName\":\"createBrainBreaksTechniques\"},{\"No\":1546,\"Category\":\"Instructional Strategies\",\"Format\":\"Positive Behavior Supports Techniques\",\"Description\":\"Use strategies to create a positive and supportive classroom environment.\",\"type\":\"positiveBehaviorSupportsTechniques\",\"functionName\":\"createPositiveBehaviorSupportsTechniques\"},{\"No\":1600,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Multisensory Learning\",\"Description\":\"Incorporate activities that engage multiple senses (visual, auditory, kinesthetic) to reinforce learning.\",\"type\":\"multisensoryLearningTechniques\",\"functionName\":\"createMultisensoryLearningTechniques\"},{\"No\":1601,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Assistive Technology\",\"Description\":\"Leverage technology tools that support reading, writing, and organization for students with specific needs.\",\"type\":\"assistiveTechnologyTools\",\"functionName\":\"createAssistiveTechnologyTools\"},{\"No\":1602,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Structured Literacy Instruction\",\"Description\":\"Provide explicit and systematic instruction in phonemic awareness, phonics, fluency, vocabulary, and comprehension.\",\"type\":\"structuredLiteracyInstructionTechniques\",\"functionName\":\"createStructuredLiteracyInstructionTechniques\"},{\"No\":1603,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Differentiation & Accommodations\",\"Description\":\"Offer a variety of ways for students to access and demonstrate their learning, including alternative formats and flexible assessments.\",\"type\":\"differentiationAccommodationsTechniques\",\"functionName\":\"createDifferentiationAccommodationsTechniques\"},{\"No\":1604,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Personalized Learning\",\"Description\":\"Tailor instruction and learning experiences to meet the individual needs and strengths of each student.\",\"type\":\"personalizedLearningTechniques\",\"functionName\":\"createPersonalizedLearningTechniques\"},{\"No\":1605,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Strength-Based Approach\",\"Description\":\"Focus on students' strengths and talents, building confidence and fostering a positive learning environment.\",\"type\":\"strengthBasedApproachTechniques\",\"functionName\":\"createStrengthBasedApproachTechniques\"},{\"No\":1606,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Explicit Instruction & Modeling\",\"Description\":\"Provide clear, step-by-step instructions and model the desired learning outcomes, breaking down complex tasks.\",\"type\":\"explicitInstructionModelingTechniques\",\"functionName\":\"createExplicitInstructionModelingTechniques\"},{\"No\":1607,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Positive Reinforcement & Encouragement\",\"Description\":\"Celebrate student successes and provide frequent positive feedback to build confidence and motivation.\",\"type\":\"positiveReinforcementEncouragementTechniques\",\"functionName\":\"createPositiveReinforcementEncouragementTechniques\"},{\"No\":1608,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Visual Supports\",\"Description\":\"Utilize pictures, diagrams, charts, and graphic organizers to help students understand and organize information.\",\"type\":\"visualSupportsTechniques\",\"functionName\":\"createVisualSupportsTechniques\"},{\"No\":1609,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Clear & Concise Instructions\",\"Description\":\"Provide simple, step-by-step instructions to aid comprehension and reduce anxiety.\",\"type\":\"clearConciseInstructionsTechniques\",\"functionName\":\"createClearConciseInstructionsTechniques\"},{\"No\":1610,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Frequent Checks for Understanding\",\"Description\":\"Regularly check for understanding throughout the lesson to ensure all students are following along.\",\"type\":\"frequentChecksForUnderstandingTechniques\",\"functionName\":\"createFrequentChecksForUnderstandingTechniques\"},{\"No\":1611,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Universal Design for Learning (UDL)\",\"Description\":\"Create flexible learning environments that provide multiple means of representation, engagement, and action & expression.\",\"type\":\"universalDesignForLearningTechniques\",\"functionName\":\"createUniversalDesignForLearningTechniques\"},{\"No\":1612,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Technology Integration (Specialized)\",\"Description\":\"Utilize technology tools specifically designed to support students with learning difficulties (e.g., text-to-speech, speech-to-text).\",\"type\":\"specializedTechnologyIntegrationTechniques\",\"functionName\":\"createSpecializedTechnologyIntegrationTechniques\"},{\"No\":1613,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Task Analysis\",\"Description\":\"Breaking down complex tasks into smaller, more manageable steps.\",\"type\":\"taskAnalysisTechniques\",\"functionName\":\"createTaskAnalysisTechniques\"},{\"No\":1614,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Visual Cues and Prompts\",\"Description\":\"Using visual aids to supplement verbal instructions.\",\"type\":\"visualCuesPromptsTechniques\",\"functionName\":\"createVisualCuesPromptsTechniques\"},{\"No\":1615,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Concrete Examples & Manipulatives\",\"Description\":\"Providing tangible objects or representations to illustrate abstract concepts.\",\"type\":\"concreteExamplesManipulativesTechniques\",\"functionName\":\"createConcreteExamplesManipulativesTechniques\"},{\"No\":1616,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Direct & Frequent Feedback\",\"Description\":\"Offering immediate and specific feedback on student performance.\",\"type\":\"directFrequentFeedbackTechniques\",\"functionName\":\"createDirectFrequentFeedbackTechniques\"},{\"No\":1617,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Augmented and Alternative Communication (AAC)\",\"Description\":\"Offering alternative ways for students to communicate.\",\"type\":\"augmentedAlternativeCommunicationTechniques\",\"functionName\":\"createAugmentedAlternativeCommunicationTechniques\"},{\"No\":1618,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Differentiated Assessment\",\"Description\":\"Offering various ways for students to demonstrate learning & providing accommodations.\",\"type\":\"differentiatedAssessmentTechniques\",\"functionName\":\"createDifferentiatedAssessmentTechniques\"},{\"No\":1619,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Visual Schedules and Timers\",\"Description\":\"Using visual aids to represent daily routines and task steps.\",\"type\":\"visualSchedulesTimersTechniques\",\"functionName\":\"createVisualSchedulesTimersTechniques\"},{\"No\":1620,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Pre-teaching/Front-loading\",\"Description\":\"Introducing key vocabulary and concepts before the lesson to build prior knowledge.\",\"type\":\"preTeachingFrontloadingTechniques\",\"functionName\":\"createPreTeachingFrontloadingTechniques\"},{\"No\":1621,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Repeated Reading & Practice\",\"Description\":\"Providing ample opportunities for repetition and practice to solidify skills.\",\"type\":\"repeatedReadingPracticeTechniques\",\"functionName\":\"createRepeatedReadingPracticeTechniques\"},{\"No\":1622,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Multi-Modal Learning\",\"Description\":\"Presenting information through various formats (visual, auditory, kinesthetic) to cater to different learning styles.\",\"type\":\"multiModalLearningTechniques\",\"functionName\":\"createMultiModalLearningTechniques\"},{\"No\":1623,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Co-Teaching & Collaboration\",\"Description\":\"Fostering collaboration between general and special education teachers for comprehensive support.\",\"type\":\"coTeachingCollaborationTechniques\",\"functionName\":\"createCoTeachingCollaborationTechniques\"},{\"No\":1624,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Hands-on Activities\",\"Description\":\"Providing opportunities for students to learn by doing, manipulating objects, and engaging in experiments.\",\"type\":\"handsOnActivities\",\"functionName\":\"createHandsOnActivities\"},{\"No\":1625,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Graphic Organizers\",\"Description\":\"Using visual tools like charts, diagrams, and mind maps to help students organize information and see relationships.\",\"type\":\"graphicOrganizers\",\"functionName\":\"createGraphicOrganizers\"},{\"No\":1626,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Role-Playing & Simulations\",\"Description\":\"Acting out scenarios or situations to practice social skills, problem-solving, and decision-making.\",\"type\":\"rolePlayingSimulations\",\"functionName\":\"createRolePlayingSimulations\"},{\"No\":1627,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Explicit Vocabulary Instruction\",\"Description\":\"Directly teaching key vocabulary words and their meanings, using visuals, examples, and opportunities for practice.\",\"type\":\"explicitVocabularyInstructionTechniques\",\"functionName\":\"createExplicitVocabularyInstructionTechniques\"},{\"No\":1628,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Self-Monitoring & Self-Regulation Strategies\",\"Description\":\"Teaching students how to monitor their own behavior and emotions and develop strategies for self-regulation\",\"type\":\"selfMonitoringSelfRegulationStrategies\",\"functionName\":\"createSelfMonitoringSelfRegulationStrategies\"},{\"No\":1629,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Assistive Technology Training\",\"Description\":\"Providing instruction and support for students in using assistive technology tools effectively.\",\"type\":\"assistiveTechnologyTrainingTechniques\",\"functionName\":\"createAssistiveTechnologyTrainingTechniques\"},{\"No\":1630,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Visual Schedules & Timers\",\"Description\":\"Providing visual representations of daily routines and task durations.\",\"type\":\"visualSchedulesTimersTechniques\",\"functionName\":\"createVisualSchedulesTimersTechniques\"},{\"No\":1631,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Break Tasks into Smaller Steps\",\"Description\":\"Chunking assignments into more manageable pieces.\",\"type\":\"breakTasksSmallerStepsTechniques\",\"functionName\":\"createBreakTasksSmallerStepsTechniques\"},{\"No\":1632,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Use of Repetition & Routine\",\"Description\":\"Consistent routines and repetition of instructions or concepts to aid in memory and understanding.\",\"type\":\"useOfRepetitionRoutineTechniques\",\"functionName\":\"createUseOfRepetitionRoutineTechniques\"},{\"No\":1633,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Multi-Tiered System of Support (MTSS)\",\"Description\":\"A framework that provides a continuum of support for all students, ensuring early identification and intervention.\",\"type\":\"multiTieredSystemSupportTechniques\",\"functionName\":\"createMultiTieredSystemSupportTechniques\"},{\"No\":1634,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Interactive Whiteboards or Touch Screens\",\"Description\":\"Utilizing interactive technology to increase focus and participation, especially for visual and kinesthetic learners.\",\"type\":\"interactiveWhiteboardsTouchScreensTechniques\",\"functionName\":\"createInteractiveWhiteboardsTouchScreensTechniques\"},{\"No\":1635,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Game-Based Learning\",\"Description\":\"Using educational games to make learning fun and engaging while practicing skills.\",\"type\":\"gameBasedLearningTechniques\",\"functionName\":\"createGameBasedLearningTechniques\"},{\"No\":1636,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Reciprocal Teaching\",\"Description\":\"Students teaching their peers or explaining concepts back to the class, reinforcing their understanding and promoting active participation.\",\"type\":\"reciprocalTeachingTechniques\",\"functionName\":\"createReciprocalTeachingTechniques\"},{\"No\":1637,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Oral Language-Based Activities\",\"Description\":\"Emphasizing oral communication to help students practice language skills in a supportive environment.\",\"type\":\"oralLanguageBasedActivities\",\"functionName\":\"createOralLanguageBasedActivities\"},{\"No\":1638,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Positive Behavior Support\",\"Description\":\"Implement proactive strategies to address behavioral challenges and create a supportive classroom environment.\",\"type\":\"positiveBehaviorSupportTechniques\",\"functionName\":\"createPositiveBehaviorSupportTechniques\"},{\"No\":1639,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Collaboration & Peer Support\",\"Description\":\"Encourage peer interactions and cooperative learning activities that foster a sense of community and belonging.\",\"type\":\"collaborationPeerSupportTechniques\",\"functionName\":\"createCollaborationPeerSupportTechniques\"},{\"No\":1640,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Flexible Learning Environments\",\"Description\":\"Offer a variety of learning spaces and options within the classroom to accommodate different needs.\",\"type\":\"flexibleLearningEnvironmentsTechniques\",\"functionName\":\"createFlexibleLearningEnvironmentsTechniques\"},{\"No\":1641,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Errorless Learning\",\"Description\":\"Structuring activities to minimize errors and promote early success.\",\"type\":\"errorlessLearningTechniques\",\"functionName\":\"createErrorlessLearningTechniques\"},{\"No\":1642,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Systematic Instruction\",\"Description\":\"Providing clear and consistent routines and expectations.\",\"type\":\"systematicInstructionTechniques\",\"functionName\":\"createSystematicInstructionTechniques\"},{\"No\":1643,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Reinforcement & Reward Systems\",\"Description\":\"Using positive reinforcement to encourage desired behaviors.\",\"type\":\"reinforcementRewardSystemsTechniques\",\"functionName\":\"createReinforcementRewardSystemsTechniques\"},{\"No\":1644,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Preferential Seating\",\"Description\":\"Strategically seating students based on their needs.\",\"type\":\"preferentialSeatingTechniques\",\"functionName\":\"createPreferentialSeatingTechniques\"},{\"No\":1645,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Sensory Breaks\",\"Description\":\"Providing opportunities for calming sensory activities.\",\"type\":\"sensoryBreaksTechniques\",\"functionName\":\"createSensoryBreaksTechniques\"},{\"No\":1646,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Social Skills Instruction\",\"Description\":\"Explicitly teaching social skills and providing opportunities for practice.\",\"type\":\"socialSkillsInstructionTechniques\",\"functionName\":\"createSocialSkillsInstructionTechniques\"},{\"No\":1647,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Behavior Management Techniques\",\"Description\":\"Implementing positive strategies to address challenging behaviors.\",\"type\":\"behaviorManagementTechniques\",\"functionName\":\"createBehaviorManagementTechniques\"},{\"No\":1648,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Collaboration with Related Service Providers\",\"Description\":\"Encouraging communication with specialists to support individual needs.\",\"type\":\"collaborationRelatedServiceProvidersTechniques\",\"functionName\":\"createCollaborationRelatedServiceProvidersTechniques\"},{\"No\":1649,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Parent/Guardian Involvement\",\"Description\":\"Maintaining open communication with families to share progress and strategies.\",\"type\":\"parentGuardianInvolvementTechniques\",\"functionName\":\"createParentGuardianInvolvementTechniques\"},{\"No\":1650,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Professional Development\",\"Description\":\"Offering resources for teachers to continue learning about effective strategies.\",\"type\":\"professionalDevelopmentResources\",\"functionName\":\"createProfessionalDevelopmentResources\"},{\"No\":1651,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Choral Responding/Response Cards\",\"Description\":\"Utilizing group responses or individual cards to increase participation and check understanding.\",\"type\":\"choralRespondingResponseCardsTechniques\",\"functionName\":\"createChoralRespondingResponseCardsTechniques\"},{\"No\":1652,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Mnemonic Devices\",\"Description\":\"Employing memory aids (acronyms, rhymes, songs) to help students remember information.\",\"type\":\"mnemonicDevicesTechniques\",\"functionName\":\"createMnemonicDevicesTechniques\"},{\"No\":1653,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Pull-Out/Push-In Instruction\",\"Description\":\"Providing specialized instruction in small groups or within the general education classroom, as appropriate.\",\"type\":\"pullOutPushInInstructionTechniques\",\"functionName\":\"createPullOutPushInInstructionTechniques\"},{\"No\":1654,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Environmental Modifications\",\"Description\":\"Adjusting the physical classroom environment to reduce distractions and promote focus.\",\"type\":\"environmentalModificationsTechniques\",\"functionName\":\"createEnvironmentalModificationsTechniques\"},{\"No\":1655,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Behavior Contracts & Token Economies\",\"Description\":\"Implementing systems to reinforce positive behavior and provide clear expectations for students.\",\"type\":\"behaviorContractsTokenEconomiesTechniques\",\"functionName\":\"createBehaviorContractsTokenEconomiesTechniques\"},{\"No\":1656,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Social Stories & Comic Strip Conversations\",\"Description\":\"Using visual narratives to teach social skills, routines, or expected behaviors.\",\"type\":\"socialStoriesComicStripConversationsTechniques\",\"functionName\":\"createSocialStoriesComicStripConversationsTechniques\"},{\"No\":1657,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Video Modeling\",\"Description\":\"Demonstrating desired behaviors or skills through videos.\",\"type\":\"videoModelingTechniques\",\"functionName\":\"createVideoModelingTechniques\"},{\"No\":1658,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Preferential Seating & Environmental Modifications\",\"Description\":\"Seating students strategically and adjusting the classroom environment.\",\"type\":\"preferentialSeatingEnvironmentalModificationsTechniques\",\"functionName\":\"createPreferentialSeatingEnvironmentalModificationsTechniques\"},{\"No\":1659,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Clear Expectations & Consistent Consequences\",\"Description\":\"Establishing clear rules and expectations, with consistent consequences.\",\"type\":\"clearExpectationsConsistentConsequencesTechniques\",\"functionName\":\"createClearExpectationsConsistentConsequencesTechniques\"},{\"No\":1660,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Choice & Control\",\"Description\":\"Offering students choices in learning activities or assignments.\",\"type\":\"choiceControlTechniques\",\"functionName\":\"createChoiceControlTechniques\"},{\"No\":1661,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Peer-Mediated Instruction\",\"Description\":\"Pairing students with different abilities or learning styles to provide mutual support.\",\"type\":\"peerMediatedInstructionTechniques\",\"functionName\":\"createPeerMediatedInstructionTechniques\"},{\"No\":1662,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Social Stories\",\"Description\":\"Using simple narratives to explain social situations or expectations.\",\"type\":\"socialStories\",\"functionName\":\"createSocialStories\"},{\"No\":1663,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Movement-Based Learning\",\"Description\":\"Incorporating physical movement into lessons to accommodate students who struggle with sitting still.\",\"type\":\"movementBasedLearningTechniques\",\"functionName\":\"createMovementBasedLearningTechniques\"},{\"No\":1664,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Mindfulness and Relaxation Techniques\",\"Description\":\"Teaching mindfulness to help students develop focus, manage stress and regulate emotions.\",\"type\":\"mindfulnessRelaxationTechniques\",\"functionName\":\"createMindfulnessRelaxationTechniques\"},{\"No\":1665,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Learning Stations or Centers\",\"Description\":\"Setting up different stations for various tasks to keep students engaged and facilitate differentiated learning.\",\"type\":\"learningStationsCentersTechniques\",\"functionName\":\"createLearningStationsCentersTechniques\"},{\"No\":1666,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Flipped Classroom Approach\",\"Description\":\"Students learn new content at home and practice in class, allowing for personalized learning and more in-class application.\",\"type\":\"flippedClassroomApproachTechniques\",\"functionName\":\"createFlippedClassroomApproachTechniques\"},{\"No\":1667,\"Category\":\"Inclusive Teaching Strategies\",\"Format\":\"Guided Imagery or Visualization Techniques\",\"Description\":\"Helping students imagine scenarios or concepts to enhance creativity, memory, and comprehension.\",\"type\":\"guidedImageryVisualizationTechniques\",\"functionName\":\"createGuidedImageryVisualizationTechniques\"},{\"No\":700,\"Category\":\"Educational Activities\",\"Format\":\"Jigsaw\",\"Description\":\"Students become experts on a topic within a group and then share their knowledge with members of other groups.\",\"type\":\"jigsawActivity\",\"functionName\":\"createJigsawActivity\"},{\"No\":701,\"Category\":\"Educational Activities\",\"Format\":\"Think-Pair-Share\",\"Description\":\"Students think about a question individually, discuss it with a partner, and then share their thoughts with the class.\",\"type\":\"thinkPairShareActivity\",\"functionName\":\"createThinkPairShareActivity\"},{\"No\":706,\"Category\":\"Educational Activities\",\"Format\":\"Collaborative Problem-Solving\",\"Description\":\"Students work together to find solutions to a complex problem.\",\"type\":\"collaborativeProblemSolvingActivity\",\"functionName\":\"createCollaborativeProblemSolvingActivity\"},{\"No\":709,\"Category\":\"Educational Activities\",\"Format\":\"Group Presentations\",\"Description\":\"Students work in groups to create and deliver presentations on a topic.\",\"type\":\"groupPresentationsActivity\",\"functionName\":\"createGroupPresentationsActivity\"},{\"No\":704,\"Category\":\"Educational Activities\",\"Format\":\"Role-Playing/Simulations\",\"Description\":\"Students act out scenarios to practice skills or explore different perspectives.\",\"type\":\"rolePlayingSimulationActivity\",\"functionName\":\"createRolePlayingSimulationActivity\"},{\"No\":705,\"Category\":\"Educational Activities\",\"Format\":\"Debates\",\"Description\":\"Students research and argue opposing sides of an issue to develop critical thinking and communication skills.\",\"type\":\"debateActivity\",\"functionName\":\"createDebateActivity\"},{\"No\":708,\"Category\":\"Educational Activities\",\"Format\":\"Group Investigation\",\"Description\":\"Students work collaboratively to research a topic and present their findings.\",\"type\":\"groupInvestigationActivity\",\"functionName\":\"createGroupInvestigationActivity\"},{\"No\":711,\"Category\":\"Educational Activities\",\"Format\":\"Concept Maps\",\"Description\":\"Students create visual representations of concepts and their relationships to deepen understanding.\",\"type\":\"conceptMapsActivity\",\"functionName\":\"createConceptMapsActivity\"},{\"No\":703,\"Category\":\"Educational Activities\",\"Format\":\"Gallery Walk\",\"Description\":\"Students create displays of their work, and the class circulates to view and discuss them.\",\"type\":\"galleryWalkActivity\",\"functionName\":\"createGalleryWalkActivity\"},{\"No\":713,\"Category\":\"Educational Activities\",\"Format\":\"Four Corners\",\"Description\":\"Students move to different corners of the room based on their opinion on a statement, then discuss their choices.\",\"type\":\"fourCornersActivity\",\"functionName\":\"createFourCornersActivity\"},{\"No\":714,\"Category\":\"Educational Activities\",\"Format\":\"Think-Write-Pair-Share\",\"Description\":\"Students think about a question, write their thoughts, discuss with a partner, and then share with the class.\",\"type\":\"thinkWritePairShareActivity\",\"functionName\":\"createThinkWritePairShareActivity\"},{\"No\":730,\"Category\":\"Educational Activities\",\"Format\":\"Stations Activities\",\"Description\":\"Students rotate through different stations, each with a unique task or activity, to practice skills or learn new concepts.\",\"type\":\"stationsActivity\",\"functionName\":\"createStationsActivity\"},{\"No\":710,\"Category\":\"Educational Activities\",\"Format\":\"Peer Review/Feedback\",\"Description\":\"Students provide constructive feedback on each other's work to improve their understanding and skills.\",\"type\":\"peerReviewFeedbackActivity\",\"functionName\":\"createPeerReviewFeedbackActivity\"},{\"No\":702,\"Category\":\"Educational Activities\",\"Format\":\"Numbered Heads Together\",\"Description\":\"Students work in groups to answer a question, with each student assigned a number and responsible for sharing the group's answer.\",\"type\":\"numberedHeadsTogetherActivity\",\"functionName\":\"createNumberedHeadsTogetherActivity\"},{\"No\":707,\"Category\":\"Educational Activities\",\"Format\":\"Fishbowl\",\"Description\":\"A small group discusses a topic while the rest of the class observes and then provides feedback.\",\"type\":\"fishbowlActivity\",\"functionName\":\"createFishbowlActivity\"},{\"No\":712,\"Category\":\"Educational Activities\",\"Format\":\"Team-Expert Model\",\"Description\":\"Students become experts on a specific topic and then teach it to their peers.\",\"type\":\"teamExpertActivity\",\"functionName\":\"createTeamExpertActivity\"},{\"No\":715,\"Category\":\"Educational Activities\",\"Format\":\"Guided Reading\",\"Description\":\"A teacher or skilled reader supports students as they read a text, building comprehension skills.\",\"type\":\"guidedReadingActivity\",\"functionName\":\"createGuidedReadingActivity\"},{\"No\":716,\"Category\":\"Educational Activities\",\"Format\":\"Collaborative Writing\",\"Description\":\"Students work together to write a shared piece of writing.\",\"type\":\"collaborativeWritingActivity\",\"functionName\":\"createCollaborativeWritingActivity\"},{\"No\":717,\"Category\":\"Educational Activities\",\"Format\":\"Round Robin\",\"Description\":\"Students take turns contributing to a task or discussion in a structured format.\",\"type\":\"roundRobinActivity\",\"functionName\":\"createRoundRobinActivity\"},{\"No\":718,\"Category\":\"Educational Activities\",\"Format\":\"Independent Reading\",\"Description\":\"Students read texts of their choice independently to build literacy skills and explore their interests.\",\"type\":\"independentReadingActivity\",\"functionName\":\"createIndependentReadingActivity\"},{\"No\":719,\"Category\":\"Educational Activities\",\"Format\":\"Research Projects\",\"Description\":\"Students investigate a topic of their choice, collecting and analyzing information to present their findings.\",\"type\":\"researchProjectsActivity\",\"functionName\":\"createResearchProjectsActivity\"},{\"No\":720,\"Category\":\"Educational Activities\",\"Format\":\"Creative Writing\",\"Description\":\"Students express themselves through stories, poems, or other forms of writing.\",\"type\":\"creativeWritingActivity\",\"functionName\":\"createCreativeWritingActivity\"},{\"No\":721,\"Category\":\"Educational Activities\",\"Format\":\"Problem-Solving Activities\",\"Description\":\"Students work on puzzles, logic problems, or real-world challenges to develop critical thinking skills.\",\"type\":\"problemSolvingActivity\",\"functionName\":\"createProblemSolvingActivities\"},{\"No\":722,\"Category\":\"Educational Activities\",\"Format\":\"Inquiry-Based Activities\",\"Description\":\"Students investigate a question or problem, actively seeking knowledge and constructing their own understanding of a topic.\",\"type\":\"inquiryBasedActivity\",\"functionName\":\"createInquiryBasedActivity\"},{\"No\":723,\"Category\":\"Educational Activities\",\"Format\":\"Socratic Seminars\",\"Description\":\"A teacher-led discussion focused on in-depth analysis and interpretation of a text.\",\"type\":\"socraticSeminarActivity\",\"functionName\":\"createSocraticSeminarActivity\"},{\"No\":724,\"Category\":\"Educational Activities\",\"Format\":\"Portfolio Projects\",\"Description\":\"Students create a collection of their work to demonstrate their learning and growth over time.\",\"type\":\"portfolioProjectsActivity\",\"functionName\":\"createPortfolioProjectsActivity\"},{\"No\":725,\"Category\":\"Educational Activities\",\"Format\":\"Interactive Notebooks\",\"Description\":\"Students create personalized notebooks with notes, reflections, and visuals to organize their learning.\",\"type\":\"interactiveNotebooksActivity\",\"functionName\":\"createInteractiveNotebooksActivity\"},{\"No\":726,\"Category\":\"Educational Activities\",\"Format\":\"Journaling/Writing Prompts\",\"Description\":\"Students respond to prompts or engage in free writing to express ideas and develop writing skills.\",\"type\":\"journalingWritingPromptsActivity\",\"functionName\":\"createJournalingWritingPromptsActivity\"},{\"No\":727,\"Category\":\"Educational Activities\",\"Format\":\"WebQuests\",\"Description\":\"Students use the internet to complete a structured inquiry-based activity.\",\"type\":\"webQuestActivity\",\"functionName\":\"createWebQuestActivity\"},{\"No\":728,\"Category\":\"Educational Activities\",\"Format\":\"Case Studies\",\"Description\":\"Students analyze real-world scenarios to apply knowledge and problem-solving skills.\",\"type\":\"caseStudiesActivity\",\"functionName\":\"createCaseStudiesActivity\"},{\"No\":729,\"Category\":\"Educational Activities\",\"Format\":\"Challenge Problems\",\"Description\":\"Students tackle complex problems that require creative thinking and problem-solving skills.\",\"type\":\"challengeProblemsActivity\",\"functionName\":\"createChallengeProblemsActivity\"},{\"No\":4000,\"Category\":\"Educational Classroom Games\",\"Format\":\"Escape Room Challenges\",\"Description\":\"Students work collaboratively to solve puzzles and escape within a set time.\",\"type\":\"escapeRoomChallenge\",\"functionName\":\"createEscapeRoomChallenge\"},{\"No\":4001,\"Category\":\"Educational Classroom Games\",\"Format\":\"Science Experiments\",\"Description\":\"Hands-on scientific investigations.\",\"type\":\"scienceExperiment\",\"functionName\":\"createScienceExperiment\"},{\"No\":4002,\"Category\":\"Educational Classroom Games\",\"Format\":\"Design Thinking Challenges\",\"Description\":\"Students apply the design thinking process.\",\"type\":\"designThinkingChallenge\",\"functionName\":\"createDesignThinkingChallenge\"},{\"No\":4003,\"Category\":\"Educational Classroom Games\",\"Format\":\"Build a Story Cards\",\"Description\":\"Students draw cards to collaboratively construct a story.\",\"type\":\"buildAStoryCards\",\"functionName\":\"createBuildAStoryCards\"},{\"No\":4004,\"Category\":\"Educational Classroom Games\",\"Format\":\"Rotating Role-Playing Scenarios\",\"Description\":\"Students take turns playing different roles.\",\"type\":\"rotatingRolePlaying\",\"functionName\":\"createRotatingRolePlaying\"},{\"No\":4005,\"Category\":\"Educational Classroom Games\",\"Format\":\"Bingo\",\"Description\":\"Custom educational Bingo game.\",\"type\":\"bingo\",\"functionName\":\"createBingo\"},{\"No\":4006,\"Category\":\"Educational Classroom Games\",\"Format\":\"Jeopardy\",\"Description\":\"A quiz-based game.\",\"type\":\"jeopardy\",\"functionName\":\"createJeopardy\"},{\"No\":4007,\"Category\":\"Educational Classroom Games\",\"Format\":\"Simulations\",\"Description\":\"Realistic educational simulations.\",\"type\":\"simulations\",\"functionName\":\"createSimulations\"},{\"No\":4008,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interactive Whiteboard Games\",\"Description\":\"Interactive activities using a digital whiteboard.\",\"type\":\"interactiveWhiteboard\",\"functionName\":\"createInteractiveWhiteboard\"},{\"No\":4009,\"Category\":\"Educational Classroom Games\",\"Format\":\"Coding Challenges\",\"Description\":\"Structured coding exercises.\",\"type\":\"codingChallenges\",\"functionName\":\"createCodingChallenges\"},{\"No\":4010,\"Category\":\"Educational Classroom Games\",\"Format\":\"Problem of the Day Challenge\",\"Description\":\"A daily problem-solving exercise.\",\"type\":\"problemOfTheDayChallenge\",\"functionName\":\"createProblemOfTheDayChallenge\"},{\"No\":4011,\"Category\":\"Educational Classroom Games\",\"Format\":\"Charades\",\"Description\":\"Students act out concepts or vocabulary words.\",\"type\":\"charades\",\"functionName\":\"createCharades\"},{\"No\":4012,\"Category\":\"Educational Classroom Games\",\"Format\":\"Pictionary\",\"Description\":\"Students draw and guess terms or concepts.\",\"type\":\"pictionary\",\"functionName\":\"createPictionary\"},\n{\"No\":4014,\"Category\":\"Educational Classroom Games\",\"Format\":\"Card Games\",\"Description\":\"Educational card-based activities.\",\"type\":\"cardGame\",\"functionName\":\"createCardGame\"},{\"No\":4015,\"Category\":\"Educational Classroom Games\",\"Format\":\"Board Games\",\"Description\":\"Strategic or knowledge-based board games.\",\"type\":\"boardGame\",\"functionName\":\"createBoardGame\"},{\"No\":4016,\"Category\":\"Educational Classroom Games\",\"Format\":\"Debate Tournament\",\"Description\":\"Structured debates to develop argumentation skills.\",\"type\":\"debateTournament\",\"functionName\":\"createDebateTournament\"},{\"No\":4017,\"Category\":\"Educational Classroom Games\",\"Format\":\"Online Escape Rooms\",\"Description\":\"Digital escape room challenges.\",\"type\":\"onlineEscapeRoom\",\"functionName\":\"createOnlineEscapeRoom\"},{\"No\":4018,\"Category\":\"Educational Classroom Games\",\"Format\":\"\\\"Would You Rather?\\\" Debates\",\"Description\":\"Debates about hypothetical 'Would You Rather' scenarios.\",\"type\":\"wouldYouRatherDebate\",\"functionName\":\"createWouldYouRatherDebate\"},{\"No\":4019,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical Dinner Party\",\"Description\":\"Role-play as historical figures.\",\"type\":\"historicalDinnerParty\",\"functionName\":\"createHistoricalDinnerParty\"},{\"No\":4020,\"Category\":\"Educational Classroom Games\",\"Format\":\"Invent a Product Challenge\",\"Description\":\"Students brainstorm, design, and present a new product.\",\"type\":\"inventProductChallenge\",\"functionName\":\"createInventProductChallenge\"},{\"No\":4021,\"Category\":\"Educational Classroom Games\",\"Format\":\"Time Capsule Project\",\"Description\":\"Students create a time capsule.\",\"type\":\"timeCapsuleProject\",\"functionName\":\"createTimeCapsuleProject\"},{\"No\":4022,\"Category\":\"Educational Classroom Games\",\"Format\":\"Debate a Law \",\"Description\":\"Students research and debate laws.\",\"type\":\"debateLaw\",\"functionName\":\"createDebateLaw\"},{\"No\":4023,\"Category\":\"Educational Classroom Games\",\"Format\":\"Create a Documentary Project\",\"Description\":\"Students create a short documentary.\",\"type\":\"documentaryProject\",\"functionName\":\"createDocumentaryProject\"},{\"No\":4024,\"Category\":\"Educational Classroom Games\",\"Format\":\"Ethical Dilemmas Discussions\",\"Description\":\"Students discuss ethical dilemmas.\",\"type\":\"ethicalDilemmasDiscussion\",\"functionName\":\"createEthicalDilemmasDiscussion\"},{\"No\":4025,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mystery Science Investigations\",\"Description\":\"Students solve scientific mysteries.\",\"type\":\"mysteryScienceInvestigation\",\"functionName\":\"createMysteryScienceInvestigation\"},{\"No\":4026,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical 'What If?' Scenarios\",\"Description\":\"Students explore alternative historical outcomes.\",\"type\":\"historicalWhatIfScenario\",\"functionName\":\"createHistoricalWhatIfScenario\"},{\"No\":4027,\"Category\":\"Educational Classroom Games\",\"Format\":\"Design a City Challenge\",\"Description\":\"Students design a functional city layout.\",\"type\":\"designCityChallenge\",\"functionName\":\"createDesignCityChallenge\"},{\"No\":4028,\"Category\":\"Educational Classroom Games\",\"Format\":\"Code a Robot \",\"Description\":\"Students program a robot to complete tasks.\",\"type\":\"codeRobot\",\"functionName\":\"createCodeRobot\"},{\"No\":4029,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interactive Storytelling with Technology\",\"Description\":\"Students create digital stories using multimedia.\",\"type\":\"interactiveStorytellingActivity\",\"functionName\":\"createInteractiveStorytellingActivity\"},{\"No\":4030,\"Category\":\"Educational Classroom Games\",\"Format\":\"Gamified Learning Platforms with Customization\",\"Description\":\"Students use gamified learning platforms.\",\"type\":\"gamifiedLearningPlatform\",\"functionName\":\"createGamifiedLearningPlatform\"},{\"No\":4031,\"Category\":\"Educational Classroom Games\",\"Format\":\"Augmented Reality Learning Experiences\",\"Description\":\"Students use AR tools for interactive learning.\",\"type\":\"augmentedRealityLearning\",\"functionName\":\"createAugmentedRealityLearning\"},{\"No\":4032,\"Category\":\"Educational Classroom Games\",\"Format\":\"Escape Room Design Challenge\",\"Description\":\"Students design their own educational escape rooms.\",\"type\":\"escapeRoomDesignChallenge\",\"functionName\":\"createEscapeRoomDesignChallenge\"},{\"No\":4033,\"Category\":\"Educational Classroom Games\",\"Format\":\"Game Show Creation\",\"Description\":\"Students design and host educational game shows.\",\"type\":\"gameShowCreation\",\"functionName\":\"createGameShowCreation\"},{\"No\":4034,\"Category\":\"Educational Classroom Games\",\"Format\":\"Simon Says with a Twist\",\"Description\":\"Simon Says with educational commands.\",\"type\":\"simonSaysTwist\",\"functionName\":\"createSimonSaysTwist\"},{\"No\":4035,\"Category\":\"Educational Classroom Games\",\"Format\":\"Relay Races with Educational Tasks\",\"Description\":\"Relay races with academic challenges.\",\"type\":\"relayRaceEducational\",\"functionName\":\"createRelayRaceEducational\"},{\"No\":4036,\"Category\":\"Educational Classroom Games\",\"Format\":\"Obstacle Course with Academic Challenges\",\"Description\":\"Obstacle course with subject-based tasks.\",\"type\":\"obstacleCourseAcademic\",\"functionName\":\"createObstacleCourseAcademic\"},{\"No\":4037,\"Category\":\"Educational Classroom Games\",\"Format\":\"Outdoor Educational Scavenger Hunt\",\"Description\":\"Outdoor scavenger hunts with educational clues.\",\"type\":\"outdoorScavengerHunt\",\"functionName\":\"createOutdoorScavengerHunt\"},{\"No\":4038,\"Category\":\"Educational Classroom Games\",\"Format\":\"Card Matching with Educational Concepts\",\"Description\":\"Card matching game with academic concepts.\",\"type\":\"cardMatchingEducational\",\"functionName\":\"createCardMatchingEducational\"},{\"No\":4039,\"Category\":\"Educational Classroom Games\",\"Format\":\"Trivia Quiz Show\",\"Description\":\"Competitive trivia quiz on subject knowledge.\",\"type\":\"triviaQuizShow\",\"functionName\":\"createTriviaQuizShow\"},{\"No\":4040,\"Category\":\"Educational Classroom Games\",\"Format\":\"Debate Tournament\",\"Description\":\"Structured debate competition on various topics.\",\"type\":\"debateTournament\",\"functionName\":\"createDebateTournament\"},{\"No\":4041,\"Category\":\"Educational Classroom Games\",\"Format\":\"Educational Role-Playing Scenarios\",\"Description\":\"Role-playing scenarios to explore different perspectives.\",\"type\":\"rolePlayingScenario\",\"functionName\":\"createRolePlayingScenario\"},\n{\"No\":4048,\"Category\":\"Educational Classroom Games\",\"Format\":\"Group Puzzles\",\"Description\":\"Students solve puzzles collaboratively.\",\"type\":\"groupPuzzles\",\"functionName\":\"createGroupPuzzles\"},{\"No\":4049,\"Category\":\"Educational Classroom Games\",\"Format\":\"Storytelling Activity\",\"Description\":\"Students build and share stories.\",\"type\":\"storytellingActivity\",\"functionName\":\"createStorytellingActivity\"},{\"No\":4050,\"Category\":\"Educational Classroom Games\",\"Format\":\"Human Bingo\",\"Description\":\"Students move around the classroom to find peers who match specific learning-related criteria.\",\"type\":\"humanBingo\",\"functionName\":\"createHumanBingo\"},{\"No\":4051,\"Category\":\"Educational Classroom Games\",\"Format\":\"Blindfold Obstacle Course\",\"Description\":\"Students navigate an obstacle course while blindfolded, guided by verbal instructions.\",\"type\":\"blindfoldObstacleCourse\",\"functionName\":\"createBlindfoldObstacleCourse\"},{\"No\":4052,\"Category\":\"Educational Classroom Games\",\"Format\":\"Group Storytelling\",\"Description\":\"Students collaborate to build a story one sentence or paragraph at a time.\",\"type\":\"groupStorytelling\",\"functionName\":\"createGroupStorytelling\"},{\"No\":4053,\"Category\":\"Educational Classroom Games\",\"Format\":\"Expert Panels\",\"Description\":\"Students research specific topics and present as experts, engaging in discussions.\",\"type\":\"expertPanels\",\"functionName\":\"createExpertPanels\"},{\"No\":4054,\"Category\":\"Educational Classroom Games\",\"Format\":\"Classroom Debate\",\"Description\":\"Students engage in a structured debate on a specific topic or question.\",\"type\":\"classroomDebate\",\"functionName\":\"createClassroomDebate\"},{\"No\":4055,\"Category\":\"Educational Classroom Games\",\"Format\":\"What If? Scenarios\",\"Description\":\"Students explore hypothetical scenarios to predict outcomes and consequences.\",\"type\":\"whatIfScenarios\",\"functionName\":\"createWhatIfScenarios\"},{\"No\":4056,\"Category\":\"Educational Classroom Games\",\"Format\":\"Decision-Making Challenges\",\"Description\":\"Students analyze real-world scenarios and make decisions based on information.\",\"type\":\"decisionMakingChallenges\",\"functionName\":\"createDecisionMakingChallenges\"},{\"No\":4057,\"Category\":\"Educational Classroom Games\",\"Format\":\"Resource Management Games\",\"Description\":\"Students manage limited resources to achieve a goal, simulating real-world economics.\",\"type\":\"resourceManagementGame\",\"functionName\":\"createResourceManagementGame\"},{\"No\":4058,\"Category\":\"Educational Classroom Games\",\"Format\":\"Broken Telephone with a Twist\",\"Description\":\"A communication game where students pass messages with variations to analyze information transfer.\",\"type\":\"brokenTelephoneGame\",\"functionName\":\"createBrokenTelephoneGame\"},{\"No\":4059,\"Category\":\"Educational Classroom Games\",\"Format\":\"Find the Imposter\",\"Description\":\"Students analyze information to identify an 'imposter' with different data or objectives.\",\"type\":\"findTheImposterGame\",\"functionName\":\"createFindTheImposterGame\"},{\"No\":4060,\"Category\":\"Educational Classroom Games\",\"Format\":\"Vocabulary Hopscotch\",\"Description\":\"A hopscotch grid with vocabulary words where students define or use the words.\",\"type\":\"vocabularyHopscotchGame\",\"functionName\":\"createVocabularyHopscotchGame\"},{\"No\":4061,\"Category\":\"Educational Classroom Games\",\"Format\":\"Math Twister\",\"Description\":\"A Twister game adapted with math problems on the colored circles.\",\"type\":\"mathTwisterGame\",\"functionName\":\"createMathTwisterGame\"},{\"No\":4062,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical Reenactments\",\"Description\":\"Students research and act out historical events or figures.\",\"type\":\"historicalReenactment\",\"functionName\":\"createHistoricalReenactment\"},{\"No\":4063,\"Category\":\"Educational Classroom Games\",\"Format\":\"Science Charades\",\"Description\":\"Students act out scientific concepts or terms without speaking.\",\"type\":\"scienceCharadesGame\",\"functionName\":\"createScienceCharadesGame\"},{\"No\":4064,\"Category\":\"Educational Classroom Games\",\"Format\":\"Geography Scavenger Hunt\",\"Description\":\"Students use maps and clues to find locations or geographical features.\",\"type\":\"geographyScavengerHuntGame\",\"functionName\":\"createGeographyScavengerHuntGame\"},{\"No\":4065,\"Category\":\"Educational Classroom Games\",\"Format\":\"Once Upon a Time Machine\",\"Description\":\"Students imagine traveling to different historical periods and create stories.\",\"type\":\"onceUponATimeMachineGame\",\"functionName\":\"createOnceUponATimeMachineGame\"},{\"No\":4066,\"Category\":\"Educational Classroom Games\",\"Format\":\"Character Creation Challenge\",\"Description\":\"Students design a character with detailed attributes and backstories.\",\"type\":\"characterCreationChallengeGame\",\"functionName\":\"createCharacterCreationChallengeGame\"},{\"No\":4067,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mythical Creature Design\",\"Description\":\"Students invent a mythical creature, detailing its habitat and abilities.\",\"type\":\"mythicalCreatureDesignGame\",\"functionName\":\"createMythicalCreatureDesignGame\"},{\"No\":4068,\"Category\":\"Educational Classroom Games\",\"Format\":\"Fairy Tale Rewrite\",\"Description\":\"Students reimagine classic fairy tales with a modern twist or alternative ending.\",\"type\":\"fairyTaleRewriteGame\",\"functionName\":\"createFairyTaleRewriteGame\"},{\"No\":4069,\"Category\":\"Educational Classroom Games\",\"Format\":\"What Happens Next? Story Prompts\",\"Description\":\"Students build upon a story prompt, adding their own creative twists.\",\"type\":\"whatHappensNextGame\",\"functionName\":\"createWhatHappensNextGame\"},{\"No\":4070,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical Fiction Writing\",\"Description\":\"Students write fictional stories set in a specific historical period.\",\"type\":\"historicalFictionWritingGame\",\"functionName\":\"createHistoricalFictionWritingGame\"},{\"No\":4071,\"Category\":\"Educational Classroom Games\",\"Format\":\"Classroom Olympics\",\"Description\":\"Students compete in academic and physical challenges.\",\"type\":\"classroomOlympicsGame\",\"functionName\":\"createClassroomOlympicsGame\"},{\"No\":4072,\"Category\":\"Educational Classroom Games\",\"Format\":\"Build a Tower Challenge\",\"Description\":\"Students build the tallest or most stable structure with limited materials.\",\"type\":\"buildATowerGame\",\"functionName\":\"createBuildATowerGame\"},{\"No\":4073,\"Category\":\"Educational Classroom Games\",\"Format\":\"Egg Drop Experiment\",\"Description\":\"Students design contraptions to protect an egg from a high drop.\",\"type\":\"eggDropExperimentGame\",\"functionName\":\"createEggDropExperimentGame\"},{\"No\":4074,\"Category\":\"Educational Classroom Games\",\"Format\":\"Classroom Stock Market Simulation\",\"Description\":\"Students participate in a simulated stock market.\",\"type\":\"stockMarketSimulationGame\",\"functionName\":\"createStockMarketSimulationGame\"},{\"No\":4075,\"Category\":\"Educational Classroom Games\",\"Format\":\"Escape the Classroom Challenge\",\"Description\":\"Students solve puzzles to 'escape' the classroom.\",\"type\":\"escapeTheClassroomGame\",\"functionName\":\"createEscapeTheClassroomGame\"},{\"No\":4076,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical 'Who Am I?' Game\",\"Description\":\"Students guess historical figures based on clues.\",\"type\":\"historicalWhoAmIGame\",\"functionName\":\"createHistoricalWhoAmIGame\"},{\"No\":4077,\"Category\":\"Educational Classroom Games\",\"Format\":\"Invent a Game Challenge\",\"Description\":\"Students design and create their own educational game.\",\"type\":\"inventAGameChallenge\",\"functionName\":\"createInventAGameChallenge\"},{\"No\":4078,\"Category\":\"Educational Classroom Games\",\"Format\":\"Community Service Project\",\"Description\":\"Students work on a project that benefits their local community.\",\"type\":\"communityServiceProject\",\"functionName\":\"createCommunityServiceProject\"},{\"No\":4079,\"Category\":\"Educational Classroom Games\",\"Format\":\"Expert Day\",\"Description\":\"Students present as 'experts' in a structured event.\",\"type\":\"expertDay\",\"functionName\":\"createExpertDay\"},{\"No\":4080,\"Category\":\"Educational Classroom Games\",\"Format\":\"Field Trips with a Twist\",\"Description\":\"Field trips with added interactive challenges.\",\"type\":\"fieldTripsWithATwist\",\"functionName\":\"createFieldTripsWithATwist\"},{\"No\":4081,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mock Elections\",\"Description\":\"Students simulate an election process.\",\"type\":\"mockElections\",\"functionName\":\"createMockElections\"},{\"No\":4082,\"Category\":\"Educational Classroom Games\",\"Format\":\"Classroom Economy\",\"Description\":\"Students participate in a simulated classroom economy.\",\"type\":\"classroomEconomy\",\"functionName\":\"createClassroomEconomy\"},{\"No\":4083,\"Category\":\"Educational Classroom Games\",\"Format\":\"Design a World Challenge\",\"Description\":\"Students create their own imaginary world.\",\"type\":\"designAWorldChallenge\",\"functionName\":\"createDesignAWorldChallenge\"},{\"No\":4084,\"Category\":\"Educational Classroom Games\",\"Format\":\"Invent a Language \",\"Description\":\"Students create their own language.\",\"type\":\"inventALanguage\",\"functionName\":\"createInventALanguage\"},{\"No\":4085,\"Category\":\"Educational Classroom Games\",\"Format\":\"Time Traveler Debates\",\"Description\":\"Students debate as historical figures in different time periods.\",\"type\":\"timeTravelerDebates\",\"functionName\":\"createTimeTravelerDebates\"},{\"No\":4086,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mystery Science Theater \",\"Description\":\"Students watch and critique a science video.\",\"type\":\"mysteryScienceTheater\",\"functionName\":\"createMysteryScienceTheater\"},{\"No\":4087,\"Category\":\"Educational Classroom Games\",\"Format\":\"Create a Business Simulation\",\"Description\":\"Students develop and manage their own business.\",\"type\":\"businessSimulation\",\"functionName\":\"createBusinessSimulation\"},{\"No\":4088,\"Category\":\"Educational Classroom Games\",\"Format\":\"Design a Museum Exhibit Project\",\"Description\":\"Students research a topic and create a museum exhibit.\",\"type\":\"museumExhibitProject\",\"functionName\":\"createMuseumExhibitProject\"},{\"No\":4089,\"Category\":\"Educational Classroom Games\",\"Format\":\"Two Truths and a Lie with a Twist\",\"Description\":\"Two truths and one false statement related to a subject.\",\"type\":\"twoTruthsAndALie\",\"functionName\":\"createTwoTruthsAndALie\"},{\"No\":4090,\"Category\":\"Educational Classroom Games\",\"Format\":\"Chain Reaction Storytelling\",\"Description\":\"Collaborative storytelling activity.\",\"type\":\"chainReactionStorytelling\",\"functionName\":\"createChainReactionStorytelling\"},{\"No\":4091,\"Category\":\"Educational Classroom Games\",\"Format\":\"Picture This with a Twist\",\"Description\":\"Students use unusual images as prompts for storytelling.\",\"type\":\"pictureThisTwist\",\"functionName\":\"createPictureThisTwist\"},{\"No\":4092,\"Category\":\"Educational Classroom Games\",\"Format\":\"Musical Chairs with Trivia\",\"Description\":\"Musical chairs with trivia questions.\",\"type\":\"musicalChairsTrivia\",\"functionName\":\"createMusicalChairsTrivia\"},{\"No\":4093,\"Category\":\"Educational Classroom Games\",\"Format\":\"Bingo with a Twist\",\"Description\":\"Bingo with subject-specific concepts.\",\"type\":\"bingoTwist\",\"functionName\":\"createBingoTwist\"},{\"No\":4094,\"Category\":\"Educational Classroom Games\",\"Format\":\"Jeopardy with Student-Generated Content\",\"Description\":\"Quiz game with student-created questions.\",\"type\":\"jeopardyStudentContent\",\"functionName\":\"createJeopardyStudentContent\"},{\"No\":4095,\"Category\":\"Educational Classroom Games\",\"Format\":\"Human Knot\",\"Description\":\"Students untangle themselves from a physical knot.\",\"type\":\"humanKnot\",\"functionName\":\"createHumanKnot\"},{\"No\":4096,\"Category\":\"Educational Classroom Games\",\"Format\":\"Balloon Volleyball\",\"Description\":\"A variation of volleyball using balloons, promoting teamwork.\",\"type\":\"balloonVolleyball\",\"functionName\":\"createBalloonVolleyball\"},{\"No\":4097,\"Category\":\"Educational Classroom Games\",\"Format\":\"Musical Chairs with a Twist\",\"Description\":\"Musical chairs with an academic challenge to claim a seat.\",\"type\":\"musicalChairsTwist\",\"functionName\":\"createMusicalChairsTwist\"},{\"No\":4098,\"Category\":\"Educational Classroom Games\",\"Format\":\"Freeze Dance with Poses\",\"Description\":\"Students dance and freeze in poses related to the lesson.\",\"type\":\"freezeDancePoses\",\"functionName\":\"createFreezeDancePoses\"},{\"No\":4099,\"Category\":\"Educational Classroom Games\",\"Format\":\"Outdoor Escape Room\",\"Description\":\"An escape room experience set outdoors.\",\"type\":\"outdoorEscapeRoom\",\"functionName\":\"createOutdoorEscapeRoom\"},{\"No\":4100,\"Category\":\"Educational Classroom Games\",\"Format\":\"Geocaching\",\"Description\":\"Students use GPS to find hidden educational caches.\",\"type\":\"geocaching\",\"functionName\":\"createGeocaching\"},{\"No\":4101,\"Category\":\"Educational Classroom Games\",\"Format\":\"Online Collaborations\",\"Description\":\"Students collaborate with peers online.\",\"type\":\"onlineCollaboration\",\"functionName\":\"createOnlineCollaboration\"},{\"No\":4102,\"Category\":\"Educational Classroom Games\",\"Format\":\"Educational Apps and Games\",\"Description\":\"Using educational apps for interactive learning.\",\"type\":\"educationalAppsAndGames\",\"functionName\":\"createEducationalAppsAndGames\"},{\"No\":4103,\"Category\":\"Educational Classroom Games\",\"Format\":\"Video Creation Challenges\",\"Description\":\"Students create short educational videos.\",\"type\":\"videoCreationChallenge\",\"functionName\":\"createVideoCreationChallenge\"},{\"No\":4104,\"Category\":\"Educational Classroom Games\",\"Format\":\"Podcast Creation\",\"Description\":\"Students produce their own educational podcasts.\",\"type\":\"podcastCreation\",\"functionName\":\"createPodcastCreation\"},{\"No\":4105,\"Category\":\"Educational Classroom Games\",\"Format\":\"Online Debates and Forums\",\"Description\":\"Students participate in online debates.\",\"type\":\"onlineDebatesAndForums\",\"functionName\":\"createOnlineDebatesAndForums\"},{\"No\":4106,\"Category\":\"Educational Classroom Games\",\"Format\":\"Digital Storytelling\",\"Description\":\"Students create stories using digital media.\",\"type\":\"digitalStorytelling\",\"functionName\":\"createDigitalStorytelling\"},{\"No\":4107,\"Category\":\"Educational Classroom Games\",\"Format\":\"Stop Motion Animation\",\"Description\":\"Students create animations using stop-motion techniques.\",\"type\":\"stopMotionAnimation\",\"functionName\":\"createStopMotionAnimation\"},{\"No\":4108,\"Category\":\"Educational Classroom Games\",\"Format\":\"Improvisation Theater\",\"Description\":\"Students engage in improvisational acting.\",\"type\":\"improvisationTheater\",\"functionName\":\"createImprovisationTheater\"},{\"No\":4109,\"Category\":\"Educational Classroom Games\",\"Format\":\"Model Building Challenges\",\"Description\":\"Students build models of concepts or structures.\",\"type\":\"modelBuildingChallenges\",\"functionName\":\"createModelBuildingChallenges\"},{\"No\":4110,\"Category\":\"Educational Classroom Games\",\"Format\":\"Fashion Design Challenge\",\"Description\":\"Students design and create themed outfits.\",\"type\":\"fashionDesignChallenge\",\"functionName\":\"createFashionDesignChallenge\"},{\"No\":4111,\"Category\":\"Educational Classroom Games\",\"Format\":\"Culinary Challenge\",\"Description\":\"Students prepare dishes related to a lesson.\",\"type\":\"culinaryChallenge\",\"functionName\":\"createCulinaryChallenge\"},{\"No\":4112,\"Category\":\"Educational Classroom Games\",\"Format\":\"Science Fair\",\"Description\":\"Students conduct and present science projects.\",\"type\":\"scienceFair\",\"functionName\":\"createScienceFair\"},{\"No\":4113,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mock Trial\",\"Description\":\"Students simulate a courtroom trial.\",\"type\":\"mockTrial\",\"functionName\":\"createMockTrial\"},{\"No\":4114,\"Category\":\"Educational Classroom Games\",\"Format\":\"Fashion Show\",\"Description\":\"Students showcase themed costumes.\",\"type\":\"fashionShow\",\"functionName\":\"createFashionShow\"},{\"No\":4115,\"Category\":\"Educational Classroom Games\",\"Format\":\"Obstacle Course Relay\",\"Description\":\"A relay race with physical and mental challenges.\",\"type\":\"obstacleCourseRelay\",\"functionName\":\"createObstacleCourseRelay\"},{\"No\":4116,\"Category\":\"Educational Classroom Games\",\"Format\":\"Scavenger Hunt with Challenges\",\"Description\":\"A scavenger hunt incorporating problem-solving.\",\"type\":\"scavengerHuntWithChallenges\",\"functionName\":\"createScavengerHuntWithChallenges\"},{\"No\":4117,\"Category\":\"Educational Classroom Games\",\"Format\":\"Virtual Reality Field Trips\",\"Description\":\"Immersive VR experiences for educational trips.\",\"type\":\"virtualRealityFieldTrip\",\"functionName\":\"createVirtualRealityFieldTrip\"},{\"No\":4118,\"Category\":\"Educational Classroom Games\",\"Format\":\"Augmented Reality Games\",\"Description\":\"Using AR to enhance learning with interactive elements.\",\"type\":\"augmentedRealityGame\",\"functionName\":\"createAugmentedRealityGame\"},{\"No\":4119,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interactive Quiz Games\",\"Description\":\"Real-time quiz games for knowledge reinforcement.\",\"type\":\"interactiveQuizGame\",\"functionName\":\"createInteractiveQuizGame\"},{\"No\":4120,\"Category\":\"Educational Classroom Games\",\"Format\":\"Peer Review Workshops\",\"Description\":\"Students give feedback on each other's work.\",\"type\":\"peerReviewWorkshop\",\"functionName\":\"createPeerReviewWorkshop\"},{\"No\":4121,\"Category\":\"Educational Classroom Games\",\"Format\":\"Puzzle Challenges\",\"Description\":\"Students solve educational puzzles.\",\"type\":\"puzzleChallenge\",\"functionName\":\"createPuzzleChallenge\"},{\"No\":4122,\"Category\":\"Educational Classroom Games\",\"Format\":\"Virtual Lab Simulations\",\"Description\":\"Students conduct experiments in a virtual lab.\",\"type\":\"virtualLabSimulation\",\"functionName\":\"createVirtualLabSimulation\"},{\"No\":4123,\"Category\":\"Educational Classroom Games\",\"Format\":\"Historical Timeline Challenges\",\"Description\":\"Students arrange historical events chronologically.\",\"type\":\"historicalTimelineChallenge\",\"functionName\":\"createHistoricalTimelineChallenge\"},{\"No\":4124,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mathematical Puzzles\",\"Description\":\"Students solve math-based puzzles.\",\"type\":\"mathematicalPuzzle\",\"functionName\":\"createMathematicalPuzzle\"},{\"No\":4125,\"Category\":\"Educational Classroom Games\",\"Format\":\"Language Relay\",\"Description\":\"A relay race focused on language skills.\",\"type\":\"languageRelay\",\"functionName\":\"createLanguageRelay\"},{\"No\":4126,\"Category\":\"Educational Classroom Games\",\"Format\":\"Cultural Exchange Games\",\"Description\":\"Games promoting cross-cultural understanding.\",\"type\":\"culturalExchangeGame\",\"functionName\":\"createCulturalExchangeGame\"},{\"No\":4127,\"Category\":\"Educational Classroom Games\",\"Format\":\"Science Trivia Battles\",\"Description\":\"Competitive science trivia games.\",\"type\":\"scienceTriviaBattle\",\"functionName\":\"createScienceTriviaBattle\"},{\"No\":4128,\"Category\":\"Educational Classroom Games\",\"Format\":\"Art Critique Challenges\",\"Description\":\"Students analyze and critique artwork.\",\"type\":\"artCritiqueChallenge\",\"functionName\":\"createArtCritiqueChallenge\"},{\"No\":4129,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mind Mapping Games\",\"Description\":\"Students create mind maps to organize ideas.\",\"type\":\"mindMappingGame\",\"functionName\":\"createMindMappingGame\"},{\"No\":4130,\"Category\":\"Educational Classroom Games\",\"Format\":\"Financial Literacy Simulations\",\"Description\":\"Simulations teaching financial concepts.\",\"type\":\"financialLiteracySimulation\",\"functionName\":\"createFinancialLiteracySimulation\"},{\"No\":4131,\"Category\":\"Educational Classroom Games\",\"Format\":\"Eco-Challenges\",\"Description\":\"Activities focusing on environmental awareness.\",\"type\":\"ecoChallenge\",\"functionName\":\"createEcoChallenge\"},{\"No\":4132,\"Category\":\"Educational Classroom Games\",\"Format\":\"Coding Puzzle Games\",\"Description\":\"Puzzles that reinforce coding skills.\",\"type\":\"codingPuzzleGame\",\"functionName\":\"createCodingPuzzleGame\"},{\"No\":4133,\"Category\":\"Educational Classroom Games\",\"Format\":\"Robotics Programming Challenges\",\"Description\":\"Students program robots to perform tasks.\",\"type\":\"roboticsProgrammingChallenge\",\"functionName\":\"createRoboticsProgrammingChallenge\"},{\"No\":4134,\"Category\":\"Educational Classroom Games\",\"Format\":\"Digital Art Creation Games\",\"Description\":\"Students create art using digital tools.\",\"type\":\"digitalArtCreationGame\",\"functionName\":\"createDigitalArtCreationGame\"},{\"No\":4135,\"Category\":\"Educational Classroom Games\",\"Format\":\"Music Composition Challenges\",\"Description\":\"Students compose original music pieces.\",\"type\":\"musicCompositionChallenge\",\"functionName\":\"createMusicCompositionChallenge\"},{\"No\":4136,\"Category\":\"Educational Classroom Games\",\"Format\":\"Drama Role-play Scenarios\",\"Description\":\"Students act out scenarios related to lessons.\",\"type\":\"dramaRolePlayScenario\",\"functionName\":\"createDramaRolePlayScenario\"},{\"No\":4137,\"Category\":\"Educational Classroom Games\",\"Format\":\"Creative Problem-Solving Workshops\",\"Description\":\"Workshops focusing on innovative problem-solving.\",\"type\":\"creativeProblemSolvingWorkshop\",\"functionName\":\"createCreativeProblemSolvingWorkshop\"},{\"No\":4138,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interactive Science Exhibits\",\"Description\":\"Students create and present interactive exhibits.\",\"type\":\"interactiveScienceExhibit\",\"functionName\":\"createInteractiveScienceExhibit\"},{\"No\":4139,\"Category\":\"Educational Classroom Games\",\"Format\":\"Story Remix Challenges\",\"Description\":\"Students rewrite or adapt existing stories.\",\"type\":\"storyRemixChallenge\",\"functionName\":\"createStoryRemixChallenge\"},{\"No\":4140,\"Category\":\"Educational Classroom Games\",\"Format\":\"Language Immersion Games\",\"Description\":\"Activities to immerse students in a new language.\",\"type\":\"languageImmersionGame\",\"functionName\":\"createLanguageImmersionGame\"},{\"No\":4141,\"Category\":\"Educational Classroom Games\",\"Format\":\"Civic Engagement Simulations\",\"Description\":\"Simulations of civic processes and responsibilities.\",\"type\":\"civicEngagementSimulation\",\"functionName\":\"createCivicEngagementSimulation\"},{\"No\":4142,\"Category\":\"Educational Classroom Games\",\"Format\":\"Virtual Field Trip Debriefs\",\"Description\":\"Post-virtual field trip discussions and activities.\",\"type\":\"virtualFieldTripDebrief\",\"functionName\":\"createVirtualFieldTripDebrief\"},{\"No\":4143,\"Category\":\"Educational Classroom Games\",\"Format\":\"Collaboration Puzzles\",\"Description\":\"Puzzles requiring teamwork to solve.\",\"type\":\"collaborationPuzzle\",\"functionName\":\"createCollaborationPuzzle\"},{\"No\":4144,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interactive History Timelines\",\"Description\":\"Students create and interact with timelines.\",\"type\":\"interactiveHistoryTimeline\",\"functionName\":\"createInteractiveHistoryTimeline\"},{\"No\":4145,\"Category\":\"Educational Classroom Games\",\"Format\":\"Mindfulness and Relaxation Games\",\"Description\":\"Activities to promote mindfulness and relaxation.\",\"type\":\"mindfulnessRelaxationGame\",\"functionName\":\"createMindfulnessRelaxationGame\"},{\"No\":4146,\"Category\":\"Educational Classroom Games\",\"Format\":\"Debate Strategy Games\",\"Description\":\"Games designed to teach and practice debate skills.\",\"type\":\"debateStrategyGame\",\"functionName\":\"createDebateStrategyGame\"},{\"No\":4147,\"Category\":\"Educational Classroom Games\",\"Format\":\"Interdisciplinary Challenge Games\",\"Description\":\"Students solve complex, multi-subject challenges that integrate knowledge from different disciplines.\",\"type\":\"interdisciplinaryChallengeGame\",\"functionName\":\"createInterdisciplinaryChallengeGame\"},{\"No\":25,\"Category\":\"Core Content Modifications\",\"Format\":\"Short Summary\",\"Description\":\"Provide a very brief overview of the main points.\",\"type\":\"shortSummary\",\"functionName\":\"createShortSummary\"},{\"No\":38,\"Category\":\"Content Enrichment\",\"Format\":\"Examples and Analogies\",\"Description\":\"Illustrate concepts with relatable examples or comparisons.\",\"type\":\"examplesAndAnalogies\",\"functionName\":\"createExamplesAndAnalogies\"},{\"No\":8,\"Category\":\"Structural Content Modifications\",\"Format\":\"Chunking into Smaller Paragraphs\",\"Description\":\"Break text into smaller, more manageable segments.\",\"type\":\"chunkedText\",\"functionName\":\"createChunkedText\"},{\"No\":35,\"Category\":\"Content Enrichment\",\"Format\":\"Story Format\",\"Description\":\"Transform factual content into a narrative with characters and plot.\",\"type\":\"storyFormat\",\"functionName\":\"createStoryFormat\"},{\"No\":73,\"Category\":\"Study Aids\",\"Format\":\"Mnemonic Devices\",\"Description\":\"Provide memory aids for recalling information.\",\"type\":\"mnemonicDevices\",\"functionName\":\"createMnemonicDevices\"},{\"No\":144,\"Category\":\"Interactive Learning\",\"Format\":\"Adaptive Branching Stories\",\"Description\":\"Create interactive stories with paths changing based on user choices.\",\"type\":\"adaptiveBranchingStory\",\"functionName\":\"createAdaptiveBranchingStory\"},\n{\"No\":68,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Grammar Lessons\",\"Description\":\"Engaging mini-lessons on specific grammar points with explanations, examples, and practice exercises.\",\"type\":\"interactiveGrammarLesson\",\"functionName\":\"createInteractiveGrammarLesson\"},{\"No\":2,\"Category\":\"Interactive Learning\",\"Format\":\"Annotations\",\"Description\":\"Allow users to add notes, highlights, or questions to the text.\",\"type\":\"annotations\",\"functionName\":\"createAnnotations\"},{\"No\":4,\"Category\":\"Interactive Learning\",\"Format\":\"Flashcards (Text-Based)\",\"Description\":\"Customizable cards with questions or terms on one side and answers/definitions on the other.\",\"type\":\"flashcards\",\"functionName\":\"createFlashcards\"},{\"No\":9,\"Category\":\"Interactive Learning\",\"Format\":\"Text Highlighting\",\"Description\":\"Emphasize key terms or phrases through visual cues (bold, italics, color).\",\"type\":\"textHighlighting\",\"functionName\":\"createTextHighlighting\"},{\"No\":12,\"Category\":\"Structural Content Modifications\",\"Format\":\"Headings and Subheadings\",\"Description\":\"Divide content into sections with clear titles.\",\"type\":\"headingsAndSubheadings\",\"functionName\":\"createHeadingsAndSubheadings\"},{\"No\":13,\"Category\":\"Study Aids\",\"Format\":\"Tables and Charts\",\"Description\":\"Present information visually in tabular or graphical formats.\",\"type\":\"tablesAndCharts\",\"functionName\":\"createTablesAndCharts\"},{\"No\":14,\"Category\":\"Structural Content Modifications\",\"Format\":\"Lists (Numbered/Ordered)\",\"Description\":\"Organize information into sequential or prioritized lists.\",\"type\":\"lists\",\"functionName\":\"createLists\"},{\"No\":15,\"Category\":\"Structural Content Modifications\",\"Format\":\"Hierarchical Structure\",\"Description\":\"Arrange content in a top-down structure with main ideas and supporting details.\",\"type\":\"hierarchicalStructure\",\"functionName\":\"createHierarchicalStructure\"},{\"No\":16,\"Category\":\"Structural Content Modifications\",\"Format\":\"Sequential Steps\",\"Description\":\"Present instructions or processes in a step-by-step format.\",\"type\":\"sequentialSteps\",\"functionName\":\"createSequentialSteps\"},{\"No\":18,\"Category\":\"Structural Content Modifications\",\"Format\":\"Inverted Pyramid\",\"Description\":\"Start with the most important information and then provide details.\",\"type\":\"invertedPyramid\",\"functionName\":\"createInvertedPyramid\"},{\"No\":22,\"Category\":\"Structural Content Modifications\",\"Format\":\"Cause and Effect\",\"Description\":\"Explain the relationship between events or actions and their outcomes.\",\"type\":\"causeAndEffect\",\"functionName\":\"createCauseAndEffect\"},{\"No\":23,\"Category\":\"Structural Content Modifications\",\"Format\":\"Problem and Solution\",\"Description\":\"Present a problem and offer potential solutions.\",\"type\":\"problemAndSolution\",\"functionName\":\"createProblemAndSolution\"},{\"No\":24,\"Category\":\"Assessments\",\"Format\":\"Fact vs. Opinion\",\"Description\":\"Distinguish between factual statements and subjective opinions.\",\"type\":\"factVsOpinion\",\"functionName\":\"createFactVsOpinion\"},{\"No\":26,\"Category\":\"Core Content Modifications\",\"Format\":\"Detailed Summary\",\"Description\":\"Offer a more comprehensive summary of the key ideas and details.\",\"type\":\"detailedSummary\",\"functionName\":\"createDetailedSummary\"},{\"No\":27,\"Category\":\"Core Content Modifications\",\"Format\":\"Bullet Points\",\"Description\":\"Condense information into a list of key takeaways.\",\"type\":\"bulletPoints\",\"functionName\":\"createBulletPoints\"},{\"No\":31,\"Category\":\"Core Content Modifications\",\"Format\":\"Keywords\",\"Description\":\"Extract the most important words or phrases from the text.\",\"type\":\"keywords\",\"functionName\":\"createKeywords\"},{\"No\":32,\"Category\":\"Core Content Modifications\",\"Format\":\"Simplified Text Language\",\"Description\":\"Reword complex language for easier comprehension.\",\"type\":\"simplifiedText\",\"functionName\":\"createSimplifiedText\"},{\"No\":40,\"Category\":\"Content Enrichment\",\"Format\":\"Questions and Answers\",\"Description\":\"Engage learners with inquiry-based learning.\",\"type\":\"questionsAndAnswers\",\"functionName\":\"createQuestionsAndAnswers\"},{\"No\":47,\"Category\":\"Content Enrichment\",\"Format\":\"Pros and Cons\",\"Description\":\"Present arguments for and against a particular topic or decision.\",\"type\":\"prosAndCons\",\"functionName\":\"createProsAndCons\"},{\"No\":52,\"Category\":\"Content Enrichment\",\"Format\":\"Persuasive Arguments\",\"Description\":\"Present a compelling argument for or against a particular viewpoint.\",\"type\":\"persuasiveArgument\",\"functionName\":\"createPersuasiveArguments\"},{\"No\":53,\"Category\":\"Structural Content Modifications\",\"Format\":\"Thematic Overviews\",\"Description\":\"Provide a high-level summary of the main themes or ideas in a text.\",\"type\":\"thematicOverviews\",\"functionName\":\"createThematicOverviews\"},{\"No\":80,\"Category\":\"Content Enrichment\",\"Format\":\"Real-World Applications\",\"Description\":\"Connect theoretical concepts to practical situations.\",\"type\":\"realWorldApplications\",\"functionName\":\"createRealWorldApplications\"},{\"No\":83,\"Category\":\"Educational Activities\",\"Format\":\"Project-Based Learning\",\"Description\":\"Encourage learners to apply knowledge to solve real-world problems.\",\"type\":\"projectBasedLearning\",\"functionName\":\"createProjectBasedLearning\"},{\"No\":96,\"Category\":\"Interactive Learning\",\"Format\":\"Adaptive Quizzes\",\"Description\":\"Adjust the difficulty of quiz questions based on the learner's performance.\",\"type\":\"adaptiveQuiz\",\"functionName\":\"createAdaptiveQuiz\"},{\"No\":119,\"Category\":\"Structural Content Modifications\",\"Format\":\"Nested Bullet Points\",\"Description\":\"Create multiple levels of bullet points.\",\"type\":\"nestedBulletPoints\",\"functionName\":\"createNestedBulletPoints\"},{\"No\":126,\"Category\":\"Structural Content Modifications\",\"Format\":\"Concept Hierarchies\",\"Description\":\"Present concepts from broad to specific.\",\"type\":\"conceptHierarchy\",\"functionName\":\"createConceptHierarchy\"},{\"No\":150,\"Category\":\"Content Enrichment\",\"Format\":\"Expository Writing\",\"Description\":\"Present information in a clear, concise, and organized manner.\",\"type\":\"expositoryWriting\",\"functionName\":\"createExpositoryWriting\"},{\"No\":151,\"Category\":\"Content Enrichment\",\"Format\":\"Narrative Descriptions\",\"Description\":\"Describe events, processes, or concepts in a storytelling format.\",\"type\":\"narrativeDescription\",\"functionName\":\"createNarrativeDescriptions\"},{\"No\":152,\"Category\":\"Content Enrichment\",\"Format\":\"Analogies and Metaphors\",\"Description\":\"Use figurative language to create comparisons and enhance understanding.\",\"type\":\"analogiesAndMetaphors\",\"functionName\":\"createAnalogiesAndMetaphors\"},{\"No\":153,\"Category\":\"Structural Content Modifications\",\"Format\":\"Structural Markers\",\"Description\":\"Use headings, transitions, and other markers to clarify text structure.\",\"type\":\"structuralMarkers\",\"functionName\":\"createStructuralMarkers\"},{\"No\":154,\"Category\":\"Structural Content Modifications\",\"Format\":\"Logical Progressions\",\"Description\":\"Arrange information in a logical order, such as chronological or by importance.\",\"type\":\"logicalProgression\",\"functionName\":\"createLogicalProgression\"},{\"No\":156,\"Category\":\"Content Enrichment\",\"Format\":\"FAQs (Frequently Asked Questions)\",\"Description\":\"Provide answers to common questions about the topic.\",\"type\":\"faqs\",\"functionName\":\"createFaq\"},{\"No\":157,\"Category\":\"Content Enrichment\",\"Format\":\"Scenario-Based Explanations\",\"Description\":\"Explain concepts through realistic scenarios or examples.\",\"type\":\"scenarioBasedExplanation\",\"functionName\":\"createScenarioBasedExplanation\"},{\"No\":158,\"Category\":\"Interactive Learning\",\"Format\":\"Visual Text Formatting\",\"Description\":\"Use formatting (bold, italics, color) to enhance readability and highlight key points.\",\"type\":\"visualTextFormatting\",\"functionName\":\"applyVisualTextFormatting\"},{\"No\":159,\"Category\":\"Core Content Modifications\",\"Format\":\"Conceptual Overviews\",\"Description\":\"Provide high-level summaries of key concepts.\",\"type\":\"conceptualOverview\",\"functionName\":\"createConceptualOverview\"},{\"No\":160,\"Category\":\"Structural Content Modifications\",\"Format\":\"Incremental Complexity\",\"Description\":\"Gradually increase the complexity of content as learners progress.\",\"type\":\"incrementalComplexity\",\"functionName\":\"createIncrementalComplexity\"},{\"No\":165,\"Category\":\"Study Aids\",\"Format\":\"Comparative Tables\",\"Description\":\"Present information in a tabular format for easy comparison.\",\"type\":\"comparativeTable\",\"functionName\":\"createComparativeTable\"},{\"No\":166,\"Category\":\"Content Enrichment\",\"Format\":\"Contrasting Cases\",\"Description\":\"Provide examples of different situations or outcomes to highlight key points.\",\"type\":\"contrastingCases\",\"functionName\":\"createContrastingCases\"},{\"No\":173,\"Category\":\"Structural Content Modifications\",\"Format\":\"Layered Explanations\",\"Description\":\"Present information at different levels of complexity, allowing learners to choose their depth of understanding.\",\"type\":\"layeredExplanations\",\"functionName\":\"createLayeredExplanations\"},{\"No\":198,\"Category\":\"Structural Content Modifications\",\"Format\":\"Comparative Analysis\",\"Description\":\"Analyze and compare different texts or sources on the same topic.\",\"type\":\"comparativeAnalysis\",\"functionName\":\"createComparativeAnalysis\"},{\"No\":203,\"Category\":\"Simulations & Games\",\"Format\":\"Gamified Quizzes\",\"Description\":\"Turn quizzes into engaging games with rewards and competition.\",\"type\":\"gamifiedQuiz\",\"functionName\":\"createGamifiedQuiz\"},{\"No\":216,\"Category\":\"Structural Content Modifications\",\"Format\":\"Rhetorical Structures\",\"Description\":\"Organize content using rhetorical devices like comparison/contrast, cause/effect, or problem/solution.\",\"type\":\"rhetoricalStructure\",\"functionName\":\"createRhetoricalStructure\"},{\"No\":217,\"Category\":\"Structural Content Modifications\",\"Format\":\"Temporal Structuring\",\"Description\":\"Arrange information chronologically or by time periods.\",\"type\":\"temporalStructuring\",\"functionName\":\"createTemporalStructuring\"},{\"No\":234,\"Category\":\"Content Enrichment\",\"Format\":\"Exemplification\",\"Description\":\"Provide concrete examples to illustrate abstract concepts or principles.\",\"type\":\"exemplification\",\"functionName\":\"createExemplification\"},{\"No\":239,\"Category\":\"Core Content Modifications\",\"Format\":\"Streamlining Content\",\"Description\":\"Condense or simplify text to focus on the most essential information.\",\"type\":\"streamlinedContent\",\"functionName\":\"createStreamlinedContent\"},{\"No\":240,\"Category\":\"Interactive Learning\",\"Format\":\"Integrated Annotations\",\"Description\":\"Embed annotations or explanations directly within the text for contextual learning.\",\"type\":\"integratedAnnotations\",\"functionName\":\"createIntegratedAnnotations\"},{\"No\":244,\"Category\":\"Core Content Modifications\",\"Format\":\"Distributed Summaries\",\"Description\":\"Provide summaries of different sections or chapters throughout a text.\",\"type\":\"distributedSummaries\",\"functionName\":\"createDistributedSummaries\"},{\"No\":247,\"Category\":\"Core Content Modifications\",\"Format\":\"Glossaries\",\"Description\":\"Provide a list of key terms and their definitions.\",\"type\":\"glossary\",\"functionName\":\"createGlossary\"},{\"No\":256,\"Category\":\"Content Enrichment\",\"Format\":\"Similes and Metaphors\",\"Description\":\"Use figurative language to create comparisons and enhance understanding.\",\"type\":\"similesAndMetaphors\",\"functionName\":\"createSimilesAndMetaphors\"},{\"No\":263,\"Category\":\"Interactive Learning\",\"Format\":\"Dynamic Highlighting\",\"Description\":\"Highlight relevant sections of text based on user interactions or preferences.\",\"type\":\"dynamicHighlighting\",\"functionName\":\"applyDynamicHighlighting\"},{\"No\":270,\"Category\":\"Interactive Learning\",\"Format\":\"Iterative Explanations\",\"Description\":\"Explain concepts multiple times, each time adding more detail or complexity.\",\"type\":\"iterativeExplanations\",\"functionName\":\"createIterativeExplanations\"},{\"No\":280,\"Category\":\"Interactive Learning\",\"Format\":\"Dynamic Text Adjustment\",\"Description\":\"Automatically adjust text difficulty or complexity based on learner performance or preferences.\",\"type\":\"dynamicTextAdjustment\",\"functionName\":\"createDynamicTextAdjustment\"},{\"No\":281,\"Category\":\"Content Enrichment\",\"Format\":\"Embedded Case Studies\",\"Description\":\"Integrate real-world case studies into the text to illustrate concepts in context.\",\"type\":\"embeddedCaseStudies\",\"functionName\":\"createEmbeddedCaseStudies\"},{\"No\":282,\"Category\":\"Structural Content Modifications\",\"Format\":\"Logical Structuring\",\"Description\":\"Organize information in a clear, logical manner using deductive or inductive reasoning.\",\"type\":\"logicalStructuring\",\"functionName\":\"createLogicalStructuring\"},{\"No\":285,\"Category\":\"Structural Content Modifications\",\"Format\":\"Content Layering\",\"Description\":\"Present information in multiple layers, starting with basic concepts and gradually adding complexity.\",\"type\":\"contentLayering\",\"functionName\":\"createContentLayering\"},{\"No\":296,\"Category\":\"Structural Content Modifications\",\"Format\":\"Contextual Embedding\",\"Description\":\"Place new information within a relevant context to aid understanding.\",\"type\":\"contextualEmbedding\",\"functionName\":\"createContextualEmbedding\"},{\"No\":303,\"Category\":\"Structural Content Modifications\",\"Format\":\"Episodic Structure\",\"Description\":\"Divide content into distinct episodes or chapters, each with its own focus or theme.\",\"type\":\"episodicStructure\",\"functionName\":\"createEpisodicStructure\"},{\"No\":309,\"Category\":\"Interactive Learning\",\"Format\":\"Hypothetical Scenarios\",\"Description\":\"Present what if scenarios to encourage critical thinking and decision-making.\",\"type\":\"hypotheticalScenarios\",\"functionName\":\"createHypotheticalScenarios\"},{\"No\":500,\"Category\":\"Core Content Modifications\",\"Format\":\"Paraphrasing\",\"Description\":\"Reword complex sentences for easier understanding.\",\"type\":\"paraphrasing\",\"functionName\":\"createParaphrasingExercise\"},\n{\"No\":502,\"Category\":\"Content Enrichment\",\"Format\":\"Microlearning Modules\",\"Description\":\"Break down content into small, bite-sized chunks for easier consumption.\",\"type\":\"microlearningModules\",\"functionName\":\"createMicrolearningModules\"},{\"No\":503,\"Category\":\"Structural Content Modifications\",\"Format\":\"Thematic Clusters\",\"Description\":\"Group related ideas or concepts together for better organization.\",\"type\":\"thematicClusters\",\"functionName\":\"createThematicClusters\"},{\"No\":504,\"Category\":\"Structural Content Modifications\",\"Format\":\"Layered Explanations\",\"Description\":\"Present information at different levels of complexity, allowing learners to choose their depth of understanding.\",\"type\":\"layeredExplanations\",\"functionName\":\"createLayeredExplanations\"},{\"No\":505,\"Category\":\"Core Content Modifications\",\"Format\":\"Recursive Summaries\",\"Description\":\"Summarize a text at multiple levels, starting with a broad overview and then drilling down into specific details.\",\"type\":\"recursiveSummaries\",\"functionName\":\"createRecursiveSummaries\"},{\"No\":69,\"Category\":\"Interactive Learning\",\"Format\":\"Vocabulary Quizzes\",\"Description\":\"Customizable quizzes with varied question types to assess vocabulary knowledge and progress.\",\"type\":\"vocabularyQuiz\",\"functionName\":\"createVocabularyQuizzes\"},{\"No\":75,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Reading Quizzes\",\"Description\":\"Quizzes embedded within authentic texts to assess comprehension and vocabulary acquisition.\",\"type\":\"interactiveReadingQuizzes\",\"functionName\":\"createInteractiveReadingQuizzes\"},\n{\"No\":516,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Number Line\",\"Description\":\"Visualizes number operations and relationships between numbers (fractions, decimals, integers), enhancing conceptual understanding.\",\"type\":\"interactiveNumberLine\",\"functionName\":\"createInteractiveNumberLine\"},{\"No\":517,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Quizzes & Assessments\",\"Description\":\"Offers a variety of question types for assessing understanding of different math concepts. Can provide immediate feedback and track progress.\",\"JavascriptFunctionName\":\"createInteractiveQuiz\"},{\"No\":518,\"Category\":\"Interactive Learning\",\"Format\":\"Math Facts Generator\",\"Description\":\"Helps students memorize essential math facts (addition, subtraction, multiplication, division) through quick drills, fostering fluency.\",\"type\":\"mathFactsGenerator\",\"functionName\":\"createMathFactsGenerator\"},{\"No\":550,\"Category\":\"Simulations & Games\",\"Format\":\"Simulations (Text-Based)\",\"Description\":\"Text-based scenarios and questions for simulated experiences.\",\"type\":\"textSimulation\",\"functionName\":\"createTextSimulation\"},{\"No\":551,\"Category\":\"Simulations & Games\",\"Format\":\"Virtual Labs (Text-Based)\",\"Description\":\"Describe procedures, provide data, and ask questions in a text-based format.\",\"type\":\"virtualLab\",\"functionName\":\"createVirtualLab\"},{\"No\":552,\"Category\":\"Simulations & Games\",\"Format\":\"Games (Text-Based)\",\"Description\":\"Trivia, word searches, riddles tailored to the subject matter.\",\"type\":\"mathTextGames\",\"functionName\":\"createMathTextGames\"},{\"No\":553,\"Category\":\"Simulations & Games\",\"Format\":\"Debates (Enhanced)\",\"Description\":\"Create a more structured format with arguments, counterarguments, and rebuttals.\",\"type\":\"debate\",\"functionName\":\"createDebate\"},{\"No\":554,\"Category\":\"Educational Activities\",\"Format\":\"Project Ideas (Structured)\",\"Description\":\"Provide more detailed project outlines with step-by-step guidance.\",\"type\":\"structuredProject\",\"functionName\":\"createStructuredProject\"},{\"No\":555,\"Category\":\"Simulations & Games\",\"Format\":\"Mystery Games\",\"Description\":\"Text-based mystery puzzles to solve.\",\"type\":\"mysteryGame\",\"functionName\":\"createMysteryGame\"},\n{\"No\":557,\"Category\":\"Simulations & Games\",\"Format\":\"Escape Rooms (Text-Based)\",\"Description\":\"Design puzzles and challenges that students must solve to 'escape' a virtual room.\",\"type\":\"escapeRoom\",\"functionName\":\"createEscapeRoom\"},\n{\"No\":561,\"Category\":\"Simulations & Games\",\"Format\":\"Hypothesis Testing\",\"Description\":\"Guide students through formulating and testing hypotheses in a structured way.\",\"type\":\"hypothesisTesting\",\"functionName\":\"createHypothesisTesting\"},{\"No\":600,\"Category\":\"Core Content Modifications\",\"Format\":\"Informative Article/Essay\",\"Description\":\"Provides in-depth information and analysis on a specific topic, potentially including arguments and evidence.\",\"type\":\"informativeArticle\",\"functionName\":\"createInformativeArticle\"},{\"No\":601,\"Category\":\"Core Content Modifications\",\"Format\":\"Book Chapter/Section\",\"Description\":\"Presents structured and comprehensive content on a specific subtopic within a larger subject.\",\"type\":\"bookChapter\",\"functionName\":\"createBookChapter\"},{\"No\":602,\"Category\":\"Core Content Modifications\",\"Format\":\"Lecture Transcript\",\"Description\":\"Provides a written record of a lecture-style presentation, including explanations, examples, and key takeaways.\",\"type\":\"lectureTranscript\",\"functionName\":\"createLectureTranscript\"},{\"No\":603,\"Category\":\"Social Sciences\",\"Format\":\"Historical Document (Simulated)\",\"Description\":\"Recreates a historical document like a letter, diary entry, or speech, offering a glimpse into the past.\",\"type\":\"historicalDocument\",\"functionName\":\"createHistoricalDocument\"},{\"No\":604,\"Category\":\"Science\",\"Format\":\"Scientific Research Summary\",\"Description\":\"Condenses complex scientific research papers into accessible summaries for students.\",\"type\":\"scientificReportSummary\",\"functionName\":\"createScientificReportSummary\"},{\"No\":609,\"Category\":\"Language Arts\",\"Format\":\"Poetry Analysis\",\"Description\":\"Offer guided analysis and interpretations of poems, exploring poetic devices and themes.\",\"type\":\"poetryAnalysis\",\"functionName\":\"createPoetryAnalysis\"},{\"No\":610,\"Category\":\"Content Enrichment\",\"Format\":\"Educational Short Stories\",\"Description\":\"Weave educational content into engaging short stories, making learning fun and relatable.\",\"type\":\"educationalShortStory\",\"functionName\":\"createEducationalShortStory\"},{\"No\":613,\"Category\":\"Study Aids\",\"Format\":\"Math Word Problem Explanations\",\"Description\":\"Offers clear and step-by-step explanations for solving math word problems.\",\"type\":\"mathWordProblemExplanation\",\"functionName\":\"createMathWordProblemExplanation\"},\n{\"No\":605,\"Category\":\"Language Arts\",\"Format\":\"Literary Critique\",\"Description\":\"Offers in-depth analysis and interpretation of a literary work, exploring themes, characters, and literary devices.\",\"type\":\"literaryCritique\",\"functionName\":\"createLiteraryCritique\"},{\"No\":606,\"Category\":\"Content Enrichment\",\"Format\":\"Newspaper Article (Simulated)\",\"Description\":\"Simulates a newspaper article on a current event or topic, adhering to journalistic conventions and objectivity.\",\"type\":\"newspaperArticle\",\"functionName\":\"createNewspaperArticle\"},{\"No\":607,\"Category\":\"Simulations & Games\",\"Format\":\"Debate Scripts\",\"Description\":\"Provides structured debate scripts with arguments and counterarguments on controversial topics.\",\"type\":\"debateScripts\",\"functionName\":\"createDebateScripts\"},\n{\"No\":617,\"Category\":\"Science\",\"Format\":\"Scientific Investigations\",\"Description\":\"Detailed guides for conducting scientific investigations, including formulating hypotheses, designing experiments, collecting and analyzing data, and drawing conclusions.\",\"type\":\"scientificInvestigations\",\"functionName\":\"createScientificInvestigations\"},{\"No\":618,\"Category\":\"Science\",\"Format\":\"Science News Articles (Curated)\",\"Description\":\"Presents a curated collection of age-appropriate science news articles from reputable sources.\",\"type\":\"scienceNewsArticles\",\"functionName\":\"createScienceNewsArticles\"},\n{\"No\":624,\"Category\":\"Science\",\"Format\":\"Scientific Method Practice\",\"Description\":\"Provide interactive exercises and scenarios that guide students through the steps of the scientific method, from observation to conclusion.\",\"type\":\"scientificMethodPractice\",\"functionName\":\"createScientificMethodPractice\"},{\"No\":652,\"Category\":\"Social Sciences\",\"Format\":\"Social Science Experiments (Text-Based)\",\"Description\":\"Design text-based simulations or scenarios to explore social phenomena, decision-making, and consequences.\",\"type\":\"socialScienceExperiments\",\"functionName\":\"createSocialScienceExperiments\"},{\"No\":653,\"Category\":\"Social Sciences\",\"Format\":\"Cultural Comparisons\",\"Description\":\"Present information about different cultures, highlighting similarities and differences in traditions, beliefs, and practices.\",\"type\":\"culturalComparisons\",\"functionName\":\"createCulturalComparisons\"},{\"No\":655,\"Category\":\"Social Sciences\",\"Format\":\"Ethical Dilemmas and Decision-Making\",\"Description\":\"Present ethical dilemmas related to historical events or social issues, prompting students to consider different perspectives and make informed choices.\",\"type\":\"ethicalDilemmasDecisionMaking\",\"functionName\":\"createEthicalDilemmasDecisionMaking\"},{\"No\":656,\"Category\":\"Social Sciences\",\"Format\":\"Historical \\\"What If\\\" Scenarios\",\"Description\":\"Stimulates historical imagination and understanding of cause-and-effect relationships by exploring alternative outcomes.\",\"type\":\"historicalWhatIfScenarios\",\"functionName\":\"createHistoricalWhatIfScenarios\"},{\"No\":658,\"Category\":\"Social Sciences\",\"Format\":\"Map-Based Activities\",\"Description\":\"Provide interactive maps with historical events, geographical features, or cultural data, encouraging exploration and spatial understanding.\",\"type\":\"mapBasedActivities\",\"functionName\":\"createMapBasedActivities\"},\n{\"No\":1201,\"Category\":\"Study Aids\",\"Format\":\"Text with Adjustable Font and Spacing\",\"Description\":\"Allow users to customize font type, size, and spacing for optimal readability.\",\"type\":\"textAdjustableFontSpacing\",\"functionName\":\"createTextAdjustableFontSpacing\"},\n{\"No\":1205,\"Category\":\"Interactive Learning\",\"Format\":\"Multi-Sensory Spelling Practice\",\"Description\":\"Incorporate activities that involve tracing, building, or manipulating letters and words to reinforce spelling.\",\"type\":\"multiSensorySpellingPractice\",\"functionName\":\"createMultiSensorySpellingPractice\"},\n{\"No\":1800,\"Category\":\"Educational Games\",\"Format\":\"Word Search\",\"Description\":\"Find hidden words in a grid of letters.\",\"type\":\"wordSearch\",\"functionName\":\"createWordSearchGame\"},{\"No\":1802,\"Category\":\"Educational Games\",\"Format\":\"Hangman\",\"Description\":\"Guess the hidden word letter by letter.\",\"type\":\"hangman\",\"functionName\":\"createHangmanGame\"},{\"No\":1803,\"Category\":\"Educational Games\",\"Format\":\"Wordle\",\"Description\":\"Guess the 5-letter word in 6 tries.\",\"type\":\"wordle\",\"functionName\":\"createWordleGame\"},{\"No\":1804,\"Category\":\"Educational Games\",\"Format\":\"Anagrams\",\"Description\":\"Rearrange letters to form a word.\",\"type\":\"anagrams\",\"functionName\":\"createAnagramsGame\"},{\"No\":1805,\"Category\":\"Educational Games\",\"Format\":\"Crossword Puzzle\",\"Description\":\"Solve crossword puzzles with intersecting words and clues.\",\"type\":\"crosswordPuzzle\",\"functionName\":\"createCrosswordGame\"},{\"No\":1806,\"Category\":\"Educational Games\",\"Format\":\"Sudoku\",\"Description\":\"Solve Sudoku puzzles by filling a 9x9 grid with digits.\",\"type\":\"sudoku\",\"functionName\":\"createSudokuGame\"},{\"No\":1807,\"Category\":\"Educational Games\",\"Format\":\"Boggle\",\"Description\":\"Find as many words as possible in a grid of letters.\",\"type\":\"boggle\",\"functionName\":\"createBoggleGame\"},{\"No\":1808,\"Category\":\"Educational Games\",\"Format\":\"7 Little Words\",\"Description\":\"Create 7 words by combining letter groups.\",\"type\":\"sevenLittleWords\",\"functionName\":\"create7LittleWordsGame\"},{\"No\":1809,\"Category\":\"Educational Games\",\"Format\":\"KenKen\",\"Description\":\"Solve KenKen puzzles, a variation of Sudoku with math operations.\",\"type\":\"kenken\",\"functionName\":\"createKenKenGame\"},{\"No\":1810,\"Category\":\"Educational Games\",\"Format\":\"Cryptogram\",\"Description\":\"Decipher the coded message by substituting letters.\",\"type\":\"cryptogram\",\"functionName\":\"createCryptogramGame\"},{\"No\":1811,\"Category\":\"Educational Games\",\"Format\":\"SpellTower\",\"Description\":\"A word game with elements of Tetris and Boggle.\",\"type\":\"spellTower\",\"functionName\":\"createSpellTowerGame\"},{\"No\":1812,\"Category\":\"Educational Games\",\"Format\":\"Typeshift\",\"Description\":\"Find words by shifting columns of letters.\",\"type\":\"typeshift\",\"functionName\":\"createTypeshiftGame\"},{\"No\":1813,\"Category\":\"Educational Games\",\"Format\":\"Cryptic Crossword\",\"Description\":\"Solve cryptic crosswords with clues that involve wordplay.\",\"type\":\"crypticCrossword\",\"functionName\":\"createCrypticCrosswordGame\"},{\"No\":1814,\"Category\":\"Educational Games\",\"Format\":\"Bookworm Adventures\",\"Description\":\"A word game where you create words to defeat monsters.\",\"type\":\"bookwormAdventures\",\"functionName\":\"createBookwormAdventuresGame\"},{\"No\":1815,\"Category\":\"Educational Games\",\"Format\":\"Babble Royale\",\"Description\":\"A competitive word game where you eliminate opponents by spelling words.\",\"type\":\"babbleRoyale\",\"functionName\":\"createBabbleRoyaleGame\"},{\"No\":1816,\"Category\":\"Educational Games\",\"Format\":\"Kitty Letter\",\"Description\":\"A word game where you create words to summon armies of cats.\",\"type\":\"kittyLetter\",\"functionName\":\"createKittyLetterGame\"},{\"No\":1817,\"Category\":\"Educational Games\",\"Format\":\"Letterpress\",\"Description\":\"A strategic word game where you capture tiles by forming words.\",\"type\":\"letterpress\",\"functionName\":\"createLetterpressGame\"},{\"No\":1818,\"Category\":\"Educational Games\",\"Format\":\"Sentence Unscramble\",\"Description\":\"Rearrange the words to form a grammatically correct sentence.\",\"type\":\"sentenceUnscramble\",\"functionName\":\"createSentenceUnscrambleGame\"},{\"No\":1819,\"Category\":\"Educational Games\",\"Format\":\"Odd One Out\",\"Description\":\"Identify the item that doesn't belong in the set.\",\"type\":\"oddOneOut\",\"functionName\":\"createOddOneOutGame\"},{\"No\":1820,\"Category\":\"Educational Games\",\"Format\":\"Interactive Timeline\",\"Description\":\"Explore events on a timeline with clickable elements and zoom functionality.\",\"type\":\"interactiveTimeline\",\"functionName\":\"createInteractiveTimeline\"},{\"No\":1823,\"Category\":\"Educational Games\",\"Format\":\"Classification Game\",\"Description\":\"Categorize items based on shared characteristics.\",\"type\":\"classificationGame\",\"functionName\":\"createClassificationGame\"},{\"No\":1,\"Category\":\"Assessments\",\"Format\":\"Cloze Passages\",\"Description\":\"Fill-in-the-blank text to test understanding of material.\",\"type\":\"clozePassage\",\"functionName\":\"createClozePassage\"},{\"No\":3,\"Category\":\"Assessments\",\"Format\":\"Worksheets with Questions\",\"Description\":\"Worksheets requiring concise answers to promote knowledge recall and comprehension.\",\"type\":\"worksheet\",\"functionName\":\"createWorksheet\"},{\"No\":5,\"Category\":\"Assessments\",\"Format\":\"Self-Assessment Quizzes (with Answers)\",\"Description\":\"Multiple-choice, true/false, or short answer quizzes with immediate feedback, including correct answers.\",\"type\":\"selfAssessmentQuiz\",\"functionName\":\"createSelfAssessmentQuiz\"},{\"No\":7,\"Category\":\"Assessments\",\"Format\":\"Error Correction Exercises\",\"Description\":\"Passages containing deliberate errors that students identify and correct to reinforce grammar and comprehension.\",\"type\":\"errorCorrection\",\"functionName\":\"createErrorCorrectionExercise\"},{\"No\":65,\"Category\":\"Assessments\",\"Format\":\"Fill-in-the-Blanks\",\"Description\":\"Create exercises where learners complete missing information.\",\"type\":\"fillInTheBlanks\",\"functionName\":\"createFillInTheBlanks\"},{\"No\":66,\"Category\":\"Assessments\",\"Format\":\"True/False Statements\",\"Description\":\"Test comprehension with simple statements.\",\"type\":\"trueFalseStatements\",\"functionName\":\"createTrueFalseStatements\"},{\"No\":67,\"Category\":\"Assessments\",\"Format\":\"Matching\",\"Description\":\"Engage learners in interactive activities to match or categorize information.\",\"type\":\"dragAndDropActivity\",\"functionName\":\"createDragAndDropActivity\"},{\"No\":92,\"Category\":\"Assessments\",\"Format\":\"Self-Assessment Quizzes\",\"Description\":\"Allow learners to test their knowledge and identify areas for improvement.\",\"type\":\"selfAssessmentQuiz\",\"functionName\":\"createSelfAssessmentQuiz\"},{\"No\":1208,\"Category\":\"Assessments\",\"Format\":\"Interactive Reading Comprehension\",\"Description\":\"Engage students with texts that include interactive questions and activities to check understanding and encourage deeper analysis.\",\"type\":\"interactiveReadingComprehension\",\"functionName\":\"createInteractiveReadingComprehension\"},{\"No\":1209,\"Category\":\"Simulations & Games\",\"Format\":\"Interactive Math Games\",\"Description\":\"Design engaging math games that help students practice arithmetic, problem-solving, and other mathematical concepts through interactive activities.\",\"type\":\"interactiveMathGames\",\"functionName\":\"createInteractiveMathGames\"},{\"No\":1211,\"Category\":\"Study Aids\",\"Format\":\"Guided Writing Prompts\",\"Description\":\"Provide prompts that guide students through the writing process, including brainstorming, drafting, and revising.\",\"type\":\"guidedWritingPrompts\",\"functionName\":\"createGuidedWritingPrompts\"},\n{\"No\":1216,\"Category\":\"Interactive Learning\",\"Format\":\"Multi-Sensory Reading Activities\",\"Description\":\"Incorporate visual, auditory, and tactile elements to engage students in reading activities that enhance comprehension and retention.\",\"type\":\"multiSensoryReadingActivities\",\"functionName\":\"createMultiSensoryReadingActivities\"},\n{\"No\":1219,\"Category\":\"Study Aids\",\"Format\":\"Guided Reading Exercises\",\"Description\":\"Provide structured reading exercises with prompts and guidance to help students improve reading comprehension and fluency.\",\"type\":\"guidedReadingExercises\",\"functionName\":\"createGuidedReadingExercises\"},\n{\"No\":1000,\"Category\":\"Interactive Study\",\"Format\":\"Storytelling\",\"Description\":\"Sharing Bible stories in an engaging and relevant way.\",\"type\":\"storytelling\",\"functionName\":\"createStorytelling\"},{\"No\":1001,\"Category\":\"Interactive Study\",\"Format\":\"Discussion\",\"Description\":\"Encouraging questions and conversations to explore deeper meanings.\",\"type\":\"discussion\",\"functionName\":\"createDiscussion\"},{\"No\":1002,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Activities\",\"Description\":\"Using games, crafts, and role-playing to make learning fun.\",\"type\":\"interactiveActivity\",\"functionName\":\"createInteractiveActivity\"},{\"No\":1003,\"Category\":\"Technology & AI\",\"Format\":\"Technology-Enhanced\",\"Description\":\"Utilizing videos, apps, and online resources for better understanding.\",\"type\":\"technologyEnhanced\",\"functionName\":\"createTechnologyEnhanced\"},{\"No\":1004,\"Category\":\"Personal Reflection\",\"Format\":\"Personal Study\",\"Description\":\"Encouraging individual Bible reading and reflection.\",\"type\":\"personalStudy\",\"functionName\":\"createPersonalStudy\"},{\"No\":1005,\"Category\":\"Interactive Study\",\"Format\":\"Group Study\",\"Description\":\"Facilitating group discussions to share insights and learn from each other.\",\"type\":\"groupStudy\",\"functionName\":\"createGroupStudy\"},{\"No\":1006,\"Category\":\"Creative Exploration\",\"Format\":\"Creative Expression\",\"Description\":\"Using art, music, and drama to creatively express biblical truths.\",\"type\":\"creativeExpression\",\"functionName\":\"createCreativeExpression\"},{\"No\":1007,\"Category\":\"Practical Application\",\"Format\":\"Service and Outreach\",\"Description\":\"Applying biblical principles through acts of service and sharing faith.\",\"type\":\"serviceAndOutreach\",\"functionName\":\"createServiceAndOutreach\"},{\"No\":1008,\"Category\":\"Theological Insights\",\"Format\":\"Theological Reading\",\"Description\":\"Deep dive into studying doctrines and theological concepts.\",\"type\":\"theologicalReading\",\"functionName\":\"createTheologicalReading\"},{\"No\":1009,\"Category\":\"Historical Context\",\"Format\":\"Historical Reading\",\"Description\":\"Understanding the historical and cultural context of the Bible.\",\"type\":\"historicalReading\",\"functionName\":\"createHistoricalReading\"},{\"No\":1010,\"Category\":\"Creative Exploration\",\"Format\":\"Literary Reading\",\"Description\":\"Analyzing literary styles and metaphors used in the texts.\",\"type\":\"literaryReading\",\"functionName\":\"createLiteraryReading\"},{\"No\":1013,\"Category\":\"Practical Application\",\"Format\":\"Applicative Reading\",\"Description\":\"Applying Bible teachings to daily life and contemporary issues.\",\"type\":\"applicativeReading\",\"functionName\":\"createApplicativeReading\"},{\"No\":1014,\"Category\":\"Personal Reflection\",\"Format\":\"Silent Reading\",\"Description\":\"Reading in silence for personal reflection and spiritual connection.\",\"type\":\"silentReading\",\"functionName\":\"createSilentReading\"},{\"No\":1015,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Topical Reading\",\"Description\":\"Choosing a specific theme and studying all related verses.\",\"type\":\"topicalReading\",\"functionName\":\"createTopicalReading\"},{\"No\":1016,\"Category\":\"Creative Exploration\",\"Format\":\"Narrative Reading\",\"Description\":\"Reading the Bible as a continuous story, focusing on the plot and characters.\",\"type\":\"narrativeReading\",\"functionName\":\"createNarrativeReading\"},{\"No\":1017,\"Category\":\"Creative Exploration\",\"Format\":\"Symbolic Reading\",\"Description\":\"Searching for and interpreting symbols and hidden meanings.\",\"type\":\"symbolicReading\",\"functionName\":\"createSymbolicReading\"},{\"No\":1018,\"Category\":\"Personal Reflection\",\"Format\":\"Meditative Reading with Music\",\"Description\":\"Enhancing focus and reflection with calming music.\",\"type\":\"meditativeReadingWithMusic\",\"functionName\":\"createMeditativeReadingWithMusic\"},{\"No\":1019,\"Category\":\"Personal Reflection\",\"Format\":\"Reading with Prayer\",\"Description\":\"Incorporating prayer before and after reading for deeper connection.\",\"type\":\"readingWithPrayer\",\"functionName\":\"createReadingWithPrayer\"},{\"No\":1020,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Multilingual Reading\",\"Description\":\"Comparing translations in different languages for new insights.\",\"type\":\"multilingualReading\",\"functionName\":\"createMultilingualReading\"},{\"No\":1021,\"Category\":\"Creative Exploration\",\"Format\":\"Reading with Art\",\"Description\":\"Expressing biblical scenes or characters through drawing or painting.\",\"type\":\"readingWithArt\",\"functionName\":\"createReadingWithArt\"},{\"No\":1022,\"Category\":\"Personal Reflection\",\"Format\":\"Reading in Nature\",\"Description\":\"Connecting with creation while reading in a peaceful outdoor setting.\",\"type\":\"readingInNature\",\"functionName\":\"createReadingInNature\"},{\"No\":1023,\"Category\":\"Content-Focused Study\",\"Format\":\"Character-Focused Reading\",\"Description\":\"Studying the journey and development of a specific biblical figure.\",\"type\":\"characterFocusedReading\",\"functionName\":\"createCharacterFocusedReading\"},{\"No\":1024,\"Category\":\"Historical Context\",\"Format\":\"Time-Period Focused Reading\",\"Description\":\"Exploring events within a specific timeframe in biblical history.\",\"type\":\"timePeriodFocusedReading\",\"functionName\":\"createTimePeriodFocusedReading\"},{\"No\":1025,\"Category\":\"Content-Focused Study\",\"Format\":\"Genre-Focused Reading\",\"Description\":\"Focusing on a specific literary genre, like proverbs or prophecies.\",\"type\":\"genreFocusedReading\",\"functionName\":\"createGenreFocusedReading\"},{\"No\":1026,\"Category\":\"Content-Focused Study\",\"Format\":\"Location-Focused Reading\",\"Description\":\"Studying events that occurred in a particular biblical location.\",\"type\":\"locationFocusedReading\",\"functionName\":\"createLocationFocusedReading\"},{\"No\":1027,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Word-Focused Reading\",\"Description\":\"Exploring all verses containing a specific word or concept.\",\"type\":\"wordFocusedReading\",\"functionName\":\"createWordFocusedReading\"},{\"No\":1028,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Dictionary-Aided Reading\",\"Description\":\"Using a dictionary to understand unfamiliar words and concepts.\",\"type\":\"dictionaryAidedReading\",\"functionName\":\"createDictionaryAidedReading\"},{\"No\":1029,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Map-Aided Reading\",\"Description\":\"Using maps to visualize locations and journeys in the Bible.\",\"type\":\"mapAidedReading\",\"functionName\":\"createMapAidedReading\"},{\"No\":1030,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Commentary-Aided Reading\",\"Description\":\"Using commentaries to gain deeper insights into the text.\",\"type\":\"commentaryAidedReading\",\"functionName\":\"createCommentaryAidedReading\"},{\"No\":1031,\"Category\":\"Interactive Study\",\"Format\":\"Guided Reading\",\"Description\":\"Receiving guidance and support from a mentor or experienced believer.\",\"type\":\"guidedReading\",\"functionName\":\"createGuidedReading\"},{\"No\":1033,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Historical Criticism\",\"Description\":\"Examining the historical context of the texts.\",\"type\":\"historicalCriticism\",\"functionName\":\"createHistoricalCriticism\"},{\"No\":1034,\"Category\":\"Creative Exploration\",\"Format\":\"Literary Criticism\",\"Description\":\"Analyzing literary techniques and symbolism.\",\"type\":\"literaryCriticism\",\"functionName\":\"createLiteraryCriticism\"},{\"No\":1036,\"Category\":\"Practical Application\",\"Format\":\"Social Criticism\",\"Description\":\"Studying the Bible's impact on societies and values.\",\"type\":\"socialCriticism\",\"functionName\":\"createSocialCriticism\"},{\"No\":1037,\"Category\":\"Personal Reflection\",\"Format\":\"Promise-Focused Reading\",\"Description\":\"Identifying and reflecting on God's promises in the Bible.\",\"type\":\"promiseFocusedReading\",\"functionName\":\"createPromiseFocusedReading\"},{\"No\":1038,\"Category\":\"Personal Reflection\",\"Format\":\"Invitation-Focused Reading\",\"Description\":\"Understanding God's calls to action and faith.\",\"type\":\"invitationFocusedReading\",\"functionName\":\"createInvitationFocusedReading\"},{\"No\":1039,\"Category\":\"Personal Reflection\",\"Format\":\"Encouragement-Focused Reading\",\"Description\":\"Finding comfort and strength in uplifting verses.\",\"type\":\"encouragementFocusedReading\",\"functionName\":\"createEncouragementFocusedReading\"},{\"No\":1040,\"Category\":\"Personal Reflection\",\"Format\":\"Love-Focused Reading\",\"Description\":\"Discovering expressions of God's unconditional love.\",\"type\":\"loveFocusedReading\",\"functionName\":\"createLoveFocusedReading\"},{\"No\":1041,\"Category\":\"Personal Reflection\",\"Format\":\"Hope-Focused Reading\",\"Description\":\"Finding messages of hope and a brighter future.\",\"type\":\"hopeFocusedReading\",\"functionName\":\"createHopeFocusedReading\"},{\"No\":1042,\"Category\":\"Technology & AI\",\"Format\":\"Interactive Reading\",\"Description\":\"Utilizing apps/websites for notes, highlights, and searches.\",\"type\":\"interactiveReading\",\"functionName\":\"createInteractiveReading\"},{\"No\":1043,\"Category\":\"Technology & AI\",\"Format\":\"Audio Reading\",\"Description\":\"Listening to the Bible while multitasking.\",\"type\":\"audioReading\",\"functionName\":\"createAudioReading\"},{\"No\":1044,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Reading with Instant Translation\",\"Description\":\"Accessing on-the-spot translations for difficult words.\",\"type\":\"readingWithInstantTranslation\",\"functionName\":\"createReadingWithInstantTranslation\"},{\"No\":1046,\"Category\":\"Technology & AI\",\"Format\":\"Image Generation Reading\",\"Description\":\"Employing AI to create visuals based on the text.\",\"type\":\"imageGenerationReading\",\"functionName\":\"createImageGenerationReading\"},{\"No\":1047,\"Category\":\"Interactive Study\",\"Format\":\"Online Group Reading\",\"Description\":\"Facilitating discussions and sharing insights virtually.\",\"type\":\"onlineGroupReading\",\"functionName\":\"createOnlineGroupReading\"},{\"No\":1048,\"Category\":\"Technology & AI\",\"Format\":\"Reading with Audio Commentary\",\"Description\":\"Recording and sharing personal reflections on the text.\",\"type\":\"readingWithAudioCommentary\",\"functionName\":\"createReadingWithAudioCommentary\"},{\"No\":1049,\"Category\":\"Creative Exploration\",\"Format\":\"Creative Content Reading\",\"Description\":\"Expressing biblical inspiration through stories, poems, or music.\",\"type\":\"creativeContentReading\",\"functionName\":\"createCreativeContentReading\"},{\"No\":1050,\"Category\":\"Technology & AI\",\"Format\":\"Presentation-Based Reading\",\"Description\":\"Creating visual presentations on specific biblical themes.\",\"type\":\"presentationBasedReading\",\"functionName\":\"createPresentationBasedReading\"},{\"No\":1051,\"Category\":\"Personal Reflection\",\"Format\":\"Question-Driven Reading\",\"Description\":\"Actively engaging with the text by asking and answering questions.\",\"type\":\"questionDrivenReading\",\"functionName\":\"createQuestionDrivenReading\"},{\"No\":1052,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Comparative Translation Reading\",\"Description\":\"Comparing different translations to gain deeper understanding.\",\"type\":\"comparativeTranslationReading\",\"functionName\":\"createComparativeTranslationReading\"},{\"No\":1053,\"Category\":\"Historical Context\",\"Format\":\"Cultural & Social Reading\",\"Description\":\"Exploring customs, traditions, and social practices in context.\",\"type\":\"culturalSocialReading\",\"functionName\":\"createCulturalSocialReading\"},{\"No\":1054,\"Category\":\"Historical Context\",\"Format\":\"Geographical Reading\",\"Description\":\"Studying locations and tracing journeys mentioned in the Bible.\",\"type\":\"geographicalReading\",\"functionName\":\"createGeographicalReading\"},{\"No\":1055,\"Category\":\"Historical Context\",\"Format\":\"Linguistic Reading\",\"Description\":\"Delving into the original languages for deeper comprehension.\",\"type\":\"linguisticReading\",\"functionName\":\"createLinguisticReading\"},{\"No\":1056,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Verse Mapping\",\"Description\":\"Detailed analysis of a verse, including cross-references and context.\",\"type\":\"verseMapping\",\"functionName\":\"createVerseMapping\"},{\"No\":1057,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Topical Study\",\"Description\":\"In-depth exploration of a specific theme across the Bible.\",\"type\":\"topicalStudy\",\"functionName\":\"createTopicalStudy\"},{\"No\":1058,\"Category\":\"Content-Focused Study\",\"Format\":\"Character Study\",\"Description\":\"Focusing on the life and lessons of a particular biblical figure.\",\"type\":\"characterStudy\",\"functionName\":\"createCharacterStudy\"},{\"No\":1059,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Inductive Study\",\"Description\":\"Observation, interpretation, and application of a passage.\",\"type\":\"inductiveStudy\",\"functionName\":\"createInductiveStudy\"},{\"No\":1060,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"SOAP Method\",\"Description\":\"Scripture, Observation, Application, and Prayer approach.\",\"type\":\"sOAPMethod\",\"functionName\":\"createSOAPMethod\"},{\"No\":1061,\"Category\":\"Personal Reflection\",\"Format\":\"Lectio Divina\",\"Description\":\"Slow, meditative reading with prayerful reflection.\",\"type\":\"lectioDivina\",\"functionName\":\"createLectioDivina\"},{\"No\":1062,\"Category\":\"Historical Context\",\"Format\":\"Chronological Reading\",\"Description\":\"Following the Bible's events in historical order.\",\"type\":\"chronologicalReading\",\"functionName\":\"createChronologicalReading\"},{\"No\":1063,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Parallel Reading\",\"Description\":\"Comparing accounts of the same event in different Gospels.\",\"type\":\"parallelReading\",\"functionName\":\"createParallelReading\"},{\"No\":1064,\"Category\":\"Content-Focused Study\",\"Format\":\"Book-by-Book Study\",\"Description\":\"Systematic study of one book at a time.\",\"type\":\"bookByBookStudy\",\"functionName\":\"createBookByBookStudy\"},{\"No\":1065,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Word Study\",\"Description\":\"Examining the original meaning and usage of specific words.\",\"type\":\"wordStudy\",\"functionName\":\"createWordStudy\"},{\"No\":1066,\"Category\":\"Personal Reflection\",\"Format\":\"Prayer Journaling\",\"Description\":\"Writing down prayers and reflections inspired by the reading.\",\"type\":\"prayerJournaling\",\"functionName\":\"createPrayerJournaling\"},{\"No\":1067,\"Category\":\"Personal Reflection\",\"Format\":\"Memory Verse Practice\",\"Description\":\"Memorizing and reciting key verses for deeper internalization.\",\"type\":\"memoryVersePractice\",\"functionName\":\"createMemoryVersePractice\"},{\"No\":1068,\"Category\":\"Creative Exploration\",\"Format\":\"Bible Art Journaling\",\"Description\":\"Combining creative expression with Bible study through visual journaling.\",\"type\":\"bibleArtJournaling\",\"functionName\":\"createBibleArtJournaling\"},{\"No\":1069,\"Category\":\"Interactive Study\",\"Format\":\"Bible Study Games\",\"Description\":\"Using games to reinforce knowledge and make learning enjoyable.\",\"type\":\"bibleStudyGames\",\"functionName\":\"createBibleStudyGames\"},{\"No\":1070,\"Category\":\"Interactive Study\",\"Format\":\"Group Bible Projects\",\"Description\":\"Collaborating on creative projects inspired by the Bible.\",\"type\":\"groupBibleProjects\",\"functionName\":\"createGroupBibleProjects\"},{\"No\":1071,\"Category\":\"Personal Reflection\",\"Format\":\"Devotional Reading\",\"Description\":\"Reading short daily passages with guided reflections.\",\"type\":\"devotionalReading\",\"functionName\":\"createDevotionalReading\"},{\"No\":1072,\"Category\":\"Creative Exploration\",\"Format\":\"Story Format\",\"Description\":\"Exploring biblical themes and characters through fictional narratives.\",\"type\":\"bibleStoryFormat\",\"functionName\":\"createBibleStoryFormat\"},{\"No\":1073,\"Category\":\"Multi-Sensory Experiences\",\"Format\":\"Video Summary\",\"Description\":\"Watching movies or documentaries that illuminate biblical stories.\",\"type\":\"videoSummary\",\"functionName\":\"createVideoSummary\"},{\"No\":1074,\"Category\":\"Multi-Sensory Experiences\",\"Format\":\"Pilgrimage & Travel\",\"Description\":\"Visiting biblical sites for a deeper connection to the text.\",\"type\":\"pilgrimageAndTravel\",\"functionName\":\"createPilgrimageAndTravel\"},{\"No\":1075,\"Category\":\"Technology & AI\",\"Format\":\"AI-Generated Summaries\",\"Description\":\"Using AI to generate concise overviews of passages or books.\",\"type\":\"aIGeneratedSummaries\",\"functionName\":\"createAIGeneratedSummaries\"},{\"No\":1076,\"Category\":\"Technology & AI\",\"Format\":\"AI-Generated Discussion Questions\",\"Description\":\"Using AI to stimulate deeper thought and conversation.\",\"type\":\"aiGeneratedDiscussionQuestions\",\"functionName\":\"createAIGeneratedDiscussionQuestions\"},{\"No\":1077,\"Category\":\"Technology & AI\",\"Format\":\"AI-Generated Personalization\",\"Description\":\"Tailoring study plans and content based on user preferences.\",\"type\":\"aiGeneratedPersonalization\",\"functionName\":\"createAIGeneratedPersonalization\"},{\"No\":1078,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Verse-by-Verse Study\",\"Description\":\"In-depth analysis of each verse within a passage, focusing on grammar, context, and cross-references.\",\"type\":\"verseByVerseStudy\",\"functionName\":\"createVerseByVerseStudy\"},{\"No\":1079,\"Category\":\"Content-Focused Study\",\"Format\":\"Book Overview\",\"Description\":\"Gaining a general understanding of a book's purpose, themes, and historical context before diving into deeper study.\",\"type\":\"bookOverview\",\"functionName\":\"createBookOverview\"},{\"No\":1080,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Concordance Study\",\"Description\":\"Using a concordance to explore the various contexts in which a specific word or phrase is used throughout the Bible.\",\"type\":\"concordanceStudy\",\"functionName\":\"createConcordanceStudy\"},{\"No\":1081,\"Category\":\"Content-Focused Study\",\"Format\":\"Biographical Study\",\"Description\":\"Examining the lives of biblical figures, their relationships, challenges, and spiritual growth.\",\"type\":\"biographicalStudy\",\"functionName\":\"createBiographicalStudy\"},{\"No\":1082,\"Category\":\"Historical Context\",\"Format\":\"Historical Context Study\",\"Description\":\"Researching the cultural, political, and social backdrop of specific events or periods in the Bible.\",\"type\":\"historicalContextStudy\",\"functionName\":\"createHistoricalContextStudy\"},{\"No\":1083,\"Category\":\"Content-Focused Study\",\"Format\":\"Figurative Language Study\",\"Description\":\"Identifying and interpreting metaphors, similes, and other literary devices used in the Bible.\",\"type\":\"figurativeLanguageStudy\",\"functionName\":\"createFigurativeLanguageStudy\"},{\"No\":1084,\"Category\":\"Theological Insights\",\"Format\":\"Typology Study\",\"Description\":\"Exploring connections between Old Testament events/people and their fulfillment in Christ.\",\"type\":\"typologyStudy\",\"functionName\":\"createTypologyStudy\"},{\"No\":1085,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Thematic Study\",\"Description\":\"Tracing a particular theme (e.g., justice, grace, redemption) across different books and eras of the Bible.\",\"type\":\"thematicStudy\",\"functionName\":\"createThematicStudy\"},{\"No\":1086,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Exegetical Study\",\"Description\":\"Careful analysis of the original languages and historical context to understand the author's intended meaning.\",\"type\":\"exegeticalStudy\",\"functionName\":\"createExegeticalStudy\"},{\"No\":1087,\"Category\":\"Exegetical & Hermeneutical\",\"Format\":\"Hermeneutics Study\",\"Description\":\"Learning principles of interpretation to apply the Bible's message to contemporary life.\",\"type\":\"hermeneuticsStudy\",\"functionName\":\"createHermeneuticsStudy\"},{\"No\":1088,\"Category\":\"Interactive Study\",\"Format\":\"Group Discussion Guides\",\"Description\":\"Providing structured questions and prompts for group Bible studies.\",\"type\":\"groupDiscussionGuides\",\"functionName\":\"createGroupDiscussionGuides\"},{\"No\":1089,\"Category\":\"Personal Reflection\",\"Format\":\"Personalized Study Plans\",\"Description\":\"Creating customized plans based on user's interests, goals, and available time.\",\"type\":\"personalizedStudyPlans\",\"functionName\":\"createPersonalizedStudyPlans\"},{\"No\":1090,\"Category\":\"Interactive Study\",\"Format\":\"Gamified Bible Quizzes\",\"Description\":\"Making learning fun and interactive with quizzes and challenges.\",\"type\":\"gamifiedBibleQuizzes\",\"functionName\":\"createGamifiedBibleQuizzes\"},{\"No\":1091,\"Category\":\"Creative Exploration\",\"Format\":\"Bible-Based Creative Writing\",\"Description\":\"Encouraging users to express their understanding through creative writing inspired by the Bible.\",\"type\":\"bibleBasedCreativeWriting\",\"functionName\":\"createBibleBasedCreativeWriting\"},{\"No\":1092,\"Category\":\"Personal Reflection\",\"Format\":\"Prayer & Meditation Prompts\",\"Description\":\"Offering prompts to guide prayer and reflection on specific passages.\",\"type\":\"prayerMeditationPrompts\",\"functionName\":\"createPrayerMeditationPrompts\"},{\"No\":1093,\"Category\":\"Interactive Study\",\"Format\":\"Social Sharing & Community Building\",\"Description\":\"Enabling users to connect with others for shared learning and encouragement.\",\"type\":\"socialSharingCommunityBuilding\",\"functionName\":\"createSocialSharingCommunityBuilding\"},{\"No\":1094,\"Category\":\"Personal Reflection\",\"Format\":\"Scripture Memory Systems\",\"Description\":\"Utilizing techniques (e.g., flashcards, repetition, visualization) to memorize verses and passages.\",\"type\":\"scriptureMemorySystems\",\"functionName\":\"createScriptureMemorySystems\"},{\"No\":1095,\"Category\":\"Personal Reflection\",\"Format\":\"Scripture Writing\",\"Description\":\"Copying verses or passages by hand to aid in memorization and meditation.\",\"type\":\"scriptureWriting\",\"functionName\":\"createScriptureWriting\"},{\"No\":1096,\"Category\":\"Creative Exploration\",\"Format\":\"Bible Journaling Prompts\",\"Description\":\"Providing prompts to encourage creative and reflective journaling about specific verses or themes.\",\"type\":\"bibleJournalingPrompts\",\"functionName\":\"createBibleJournalingPrompts\"},{\"No\":1097,\"Category\":\"Personal Reflection\",\"Format\":\"Bible-Based Music Playlists\",\"Description\":\"Curating playlists of songs that connect to specific passages or themes for enhanced reflection and worship.\",\"type\":\"bibleBasedMusicPlaylists\",\"functionName\":\"createBibleBasedMusicPlaylists\"},{\"No\":1098,\"Category\":\"Technology & AI\",\"Format\":\"Bible-Based Podcasts & Sermons\",\"Description\":\"Recommending relevant podcasts or sermons for deeper understanding and diverse perspectives.\",\"type\":\"bibleBasedPodcastsSermons\",\"functionName\":\"createBibleBasedPodcastsSermons\"},{\"No\":1099,\"Category\":\"Interactive Study\",\"Format\":\"Bible-Based Book Clubs\",\"Description\":\"Facilitating online or in-person groups to discuss books that explore biblical themes or characters.\",\"type\":\"bibleBasedBookClubs\",\"functionName\":\"createBibleBasedBookClubs\"},{\"No\":1101,\"Category\":\"Theological Insights\",\"Format\":\"Apocrypha & Pseudepigrapha Study\",\"Description\":\"Exploring additional texts outside the biblical canon to gain historical and cultural context.\",\"type\":\"apocryphaPseudepigraphaStudy\",\"functionName\":\"createApocryphaPseudepigraphaStudy\"},{\"No\":1102,\"Category\":\"Historical Context\",\"Format\":\"Biblical Archaeology Study\",\"Description\":\"Learning about archaeological discoveries that shed light on biblical events and cultures.\",\"type\":\"biblicalArchaeologyStudy\",\"functionName\":\"createBiblicalArchaeologyStudy\"},{\"No\":1103,\"Category\":\"Historical Context\",\"Format\":\"Biblical Languages Study\",\"Description\":\"Delving into Hebrew or Greek to understand nuances and original meanings.\",\"type\":\"biblicalLanguagesStudy\",\"functionName\":\"createBiblicalLanguagesStudy\"},{\"No\":1104,\"Category\":\"Practical Application\",\"Format\":\"Social Justice & Advocacy Study\",\"Description\":\"Examining the Bible's teachings on social justice and exploring ways to apply them today.\",\"type\":\"socialJusticeAdvocacyStudy\",\"functionName\":\"createSocialJusticeAdvocacyStudy\"},{\"No\":1105,\"Category\":\"Practical Application\",\"Format\":\"Environmental Stewardship Study\",\"Description\":\"Exploring the Bible's call to care for creation and promote sustainability.\",\"type\":\"environmentalStewardshipStudy\",\"functionName\":\"createEnvironmentalStewardshipStudy\"},{\"No\":1106,\"Category\":\"Practical Application\",\"Format\":\"Interfaith Dialogue Study\",\"Description\":\"Engaging in respectful conversations with people of other faiths to promote understanding and peace.\",\"type\":\"interfaithDialogueStudy\",\"functionName\":\"createInterfaithDialogueStudy\"},{\"No\":1107,\"Category\":\"Practical Application\",\"Format\":\"Bible-Based Leadership Development\",\"Description\":\"Studying biblical principles of leadership and applying them to personal and professional growth.\",\"type\":\"bibleBasedLeadershipDevelopment\",\"functionName\":\"createBibleBasedLeadershipDevelopment\"},{\"No\":1108,\"Category\":\"Practical Application\",\"Format\":\"Bible-Based Financial Stewardship\",\"Description\":\"Learning about biblical principles of money management and generosity.\",\"type\":\"bibleBasedFinancialStewardship\",\"functionName\":\"createBibleBasedFinancialStewardship\"},{\"No\":1109,\"Category\":\"Practical Application\",\"Format\":\"Bible-Based Parenting & Family Life\",\"Description\":\"Exploring the Bible's wisdom for raising children and building strong families.\",\"type\":\"bibleBasedParentingFamilyLife\",\"functionName\":\"createBibleBasedParentingFamilyLife\"},{\"No\":1110,\"Category\":\"Practical Application\",\"Format\":\"Bible-Based Marriage Enrichment\",\"Description\":\"Studying biblical principles for cultivating healthy and fulfilling marriages.\",\"type\":\"bibleBasedMarriageEnrichment\",\"functionName\":\"createBibleBasedMarriageEnrichment\"},{\"No\":1111,\"Format\":\"Expository Sermon\",\"Description\":\"A detailed explanation of a specific passage of scripture, examining the meaning verse by verse.\",\"type\":\"expositorySermon\",\"functionName\":\"createExpositorySermon\",\"Category\":\"Expository Sermons\"},{\"No\":1112,\"Format\":\"Doctrinal Sermon\",\"Description\":\"Exploring a specific doctrine in the Bible and explaining its theological significance.\",\"type\":\"doctrinalSermon\",\"functionName\":\"createDoctrinalSermon\",\"Category\":\"Expository Sermons\"},{\"No\":1113,\"Format\":\"Redemptive-Historical Sermon\",\"Description\":\"Connecting a passage to the larger redemptive story of scripture, showing how it points to Christ.\",\"type\":\"redemptiveHistoricalSermon\",\"functionName\":\"createRedemptiveHistoricalSermon\",\"Category\":\"Expository Sermons\"},{\"No\":1114,\"Format\":\"Expository Character Study\",\"Description\":\"An in-depth study of a biblical character, exploring their role and significance within a specific passage.\",\"type\":\"expositoryCharacterStudy\",\"functionName\":\"createExpositoryCharacterStudy\",\"Category\":\"Expository Sermons\"},{\"No\":1115,\"Format\":\"Expository Biographical Sermon\",\"Description\":\"Focusing on the life of a biblical figure and their impact within the broader scriptural narrative.\",\"type\":\"expositoryBiographicalSermon\",\"functionName\":\"createExpositoryBiographicalSermon\",\"Category\":\"Expository Sermons\"},{\"No\":1116,\"Format\":\"Bible Reading Sermon\",\"Description\":\"A simple sermon that focuses on reading a portion of scripture with limited commentary or application.\",\"type\":\"bibleReadingSermon\",\"functionName\":\"createBibleReadingSermon\",\"Category\":\"Expository Sermons\"},{\"No\":1117,\"Format\":\"Topical Sermon\",\"Description\":\"Exploring a specific theme or topic in the Bible, gathering insights from various passages.\",\"type\":\"topicalSermon\",\"functionName\":\"createTopicalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1118,\"Format\":\"Practical Sermon\",\"Description\":\"Offering practical advice for Christian living, rooted in biblical principles.\",\"type\":\"practicalSermon\",\"functionName\":\"createPracticalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1119,\"Format\":\"Vocational Sermon\",\"Description\":\"A sermon focused on connecting faith with professional or vocational life.\",\"type\":\"vocationalSermon\",\"functionName\":\"createVocationalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1120,\"Format\":\"Counseling Sermon\",\"Description\":\"Offering biblical guidance and comfort for personal or emotional struggles.\",\"type\":\"counselingSermon\",\"functionName\":\"createCounselingSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1121,\"Format\":\"Social Issues Sermon\",\"Description\":\"Addressing contemporary social issues from a biblical perspective and encouraging faithful responses.\",\"type\":\"socialIssuesSermon\",\"functionName\":\"createSocialIssuesSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1122,\"Format\":\"Teaching Sermon\",\"Description\":\"An instructional sermon focused on biblical education and understanding.\",\"type\":\"teachingSermon\",\"functionName\":\"createTeachingSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1123,\"Format\":\"Narrative Sermon\",\"Description\":\"Using biblical stories to communicate deeper truths and lessons to the audience.\",\"type\":\"narrativeSermon\",\"functionName\":\"createNarrativeSermon\",\"Category\":\"Narrative Sermons\"},{\"No\":1124,\"Format\":\"Imaginative Sermon\",\"Description\":\"Using creativity and imagination to re-tell a biblical story, making it more relatable and engaging.\",\"type\":\"imaginativeSermon\",\"functionName\":\"createImaginativeSermon\",\"Category\":\"Narrative Sermons\"},{\"No\":1125,\"Format\":\"Biblical Storytelling Sermon\",\"Description\":\"A sermon that retells key biblical stories in an engaging, memorable way.\",\"type\":\"biblicalStorytellingSermon\",\"functionName\":\"createBiblicalStorytellingSermon\",\"Category\":\"Narrative Sermons\"},{\"No\":1126,\"Format\":\"Parable Sermon\",\"Description\":\"A sermon focused on Jesus' parables, using them to convey deeper truths and spiritual lessons.\",\"type\":\"parableSermon\",\"functionName\":\"createParableSermon\",\"Category\":\"Narrative Sermons\"},{\"No\":1127,\"Format\":\"Biographical Sermon\",\"Description\":\"A sermon centered around the life and spiritual journey of a biblical character.\",\"type\":\"biographicalSermon\",\"functionName\":\"createBiographicalSermon\",\"Category\":\"Narrative Sermons\"},{\"No\":1128,\"Format\":\"Devotional Sermon\",\"Description\":\"Encouraging personal reflection and connection with God through scripture and prayer.\",\"type\":\"Devotional Sermons\",\"functionName\":\"createDevotionalSermon\",\"Category\":\"Devotional Sermons\"},{\"No\":1129,\"Format\":\"Meditation Sermon\",\"Description\":\"Guiding the congregation in meditation on scripture and the presence of God.\",\"type\":\"meditationSermon\",\"functionName\":\"createMeditationSermon\",\"Category\":\"Devotional Sermons\"},{\"No\":1130,\"Format\":\"Poetic Sermon\",\"Description\":\"Using poetic language and themes to inspire deeper emotional and spiritual reflection.\",\"type\":\"poeticSermon\",\"functionName\":\"createPoeticSermon\",\"Category\":\"Devotional Sermons\"},{\"No\":1131,\"Format\":\"Encouragement Sermon\",\"Description\":\"A sermon offering hope and encouragement to the congregation, rooted in biblical promises.\",\"type\":\"encouragementSermon\",\"functionName\":\"createEncouragementSermon\",\"Category\":\"Devotional Sermons\"},{\"No\":1132,\"Format\":\"Comforting Sermon\",\"Description\":\"Providing comfort and reassurance through scripture, especially during times of hardship.\",\"type\":\"comfortingSermon\",\"functionName\":\"createComfortingSermon\",\"Category\":\"Devotional Sermons\"},{\"No\":1133,\"Format\":\"Ethical Sermon\",\"Description\":\"Exploring ethical questions through a biblical lens and encouraging ethical Christian living.\",\"type\":\"ethicalSermon\",\"functionName\":\"createEthicalSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1134,\"Format\":\"Holiness Sermon\",\"Description\":\"Encouraging a life of holiness and consecration in line with biblical teachings.\",\"type\":\"holinessSermon\",\"functionName\":\"createHolinessSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1135,\"Format\":\"Consecration Sermon\",\"Description\":\"A sermon focused on the dedication of one’s life to God, emphasizing spiritual commitment.\",\"type\":\"consecrationSermon\",\"functionName\":\"createConsecrationSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1136,\"Format\":\"Obedience Sermon\",\"Description\":\"Teaching the importance of obedience to God's word and commands, using biblical examples.\",\"type\":\"obedienceSermon\",\"functionName\":\"createObedienceSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1137,\"Format\":\"Discipleship Sermon\",\"Description\":\"Focusing on the call to be a disciple of Christ, living a life of commitment and growth in faith.\",\"type\":\"discipleshipSermon\",\"functionName\":\"createDiscipleshipSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1138,\"Format\":\"Prophetic Sermon\",\"Description\":\"A sermon delivering a prophetic message, calling the congregation to spiritual renewal or repentance.\",\"type\":\"propheticSermon\",\"functionName\":\"createPropheticSermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1139,\"Format\":\"Transformational Sermon\",\"Description\":\"Challenging the audience to change their lives based on the message of scripture.\",\"type\":\"transformationalSermon\",\"functionName\":\"createTransformationalSermon\",\"Category\":\"Ethical/Transformational Sermons\"},{\"No\":1140,\"Format\":\"Call to Repentance Sermon\",\"Description\":\"A sermon urging the congregation to repent from sin and turn back to God.\",\"type\":\"callToRepentanceSermon\",\"functionName\":\"createCallToRepentanceSermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1141,\"Format\":\"Call to Action Sermon\",\"Description\":\"A sermon urging the congregation to take specific actions based on biblical teachings.\",\"type\":\"callToActionSermon\",\"functionName\":\"createCallToActionSermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1142,\"Format\":\"Spiritual Warfare Sermon\",\"Description\":\"A sermon focusing on the spiritual battles Christians face and how to overcome them using biblical principles.\",\"type\":\"spiritualWarfareSermon\",\"functionName\":\"createSpiritualWarfareSermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1143,\"Format\":\"Missionary Sermon\",\"Description\":\"A sermon emphasizing the importance of evangelism and spreading the gospel to others.\",\"type\":\"missionarySermon\",\"functionName\":\"createMissionarySermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1144,\"Format\":\"Wedding Sermon\",\"Description\":\"A sermon given during a wedding ceremony, focusing on the biblical view of marriage.\",\"type\":\"weddingSermon\",\"functionName\":\"createWeddingSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1145,\"Format\":\"Funeral Sermon\",\"Description\":\"A sermon delivered at a funeral, providing comfort and hope through the message of eternal life.\",\"type\":\"funeralSermon\",\"functionName\":\"createFuneralSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1146,\"Format\":\"Baptism Sermon\",\"Description\":\"A sermon delivered during a baptism, explaining the spiritual significance of the act.\",\"type\":\"baptismSermon\",\"functionName\":\"createBaptismSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1147,\"Format\":\"Graduation Sermon\",\"Description\":\"A sermon encouraging graduates to live out their faith as they enter a new chapter in life.\",\"type\":\"graduationSermon\",\"functionName\":\"createGraduationSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1148,\"Format\":\"Anniversary Sermon\",\"Description\":\"A sermon celebrating a church or individual’s anniversary, reflecting on God’s faithfulness.\",\"type\":\"anniversarySermon\",\"functionName\":\"createAnniversarySermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1149,\"Format\":\"Crisis Sermon\",\"Description\":\"A sermon providing comfort, hope, and guidance during times of crisis or hardship.\",\"type\":\"crisisSermon\",\"functionName\":\"createCrisisSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1150,\"Format\":\"Intercessory Sermon\",\"Description\":\"A sermon focused on the power of intercessory prayer and its role in the Christian faith.\",\"type\":\"intercessorySermon\",\"functionName\":\"createIntercessorySermon\",\"Category\":\"Prayer/Worship Sermons\"},{\"No\":1151,\"Format\":\"Prayer Sermon\",\"Description\":\"A sermon emphasizing the importance of prayer, its power, and how to cultivate a strong prayer life.\",\"type\":\"prayerSermon\",\"functionName\":\"createPrayerSermon\",\"Category\":\"Prayer/Worship Sermons\"},{\"No\":1152,\"Format\":\"Doxological Sermon\",\"Description\":\"A sermon focused on worship and giving glory to God, encouraging the congregation to live a life of praise.\",\"type\":\"doxologicalSermon\",\"functionName\":\"createDoxologicalSermon\",\"Category\":\"Prayer/Worship Sermons\"},{\"No\":1153,\"Format\":\"Worship Sermon\",\"Description\":\"A sermon about the purpose and practice of worship, helping the congregation connect deeply with God.\",\"type\":\"worshipSermon\",\"functionName\":\"createWorshipSermon\",\"Category\":\"Prayer/Worship Sermons\"},{\"No\":1154,\"Format\":\"Revival Sermon\",\"Description\":\"A sermon encouraging spiritual revival and renewal, calling the congregation to deeper faith and action.\",\"type\":\"revivalSermon\",\"functionName\":\"createRevivalSermon\",\"Category\":\"Prayer/Worship Sermons\"},{\"No\":1155,\"Format\":\"Teaching Sermon\",\"Description\":\"An instructional sermon designed to teach specific biblical principles or doctrines.\",\"type\":\"teachingSermon\",\"functionName\":\"createTeachingSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1156,\"Format\":\"Educational Sermon\",\"Description\":\"A sermon focused on providing knowledge or insight on biblical topics or Christian living.\",\"type\":\"educationalSermon\",\"functionName\":\"createEducationalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1157,\"Format\":\"Catechetical Sermon\",\"Description\":\"A sermon focused on teaching the essentials of the Christian faith, often used in preparation for baptism or confirmation.\",\"type\":\"catecheticalSermon\",\"functionName\":\"createCatecheticalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1158,\"Format\":\"Instructional Sermon\",\"Description\":\"A sermon that gives practical guidance and instructions based on biblical principles.\",\"type\":\"instructionalSermon\",\"functionName\":\"createInstructionalSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1159,\"Format\":\"Healing Sermon\",\"Description\":\"A sermon focused on God's power to heal physically, emotionally, and spiritually, encouraging faith in God's healing.\",\"type\":\"healingSermon\",\"functionName\":\"createHealingSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1160,\"Format\":\"Reconciliation Sermon\",\"Description\":\"A sermon focused on reconciliation with God and others, highlighting forgiveness and restoration of relationships.\",\"type\":\"reconciliationSermon\",\"functionName\":\"createReconciliationSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1161,\"Format\":\"Restoration Sermon\",\"Description\":\"A sermon focusing on God's ability to restore what has been broken, offering hope and encouragement.\",\"type\":\"restorationSermon\",\"functionName\":\"createRestorationSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1162,\"Format\":\"Forgiveness Sermon\",\"Description\":\"A sermon focusing on the biblical principle of forgiveness, encouraging both the giving and receiving of forgiveness.\",\"type\":\"forgivenessSermon\",\"functionName\":\"createForgivenessSermon\",\"Category\":\"Topical Sermons\"},{\"No\":1163,\"Format\":\"Deliverance Sermon\",\"Description\":\"A sermon addressing the theme of deliverance from sin, bondage, and oppression, emphasizing God’s power to set free.\",\"type\":\"deliveranceSermon\",\"functionName\":\"createDeliveranceSermon\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1164,\"Format\":\"Community Sermon\",\"Description\":\"A sermon emphasizing the importance of Christian community and fellowship, encouraging unity and support among believers.\",\"type\":\"communitySermon\",\"functionName\":\"createCommunitySermon\",\"Category\":\"Community/Fellowship Sermons\"},{\"No\":1165,\"Format\":\"Unity Sermon\",\"Description\":\"A sermon focused on promoting unity within the body of Christ, using scripture to highlight the value of togetherness.\",\"type\":\"unitySermon\",\"functionName\":\"createUnitySermon\",\"Category\":\"Community/Fellowship Sermons\"},{\"No\":1166,\"Format\":\"Service Sermon\",\"Description\":\"A sermon calling the congregation to serve others selflessly, based on the example of Christ and biblical teachings.\",\"type\":\"serviceSermon\",\"functionName\":\"createServiceSermon\",\"Category\":\"Community/Fellowship Sermons\"},{\"No\":1167,\"Format\":\"Stewardship Sermon\",\"Description\":\"A sermon encouraging faithful stewardship of time, talents, and resources in service to God and others.\",\"type\":\"stewardshipSermon\",\"functionName\":\"createStewardshipSermon\",\"Category\":\"Community/Fellowship Sermons\"},{\"No\":1168,\"Format\":\"Narrative-Topical Hybrid\",\"Description\":\"A sermon blending narrative storytelling with a topical focus, making biblical truths more relatable and memorable.\",\"type\":\"narrativeTopicalHybrid\",\"functionName\":\"createNarrativeTopicalHybrid\",\"Category\":\"Narrative Sermons\"},{\"No\":1169,\"Format\":\"Narrative-Call to Action Hybrid\",\"Description\":\"A sermon using narrative storytelling to drive a clear call to action for the congregation.\",\"type\":\"narrativeCallToActionHybrid\",\"functionName\":\"createNarrativeCallToActionHybrid\",\"Category\":\"Narrative Sermons\"},{\"No\":1170,\"Format\":\"Expository-Topical Hybrid\",\"Description\":\"A sermon combining detailed exposition of scripture with a topical theme, balancing in-depth study with practical relevance.\",\"type\":\"expositoryTopicalHybrid\",\"functionName\":\"createExpositoryTopicalHybrid\",\"Category\":\"Expository Sermons\"},{\"No\":1171,\"Format\":\"Doctrinal-Practical Hybrid\",\"Description\":\"A sermon blending doctrinal teaching with practical application, helping the congregation apply theological concepts to their lives.\",\"type\":\"doctrinalPracticalHybrid\",\"functionName\":\"createDoctrinalPracticalHybrid\",\"Category\":\"Expository Sermons\"},{\"No\":1172,\"Format\":\"Cultural Issues Sermon\",\"Description\":\"A sermon addressing cultural issues from a biblical perspective, offering guidance on how to engage with societal challenges.\",\"type\":\"culturalIssuesSermon\",\"functionName\":\"createCulturalIssuesSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1173,\"Format\":\"Current Events Sermon\",\"Description\":\"A sermon that connects biblical teachings to current events, helping the congregation understand their faith in relation to contemporary issues.\",\"type\":\"currentEventsSermon\",\"functionName\":\"createCurrentEventsSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1174,\"Format\":\"Contextualized Sermon\",\"Description\":\"A sermon tailored to the specific cultural, social, or economic context of the congregation, making biblical truths more relevant to their lives.\",\"type\":\"contextualizedSermon\",\"functionName\":\"createContextualizedSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1175,\"Format\":\"Youth Sermon\",\"Description\":\"A sermon designed specifically for a youth audience, addressing issues relevant to their age group and spiritual growth.\",\"type\":\"youthSermon\",\"functionName\":\"createYouthSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1176,\"Format\":\"Children’s Sermon\",\"Description\":\"A sermon tailored for children, using simple language and illustrations to convey biblical truths.\",\"type\":\"childrensSermon\",\"functionName\":\"createChildrensSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1177,\"Format\":\"Men’s Sermon\",\"Description\":\"A sermon addressing issues and responsibilities unique to men, encouraging spiritual growth and leadership.\",\"type\":\"mensSermon\",\"functionName\":\"createMensSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1178,\"Format\":\"Women’s Sermon\",\"Description\":\"A sermon focused on topics relevant to women, encouraging spiritual growth and biblical understanding.\",\"type\":\"womensSermon\",\"functionName\":\"createWomensSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1179,\"Format\":\"Professional Sermon\",\"Description\":\"A sermon tailored for professionals, helping them integrate their faith with their work and vocation.\",\"type\":\"professionalSermon\",\"functionName\":\"createProfessionalSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1180,\"Format\":\"Family Sermon\",\"Description\":\"A sermon focused on family relationships, offering biblical guidance for building strong, faith-centered families.\",\"type\":\"familySermon\",\"functionName\":\"createFamilySermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1181,\"Format\":\"Patriotic Sermon\",\"Description\":\"A sermon focused on national pride and responsibility, offering a biblical perspective on patriotism.\",\"type\":\"patrioticSermon\",\"functionName\":\"createPatrioticSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1182,\"Format\":\"Seasonal Sermon\",\"Description\":\"A sermon aligned with specific liturgical seasons or holidays, helping the congregation engage with the spiritual themes of the season.\",\"type\":\"seasonalSermon\",\"functionName\":\"createSeasonalSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1183,\"Format\":\"Occasional Sermon\",\"Description\":\"A sermon tailored for special church events, such as anniversaries or dedications.\",\"type\":\"occasionalSermon\",\"functionName\":\"createOccasionalSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1184,\"Format\":\"Narrative-Doctrinal Hybrid\",\"Description\":\"A sermon blending doctrinal teaching with narrative storytelling, making complex theological concepts easier to understand.\",\"type\":\"narrativeDoctrinalHybrid\",\"functionName\":\"createNarrativeDoctrinalHybrid\",\"Category\":\"Narrative Sermons\"},{\"No\":1185,\"Format\":\"Expository-Practical Hybrid\",\"Description\":\"A sermon combining expository preaching with practical life applications, offering both in-depth study and actionable insights.\",\"type\":\"expositoryPracticalHybrid\",\"functionName\":\"createExpositoryPracticalHybrid\",\"Category\":\"Expository Sermons\"},{\"No\":1186,\"Format\":\"Prophetic-Narrative Hybrid\",\"Description\":\"A sermon that uses narrative elements to deliver a prophetic message, calling the congregation to change.\",\"type\":\"propheticNarrativeHybrid\",\"functionName\":\"createPropheticNarrativeHybrid\",\"Category\":\"Prophetic/Evangelistic Sermons\"},{\"No\":1187,\"Format\":\"Topical-Call to Action Hybrid\",\"Description\":\"A sermon that addresses a specific topic while also urging the congregation to take concrete action.\",\"type\":\"topicalCallToActionHybrid\",\"functionName\":\"createTopicalCallToActionHybrid\",\"Category\":\"Topical Sermons\"},{\"No\":1188,\"Format\":\"Global Context Sermon\",\"Description\":\"A sermon addressing global issues, encouraging the congregation to think about their faith in a broader, global context.\",\"type\":\"globalContextSermon\",\"functionName\":\"createGlobalContextSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1189,\"Format\":\"Justice Sermon\",\"Description\":\"A sermon focused on the biblical call for justice, challenging the congregation to engage with social justice issues.\",\"type\":\"justiceSermon\",\"functionName\":\"createJusticeSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1190,\"Format\":\"Technology Sermon\",\"Description\":\"A sermon addressing the impact of technology on faith and daily life, offering a biblical perspective on the use of technology.\",\"type\":\"technologySermon\",\"functionName\":\"createTechnologySermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1191,\"Format\":\"Environmental Stewardship Sermon\",\"Description\":\"A sermon focused on the biblical call to care for creation, encouraging responsible environmental stewardship.\",\"type\":\"environmentalStewardshipSermon\",\"functionName\":\"createEnvironmentalStewardshipSermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1192,\"Format\":\"Senior Citizen Sermon\",\"Description\":\"A sermon designed specifically for senior citizens, addressing the unique spiritual and life challenges they face.\",\"type\":\"seniorCitizenSermon\",\"functionName\":\"createSeniorCitizenSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1193,\"Format\":\"Teen Sermon\",\"Description\":\"A sermon tailored for teenagers, addressing their specific challenges and encouraging spiritual growth.\",\"type\":\"teenSermon\",\"functionName\":\"createTeenSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1194,\"Format\":\"Single Adult Sermon\",\"Description\":\"A sermon focused on the spiritual and personal challenges faced by single adults, offering biblical guidance.\",\"type\":\"singleAdultSermon\",\"functionName\":\"createSingleAdultSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1195,\"Format\":\"New Believer Sermon\",\"Description\":\"A sermon designed for new believers, providing foundational teachings to help them grow in their faith.\",\"type\":\"newBelieverSermon\",\"functionName\":\"createNewBelieverSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1196,\"Format\":\"Married Couples Sermon\",\"Description\":\"A sermon focused on strengthening marriage, offering biblical guidance for building healthy, faith-centered relationships.\",\"type\":\"marriedCouplesSermon\",\"functionName\":\"createMarriedCouplesSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1197,\"Format\":\"New Year Sermon\",\"Description\":\"A sermon focused on renewal, hope, and spiritual growth as the congregation enters a new year.\",\"type\":\"newYearSermon\",\"functionName\":\"createNewYearSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1198,\"Format\":\"Independence Day Sermon\",\"Description\":\"A sermon focused on national freedom and civic responsibility, connecting biblical themes to Independence Day celebrations.\",\"type\":\"independenceDaySermon\",\"functionName\":\"createIndependenceDaySermon\",\"Category\":\"Cultural Relevance Sermons\"},{\"No\":1199,\"Format\":\"Mother’s Day Sermon\",\"Description\":\"A sermon honoring mothers, offering biblical insights on motherhood and family life.\",\"type\":\"mothersDaySermon\",\"functionName\":\"createMothersDaySermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1300,\"Format\":\"Father’s Day Sermon\",\"Description\":\"A sermon celebrating fathers, focusing on biblical teachings about fatherhood and spiritual leadership.\",\"type\":\"fathersDaySermon\",\"functionName\":\"createFathersDaySermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1301,\"Format\":\"Thanksgiving Day Sermon\",\"Description\":\"A sermon focused on gratitude, encouraging the congregation to give thanks for God’s blessings.\",\"type\":\"thanksgivingDaySermon\",\"functionName\":\"createThanksgivingDaySermon\",\"Category\":\"Life Events Sermons\"},{\"No\":1302,\"Format\":\"Church Dedication Sermon\",\"Description\":\"A sermon celebrating the dedication of a new church building, focusing on its purpose and mission for God's glory.\",\"type\":\"churchDedicationSermon\",\"functionName\":\"createChurchDedicationSermon\",\"Category\":\"Life Events Sermons\"},{\"No\":3000,\"Category\":\"Parenting Goals\",\"Format\":\"Building Emotional Resilience\",\"Description\":\"Equip children with tools to manage emotions, cope with stress, and recover from setbacks.\",\"type\":\"emotionalResilienceGoals\",\"functionName\":\"createActivity\"},{\"No\":3001,\"Category\":\"Parenting Goals\",\"Format\":\"Encouraging a Growth Mindset\",\"Description\":\"Help children develop a positive attitude toward learning and challenges by fostering persistence and flexibility.\",\"type\":\"growthMindsetGoals\",\"functionName\":\"createActivity\"},{\"No\":3002,\"Category\":\"Parenting Goals\",\"Format\":\"Fostering Independence\",\"Description\":\"Promote self-reliance, decision-making, and accountability in daily tasks.\",\"type\":\"fosteringIndependenceGoals\",\"functionName\":\"createActivity\"},{\"No\":3003,\"Category\":\"Parenting Goals\",\"Format\":\"Strengthening Family Bonds\",\"Description\":\"Build trust, improve communication, and create meaningful family traditions.\",\"type\":\"familyBondsGoals\",\"functionName\":\"createActivity\"},{\"No\":3004,\"Category\":\"Parenting Goals\",\"Format\":\"Boosting Cognitive Skills\",\"Description\":\"Enhance problem-solving, memory, and critical thinking through activities and learning strategies.\",\"type\":\"cognitiveSkillsGoals\",\"functionName\":\"createActivity\"},{\"No\":3005,\"Category\":\"Parenting Goals\",\"Format\":\"Nurturing Social Skills\",\"Description\":\"Help children build empathy, communication, and collaboration in peer and family interactions.\",\"type\":\"socialSkillsGoals\",\"functionName\":\"createActivity\"},{\"No\":3006,\"Category\":\"Parenting Goals\",\"Format\":\"Promoting Physical Well-being\",\"Description\":\"Encourage habits that support physical health, motor skills, and fitness.\",\"type\":\"physicalWellbeingGoals\",\"functionName\":\"createActivity\"},{\"No\":3007,\"Category\":\"Parenting Goals\",\"Format\":\"Teaching Values and Ethics\",\"Description\":\"Foster integrity, empathy, and social responsibility in children.\",\"type\":\"valuesAndEthicsGoals\",\"functionName\":\"createActivity\"},{\"No\":3008,\"Category\":\"Parenting Goals\",\"Format\":\"Building Self-Regulation\",\"Description\":\"Help children develop control over impulses, emotions, and attention.\",\"type\":\"selfRegulationGoals\",\"functionName\":\"createActivity\"},{\"No\":3009,\"Category\":\"Parenting Goals\",\"Format\":\"Improving Communication\",\"Description\":\"Teach children how to express themselves clearly and listen actively.\",\"type\":\"communicationSkillsGoals\",\"functionName\":\"createActivity\"},{\"No\":3010,\"Category\":\"Parenting Goals\",\"Format\":\"Promoting Problem-Solving Skills\",\"Description\":\"Develop critical thinking and analytical abilities.\",\"type\":\"problemSolvingSkillsGoals\",\"functionName\":\"createActivity\"},{\"No\":3011,\"Category\":\"Parenting Goals\",\"Format\":\"Encouraging Emotional Expression\",\"Description\":\"Help children articulate their emotions in healthy ways.\",\"type\":\"emotionalExpressionGoals\",\"functionName\":\"createActivity\"},{\"No\":3012,\"Category\":\"Parenting Goals\",\"Format\":\"Strengthening Peer Relationships\",\"Description\":\"Build trust, communication, and teamwork among peers.\",\"type\":\"peerRelationshipsGoals\",\"functionName\":\"createActivity\"},{\"No\":3013,\"Category\":\"Parenting Goals\",\"Format\":\"Developing Self-Confidence\",\"Description\":\"Build a strong sense of self and ability to face challenges.\",\"type\":\"selfConfidenceGoals\",\"functionName\":\"createActivity\"},{\"No\":3014,\"Category\":\"Parenting Goals\",\"Format\":\"Fostering Creativity\",\"Description\":\"Encourage innovation and out-of-the-box thinking.\",\"type\":\"fosteringCreativityGoals\",\"functionName\":\"createActivity\"},{\"No\":3015,\"Category\":\"Parenting Goals\",\"Format\":\"Balancing Digital and Real Life\",\"Description\":\"Teach responsible use of technology and foster offline engagement.\",\"type\":\"digitalAndRealLifeBalanceGoals\",\"functionName\":\"createActivity\"},{\"No\":3302,\"Category\":\"Parenting Recommendations\",\"Format\":\"Encouraging Growth Mindset Recommendations\",\"Description\":\"Recommends modules that foster a growth mindset, resilience, and a love for learning in children.\",\"type\":\"encouragingGrowthMindsetRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3303,\"Category\":\"Parenting Recommendations\",\"Format\":\"Positive Discipline Recommendations\",\"Description\":\"Recommends modules that promote positive discipline strategies, focusing on setting limits, encouraging positive behavior, and collaborative problem-solving.\",\"type\":\"positiveDisciplineRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3304,\"Category\":\"Parenting Recommendations\",\"Format\":\"Family Life Recommendations\",\"Description\":\"Recommends modules that strengthen family rituals, values, and relationships.\",\"type\":\"familyLifeRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3305,\"Category\":\"Parenting Recommendations\",\"Format\":\"Nurturing Independence Recommendations\",\"Description\":\"Recommends modules that promote self-reliance, responsibility, and decision-making skills in children.\",\"type\":\"nurturingIndependenceRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3306,\"Category\":\"Parenting Recommendations\",\"Format\":\"Boosting Cognitive Skills Recommendations\",\"Description\":\"Recommends modules that enhance cognitive development, including problem-solving, critical thinking, and memory skills.\",\"type\":\"boostingCognitiveSkillsRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3307,\"Category\":\"Parenting Recommendations\",\"Format\":\"Nurturing Social Skills Recommendations\",\"Description\":\"Recommends modules that help children develop essential social skills, such as communication, empathy, and cooperation.\",\"type\":\"nurturingSocialSkillsRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3308,\"Category\":\"Parenting Recommendations\",\"Format\":\"Promoting Physical Well-being Recommendations\",\"Description\":\"Recommends modules that encourage healthy habits, physical activity, and motor skill development in children.\",\"type\":\"promotingPhysicalWellbeingRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3309,\"Category\":\"Parenting Recommendations\",\"Format\":\"Teaching Values and Ethics Recommendations\",\"Description\":\"Recommends modules that foster moral development, integrity, and social responsibility in children.\",\"type\":\"teachingValuesAndEthicsRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3310,\"Category\":\"Parenting Recommendations\",\"Format\":\"Building Self-Regulation Recommendations\",\"Description\":\"Recommends modules that help children develop self-control, manage impulses, and regulate their emotions.\",\"type\":\"buildingSelfRegulationRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3311,\"Category\":\"Parenting Recommendations\",\"Format\":\"Improving Communication Recommendations\",\"Description\":\"Recommends modules that enhance communication skills between parents and children.\",\"type\":\"improvingCommunicationRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3312,\"Category\":\"Parenting Recommendations\",\"Format\":\"Promoting Problem-Solving Recommendations\",\"Description\":\"Recommends modules that encourage critical thinking, problem-solving strategies, and decision-making skills in children.\",\"type\":\"promotingProblemSolvingRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3313,\"Category\":\"Parenting Recommendations\",\"Format\":\"Encouraging Emotional Expression Recommendations\",\"Description\":\"Recommends modules that help children express their emotions in healthy and constructive ways.\",\"type\":\"encouragingEmotionalExpressionRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3314,\"Category\":\"Parenting Recommendations\",\"Format\":\"Strengthening Peer Relationships Recommendations\",\"Description\":\"Recommends modules that help children build and maintain healthy friendships and peer relationships.\",\"type\":\"strengtheningPeerRelationshipsRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3315,\"Category\":\"Parenting Recommendations\",\"Format\":\"Developing Self-Confidence Recommendations\",\"Description\":\"Recommends modules that help children develop self-esteem, confidence, and a positive self-image.\",\"type\":\"developingSelfConfidenceRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3316,\"Category\":\"Parenting Recommendations\",\"Format\":\"Fostering Creativity Recommendations\",\"Description\":\"Recommends modules that encourage imagination, creative expression, and innovation in children.\",\"type\":\"fosteringCreativityRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3317,\"Category\":\"Parenting Recommendations\",\"Format\":\"Balancing Digital and Real Life Recommendations\",\"Description\":\"Recommends modules that promote healthy technology use and encourage a balance between screen time and offline activities.\",\"type\":\"balancingDigitalAndRealLifeRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3318,\"Category\":\"Parenting Recommendations\",\"Format\":\"Stress Management Recommendations\",\"Description\":\"Recommends modules that help families manage stress, build resilience, and promote emotional well-being.\",\"type\":\"stressManagementRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3319,\"Category\":\"Parenting Recommendations\",\"Format\":\"Family Dynamics and Communication Recommendations\",\"Description\":\"Recommends modules that improve communication patterns, strengthen relationships, and resolve conflicts within the family.\",\"type\":\"familyDynamicsAndCommunicationRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3320,\"Category\":\"Parenting Recommendations\",\"Format\":\"Mindfulness for Families Recommendations\",\"Description\":\"Recommends modules that introduce mindfulness practices to promote emotional regulation, reduce stress, and enhance well-being for the whole family.\",\"type\":\"mindfulnessForFamiliesRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3321,\"Category\":\"Parenting Recommendations\",\"Format\":\"Special Needs Parenting Recommendations\",\"Description\":\"Tailored to children with specific needs, such as autism, ADHD, or sensory processing issues. Emphasizes adaptive activities, methodologies like sensory integration, and neurodiverse-friendly goals.\",\"type\":\"specialNeedsRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3322,\"Category\":\"Parenting Recommendations\",\"Format\":\"Emotional Intelligence Builder\",\"Description\":\"Focuses on modules that enhance a child’s ability to recognize, regulate, and express emotions, with linked methodologies like Emotion Coaching and assessments like the Emotional Regulation Tracker.\",\"type\":\"emotionalIntelligenceBuilder\",\"functionName\":\"createActivity\"},{\"No\":3323,\"Category\":\"Parenting Recommendations\",\"Format\":\"Independence Encourager\",\"Description\":\"Prioritizes modules that foster self-reliance and accountability, including action plans like 'Daily Chore Chart' and assessments such as the Independence Progress Tracker.\",\"type\":\"independenceEncourager\",\"functionName\":\"createActivity\"},{\"No\":3324,\"Category\":\"Parenting Recommendations\",\"Format\":\"Family Bonding Advocate\",\"Description\":\"Suggests modules designed to strengthen family connections, such as action plans for 'Family Storytime' and methodologies like Routine Building and Reflective Listening.\",\"type\":\"familyBondingAdvocate\",\"functionName\":\"createActivity\"},{\"No\":3325,\"Category\":\"Parenting Recommendations\",\"Format\":\"Social Skills Enhancer\",\"Description\":\"Recommends modules that help children develop empathy, teamwork, and communication, such as Playdate Planning and Peer Relationship Tracker.\",\"type\":\"socialSkillsEnhancer\",\"functionName\":\"createActivity\"},{\"No\":3326,\"Category\":\"Parenting Recommendations\",\"Format\":\"Academic Support Specialist\",\"Description\":\"Focuses on modules that boost cognitive development and problem-solving, including goals like 'Boosting Cognitive Skills' and activities such as 'Learning Through Play.'\",\"type\":\"academicSupportSpecialist\",\"functionName\":\"createActivity\"},{\"No\":3327,\"Category\":\"Parenting Recommendations\",\"Format\":\"Positive Discipline Strategist\",\"Description\":\"Suggests methodologies and action plans to address behavioral challenges through positive reinforcement and natural consequences.\",\"type\":\"positiveDisciplineStrategist\",\"functionName\":\"createActivity\"},{\"No\":3328,\"Category\":\"Parenting Recommendations\",\"Format\":\"Mindfulness and Stress Management Guru\",\"Description\":\"Recommends modules like Mindfulness Walks and Stress Reduction Assessments, with action plans to promote calm and focus in the family.\",\"type\":\"mindfulnessAndStressManagementGuru\",\"functionName\":\"createActivity\"},{\"No\":3329,\"Category\":\"Parenting Recommendations\",\"Format\":\"Teenager Transition Supporter\",\"Description\":\"Tailored to parents of teenagers, focusing on modules like 'Navigating Teenage Years,' leadership skills assessments, and conflict resolution techniques.\",\"type\":\"teenagerTransitionSupporter\",\"functionName\":\"createActivity\"},{\"No\":3330,\"Category\":\"Parenting Recommendations\",\"Format\":\"Digital Balance Advocate\",\"Description\":\"Focuses on managing screen time and promoting a healthy digital lifestyle with modules like Screen Time Negotiation and assessments like the Screen Time Balance Review.\",\"type\":\"digitalBalanceAdvocate\",\"functionName\":\"createActivity\"},{\"No\":3331,\"Category\":\"Parenting Recommendations\",\"Format\":\"Neurodiverse Play and Learning Specialist\",\"Description\":\"Suggests sensory-friendly activities and methodologies, such as sensory play, scaffolding, and neurodiverse-specific action plans.\",\"type\":\"neurodiversePlayAndLearningSpecialist\",\"functionName\":\"createActivity\"},{\"No\":3332,\"Category\":\"Parenting Recommendations\",\"Format\":\"Global Awareness Builder\",\"Description\":\"Recommends modules that promote cultural understanding, community engagement, and social responsibility.\",\"type\":\"globalAwarenessBuilder\",\"functionName\":\"createActivity\"},{\"No\":3333,\"Category\":\"Parenting Recommendations\",\"Format\":\"Parenting for Resilience\",\"Description\":\"Combines modules for building emotional and cognitive resilience, such as Growth Mindset Feedback and Resilience Growth Tracker.\",\"type\":\"parentingForResilience\",\"functionName\":\"createActivity\"},{\"No\":3334,\"Category\":\"Parenting Recommendations\",\"Format\":\"Multimodal Learner Support\",\"Description\":\"Suggests modules that cater to diverse learning styles, such as kinesthetic, auditory, and visual preferences, with activities like Learning Through Play.\",\"type\":\"multimodalLearnerSupport\",\"functionName\":\"createActivity\"},{\"No\":3335,\"Category\":\"Parenting Recommendations\",\"Format\":\"Community and Values Nurturer\",\"Description\":\"Focuses on modules like Teaching Values and Ethics, Community Service Activities, and related assessments to promote character development.\",\"type\":\"communityAndValuesNurturer\",\"functionName\":\"createActivity\"},{\"No\":3336,\"Category\":\"Parenting Recommendations\",\"Format\":\"Transition and Change Navigator\",\"Description\":\"Tailored to families undergoing transitions (e.g., new schools, relocations), with action plans like 'Supporting Transitions.'\",\"type\":\"transitionAndChangeNavigator\",\"functionName\":\"createActivity\"},{\"No\":3337,\"Category\":\"Parenting Recommendations\",\"Format\":\"Creativity Cultivator\",\"Description\":\"Recommends modules that encourage creative expression through art, storytelling, and music-based activities.\",\"type\":\"creativityCultivator\",\"functionName\":\"createActivity\"},{\"No\":3338,\"Category\":\"Parenting Recommendations\",\"Format\":\"Leadership Development Advisor\",\"Description\":\"Focuses on building leadership skills in children with action plans like 'Developing Leadership Skills' and related assessments.\",\"type\":\"leadershipDevelopmentAdvisor\",\"functionName\":\"createActivity\"},{\"No\":3339,\"Category\":\"Parenting Recommendations\",\"Format\":\"Tailored Parenting Recommendations\",\"Description\":\"Provides highly specific recommendations based on unique family settings, such as single-parent households or blended families.\",\"type\":\"tailoredParentingRecommendations\",\"functionName\":\"createActivity\"},{\"No\":3340,\"Category\":\"Parenting Recommendations\",\"Format\":\"Understanding Your Child's Development\",\"Description\":\"Focuses on modules that help parents understand the different stages of child development, including physical, cognitive, social, and emotional milestones.\",\"type\":\"understandingChildDevelopment\",\"functionName\":\"createActivity\"},{\"No\":3341,\"Category\":\"Parenting Recommendations\",\"Format\":\"Effective Communication and Connection\",\"Description\":\"Recommends modules that enhance communication and connection within the family, including active listening, expressing emotions, and resolving conflicts peacefully.\",\"type\":\"effectiveCommunicationAndConnection\",\"functionName\":\"createActivity\"},{\"No\":3050,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Emotional Resilience Action Plan\",\"Description\":\"A structured plan to help children manage emotions, cope with stress, and build resilience.\",\"type\":\"emotionalResilienceActionPlan\",\"functionName\":\"createEmotionalResilienceActionPlan\"},{\"No\":3051,\"Category\":\"Parenting Action Plans\",\"Format\":\"Encouraging a Growth Mindset Action Plan\",\"Description\":\"A plan to help children develop a growth mindset, embrace challenges, and value effort.\",\"type\":\"growthMindsetActionPlan\",\"functionName\":\"createGrowthMindsetActionPlan\"},{\"No\":3052,\"Category\":\"Parenting Action Plans\",\"Format\":\"Fostering Independence Action Plan\",\"Description\":\"A plan to promote self-reliance, decision-making, and accountability in children.\",\"type\":\"fosteringIndependenceActionPlan\",\"functionName\":\"createFosteringIndependenceActionPlan\"},{\"No\":3053,\"Category\":\"Parenting Action Plans\",\"Format\":\"Strengthening Family Bonds Action Plan\",\"Description\":\"A plan to build trust, improve communication, and create strong family connections.\",\"type\":\"familyBondsActionPlan\",\"functionName\":\"createFamilyBondsActionPlan\"},{\"No\":3054,\"Category\":\"Parenting Action Plans\",\"Format\":\"Boosting Cognitive Skills Action Plan\",\"Description\":\"A plan to enhance problem-solving, memory, and critical thinking abilities in children.\",\"type\":\"cognitiveSkillsActionPlan\",\"functionName\":\"createCognitiveSkillsActionPlan\"},{\"No\":3055,\"Category\":\"Parenting Action Plans\",\"Format\":\"Nurturing Social Skills Action Plan\",\"Description\":\"A plan to help children develop empathy, communication, and collaboration skills.\",\"type\":\"socialSkillsActionPlan\",\"functionName\":\"createSocialSkillsActionPlan\"},{\"No\":3056,\"Category\":\"Parenting Action Plans\",\"Format\":\"Promoting Physical Well-being Action Plan\",\"Description\":\"A plan to encourage healthy habits, physical activity, and motor skill development.\",\"type\":\"physicalWellbeingActionPlan\",\"functionName\":\"createPhysicalWellbeingActionPlan\"},{\"No\":3057,\"Category\":\"Parenting Action Plans\",\"Format\":\"Teaching Values and Ethics Action Plan\",\"Description\":\"A plan to foster integrity, empathy, and social responsibility in children.\",\"type\":\"valuesAndEthicsActionPlan\",\"functionName\":\"createValuesAndEthicsActionPlan\"},{\"No\":3058,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Self-Regulation Action Plan\",\"Description\":\"A plan to help children develop control over impulses, emotions, and attention.\",\"type\":\"selfRegulationActionPlan\",\"functionName\":\"createSelfRegulationActionPlan\"},{\"No\":3059,\"Category\":\"Parenting Action Plans\",\"Format\":\"Improving Communication Action Plan\",\"Description\":\"A plan to teach children how to express themselves clearly and listen actively.\",\"type\":\"communicationSkillsActionPlan\",\"functionName\":\"createCommunicationSkillsActionPlan\"},{\"No\":3060,\"Category\":\"Parenting Action Plans\",\"Format\":\"Promoting Problem-Solving Skills Action Plan\",\"Description\":\"A plan to develop critical thinking and analytical abilities in children.\",\"type\":\"problemSolvingSkillsActionPlan\",\"functionName\":\"createProblemSolvingSkillsActionPlan\"},{\"No\":3061,\"Category\":\"Parenting Action Plans\",\"Format\":\"Encouraging Emotional Expression Action Plan\",\"Description\":\"A plan to help children articulate their emotions in healthy ways.\",\"type\":\"emotionalExpressionActionPlan\",\"functionName\":\"createEmotionalExpressionActionPlan\"},{\"No\":3062,\"Category\":\"Parenting Action Plans\",\"Format\":\"Strengthening Peer Relationships Action Plan\",\"Description\":\"A plan to help children build positive relationships with their peers.\",\"type\":\"peerRelationshipsActionPlan\",\"functionName\":\"createPeerRelationshipsActionPlan\"},{\"No\":3063,\"Category\":\"Parenting Action Plans\",\"Format\":\"Developing Self-Confidence Action Plan\",\"Description\":\"A plan to build a strong sense of self and the ability to face challenges.\",\"type\":\"selfConfidenceActionPlan\",\"functionName\":\"createSelfConfidenceActionPlan\"},{\"No\":3064,\"Category\":\"Parenting Action Plans\",\"Format\":\"Fostering Creativity Action Plan\",\"Description\":\"A plan to encourage imagination, innovation, and creative expression in children.\",\"type\":\"fosteringCreativityActionPlan\",\"functionName\":\"createFosteringCreativityActionPlan\"},{\"No\":3065,\"Category\":\"Parenting Action Plans\",\"Format\":\"Balancing Digital and Real Life Action Plan\",\"Description\":\"A plan to teach responsible technology use and encourage offline engagement.\",\"type\":\"digitalAndRealLifeBalanceActionPlan\",\"functionName\":\"createDigitalAndRealLifeBalanceActionPlan\"},{\"No\":3066,\"Category\":\"Parenting Action Plans\",\"Format\":\"Child Development Milestones Action Plan\",\"Description\":\"A plan to track and support a child's developmental milestones across different domains.\",\"type\":\"childDevelopmentMilestonesActionPlan\",\"functionName\":\"createChildDevelopmentMilestonesActionPlan\"},{\"No\":3067,\"Category\":\"Parenting Action Plans\",\"Format\":\"Stress Management for Families Action Plan\",\"Description\":\"A plan to help families manage stress, build resilience, and promote emotional well-being.\",\"type\":\"stressManagementActionPlan\",\"functionName\":\"createStressManagementActionPlan\"},{\"No\":3068,\"Category\":\"Parenting Action Plans\",\"Format\":\"Family Dynamics and Communication Action Plan\",\"Description\":\"A plan to improve communication patterns, strengthen relationships, and resolve conflicts within the family.\",\"type\":\"familyDynamicsActionPlan\",\"functionName\":\"createFamilyDynamicsActionPlan\"},{\"No\":3069,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Social Skills Action Plan\",\"Description\":\"A plan to help children develop strong social skills, including communication, empathy, and cooperation.\",\"type\":\"socialSkillsActionPlan\",\"functionName\":\"createSocialSkillsActionPlan\"},{\"No\":3070,\"Category\":\"Parenting Action Plans\",\"Format\":\"Mindfulness Practices Action Plan\",\"Description\":\"A plan to introduce mindfulness techniques to promote emotional regulation, reduce stress, and enhance well-being.\",\"type\":\"mindfulnessPracticesActionPlan\",\"functionName\":\"createMindfulnessPracticesActionPlan\"},{\"No\":3071,\"Category\":\"Parenting Action Plans\",\"Format\":\"Ethical and Moral Development Action Plan\",\"Description\":\"A plan to promote ethical reasoning, integrity, and social responsibility in children.\",\"type\":\"ethicalDevelopmentActionPlan\",\"functionName\":\"createEthicalDevelopmentActionPlan\"},{\"No\":3072,\"Category\":\"Parenting Action Plans\",\"Format\":\"Parenting Neurodiverse Children Action Plan\",\"Description\":\"A plan with tailored strategies and activities for children with autism, ADHD, or sensory needs.\",\"type\":\"neurodiverseParentingActionPlan\",\"functionName\":\"createNeurodiverseParentingActionPlan\"},{\"No\":3100,\"Category\":\"Parenting Methods\",\"Format\":\"Positive Reinforcement\",\"Description\":\"Encourage positive behaviors in children through rewards, praise, and recognition.\",\"type\":\"positiveReinforcement\",\"functionName\":\"createPositiveReinforcementMethod\"},{\"No\":3101,\"Category\":\"Parenting Methods\",\"Format\":\"Emotion Coaching\",\"Description\":\"Help children understand and manage their emotions effectively.\",\"type\":\"emotionCoaching\",\"functionName\":\"createEmotionCoachingMethod\"},{\"No\":3102,\"Category\":\"Parenting Methods\",\"Format\":\"Collaborative Problem-Solving\",\"Description\":\"Engage children in finding solutions to problems, fostering responsibility and cooperation.\",\"type\":\"collaborativeProblemSolving\",\"functionName\":\"createCollaborativeProblemSolvingMethod\"},{\"No\":3103,\"Category\":\"Parenting Methods\",\"Format\":\"Routine Building\",\"Description\":\"Establish consistent routines to provide structure, predictability, and security for children.\",\"type\":\"routineBuilding\",\"functionName\":\"createRoutineBuildingMethod\"},{\"No\":3104,\"Category\":\"Parenting Methods\",\"Format\":\"Growth Mindset Feedback\",\"Description\":\"Provide feedback that encourages effort, learning, and a growth mindset in children.\",\"type\":\"growthMindsetFeedback\",\"functionName\":\"createGrowthMindsetFeedbackMethod\"},{\"No\":3105,\"Category\":\"Parenting Methods\",\"Format\":\"Setting Limits with Respect\",\"Description\":\"Establish clear boundaries and expectations while maintaining a respectful and positive relationship with children.\",\"type\":\"settingLimitsWithRespect\",\"functionName\":\"createSettingLimitsWithRespectMethod\"},{\"No\":3106,\"Category\":\"Parenting Methods\",\"Format\":\"Natural Consequences\",\"Description\":\"Allow children to experience the natural outcomes of their choices to learn responsibility and accountability.\",\"type\":\"naturalConsequences\",\"functionName\":\"createNaturalConsequencesMethod\"},{\"No\":3107,\"Category\":\"Parenting Methods\",\"Format\":\"Scaffolding for Skills\",\"Description\":\"Provide temporary support and guidance to help children learn new skills and gradually increase their independence.\",\"type\":\"scaffoldingForSkills\",\"functionName\":\"createScaffoldingForSkillsMethod\"},{\"No\":3108,\"Category\":\"Parenting Methods\",\"Format\":\"Active Listening Techniques\",\"Description\":\"Develop effective communication skills by truly listening and understanding children's perspectives.\",\"type\":\"activeListeningTechniques\",\"functionName\":\"createActiveListeningTechniquesMethod\"},{\"No\":3109,\"Category\":\"Parenting Methods\",\"Format\":\"Celebrating Small Wins\",\"Description\":\"Recognize and celebrate children's efforts, progress, and achievements to boost motivation and confidence.\",\"type\":\"celebratingSmallWins\",\"functionName\":\"createCelebratingSmallWinsMethod\"},{\"No\":3110,\"Category\":\"Parenting Methods\",\"Format\":\"Reflective Listening\",\"Description\":\"Enhance communication and understanding by reflecting on and validating children's feelings and perspectives.\",\"type\":\"reflectiveListening\",\"functionName\":\"createReflectiveListeningMethod\"},{\"No\":3111,\"Category\":\"Parenting Methods\",\"Format\":\"Task Analysis\",\"Description\":\"Break down complex tasks into smaller, more manageable steps to help children learn and succeed.\",\"type\":\"taskAnalysis\",\"functionName\":\"createTaskAnalysisMethod\"},{\"No\":3112,\"Category\":\"Parenting Methods\",\"Format\":\"Empathy Building\",\"Description\":\"Help children develop empathy and understand the perspectives and feelings of others.\",\"type\":\"empathyBuilding\",\"functionName\":\"createEmpathyBuildingMethod\"},{\"No\":3113,\"Category\":\"Parenting Methods\",\"Format\":\"Time-Out as Reflection, Not Punishment\",\"Description\":\"Use time-outs as an opportunity for children to calm down, reflect on their behavior, and develop self-regulation skills.\",\"type\":\"timeOutAsReflection\",\"functionName\":\"createTimeOutAsReflectionMethod\"},{\"No\":3114,\"Category\":\"Parenting Methods\",\"Format\":\"Natural Curiosity Method\",\"Description\":\"Encourage learning and exploration by nurturing children's innate curiosity and interests.\",\"type\":\"naturalCuriosityMethod\",\"functionName\":\"createNaturalCuriosityMethod\"},{\"No\":3115,\"Category\":\"Parenting Methods\",\"Format\":\"Strength-Based Parenting\",\"Description\":\"Focus on identifying and nurturing children's strengths and talents to build confidence and resilience.\",\"type\":\"strengthBasedParenting\",\"functionName\":\"createStrengthBasedParentingMethod\"},{\"No\":3116,\"Category\":\"Parenting Methods\",\"Format\":\"Sibling Mediation Techniques\",\"Description\":\"Teach siblings effective strategies for resolving conflicts and building positive relationships.\",\"type\":\"siblingMediationTechniques\",\"functionName\":\"createSiblingMediationTechniquesMethod\"},{\"No\":3117,\"Category\":\"Parenting Methods\",\"Format\":\"Screen Time Negotiation\",\"Description\":\"Establish healthy boundaries and agreements for screen time usage with children.\",\"type\":\"screenTimeNegotiation\",\"functionName\":\"createScreenTimeNegotiationMethod\"},{\"No\":3118,\"Category\":\"Parenting Methods\",\"Format\":\"Promoting Problem-Solving\",\"Description\":\"Encourage and support children's problem-solving skills in various contexts.\",\"type\":\"promotingProblemSolving\",\"functionName\":\"createPromotingProblemSolvingMethod\"},{\"No\":3119,\"Category\":\"Parenting Methods\",\"Format\":\"Encouraging a Growth Mindset\",\"Description\":\"Foster a growth mindset in children by emphasizing effort, learning, and resilience.\",\"type\":\"encouragingGrowthMindset\",\"functionName\":\"createEncouragingGrowthMindsetMethod\"},{\"No\":3120,\"Category\":\"Parenting Methods\",\"Format\":\"Building Strong Bonds\",\"Description\":\"Nurture secure and loving relationships between parents and children.\",\"type\":\"buildingStrongBonds\",\"functionName\":\"createBuildingStrongBondsMethod\"},{\"No\":3121,\"Category\":\"Parenting Methods\",\"Format\":\"Nurturing Emotional Intelligence\",\"Description\":\"Help children develop emotional awareness, understanding, and management skills.\",\"type\":\"nurturingEmotionalIntelligence\",\"functionName\":\"createNurturingEmotionalIntelligenceMethod\"},{\"No\":3122,\"Category\":\"Parenting Methods\",\"Format\":\"Positive Discipline\",\"Description\":\"Guide and discipline children with respect, understanding, and a focus on teaching valuable life skills.\",\"type\":\"positiveDiscipline\",\"functionName\":\"createPositiveDisciplineMethod\"},{\"No\":3150,\"Category\":\"Parenting Activities\",\"Format\":\"Emotion Wheel Game\",\"Description\":\"A fun and interactive game to help children learn about different emotions and how to express them.\",\"type\":\"emotionWheelGame\",\"functionName\":\"createEmotionWheelGameActivity\"},{\"No\":3151,\"Category\":\"Parenting Activities\",\"Format\":\"Gratitude Journaling\",\"Description\":\"A reflective activity to encourage children to appreciate the positive aspects of their lives and develop gratitude.\",\"type\":\"gratitudeJournaling\",\"functionName\":\"createGratitudeJournalingActivity\"},{\"No\":3152,\"Category\":\"Parenting Activities\",\"Format\":\"Cooperative Board Games\",\"Description\":\"Engage children in cooperative board games that promote teamwork, communication, and social skills.\",\"type\":\"cooperativeBoardGames\",\"functionName\":\"createCooperativeBoardGamesActivity\"},{\"No\":3153,\"Category\":\"Parenting Activities\",\"Format\":\"Daily Chore Chart\",\"Description\":\"A visual chart to assign and track daily chores, promoting responsibility and independence in children.\",\"type\":\"dailyChoreChart\",\"functionName\":\"createDailyChoreChartActivity\"},{\"No\":3154,\"Category\":\"Parenting Activities\",\"Format\":\"Family Storytime\",\"Description\":\"A bonding activity where families read together, fostering literacy, imagination, and connection.\",\"type\":\"familyStorytime\",\"functionName\":\"createFamilyStorytimeActivity\"},{\"No\":3155,\"Category\":\"Parenting Activities\",\"Format\":\"Role-Playing Scenarios\",\"Description\":\"Engage children in role-playing different scenarios to practice problem-solving, communication, and social skills.\",\"type\":\"rolePlayingScenarios\",\"functionName\":\"createRolePlayingScenariosActivity\"},{\"No\":3156,\"Category\":\"Parenting Activities\",\"Format\":\"Building Together\",\"Description\":\"Collaborative building activities that promote creativity, problem-solving, and teamwork.\",\"type\":\"buildingTogether\",\"functionName\":\"createBuildingTogetherActivity\"},{\"No\":3157,\"Category\":\"Parenting Activities\",\"Format\":\"Mindfulness Walks\",\"Description\":\"Engage in mindful walks in nature with children to promote relaxation, observation skills, and connection with the environment.\",\"type\":\"mindfulnessWalks\",\"functionName\":\"createMindfulnessWalksActivity\"},{\"No\":3158,\"Category\":\"Parenting Activities\",\"Format\":\"Meal Prep as a Team\",\"Description\":\"Involve children in meal preparation to teach life skills, promote healthy eating habits, and encourage teamwork.\",\"type\":\"mealPrepAsATeam\",\"functionName\":\"createMealPrepAsATeamActivity\"},{\"No\":3159,\"Category\":\"Parenting Activities\",\"Format\":\"Art and Craft Projects\",\"Description\":\"Engage in creative art and craft projects with children to promote self-expression, fine motor skills, and imagination.\",\"type\":\"artAndCraftProjects\",\"functionName\":\"createArtAndCraftProjectsActivity\"},{\"No\":3160,\"Category\":\"Parenting Activities\",\"Format\":\"Playdate Planning\",\"Description\":\"Help children plan and host playdates to develop social skills, cooperation, and friendship.\",\"type\":\"playdatePlanning\",\"functionName\":\"createPlaydatePlanningActivity\"},{\"No\":3161,\"Category\":\"Parenting Activities\",\"Format\":\"Learning Through Play\",\"Description\":\"Engage children in educational and fun activities that promote learning through play.\",\"type\":\"learningThroughPlay\",\"functionName\":\"createLearningThroughPlayActivity\"},{\"No\":3162,\"Category\":\"Parenting Activities\",\"Format\":\"Community Service Activities\",\"Description\":\"Involve children in community service activities to foster empathy, social responsibility, and compassion.\",\"type\":\"communityServiceActivities\",\"functionName\":\"createCommunityServiceActivities\"},{\"No\":3163,\"Category\":\"Parenting Activities\",\"Format\":\"Fitness Challenges\",\"Description\":\"Engage in fun fitness challenges as a family to promote physical activity, teamwork, and healthy competition.\",\"type\":\"fitnessChallenges\",\"functionName\":\"createFitnessChallengesActivity\"},{\"No\":3164,\"Category\":\"Parenting Activities\",\"Format\":\"Conflict Resolution Role Play\",\"Description\":\"Engage children in role-playing scenarios to practice resolving conflicts constructively and peacefully.\",\"type\":\"conflictResolutionRolePlay\",\"functionName\":\"createConflictResolutionRolePlayActivity\"},{\"No\":3165,\"Category\":\"Parenting Activities\",\"Format\":\"Outdoor Exploration Challenges\",\"Description\":\"Engage in outdoor challenges and adventures to promote resilience, curiosity, and teamwork.\",\"type\":\"outdoorExplorationChallenges\",\"functionName\":\"createOutdoorExplorationChallengesActivity\"},{\"No\":3166,\"Category\":\"Parenting Activities\",\"Format\":\"Shared Hobby Projects\",\"Description\":\"Strengthen parent-child bonds through collaborative hobby projects.\",\"type\":\"sharedHobbyProjects\",\"functionName\":\"createSharedHobbyProjectsActivity\"},{\"No\":3167,\"Category\":\"Parenting Activities\",\"Format\":\"Digital Detox Day\",\"Description\":\"A planned day with limited or no screen time to encourage family interaction, creativity, and mindfulness.\",\"type\":\"digitalDetoxDay\",\"functionName\":\"createDigitalDetoxDayActivity\"},{\"No\":3168,\"Category\":\"Parenting Activities\",\"Format\":\"Leadership Activities\",\"Description\":\"Engage children in activities that develop leadership skills, such as decision-making, teamwork, and communication.\",\"type\":\"leadershipActivities\",\"functionName\":\"createLeadershipActivities\"},{\"No\":3169,\"Category\":\"Parenting Activities\",\"Format\":\"Family Debate Nights\",\"Description\":\"Engage in family debates to promote critical thinking, communication skills, and respectful disagreement.\",\"type\":\"familyDebateNights\",\"functionName\":\"createFamilyDebateNightsActivity\"},{\"No\":3200,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Regulation Tracker\",\"Description\":\"Monitor and assess a child's progress in understanding and managing their emotions.\",\"type\":\"emotionalRegulationTracker\",\"functionName\":\"createEmotionalRegulationTrackerAssessment\"},{\"No\":3201,\"Category\":\"Parenting Assessments\",\"Format\":\"Behavior Progress Log\",\"Description\":\"Track and evaluate changes in a child's behavior over time.\",\"type\":\"behaviorProgressLog\",\"functionName\":\"createBehaviorProgressLogAssessment\"},{\"No\":3202,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Interaction Journal\",\"Description\":\"A reflective journal for parents to document and analyze their interactions with their children.\",\"type\":\"familyInteractionJournal\",\"functionName\":\"createFamilyInteractionJournalAssessment\"},{\"No\":3203,\"Category\":\"Parenting Assessments\",\"Format\":\"Learning Milestone Checklist\",\"Description\":\"Track a child's progress in achieving key learning milestones across different developmental stages.\",\"type\":\"learningMilestoneChecklist\",\"functionName\":\"createLearningMilestoneChecklistAssessment\"},{\"No\":3204,\"Category\":\"Parenting Assessments\",\"Format\":\"Independence Progress Tracker\",\"Description\":\"Monitor and assess a child's progress in developing independence and self-reliance.\",\"type\":\"independenceProgressTracker\",\"functionName\":\"createIndependenceProgressTrackerAssessment\"},{\"No\":3205,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Interaction Rating\",\"Description\":\"Evaluate a child's social skills and interactions with peers and family members.\",\"type\":\"socialInteractionRating\",\"functionName\":\"createSocialInteractionRatingAssessment\"},{\"No\":3206,\"Category\":\"Parenting Assessments\",\"Format\":\"Resilience Growth Tracker\",\"Description\":\"Assess and monitor a child's ability to cope with challenges, setbacks, and adversity.\",\"type\":\"resilienceGrowthTracker\",\"functionName\":\"createResilienceGrowthTrackerAssessment\"},{\"No\":3207,\"Category\":\"Parenting Assessments\",\"Format\":\"Parenting Style Reflection Tool\",\"Description\":\"A self-assessment tool for parents to reflect on their parenting style and identify areas for growth.\",\"type\":\"parentingStyleReflectionTool\",\"functionName\":\"createParentingStyleReflectionToolAssessment\"},{\"No\":3208,\"Category\":\"Parenting Assessments\",\"Format\":\"Routine Consistency Tracker\",\"Description\":\"Monitor and evaluate the consistency of daily routines and their impact on family life.\",\"type\":\"routineConsistencyTracker\",\"functionName\":\"createRoutineConsistencyTrackerAssessment\"},{\"No\":3209,\"Category\":\"Parenting Assessments\",\"Format\":\"Stress Reduction Assessment\",\"Description\":\"Evaluate the effectiveness of stress management techniques and their impact on family well-being.\",\"type\":\"stressReductionAssessment\",\"functionName\":\"createStressReductionAssessment\"},{\"No\":3210,\"Category\":\"Parenting Assessments\",\"Format\":\"Peer Relationship Tracker\",\"Description\":\"Monitor and assess a child's peer relationships and social interactions.\",\"type\":\"peerRelationshipTracker\",\"functionName\":\"createPeerRelationshipTrackerAssessment\"},{\"No\":3211,\"Category\":\"Parenting Assessments\",\"Format\":\"Creative Output Log\",\"Description\":\"Document and analyze a child's creative projects and activities over time.\",\"type\":\"creativeOutputLog\",\"functionName\":\"createCreativeOutputLogAssessment\"},{\"No\":3212,\"Category\":\"Parenting Assessments\",\"Format\":\"Conflict Resolution Assessment\",\"Description\":\"Evaluate a child's ability to resolve conflicts peacefully and effectively.\",\"type\":\"conflictResolutionAssessment\",\"functionName\":\"createConflictResolutionAssessment\"},{\"No\":3213,\"Category\":\"Parenting Assessments\",\"Format\":\"Leadership Skills Assessment\",\"Description\":\"Observe and evaluate a child's leadership qualities and potential.\",\"type\":\"leadershipSkillsAssessment\",\"functionName\":\"createLeadershipSkillsAssessment\"},{\"No\":3214,\"Category\":\"Parenting Assessments\",\"Format\":\"Screen Time Balance Review\",\"Description\":\"Evaluate the balance between screen time and other activities in a child's life.\",\"type\":\"screenTimeBalanceReview\",\"functionName\":\"createScreenTimeBalanceReviewAssessment\"},{\"No\":3215,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Dynamics Check-In\",\"Description\":\"Assess the overall emotional climate and interaction patterns within the family.\",\"type\":\"familyDynamicsCheckIn\",\"functionName\":\"createFamilyDynamicsCheckInAssessment\"},{\"No\":3216,\"Category\":\"Parenting Assessments\",\"Format\":\"Progress-Based Reward System\",\"Description\":\"A system for tracking and rewarding progress towards goals, using positive reinforcement to motivate children.\",\"type\":\"progressBasedRewardSystem\",\"functionName\":\"createProgressBasedRewardSystemAssessment\"},{\"No\":3217,\"Category\":\"Parenting Assessments\",\"Format\":\"Behavioral Frequency Log\",\"Description\":\"Track the frequency of specific behaviors over time to identify patterns and monitor progress.\",\"type\":\"behavioralFrequencyLog\",\"functionName\":\"createBehavioralFrequencyLogAssessment\"},{\"No\":3218,\"Category\":\"Parenting Assessments\",\"Format\":\"Growth Mindset Journal\",\"Description\":\"Encourage children to reflect on their learning experiences and develop a growth mindset through journaling.\",\"type\":\"growthMindsetJournal\",\"functionName\":\"createGrowthMindsetJournalAssessment\"},{\"No\":3219,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Vocabulary Expansion Test\",\"Description\":\"Assess a child's understanding and use of emotional vocabulary.\",\"type\":\"emotionalVocabularyExpansionTest\",\"functionName\":\"createEmotionalVocabularyExpansionTestAssessment\"},{\"No\":3220,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Connection Log\",\"Description\":\"Track and reflect on the frequency and quality of family bonding activities.\",\"type\":\"familyConnectionLog\",\"functionName\":\"createFamilyConnectionLogAssessment\"},{\"No\":3221,\"Category\":\"Parenting Assessments\",\"Format\":\"Decision-Making Evaluation\",\"Description\":\"Assess a child's ability to make thoughtful and responsible decisions.\",\"type\":\"decisionMakingEvaluation\",\"functionName\":\"createDecisionMakingEvaluationAssessment\"},{\"No\":3222,\"Category\":\"Parenting Assessments\",\"Format\":\"Collaborative Task Review\",\"Description\":\"Evaluate the effectiveness of teamwork and collaboration during family or group activities.\",\"type\":\"collaborativeTaskReview\",\"functionName\":\"createCollaborativeTaskReviewAssessment\"},{\"No\":3223,\"Category\":\"Parenting Assessments\",\"Format\":\"Adaptability Assessment\",\"Description\":\"Assess a child's ability to adjust to changes, transitions, and unexpected situations.\",\"type\":\"adaptabilityAssessment\",\"functionName\":\"createAdaptabilityAssessment\"},{\"No\":3224,\"Category\":\"Parenting Assessments\",\"Format\":\"Independence and Responsibility Log\",\"Description\":\"Track a child's progress in taking initiative and fulfilling responsibilities.\",\"type\":\"independenceAndResponsibilityLog\",\"functionName\":\"createIndependenceAndResponsibilityLogAssessment\"},{\"No\":3225,\"Category\":\"Parenting Assessments\",\"Format\":\"Open-Ended Creative Project Evaluation\",\"Description\":\"Assess creativity, problem-solving, and critical thinking through open-ended creative projects.\",\"type\":\"openEndedCreativeProjectEvaluation\",\"functionName\":\"createOpenEndedCreativeProjectEvaluationAssessment\"},{\"No\":3226,\"Category\":\"Parenting Assessments\",\"Format\":\"Goal-Setting and Achievement Assessment\",\"Description\":\"Guide children in setting personal goals and track their progress towards achieving them.\",\"type\":\"goalSettingAndAchievementAssessment\",\"functionName\":\"createGoalSettingAndAchievementAssessment\"},{\"No\":3227,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Intelligence Growth Assessment\",\"Description\":\"Assess a child's overall emotional intelligence, including self-awareness, self-regulation, social skills, empathy, and motivation.\",\"type\":\"emotionalIntelligenceGrowthAssessment\",\"functionName\":\"createEmotionalIntelligenceGrowthAssessment\"},{\"No\":3228,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Intelligence Assessment\",\"Description\":\"Evaluate a child's ability to understand and navigate social situations effectively.\",\"type\":\"socialIntelligenceAssessment\",\"functionName\":\"createSocialIntelligenceAssessment\"},{\"No\":3229,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Awareness Assessment\",\"Description\":\"Evaluate a child's ability to understand social cues, perspectives, and dynamics.\",\"type\":\"socialAwarenessAssessment\",\"functionName\":\"createSocialAwarenessAssessment\"},{\"No\":3230,\"Category\":\"Parenting Assessments\",\"Format\":\"Personality Traits Assessment\",\"Description\":\"Identify and understand a child's personality traits to tailor parenting approaches and support their development.\",\"type\":\"personalityTraitsAssessment\",\"functionName\":\"createPersonalityTraitsAssessment\"},{\"No\":3231,\"Category\":\"Parenting Assessments\",\"Format\":\"Personality Disorders Screening\",\"Description\":\"A screening tool to identify potential signs of personality disorders in children or adolescents.\",\"type\":\"personalityDisordersScreening\",\"functionName\":\"createPersonalityDisordersScreeningAssessment\"},{\"No\":3250,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Intelligence Assessment\",\"Description\":\"Evaluate a child's ability to understand and navigate social situations effectively.\",\"type\":\"socialIntelligenceAssessment\",\"functionName\":\"createSocialIntelligenceAssessment\"},{\"No\":3251,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Awareness Assessment\",\"Description\":\"Evaluate a child's ability to understand social cues, perspectives, and dynamics.\",\"type\":\"socialAwarenessAssessment\",\"functionName\":\"createSocialAwarenessAssessment\"},{\"No\":3252,\"Category\":\"Advanced Assessments\",\"Format\":\"Personality Traits Assessment\",\"Description\":\"Identify and understand a child's personality traits to tailor parenting approaches and support their development.\",\"type\":\"personalityTraitsAssessment\",\"functionName\":\"createPersonalityTraitsAssessment\"},{\"No\":3253,\"Category\":\"Advanced Assessments\",\"Format\":\"Personality Disorders Screening\",\"Description\":\"A screening tool to identify potential signs of personality disorders in children or adolescents.\",\"type\":\"personalityDisordersScreening\",\"functionName\":\"createPersonalityDisordersScreeningAssessment\"},{\"No\":3254,\"Category\":\"Advanced Assessments\",\"Format\":\"Goal-Setting and Achievement Assessment\",\"Description\":\"Guide children in setting personal goals and track their progress towards achieving them.\",\"type\":\"goalSettingAndAchievementAssessment\",\"functionName\":\"createGoalSettingAndAchievementAssessment\"},{\"No\":3255,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Intelligence Growth Assessment\",\"Description\":\"Assess a child's overall emotional intelligence, including self-awareness, self-regulation, social skills, empathy, and motivation.\",\"type\":\"emotionalIntelligenceGrowthAssessment\",\"functionName\":\"createEmotionalIntelligenceGrowthAssessment\"},{\"No\":3256,\"Category\":\"Advanced Assessments\",\"Format\":\"Developmental Milestones Tracker\",\"Description\":\"Monitor a child's progress in gross motor skills, fine motor skills, language acquisition, cognitive development, and social-emotional growth.\",\"type\":\"developmentalMilestonesTracker\",\"functionName\":\"createDevelopmentalMilestonesTrackerAssessment\"},{\"No\":3257,\"Category\":\"Advanced Assessments\",\"Format\":\"Readiness Assessment\",\"Description\":\"Evaluate a child's readiness for transitions like starting school, potty training, or moving to a new environment.\",\"type\":\"readinessAssessment\",\"functionName\":\"createReadinessAssessment\"},{\"No\":3258,\"Category\":\"Advanced Assessments\",\"Format\":\"Learning Styles and Preferences Inventory\",\"Description\":\"Identify a child's preferred learning styles (visual, auditory, kinesthetic) and tailor activities accordingly.\",\"type\":\"learningStylesAndPreferencesInventory\",\"functionName\":\"createLearningStylesAndPreferencesInventoryAssessment\"},{\"No\":3259,\"Category\":\"Advanced Assessments\",\"Format\":\"Giftedness Screening\",\"Description\":\"Assess a child's potential for advanced cognitive abilities or talents.\",\"type\":\"giftednessScreening\",\"functionName\":\"createGiftednessScreeningAssessment\"},{\"No\":3260,\"Category\":\"Advanced Assessments\",\"Format\":\"Behavior Observation Checklist\",\"Description\":\"Track specific behaviors (positive and challenging) in various settings (home, school, social).\",\"type\":\"behaviorObservationChecklist\",\"functionName\":\"createBehaviorObservationChecklistAssessment\"},{\"No\":3261,\"Category\":\"Advanced Assessments\",\"Format\":\"Habit Tracker\",\"Description\":\"Monitor progress in establishing positive habits (e.g., sleep routines, hygiene, chores).\",\"type\":\"habitTracker\",\"functionName\":\"createHabitTrackerAssessment\"},{\"No\":3262,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Literacy Assessment\",\"Description\":\"Evaluate a child's ability to identify, understand, and express emotions.\",\"type\":\"emotionalLiteracyAssessment\",\"functionName\":\"createEmotionalLiteracyAssessment\"},{\"No\":3263,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Regulation Skills Assessment\",\"Description\":\"Assess a child's ability to manage and respond to emotions effectively.\",\"type\":\"emotionalRegulationSkillsAssessment\",\"functionName\":\"createEmotionalRegulationSkillsAssessment\"},{\"No\":3264,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Skills Observation Checklist\",\"Description\":\"Observe and evaluate a child's social skills in different settings.\",\"type\":\"socialSkillsObservationChecklist\",\"functionName\":\"createSocialSkillsObservationChecklistAssessment\"},{\"No\":3265,\"Category\":\"Advanced Assessments\",\"Format\":\"Friendship Quality Assessment\",\"Description\":\"Assess the quality of a child's friendships and peer relationships.\",\"type\":\"friendshipQualityAssessment\",\"functionName\":\"createFriendshipQualityAssessment\"},{\"No\":3266,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Problem-Solving Assessment\",\"Description\":\"Evaluate a child's ability to navigate social conflicts and find solutions.\",\"type\":\"socialProblemSolvingAssessment\",\"functionName\":\"createSocialProblemSolvingAssessment\"},{\"No\":3267,\"Category\":\"Advanced Assessments\",\"Format\":\"Perspective-Taking Assessment\",\"Description\":\"Assess a child's ability to understand and consider the perspectives of others.\",\"type\":\"perspectiveTakingAssessment\",\"functionName\":\"createPerspectiveTakingAssessment\"},{\"No\":3268,\"Category\":\"Advanced Assessments\",\"Format\":\"Family Communication Patterns Assessment\",\"Description\":\"Identify communication styles and patterns within the family.\",\"type\":\"familyCommunicationPatternsAssessment\",\"functionName\":\"createFamilyCommunicationPatternsAssessment\"},{\"No\":3269,\"Category\":\"Advanced Assessments\",\"Format\":\"Parent-Child Relationship Quality Assessment\",\"Description\":\"Evaluate the quality of the parent-child bond and identify areas for improvement.\",\"type\":\"parentChildRelationshipQualityAssessment\",\"functionName\":\"createParentChildRelationshipQualityAssessment\"},{\"No\":3270,\"Category\":\"Advanced Assessments\",\"Format\":\"Cognitive Skills Assessment Battery\",\"Description\":\"Assess various cognitive abilities, such as memory, attention, problem-solving, and critical thinking.\",\"type\":\"cognitiveSkillsAssessmentBattery\",\"functionName\":\"createCognitiveSkillsAssessmentBattery\"},{\"No\":3271,\"Category\":\"Advanced Assessments\",\"Format\":\"Executive Functioning Assessment\",\"Description\":\"Evaluate skills like planning, organization, and impulse control.\",\"type\":\"executiveFunctioningAssessment\",\"functionName\":\"createExecutiveFunctioningAssessment\"},{\"No\":3272,\"Category\":\"Advanced Assessments\",\"Format\":\"Learning Strengths and Weaknesses Inventory\",\"Description\":\"Identify a child's learning strengths and areas where they may need additional support.\",\"type\":\"learningStrengthsAndWeaknessesInventory\",\"functionName\":\"createLearningStrengthsAndWeaknessesInventoryAssessment\"},{\"No\":3273,\"Category\":\"Advanced Assessments\",\"Format\":\"Creativity Assessment\",\"Description\":\"Assess a child's ability to think divergently and generate novel ideas.\",\"type\":\"creativityAssessment\",\"functionName\":\"createCreativityAssessment\"},{\"No\":3274,\"Category\":\"Advanced Assessments\",\"Format\":\"Mood Tracker\",\"Description\":\"Monitor a child's mood patterns over time to identify potential concerns or triggers.\",\"type\":\"moodTracker\",\"functionName\":\"createMoodTrackerAssessment\"},{\"No\":3275,\"Category\":\"Advanced Assessments\",\"Format\":\"Family Stressors and Coping Strategies Inventory\",\"Description\":\"Assess sources of stress and coping mechanisms within the family unit.\",\"type\":\"familyStressorsAndCopingStrategiesInventory\",\"functionName\":\"createFamilyStressorsAndCopingStrategiesInventoryAssessment\"},{\"No\":3276,\"Category\":\"Advanced Assessments\",\"Format\":\"Sibling Relationship Assessment\",\"Description\":\"Assess the dynamics and quality of relationships between siblings.\",\"type\":\"siblingRelationshipAssessment\",\"functionName\":\"createSiblingRelationshipAssessment\"},{\"No\":45,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive E-books\",\"Description\":\"Offer an enhanced reading experience with multimedia elements and interactive features.\",\"type\":\"interactiveEbook\",\"functionName\":\"createInteractiveEbook\"},{\"No\":5000,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Flowcharts\",\"Description\":\"Illustrate processes or decision steps.\",\"type\":\"flowchart\",\"functionName\":\"createFlowchart\"},{\"No\":5001,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Concept Maps\",\"Description\":\"Show relationships between key concepts and ideas.\",\"type\":\"conceptMap\",\"functionName\":\"createConceptMap\"},{\"No\":5002,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Timelines\",\"Description\":\"Show chronological events and historical progressions visually.\",\"type\":\"timeline\",\"functionName\":\"createTimeline\"},{\"No\":5003,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Interactive Maps\",\"Description\":\"Display location-based educational data with zoom and hover effects.\",\"type\":\"interactiveMap\",\"functionName\":\"createInteractiveMap\"},{\"No\":5004,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Venn Diagrams\",\"Description\":\"Compare and contrast multiple concepts using overlapping circles.\",\"type\":\"vennDiagram\",\"functionName\":\"createVennDiagram\"},{\"No\":5005,\"Category\":\"Visual & Interactive Content\",\"Format\":\"State Diagrams\",\"Description\":\"Model the behavior of systems, such as chemical reactions or circuit states.\",\"type\":\"stateDiagram\",\"functionName\":\"createStateDiagram\"},{\"No\":5006,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Sequence Diagrams\",\"Description\":\"Explain step-by-step interactions in a system (e.g., algorithm execution).\",\"type\":\"sequenceDiagram\",\"functionName\":\"createSequenceDiagram\"},{\"No\":5007,\"Category\":\"Visual & Interactive Content\",\"Format\":\"UML Class Diagrams\",\"Description\":\"Represent object-oriented programming structures for software engineering.\",\"type\":\"umlClassDiagram\",\"functionName\":\"createUmlClassDiagram\"},{\"No\":5008,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Network Diagrams\",\"Description\":\"Show relationships and connections, such as food chains or neural networks.\",\"type\":\"networkDiagram\",\"functionName\":\"createNetworkDiagram\"},{\"No\":5009,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Interactive Data Dashboards\",\"Description\":\"Combine multiple visualizations for in-depth analysis of data trends.\",\"type\":\"interactiveDataDashboard\",\"functionName\":\"createInteractiveDataDashboard\"},{\"No\":5010,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Animated Data Visualizations\",\"Description\":\"Use animations to explain changes over time in statistical or scientific data.\",\"type\":\"animatedDataVisualization\",\"functionName\":\"createAnimatedDataVisualization\"},{\"No\":5036,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Word Clouds\",\"Description\":\"Great for highlighting key vocabulary.\",\"type\":\"wordCloud\",\"functionName\":\"createWordCloud\"},{\"No\":5037,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Mind Maps\",\"Description\":\"Simple visual layouts for brainstorming and organizing ideas.\",\"type\":\"mindMap\",\"functionName\":\"createMindMap\"},{\"No\":5038,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Tree Diagrams\",\"Description\":\"Excellent for illustrating hierarchical relationships.\",\"type\":\"treeDiagram\",\"functionName\":\"createTreeDiagram\"},{\"No\":5039,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Radial Diagrams (Sunburst Charts)\",\"Description\":\"Visually engaging for showing hierarchical data in a circular layout.\",\"type\":\"sunburst\",\"functionName\":\"createSunburst\"},{\"No\":5040,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Bubble Charts\",\"Description\":\"Useful for visualizing the relative importance or grouping of ideas.\",\"type\":\"bubbleChart\",\"functionName\":\"createBubbleChart\"},{\"No\":5041,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Treemaps\",\"Description\":\"Efficiently represent hierarchical data with nested rectangles.\",\"type\":\"treemap\",\"functionName\":\"createTreemap\"},{\"No\":5042,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Stacked Area Charts\",\"Description\":\"Great for displaying cumulative or layered data trends.\",\"type\":\"stackedArea\",\"functionName\":\"createStackedAreaChart\"},{\"No\":5043,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Frayer Models\",\"Description\":\"A simple four-quadrant layout to explore definitions, examples, and non-examples.\",\"type\":\"frayerModel\",\"functionName\":\"createFrayerModel\"},{\"No\":5044,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Storyboard Grids\",\"Description\":\"Lays out narratives or processes in a grid format.\",\"type\":\"storyboardGrid\",\"functionName\":\"createStoryboardGrid\"},{\"No\":5045,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Five W’s Chart\",\"Description\":\"A tabular format that encourages in-depth topic analysis using Who, What, When, Where, Why, and How.\",\"type\":\"fiveWsChart\",\"functionName\":\"createFiveWsChart\"},{\"No\":5046,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Cause-and-Effect Chains\",\"Description\":\"Visualizes the progression of events or consequences.\",\"type\":\"causeEffect\",\"functionName\":\"createCauseEffect\"},{\"No\":5047,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Graphic Organizers (Foldable/Printable)\",\"Description\":\"Designed to break down complex topics into manageable segments, offering printable or interactive versions.\",\"type\":\"graphicOrganizer\",\"functionName\":\"createGraphicOrganizer\"},\n{\"No\":5012,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Virtual Laboratories\",\"Description\":\"Provide hands-on digital experiments in physics, chemistry, and biology.\",\"type\":\"virtualLaboratory\",\"functionName\":\"createVirtualLaboratory\"},{\"No\":5013,\"Category\":\"Visual & Interactive Content\",\"Format\":\"Physics Simulations\",\"Description\":\"Illustrate forces, motion, and real-world physics experiments.\",\"type\":\"physicsSimulation\",\"functionName\":\"createPhysicsSimulation\"}\n];\nvar newTTableData2=exports.newTTableData2=[{\"No\":900,\"Category\":\"Educational Goals\",\"Format\":\"Bloom's Taxonomy\",\"Description\":\"Goal setting based on different levels of thinking skills.\",\"type\":\"bloomsTaxonomy\",\"functionName\":\"createBloomsTaxonomy\"},{\"No\":800,\"Category\":\"Lesson Plans\",\"Format\":\"Direct Instruction\",\"Description\":\"Teacher-centered approach where the instructor directly presents information and guides student learning.\",\"type\":\"directInstructionLesson\",\"functionName\":\"createDirectInstructionLesson\"},{\"No\":700,\"Category\":\"Educational Activities\",\"Format\":\"Jigsaw\",\"Description\":\"Students become experts on a topic within a group and then share their knowledge with members of other groups.\",\"type\":\"jigsawActivity\",\"functionName\":\"createJigsawActivity\"},{\"No\":38,\"Category\":\"Content Enrichment\",\"Format\":\"Examples and Analogies\",\"Description\":\"Illustrate concepts with relatable examples or comparisons.\",\"type\":\"examplesAndAnalogies\",\"functionName\":\"createExamplesAndAnalogies\"},{\"No\":25,\"Category\":\"Core Content Modifications\",\"Format\":\"Short Summary\",\"Description\":\"Provide a very brief overview of the main points.\",\"type\":\"shortSummary\",\"functionName\":\"createShortSummary\"},{\"No\":8,\"Category\":\"Structural Content Modifications\",\"Format\":\"Chunking into Smaller Paragraphs\",\"Description\":\"Break text into smaller, more manageable segments.\",\"type\":\"chunkedText\",\"functionName\":\"createChunkedText\"},{\"No\":35,\"Category\":\"Creative Content\",\"Format\":\"Story Format\",\"Description\":\"Transform factual content into a narrative with characters and plot.\",\"type\":\"storyFormat\",\"functionName\":\"createStoryFormat\"},{\"No\":73,\"Category\":\"Study Aids\",\"Format\":\"Mnemonic Devices\",\"Description\":\"Provide memory aids for recalling information.\",\"type\":\"mnemonicDevices\",\"functionName\":\"createMnemonicDevices\"},{\"No\":144,\"Category\":\"Interactive Learning\",\"Format\":\"Adaptive Branching Stories\",\"Description\":\"Create interactive stories with paths changing based on user choices.\",\"type\":\"adaptiveBranchingStory\",\"functionName\":\"createAdaptiveBranchingStory\"},\n{\"No\":71,\"Category\":\"AI Collaboration\",\"Format\":\"Case Studies\",\"Description\":\"Offer real-world examples to analyze and discuss.\",\"type\":\"caseStudy\",\"functionName\":\"createCaseStudy\"},{\"No\":68,\"Category\":\"Language Learning\",\"Format\":\"Interactive Grammar Lessons\",\"Description\":\"Engaging mini-lessons on specific grammar points with explanations, examples, and practice exercises.\",\"type\":\"interactiveGrammarLesson\",\"functionName\":\"createInteractiveGrammarLesson\"},{\"No\":515,\"Category\":\"Math & Logic\",\"Format\":\"Arithmetic Practice Games\",\"Description\":\"Customizable quizzes, timed challenges, and basic operations practice. These are highly engaging and can be easily adapted to various skill levels.\",\"type\":\"arithmeticPracticeGame\",\"functionName\":\"createArithmeticPracticeGames\"},{\"No\":1,\"Category\":\"Assessments\",\"Format\":\"Cloze Passages\",\"Description\":\"Fill-in-the-blank text to test understanding of material.\",\"type\":\"clozePassage\",\"functionName\":\"createClozePassage\"},{\"No\":276,\"Category\":\"Additional Enhancements\",\"Format\":\"Pacing Techniques\",\"Description\":\"Adjust the pace of content delivery or activities to maintain learner engagement and prevent overload.\",\"type\":\"pacingTechniques\",\"functionName\":\"createPacingTechniques\"},{\"No\":2,\"Category\":\"Study Aids\",\"Format\":\"Annotations\",\"Description\":\"Allow users to add notes, highlights, or questions to the text.\",\"type\":\"annotations\",\"functionName\":\"createAnnotations\"},{\"No\":3,\"Category\":\"Assessments\",\"Format\":\"Worksheets with Questions\",\"Description\":\"Worksheets requiring concise answers to promote knowledge recall and comprehension.\",\"type\":\"worksheet\",\"functionName\":\"createWorksheet\"},{\"No\":4,\"Category\":\"Study Aids\",\"Format\":\"Flashcards (Text-Based)\",\"Description\":\"Customizable cards with questions or terms on one side and answers/definitions on the other.\",\"type\":\"flashcards\",\"functionName\":\"createFlashcards\"},{\"No\":5,\"Category\":\"Assessments\",\"Format\":\"Self-Assessment Quizzes (with Answers)\",\"Description\":\"Multiple-choice, true/false, or short answer quizzes with immediate feedback, including correct answers.\",\"type\":\"selfAssessmentQuiz\",\"functionName\":\"createSelfAssessmentQuiz\"},{\"No\":6,\"Category\":\"Structural Content Modifications\",\"Format\":\"Reverse Outlining\",\"Description\":\"Have users create an outline of the main points after reading.\",\"type\":\"reverseOutlining\",\"functionName\":\"createReverseOutlining\"},{\"No\":7,\"Category\":\"Assessments\",\"Format\":\"Error Correction Exercises\",\"Description\":\"Passages containing deliberate errors that students identify and correct to reinforce grammar and comprehension.\",\"type\":\"errorCorrection\",\"functionName\":\"createErrorCorrectionExercise\"},{\"No\":9,\"Category\":\"Study Aids\",\"Format\":\"Text Highlighting\",\"Description\":\"Emphasize key terms or phrases through visual cues (bold, italics, color).\",\"type\":\"textHighlighting\",\"functionName\":\"createTextHighlighting\"},{\"No\":12,\"Category\":\"Structural Content Modifications\",\"Format\":\"Headings and Subheadings\",\"Description\":\"Divide content into sections with clear titles.\",\"type\":\"headingsAndSubheadings\",\"functionName\":\"createHeadingsAndSubheadings\"},{\"No\":13,\"Category\":\"Study Aids\",\"Format\":\"Tables and Charts\",\"Description\":\"Present information visually in tabular or graphical formats.\",\"type\":\"tablesAndCharts\",\"functionName\":\"createTablesAndCharts\"},{\"No\":14,\"Category\":\"Structural Content Modifications\",\"Format\":\"Lists (Numbered/Ordered)\",\"Description\":\"Organize information into sequential or prioritized lists.\",\"type\":\"lists\",\"functionName\":\"createLists\"},{\"No\":15,\"Category\":\"Structural Content Modifications\",\"Format\":\"Hierarchical Structure\",\"Description\":\"Arrange content in a top-down structure with main ideas and supporting details.\",\"type\":\"hierarchicalStructure\",\"functionName\":\"createHierarchicalStructure\"},{\"No\":16,\"Category\":\"Structural Content Modifications\",\"Format\":\"Sequential Steps\",\"Description\":\"Present instructions or processes in a step-by-step format.\",\"type\":\"sequentialSteps\",\"functionName\":\"createSequentialSteps\"},{\"No\":18,\"Category\":\"Structural Content Modifications\",\"Format\":\"Inverted Pyramid\",\"Description\":\"Start with the most important information and then provide details.\",\"type\":\"invertedPyramid\",\"functionName\":\"createInvertedPyramid\"},{\"No\":22,\"Category\":\"Structural Content Modifications\",\"Format\":\"Cause and Effect\",\"Description\":\"Explain the relationship between events or actions and their outcomes.\",\"type\":\"causeAndEffect\",\"functionName\":\"createCauseAndEffect\"},{\"No\":23,\"Category\":\"Structural Content Modifications\",\"Format\":\"Problem and Solution\",\"Description\":\"Present a problem and offer potential solutions.\",\"type\":\"problemAndSolution\",\"functionName\":\"createProblemAndSolution\"},{\"No\":24,\"Category\":\"Assessments\",\"Format\":\"Fact vs. Opinion\",\"Description\":\"Distinguish between factual statements and subjective opinions.\",\"type\":\"factVsOpinion\",\"functionName\":\"createFactVsOpinion\"},{\"No\":26,\"Category\":\"Core Content Modifications\",\"Format\":\"Detailed Summary\",\"Description\":\"Offer a more comprehensive summary of the key ideas and details.\",\"type\":\"detailedSummary\",\"functionName\":\"createDetailedSummary\"},{\"No\":27,\"Category\":\"Core Content Modifications\",\"Format\":\"Bullet Points\",\"Description\":\"Condense information into a list of key takeaways.\",\"type\":\"bulletPoints\",\"functionName\":\"createBulletPoints\"},{\"No\":31,\"Category\":\"Core Content Modifications\",\"Format\":\"Keywords\",\"Description\":\"Extract the most important words or phrases from the text.\",\"type\":\"keywords\",\"functionName\":\"createKeywords\"},{\"No\":32,\"Category\":\"Core Content Modifications\",\"Format\":\"Simplified Text Language\",\"Description\":\"Reword complex language for easier comprehension.\",\"type\":\"simplifiedText\",\"functionName\":\"createSimplifiedText\"},{\"No\":40,\"Category\":\"Content Enrichment\",\"Format\":\"Questions and Answers\",\"Description\":\"Engage learners with inquiry-based learning.\",\"type\":\"questionsAndAnswers\",\"functionName\":\"createQuestionsAndAnswers\"},{\"No\":45,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive E-books\",\"Description\":\"Offer an enhanced reading experience with multimedia elements and interactive features.\",\"type\":\"interactiveEbook\",\"functionName\":\"createInteractiveEbook\"},{\"No\":47,\"Category\":\"Content Enrichment\",\"Format\":\"Pros and Cons\",\"Description\":\"Present arguments for and against a particular topic or decision.\",\"type\":\"prosAndCons\",\"functionName\":\"createProsAndCons\"},{\"No\":52,\"Category\":\"Content Enrichment\",\"Format\":\"Persuasive Arguments\",\"Description\":\"Present a compelling argument for or against a particular viewpoint.\",\"type\":\"persuasiveArgument\",\"functionName\":\"createPersuasiveArguments\"},{\"No\":53,\"Category\":\"Structural Content Modifications\",\"Format\":\"Thematic Overviews\",\"Description\":\"Provide a high-level summary of the main themes or ideas in a text.\",\"type\":\"thematicOverviews\",\"functionName\":\"createThematicOverviews\"},{\"No\":59,\"Category\":\"Creative Content\",\"Format\":\"Audio Narration\",\"Description\":\"Offer a spoken version of the text for auditory learners.\",\"type\":\"audioNarration\",\"functionName\":\"createAudioNarration\"},{\"No\":60,\"Category\":\"Creative Content\",\"Format\":\"Video Summary\",\"Description\":\"Provide a concise video overview of the key points.\",\"type\":\"videoSummary\",\"functionName\":\"createVideoSummary\"},{\"No\":65,\"Category\":\"Assessments\",\"Format\":\"Fill-in-the-Blanks\",\"Description\":\"Create exercises where learners complete missing information.\",\"type\":\"fillInTheBlanks\",\"functionName\":\"createFillInTheBlanks\"},{\"No\":66,\"Category\":\"Assessments\",\"Format\":\"True/False Statements\",\"Description\":\"Test comprehension with simple statements.\",\"type\":\"trueFalseStatements\",\"functionName\":\"createTrueFalseStatements\"},{\"No\":67,\"Category\":\"Assessments\",\"Format\":\"Matching\",\"Description\":\"Engage learners in interactive activities to match or categorize information.\",\"type\":\"dragAndDropActivity\",\"functionName\":\"createDragAndDropActivity\"},{\"No\":80,\"Category\":\"Content Enrichment\",\"Format\":\"Real-World Applications\",\"Description\":\"Connect theoretical concepts to practical situations.\",\"type\":\"realWorldApplications\",\"functionName\":\"createRealWorldApplications\"},{\"No\":83,\"Category\":\"Educational Activities\",\"Format\":\"Project-Based Learning\",\"Description\":\"Encourage learners to apply knowledge to solve real-world problems.\",\"type\":\"projectBasedLearning\",\"functionName\":\"createProjectBasedLearning\"},{\"No\":88,\"Category\":\"AI Collaboration\",\"Format\":\"AI Chatbots\",\"Description\":\"Provide interactive support and guidance to learners.\",\"type\":\"aiChatbot\",\"functionName\":\"createAIChatbot\"},{\"No\":91,\"Category\":\"Study Aids\",\"Format\":\"Concept Maps\",\"Description\":\"Visually represent the relationships between different concepts.\",\"type\":\"conceptMap\",\"functionName\":\"createConceptMap\"},{\"No\":92,\"Category\":\"Assessments\",\"Format\":\"Self-Assessment Quizzes\",\"Description\":\"Allow learners to test their knowledge and identify areas for improvement.\",\"type\":\"selfAssessmentQuiz\",\"functionName\":\"createSelfAssessmentQuiz\"},{\"No\":96,\"Category\":\"Interactive Learning\",\"Format\":\"Adaptive Quizzes\",\"Description\":\"Adjust the difficulty of quiz questions based on the learner's performance.\",\"type\":\"adaptiveQuiz\",\"functionName\":\"createAdaptiveQuiz\"},\n{\"No\":99,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Timelines\",\"Description\":\"Allow learners to explore historical events or processes in a visual and interactive format.\",\"type\":\"interactiveTimeline\",\"functionName\":\"createInteractiveTimeline\"},{\"No\":119,\"Category\":\"Structural Content Modifications\",\"Format\":\"Nested Bullet Points\",\"Description\":\"Create multiple levels of bullet points.\",\"type\":\"nestedBulletPoints\",\"functionName\":\"createNestedBulletPoints\"},{\"No\":126,\"Category\":\"Structural Content Modifications\",\"Format\":\"Concept Hierarchies\",\"Description\":\"Present concepts from broad to specific.\",\"type\":\"conceptHierarchy\",\"functionName\":\"createConceptHierarchy\"},{\"No\":145,\"Category\":\"Interactive Learning\",\"Format\":\"Personalized Concept Maps\",\"Description\":\"Allow users to create their own concept maps with feedback.\",\"type\":\"personalizedConceptMap\",\"functionName\":\"createPersonalizedConceptMaps\"},{\"No\":150,\"Category\":\"Creative Content\",\"Format\":\"Expository Writing\",\"Description\":\"Present information in a clear, concise, and organized manner.\",\"type\":\"expositoryWriting\",\"functionName\":\"createExpositoryWriting\"},{\"No\":151,\"Category\":\"Creative Content\",\"Format\":\"Narrative Descriptions\",\"Description\":\"Describe events, processes, or concepts in a storytelling format.\",\"type\":\"narrativeDescription\",\"functionName\":\"createNarrativeDescriptions\"},{\"No\":152,\"Category\":\"Content Enrichment\",\"Format\":\"Analogies and Metaphors\",\"Description\":\"Use figurative language to create comparisons and enhance understanding.\",\"type\":\"analogiesAndMetaphors\",\"functionName\":\"createAnalogiesAndMetaphors\"},{\"No\":153,\"Category\":\"Structural Content Modifications\",\"Format\":\"Structural Markers\",\"Description\":\"Use headings, transitions, and other markers to clarify text structure.\",\"type\":\"structuralMarkers\",\"functionName\":\"createStructuralMarkers\"},{\"No\":154,\"Category\":\"Structural Content Modifications\",\"Format\":\"Logical Progressions\",\"Description\":\"Arrange information in a logical order, such as chronological or by importance.\",\"type\":\"logicalProgression\",\"functionName\":\"createLogicalProgression\"},{\"No\":156,\"Category\":\"Content Enrichment\",\"Format\":\"FAQs (Frequently Asked Questions)\",\"Description\":\"Provide answers to common questions about the topic.\",\"type\":\"faqs\",\"functionName\":\"createFaq\"},{\"No\":157,\"Category\":\"Content Enrichment\",\"Format\":\"Scenario-Based Explanations\",\"Description\":\"Explain concepts through realistic scenarios or examples.\",\"type\":\"scenarioBasedExplanation\",\"functionName\":\"createScenarioBasedExplanation\"},{\"No\":158,\"Category\":\"Study Aids\",\"Format\":\"Visual Text Formatting\",\"Description\":\"Use formatting (bold, italics, color) to enhance readability and highlight key points.\",\"type\":\"visualTextFormatting\",\"functionName\":\"applyVisualTextFormatting\"},{\"No\":159,\"Category\":\"Core Content Modifications\",\"Format\":\"Conceptual Overviews\",\"Description\":\"Provide high-level summaries of key concepts.\",\"type\":\"conceptualOverview\",\"functionName\":\"createConceptualOverview\"},{\"No\":160,\"Category\":\"Structural Content Modifications\",\"Format\":\"Incremental Complexity\",\"Description\":\"Gradually increase the complexity of content as learners progress.\",\"type\":\"incrementalComplexity\",\"functionName\":\"createIncrementalComplexity\"},{\"No\":164,\"Category\":\"AI Collaboration\",\"Format\":\"Socratic Questioning\",\"Description\":\"Engage learners in a dialogue of questions and answers to stimulate critical thinking.\",\"type\":\"socraticQuestions\",\"functionName\":\"createSocraticQuestions\"},{\"No\":165,\"Category\":\"Study Aids\",\"Format\":\"Comparative Tables\",\"Description\":\"Present information in a tabular format for easy comparison.\",\"type\":\"comparativeTable\",\"functionName\":\"createComparativeTable\"},{\"No\":166,\"Category\":\"Content Enrichment\",\"Format\":\"Contrasting Cases\",\"Description\":\"Provide examples of different situations or outcomes to highlight key points.\",\"type\":\"contrastingCases\",\"functionName\":\"createContrastingCases\"},{\"No\":173,\"Category\":\"Structural Content Modifications\",\"Format\":\"Layered Explanations\",\"Description\":\"Present information at different levels of complexity, allowing learners to choose their depth of understanding.\",\"type\":\"layeredExplanations\",\"functionName\":\"createLayeredExplanations\"},{\"No\":198,\"Category\":\"Structural Content Modifications\",\"Format\":\"Comparative Analysis\",\"Description\":\"Analyze and compare different texts or sources on the same topic.\",\"type\":\"comparativeAnalysis\",\"functionName\":\"createComparativeAnalysis\"},{\"No\":199,\"Category\":\"Additional Enhancements\",\"Format\":\"Personalized Feedback\",\"Description\":\"Provide tailored feedback based on learner's performance and progress.\",\"type\":\"personalizedFeedback\",\"functionName\":\"createPersonalizedFeedback\"},{\"No\":202,\"Category\":\"Study Aids\",\"Format\":\"Spaced Repetition\",\"Description\":\"Reinforce learning through scheduled reviews of material based on forgetting curves.\",\"type\":\"spacedRepetition\",\"functionName\":\"createSpacedRepetition\"},{\"No\":203,\"Category\":\"Simulations & Games\",\"Format\":\"Gamified Quizzes\",\"Description\":\"Turn quizzes into engaging games with rewards and competition.\",\"type\":\"gamifiedQuiz\",\"functionName\":\"createGamifiedQuiz\"},{\"No\":216,\"Category\":\"Structural Content Modifications\",\"Format\":\"Rhetorical Structures\",\"Description\":\"Organize content using rhetorical devices like comparison/contrast, cause/effect, or problem/solution.\",\"type\":\"rhetoricalStructure\",\"functionName\":\"createRhetoricalStructure\"},{\"No\":217,\"Category\":\"Structural Content Modifications\",\"Format\":\"Temporal Structuring\",\"Description\":\"Arrange information chronologically or by time periods.\",\"type\":\"temporalStructuring\",\"functionName\":\"createTemporalStructuring\"},{\"No\":234,\"Category\":\"Content Enrichment\",\"Format\":\"Exemplification\",\"Description\":\"Provide concrete examples to illustrate abstract concepts or principles.\",\"type\":\"exemplification\",\"functionName\":\"createExemplification\"},{\"No\":239,\"Category\":\"Core Content Modifications\",\"Format\":\"Streamlining Content\",\"Description\":\"Condense or simplify text to focus on the most essential information.\",\"type\":\"streamlinedContent\",\"functionName\":\"createStreamlinedContent\"},{\"No\":240,\"Category\":\"Study Aids\",\"Format\":\"Integrated Annotations\",\"Description\":\"Embed annotations or explanations directly within the text for contextual learning.\",\"type\":\"integratedAnnotations\",\"functionName\":\"createIntegratedAnnotations\"},{\"No\":244,\"Category\":\"Core Content Modifications\",\"Format\":\"Distributed Summaries\",\"Description\":\"Provide summaries of different sections or chapters throughout a text.\",\"type\":\"distributedSummaries\",\"functionName\":\"createDistributedSummaries\"},{\"No\":247,\"Category\":\"Core Content Modifications\",\"Format\":\"Glossaries\",\"Description\":\"Provide a list of key terms and their definitions.\",\"type\":\"glossary\",\"functionName\":\"createGlossary\"},{\"No\":256,\"Category\":\"Content Enrichment\",\"Format\":\"Similes and Metaphors\",\"Description\":\"Use figurative language to create comparisons and enhance understanding.\",\"type\":\"similesAndMetaphors\",\"functionName\":\"createSimilesAndMetaphors\"},{\"No\":263,\"Category\":\"Interactive Learning\",\"Format\":\"Dynamic Highlighting\",\"Description\":\"Highlight relevant sections of text based on user interactions or preferences.\",\"type\":\"dynamicHighlighting\",\"functionName\":\"applyDynamicHighlighting\"},{\"No\":265,\"Category\":\"Additional Enhancements\",\"Format\":\"Pedagogical Scaffolding\",\"Description\":\"Provide structured support to learners as they progress through increasingly complex tasks.\",\"type\":\"pedagogicalScaffolding\",\"functionName\":\"createPedagogicalScaffolding\"},{\"No\":270,\"Category\":\"Creative Content\",\"Format\":\"Iterative Explanations\",\"Description\":\"Explain concepts multiple times, each time adding more detail or complexity.\",\"type\":\"iterativeExplanations\",\"functionName\":\"createIterativeExplanations\"},{\"No\":278,\"Category\":\"AI Collaboration\",\"Format\":\"Embedded Socratic Method\",\"Description\":\"Incorporate Socratic questioning within the text to guide learners' thinking.\",\"type\":\"embeddedSocraticMethod\",\"functionName\":\"createEmbeddedSocraticMethod\"},{\"No\":280,\"Category\":\"Interactive Learning\",\"Format\":\"Dynamic Text Adjustment\",\"Description\":\"Automatically adjust text difficulty or complexity based on learner performance or preferences.\",\"type\":\"dynamicTextAdjustment\",\"functionName\":\"createDynamicTextAdjustment\"},{\"No\":281,\"Category\":\"Content Enrichment\",\"Format\":\"Embedded Case Studies\",\"Description\":\"Integrate real-world case studies into the text to illustrate concepts in context.\",\"type\":\"embeddedCaseStudies\",\"functionName\":\"createEmbeddedCaseStudies\"},{\"No\":282,\"Category\":\"Structural Content Modifications\",\"Format\":\"Logical Structuring\",\"Description\":\"Organize information in a clear, logical manner using deductive or inductive reasoning.\",\"type\":\"logicalStructuring\",\"functionName\":\"createLogicalStructuring\"},{\"No\":285,\"Category\":\"Structural Content Modifications\",\"Format\":\"Content Layering\",\"Description\":\"Present information in multiple layers, starting with basic concepts and gradually adding complexity.\",\"type\":\"contentLayering\",\"functionName\":\"createContentLayering\"},{\"No\":293,\"Category\":\"Additional Enhancements\",\"Format\":\"Scaffolded Learning Pathways\",\"Description\":\"Provide structured support and guidance to help learners progress through the material.\",\"type\":\"scaffoldedLearningPath\",\"functionName\":\"createScaffoldedLearningPath\"},{\"No\":296,\"Category\":\"Structural Content Modifications\",\"Format\":\"Contextual Embedding\",\"Description\":\"Place new information within a relevant context to aid understanding.\",\"type\":\"contextualEmbedding\",\"functionName\":\"createContextualEmbedding\"},{\"No\":298,\"Category\":\"AI Collaboration\",\"Format\":\"Iterative Refinement\",\"Description\":\"Allow users to revise and improve their summaries or responses based on feedback.\",\"type\":\"iterativeRefinement\",\"functionName\":\"createIterativeRefinement\"},{\"No\":303,\"Category\":\"Structural Content Modifications\",\"Format\":\"Episodic Structure\",\"Description\":\"Divide content into distinct episodes or chapters, each with its own focus or theme.\",\"type\":\"episodicStructure\",\"functionName\":\"createEpisodicStructure\"},{\"No\":309,\"Category\":\"AI Collaboration\",\"Format\":\"Hypothetical Scenarios\",\"Description\":\"Present \\\"what if\\\" scenarios to encourage critical thinking and decision-making.\",\"type\":\"hypotheticalScenarios\",\"functionName\":\"createHypotheticalScenarios\"},{\"No\":500,\"Category\":\"Core Content Modifications\",\"Format\":\"Paraphrasing\",\"Description\":\"Reword complex sentences for easier understanding.\",\"type\":\"paraphrasing\",\"functionName\":\"createParaphrasingExercise\"},\n{\"No\":502,\"Category\":\"Content Enrichment\",\"Format\":\"Microlearning Modules\",\"Description\":\"Break down content into small, bite-sized chunks for easier consumption.\",\"type\":\"microlearningModules\",\"functionName\":\"createMicrolearningModules\"},{\"No\":503,\"Category\":\"Structural Content Modifications\",\"Format\":\"Thematic Clusters\",\"Description\":\"Group related ideas or concepts together for better organization.\",\"type\":\"thematicClusters\",\"functionName\":\"createThematicClusters\"},{\"No\":504,\"Category\":\"Structural Content Modifications\",\"Format\":\"Layered Explanations\",\"Description\":\"Present information at different levels of complexity, allowing learners to choose their depth of understanding.\",\"type\":\"layeredExplanations\",\"functionName\":\"createLayeredExplanations\"},{\"No\":505,\"Category\":\"Core Content Modifications\",\"Format\":\"Recursive Summaries\",\"Description\":\"Summarize a text at multiple levels, starting with a broad overview and then drilling down into specific details.\",\"type\":\"recursiveSummaries\",\"functionName\":\"createRecursiveSummaries\"},{\"No\":69,\"Category\":\"Language Learning\",\"Format\":\"Vocabulary Quizzes\",\"Description\":\"Customizable quizzes with varied question types to assess vocabulary knowledge and progress.\",\"type\":\"vocabularyQuiz\",\"functionName\":\"createVocabularyQuizzes\"},{\"No\":70,\"Category\":\"Language Learning\",\"Format\":\"Picture Description Games\",\"Description\":\"Visual prompts for learners to describe in the target language, promoting vocabulary and sentence construction.\",\"type\":\"pictureDescriptionGames\",\"functionName\":\"createPictureDescriptionGames\"},{\"No\":72,\"Category\":\"Language Learning\",\"Format\":\"Interactive Audiobooks\",\"Description\":\"Audiobooks with synchronized text highlighting, vocabulary lookup, and comprehension quizzes.\",\"type\":\"interactiveAudiobooks\",\"functionName\":\"createInteractiveAudiobooks\"},{\"No\":75,\"Category\":\"Language Learning\",\"Format\":\"Interactive Reading Quizzes\",\"Description\":\"Quizzes embedded within authentic texts to assess comprehension and vocabulary acquisition.\",\"type\":\"interactiveReadingQuizzes\",\"functionName\":\"createInteractiveReadingQuizzes\"},{\"No\":76,\"Category\":\"Language Learning\",\"Format\":\"AI-Powered Writing Assistant\",\"Description\":\"Real-time grammar and style checker with suggestions for improvement, promoting writing fluency.\",\"type\":\"writingAssistant\",\"functionName\":\"createAIPoweredWritingAssistant\"},\n{\"No\":78,\"Category\":\"Language Learning\",\"Format\":\"Pronunciation Drills with Feedback\",\"Description\":\"Record and compare pronunciation with native speakers and receive feedback.\",\"type\":\"pronunciationDrills\",\"functionName\":\"createPronunciationDrillsWithFeedback\"},{\"No\":79,\"Category\":\"Language Learning\",\"Format\":\"Interactive Cultural Activities\",\"Description\":\"Games, quizzes, and videos that explore cultural aspects related to the language.\",\"type\":\"interactiveCulturalActivities\",\"functionName\":\"createInteractiveCulturalActivities\"},{\"No\":89,\"Category\":\"Language Learning\",\"Format\":\"Matching Games (Words and Pictures)\",\"Description\":\"Simple vocabulary association games for beginners.\",\"type\":\"matchingGame\",\"functionName\":\"createMatchingGame\"},{\"No\":516,\"Category\":\"Math & Logic\",\"Format\":\"Interactive Number Line\",\"Description\":\"Visualizes number operations and relationships between numbers (fractions, decimals, integers), enhancing conceptual understanding.\",\"type\":\"interactiveNumberLine\",\"functionName\":\"createInteractiveNumberLine\"},{\"No\":517,\"Category\":\"Math & Logic\",\"Format\":\"Interactive Quizzes & Assessments\",\"Description\":\"Offers a variety of question types for assessing understanding of different math concepts. Can provide immediate feedback and track progress.\",\"JavascriptFunctionName\":\"createInteractiveQuiz\"},{\"No\":518,\"Category\":\"Math & Logic\",\"Format\":\"Math Facts Generator\",\"Description\":\"Helps students memorize essential math facts (addition, subtraction, multiplication, division) through quick drills, fostering fluency.\",\"type\":\"mathFactsGenerator\",\"functionName\":\"createMathFactsGenerator\"},{\"No\":519,\"Category\":\"Math & Logic\",\"Format\":\"Shape Identification & Classification\",\"Description\":\"Engages visual and kinesthetic learners through drag-and-drop activities and multiple-choice questions, strengthening geometry skills.\",\"type\":\"shapeIdentification\",\"functionName\":\"createShapeIdentification\"},{\"No\":520,\"Category\":\"Math & Logic\",\"Format\":\"Fraction Visualizer\",\"Description\":\"Interactive models for exploring fractions, equivalent fractions, and operations.\",\"type\":\"fractionVisualizer\",\"functionName\":\"createFractionVisualizer\"},{\"No\":521,\"Category\":\"Math & Logic\",\"Format\":\"Graphing Activities\",\"Description\":\"Allows students to create and interpret various types of graphs, developing data analysis and representation skills.\",\"type\":\"graphingActivities\",\"functionName\":\"createGraphingActivities\"},{\"No\":522,\"Category\":\"Math & Logic\",\"Format\":\"Geometry Puzzles (Interactive)\",\"Description\":\"Engaging challenges involving angles, shapes, and spatial reasoning that foster problem-solving and critical thinking.\",\"type\":\"geometryPuzzles\",\"functionName\":\"createGeometryPuzzles\"},{\"No\":523,\"Category\":\"Math & Logic\",\"Format\":\"Money Math Games\",\"Description\":\"Simulate real-life scenarios with financial transactions, teaching practical money management and budgeting.\",\"type\":\"moneyMathGames\",\"functionName\":\"createMoneyMathGames\"},{\"No\":524,\"Category\":\"Math & Logic\",\"Format\":\"Math Word Problem Generator\",\"Description\":\"Creates diverse word problems, enabling teachers to tailor exercises to individual needs and learning objectives.\",\"type\":\"mathWordProblemGenerator\",\"functionName\":\"createMathWordProblems\"},{\"No\":525,\"Category\":\"Math & Logic\",\"Format\":\"Math Vocabulary Builder\",\"Description\":\"Interactive flashcards, definitions, and examples of key terms.\",\"type\":\"mathVocabularyBuilder\",\"functionName\":\"createMathVocabularyBuilder\"},{\"No\":526,\"Category\":\"Math & Logic\",\"Format\":\"Math Concept Explainer\",\"Description\":\"ChatGPT-powered chatbot to answer questions and provide explanations in simple language.\",\"type\":\"mathConceptExplainer\",\"functionName\":\"createMathConceptExplainer\"},{\"No\":550,\"Category\":\"Simulations & Games\",\"Format\":\"Simulations (Text-Based)\",\"Description\":\"Text-based scenarios and questions for simulated experiences.\",\"type\":\"textSimulation\",\"functionName\":\"createTextSimulation\"},{\"No\":551,\"Category\":\"Simulations & Games\",\"Format\":\"Virtual Labs (Text-Based)\",\"Description\":\"Describe procedures, provide data, and ask questions in a text-based format.\",\"type\":\"virtualLab\",\"functionName\":\"createVirtualLab\"},{\"No\":552,\"Category\":\"Simulations & Games\",\"Format\":\"Games (Text-Based)\",\"Description\":\"Trivia, word searches, riddles tailored to the subject matter.\",\"type\":\"mathTextGames\",\"functionName\":\"createMathTextGames\"},{\"No\":553,\"Category\":\"Simulations & Games\",\"Format\":\"Debates (Enhanced)\",\"Description\":\"Create a more structured format with arguments, counterarguments, and rebuttals.\",\"type\":\"debate\",\"functionName\":\"createDebate\"},{\"No\":554,\"Category\":\"Educational Activities\",\"Format\":\"Project Ideas (Structured)\",\"Description\":\"Provide more detailed project outlines with step-by-step guidance.\",\"type\":\"structuredProject\",\"functionName\":\"createStructuredProject\"},{\"No\":555,\"Category\":\"Simulations & Games\",\"Format\":\"Mystery Games\",\"Description\":\"Text-based mystery puzzles to solve.\",\"type\":\"mysteryGame\",\"functionName\":\"createMysteryGame\"},\n{\"No\":557,\"Category\":\"Simulations & Games\",\"Format\":\"Escape Rooms (Text-Based)\",\"Description\":\"Design puzzles and challenges that students must solve to 'escape' a virtual room.\",\"type\":\"escapeRoom\",\"functionName\":\"createEscapeRoom\"},{\"No\":558,\"Category\":\"AI Collaboration\",\"Format\":\"Problem-Solving Challenges\",\"Description\":\"Offer complex, multi-step problems that require critical thinking and application of knowledge.\",\"type\":\"problemSolvingChallenge\",\"functionName\":\"createProblemSolvingChallenge\"},\n{\"No\":560,\"Category\":\"Simulations & Games\",\"Format\":\"Data Analysis Challenges\",\"Description\":\"Provide text-based data sets and prompt students to analyze them.\",\"type\":\"dataAnalysisChallenge\",\"functionName\":\"createDataAnalysisChallenge\"},{\"No\":561,\"Category\":\"Simulations & Games\",\"Format\":\"Hypothesis Testing\",\"Description\":\"Guide students through formulating and testing hypotheses in a structured way.\",\"type\":\"hypothesisTesting\",\"functionName\":\"createHypothesisTesting\"},{\"No\":562,\"Category\":\"AI Collaboration\",\"Format\":\"Question Generator (Enhanced)\",\"Description\":\"Create a more sophisticated question generator that produces various types of questions (MCQ, short answer, essay, etc.) for different learning goals.\",\"type\":\"enhancedQuestionGenerator\",\"functionName\":\"createEnhancedQuestionGenerator\"},{\"No\":802,\"Category\":\"Lesson Plans\",\"Format\":\"Inquiry-Based Learning (IBL)\",\"Description\":\"Student-centered approach where learners explore questions, gather data, and draw conclusions through investigation.\",\"type\":\"inquiryBasedLearningLesson\",\"functionName\":\"createInquiryBasedLearningLesson\"},{\"No\":807,\"Category\":\"Lesson Plans\",\"Format\":\"Project-Based Learning (PBL)\",\"Description\":\"Students gain knowledge and skills by working for an extended period to investigate and respond to a complex question, problem, or challenge.\",\"type\":\"projectBasedLearningLesson\",\"functionName\":\"createProjectBasedLearningLesson\"},{\"No\":801,\"Category\":\"Lesson Plans\",\"Format\":\"Flipped Classroom\",\"Description\":\"Students learn new content at home (often through videos or readings) and practice applying it in class.\",\"type\":\"flippedClassroom\",\"functionName\":\"createFlippedClassroomLesson\"},{\"No\":803,\"Category\":\"Lesson Plans\",\"Format\":\"Cooperative Learning\",\"Description\":\"Students work together in groups to achieve shared learning goals.\",\"type\":\"cooperativeLearning\",\"functionName\":\"createCooperativeLearningLesson\"},{\"No\":804,\"Category\":\"Lesson Plans\",\"Format\":\"Differentiated Instruction\",\"Description\":\"Tailoring instruction to meet the diverse needs of learners by modifying content, process, or product.\",\"type\":\"differentiatedInstruction\",\"functionName\":\"createDifferentiatedInstructionLesson\"},{\"No\":805,\"Category\":\"Lesson Plans\",\"Format\":\"Station Rotation\",\"Description\":\"Students rotate through different learning stations, each focusing on a specific activity or skill.\",\"type\":\"stationRotation\",\"functionName\":\"createStationRotationLesson\"},{\"No\":806,\"Category\":\"Lesson Plans\",\"Format\":\"Explicit Instruction\",\"Description\":\"Clear, structured explanations with modeling and guided practice to ensure students understand concepts.\",\"type\":\"explicitInstruction\",\"functionName\":\"createExplicitInstructionLesson\"},{\"No\":808,\"Category\":\"Lesson Plans\",\"Format\":\"Blended Learning\",\"Description\":\"Comb`1ines online and offline learning experiences, offering flexibility and personalization.\",\"type\":\"blendedLearning\",\"functionName\":\"createBlendedLearningLesson\"},\n{\"No\":810,\"Category\":\"Lesson Plans\",\"Format\":\"Case-Based Learning (CBL)\",\"Description\":\"Students analyze real-world scenarios or cases to develop problem-solving and critical thinking skills.\",\"type\":\"caseBasedLearning\",\"functionName\":\"createCaseBasedLearningLesson\"},{\"No\":811,\"Category\":\"Lesson Plans\",\"Format\":\"Anchored Instruction\",\"Description\":\"Connects abstract concepts to concrete, real-world examples to enhance understanding.\",\"type\":\"anchoredInstruction\",\"functionName\":\"createAnchoredInstructionLesson\"},{\"No\":812,\"Category\":\"Lesson Plans\",\"Format\":\"Technology-Enhanced Learning (TEL)\",\"Description\":\"Uses technology to facilitate and enhance various aspects of teaching and learning.\",\"type\":\"technologyEnhancedLearning\",\"functionName\":\"createTechnologyEnhancedLearningLesson\"},{\"No\":813,\"Category\":\"Lesson Plans\",\"Format\":\"Universal Design for Learning (UDL)\",\"Description\":\"Framework for creating flexible learning environments that accommodate individual differences.\",\"type\":\"universalDesignForLearning\",\"functionName\":\"createUniversalDesignForLearningLesson\"},{\"No\":814,\"Category\":\"Lesson Plans\",\"Format\":\"Culturally Responsive Teaching\",\"Description\":\"Recognizes and values students' cultural backgrounds and experiences to create inclusive learning environments.\",\"type\":\"culturallyResponsiveTeaching\",\"functionName\":\"createCulturallyResponsiveTeachingLesson\"},{\"No\":815,\"Category\":\"Lesson Plans\",\"Format\":\"Competency-Based Education\",\"Description\":\"Focuses on students demonstrating mastery of specific skills and knowledge, allowing them to progress at their own pace.\",\"type\":\"competencyBasedEducation\",\"functionName\":\"createCompetencyBasedEducationLesson\"},{\"No\":816,\"Category\":\"Lesson Plans\",\"Format\":\"Mastery Learning\",\"Description\":\"Students must demonstrate mastery of one concept before moving on to the next, with additional support provided as needed.\",\"type\":\"masteryLearning\",\"functionName\":\"createMasteryLearningLesson\"},{\"No\":817,\"Category\":\"Lesson Plans\",\"Format\":\"Social-Emotional Learning (SEL)\",\"Description\":\"Focuses on developing students' self-awareness, social skills, and emotional regulation.\",\"type\":\"socialEmotionalLearning\",\"functionName\":\"createSocialEmotionalLearningLesson\"},{\"No\":818,\"Category\":\"Lesson Plans\",\"Format\":\"Trauma-Informed Teaching\",\"Description\":\"Recognizes the impact of trauma on learning and creates safe, supportive environments that address students' needs.\",\"type\":\"traumaInformedTeaching\",\"functionName\":\"createTraumaInformedTeachingLesson\"},{\"No\":819,\"Category\":\"Lesson Plans\",\"Format\":\"Understanding by Design (UbD)\",\"Description\":\"Educators plan instruction by starting with desired outcomes and working backward to design assessments and activities.\",\"type\":\"understandingByDesign\",\"functionName\":\"createUnderstandingByDesignLesson\"},{\"No\":820,\"Category\":\"Lesson Plans\",\"Format\":\"The SAMR Model\",\"Description\":\"A framework for evaluating how technology is used in the classroom.\",\"type\":\"samrModel\",\"functionName\":\"createSamrModelLesson\"},{\"No\":821,\"Category\":\"Lesson Plans\",\"Format\":\"TPACK (Technological Pedagogical Content Knowledge)\",\"Description\":\"Emphasizes the importance of teachers understanding how technology, pedagogy, and content knowledge intersect.\",\"type\":\"tpack\",\"functionName\":\"createTpackLesson\"},{\"No\":822,\"Category\":\"Lesson Plans\",\"Format\":\"Constructivism\",\"Description\":\"Learners actively construct knowledge through their interactions with the world and prior experiences.\",\"type\":\"constructivism\",\"functionName\":\"createConstructivismLesson\"},{\"No\":823,\"Category\":\"Lesson Plans\",\"Format\":\"Behaviorism\",\"Description\":\"Learning is a change in behavior caused by external stimuli and reinforcement.\",\"type\":\"behaviorism\",\"functionName\":\"createBehaviorismLesson\"},{\"No\":824,\"Category\":\"Lesson Plans\",\"Format\":\"Multiple Intelligences Theory\",\"Description\":\"Proposes that intelligence encompasses various areas like linguistic, logical-mathematical, and spatial.\",\"type\":\"multipleIntelligences\",\"functionName\":\"createMultipleIntelligencesLesson\"},{\"No\":825,\"Category\":\"Lesson Plans\",\"Format\":\"Growth Mindset\",\"Description\":\"Belief that intelligence and abilities can be developed through effort and dedication.\",\"type\":\"growthMindset\",\"functionName\":\"createGrowthMindsetLesson\"},{\"No\":826,\"Category\":\"Lesson Plans\",\"Format\":\"Cognitivism\",\"Description\":\"Focuses on mental processes like memory, attention, and problem-solving in learning.\",\"type\":\"cognitivism\",\"functionName\":\"createCognitivismLesson\"},{\"No\":827,\"Category\":\"Lesson Plans\",\"Format\":\"Humanism\",\"Description\":\"Emphasizes individual potential, self-actualization, and learner-centered approaches.\",\"type\":\"humanism\",\"functionName\":\"createHumanismLesson\"},{\"No\":829,\"Category\":\"Lesson Plans\",\"Format\":\"Personalized Learning\",\"Description\":\"Tailors instruction and learning paths to meet individual student needs and interests.\",\"type\":\"personalizedLearning\",\"functionName\":\"createPersonalizedLearningLesson\"},{\"No\":830,\"Category\":\"Lesson Plans\",\"Format\":\"Experiential Learning\",\"Description\":\"Emphasizes learning through hands-on experiences and reflection.\",\"type\":\"experientialLearning\",\"functionName\":\"createExperientialLearningLesson\"},{\"No\":701,\"Category\":\"Educational Activities\",\"Format\":\"Think-Pair-Share\",\"Description\":\"Students think about a question individually, discuss it with a partner, and then share their thoughts with the class.\",\"type\":\"thinkPairShareActivity\",\"functionName\":\"createThinkPairShareActivity\"},{\"No\":702,\"Category\":\"Educational Activities\",\"Format\":\"Numbered Heads Together\",\"Description\":\"Students work in groups to answer a question, with each student assigned a number and responsible for sharing the group's answer.\",\"type\":\"numberedHeadsTogetherActivity\",\"functionName\":\"createNumberedHeadsTogetherActivity\"},{\"No\":703,\"Category\":\"Educational Activities\",\"Format\":\"Gallery Walk\",\"Description\":\"Students create displays of their work, and the class circulates to view and discuss them.\",\"type\":\"galleryWalkActivity\",\"functionName\":\"createGalleryWalkActivity\"},{\"No\":704,\"Category\":\"Educational Activities\",\"Format\":\"Role-Playing/Simulations\",\"Description\":\"Students act out scenarios to practice skills or explore different perspectives.\",\"type\":\"rolePlayingSimulationActivity\",\"functionName\":\"createRolePlayingSimulationActivity\"},{\"No\":705,\"Category\":\"Educational Activities\",\"Format\":\"Debates\",\"Description\":\"Students research and argue opposing sides of an issue to develop critical thinking and communication skills.\",\"type\":\"debateActivity\",\"functionName\":\"createDebateActivity\"},{\"No\":706,\"Category\":\"Educational Activities\",\"Format\":\"Collaborative Problem-Solving\",\"Description\":\"Students work together to find solutions to a complex problem.\",\"type\":\"collaborativeProblemSolvingActivity\",\"functionName\":\"createCollaborativeProblemSolvingActivity\"},{\"No\":707,\"Category\":\"Educational Activities\",\"Format\":\"Fishbowl\",\"Description\":\"A small group discusses a topic while the rest of the class observes and then provides feedback.\",\"type\":\"fishbowlActivity\",\"functionName\":\"createFishbowlActivity\"},{\"No\":708,\"Category\":\"Educational Activities\",\"Format\":\"Group Investigation\",\"Description\":\"Students work collaboratively to research a topic and present their findings.\",\"type\":\"groupInvestigationActivity\",\"functionName\":\"createGroupInvestigationActivity\"},{\"No\":709,\"Category\":\"Educational Activities\",\"Format\":\"Group Presentations\",\"Description\":\"Students work in groups to create and deliver presentations on a topic.\",\"type\":\"groupPresentationsActivity\",\"functionName\":\"createGroupPresentationsActivity\"},{\"No\":710,\"Category\":\"Educational Activities\",\"Format\":\"Peer Review/Feedback\",\"Description\":\"Students provide constructive feedback on each other's work to improve their understanding and skills.\",\"type\":\"peerReviewFeedbackActivity\",\"functionName\":\"createPeerReviewFeedbackActivity\"},{\"No\":711,\"Category\":\"Educational Activities\",\"Format\":\"Concept Maps\",\"Description\":\"Students create visual representations of concepts and their relationships to deepen understanding.\",\"type\":\"conceptMapsActivity\",\"functionName\":\"createConceptMapsActivity\"},{\"No\":712,\"Category\":\"Educational Activities\",\"Format\":\"Team-Expert Model\",\"Description\":\"Students become experts on a specific topic and then teach it to their peers.\",\"type\":\"teamExpertActivity\",\"functionName\":\"createTeamExpertActivity\"},{\"No\":713,\"Category\":\"Educational Activities\",\"Format\":\"Four Corners\",\"Description\":\"Students move to different corners of the room based on their opinion on a statement, then discuss their choices.\",\"type\":\"fourCornersActivity\",\"functionName\":\"createFourCornersActivity\"},{\"No\":714,\"Category\":\"Educational Activities\",\"Format\":\"Think-Write-Pair-Share\",\"Description\":\"Students think about a question, write their thoughts, discuss with a partner, and then share with the class.\",\"type\":\"thinkWritePairShareActivity\",\"functionName\":\"createThinkWritePairShareActivity\"},{\"No\":715,\"Category\":\"Educational Activities\",\"Format\":\"Guided Reading\",\"Description\":\"A teacher or skilled reader supports students as they read a text, building comprehension skills.\",\"type\":\"guidedReadingActivity\",\"functionName\":\"createGuidedReadingActivity\"},{\"No\":716,\"Category\":\"Educational Activities\",\"Format\":\"Collaborative Writing\",\"Description\":\"Students work together to write a shared piece of writing.\",\"type\":\"collaborativeWritingActivity\",\"functionName\":\"createCollaborativeWritingActivity\"},{\"No\":717,\"Category\":\"Educational Activities\",\"Format\":\"Round Robin\",\"Description\":\"Students take turns contributing to a task or discussion in a structured format.\",\"type\":\"roundRobinActivity\",\"functionName\":\"createRoundRobinActivity\"},{\"No\":718,\"Category\":\"Educational Activities\",\"Format\":\"Independent Reading\",\"Description\":\"Students read texts of their choice independently to build literacy skills and explore their interests.\",\"type\":\"independentReadingActivity\",\"functionName\":\"createIndependentReadingActivity\"},{\"No\":719,\"Category\":\"Educational Activities\",\"Format\":\"Research Projects\",\"Description\":\"Students investigate a topic of their choice, collecting and analyzing information to present their findings.\",\"type\":\"researchProjectsActivity\",\"functionName\":\"createResearchProjectsActivity\"},{\"No\":720,\"Category\":\"Educational Activities\",\"Format\":\"Creative Writing\",\"Description\":\"Students express themselves through stories, poems, or other forms of writing.\",\"type\":\"creativeWritingActivity\",\"functionName\":\"createCreativeWritingActivity\"},{\"No\":721,\"Category\":\"Educational Activities\",\"Format\":\"Problem-Solving Activities\",\"Description\":\"Students work on puzzles, logic problems, or real-world challenges to develop critical thinking skills.\",\"type\":\"problemSolvingActivity\",\"functionName\":\"createProblemSolvingActivities\"},{\"No\":722,\"Category\":\"Educational Activities\",\"Format\":\"Inquiry-Based Activities\",\"Description\":\"Students investigate a question or problem, actively seeking knowledge and constructing their own understanding of a topic.\",\"type\":\"inquiryBasedActivity\",\"functionName\":\"createInquiryBasedActivity\"},{\"No\":723,\"Category\":\"Educational Activities\",\"Format\":\"Socratic Seminars\",\"Description\":\"A teacher-led discussion focused on in-depth analysis and interpretation of a text.\",\"type\":\"socraticSeminarActivity\",\"functionName\":\"createSocraticSeminarActivity\"},{\"No\":724,\"Category\":\"Educational Activities\",\"Format\":\"Portfolio Projects\",\"Description\":\"Students create a collection of their work to demonstrate their learning and growth over time.\",\"type\":\"portfolioProjectsActivity\",\"functionName\":\"createPortfolioProjectsActivity\"},{\"No\":725,\"Category\":\"Educational Activities\",\"Format\":\"Interactive Notebooks\",\"Description\":\"Students create personalized notebooks with notes, reflections, and visuals to organize their learning.\",\"type\":\"interactiveNotebooksActivity\",\"functionName\":\"createInteractiveNotebooksActivity\"},{\"No\":726,\"Category\":\"Educational Activities\",\"Format\":\"Journaling/Writing Prompts\",\"Description\":\"Students respond to prompts or engage in free writing to express ideas and develop writing skills.\",\"type\":\"journalingWritingPromptsActivity\",\"functionName\":\"createJournalingWritingPromptsActivity\"},{\"No\":727,\"Category\":\"Educational Activities\",\"Format\":\"WebQuests\",\"Description\":\"Students use the internet to complete a structured inquiry-based activity.\",\"type\":\"webQuestActivity\",\"functionName\":\"createWebQuestActivity\"},{\"No\":728,\"Category\":\"Educational Activities\",\"Format\":\"Case Studies\",\"Description\":\"Students analyze real-world scenarios to apply knowledge and problem-solving skills.\",\"type\":\"caseStudiesActivity\",\"functionName\":\"createCaseStudiesActivity\"},{\"No\":729,\"Category\":\"Educational Activities\",\"Format\":\"Challenge Problems\",\"Description\":\"Students tackle complex problems that require creative thinking and problem-solving skills.\",\"type\":\"challengeProblemsActivity\",\"functionName\":\"createChallengeProblemsActivity\"},{\"No\":730,\"Category\":\"Educational Activities\",\"Format\":\"Stations Activities\",\"Description\":\"Students rotate through different stations, each with a unique task or activity, to practice skills or learn new concepts.\",\"type\":\"stationsActivity\",\"functionName\":\"createStationsActivity\"},{\"No\":901,\"Category\":\"Educational Goals\",\"Format\":\"Revised Bloom's Taxonomy\",\"Description\":\"Goal setting based on the updated Bloom's Taxonomy, emphasizing action verbs.\",\"type\":\"revisedBloomsTaxonomy\",\"functionName\":\"createRevisedBloomsTaxonomy\"},{\"No\":902,\"Category\":\"Educational Goals\",\"Format\":\"Depth of Knowledge (DOK)\",\"Description\":\"Goal setting based on the cognitive complexity of tasks.\",\"type\":\"dOKTaxonomy\",\"functionName\":\"createDOKTaxonomy\"},{\"No\":904,\"Category\":\"Educational Goals\",\"Format\":\"SOLO Taxonomy\",\"Description\":\"Goal setting designed to promote increasing complexity in student understanding.\",\"type\":\"soloTaxonomy\",\"functionName\":\"createSOLOTaxonomy\"},{\"No\":905,\"Category\":\"Educational Goals\",\"Format\":\"Marzano's New Taxonomy\",\"Description\":\"Goal setting addressing cognitive, metacognitive, and self-system factors in learning.\",\"type\":\"marzanosTaxonomy\",\"functionName\":\"createMarzanosTaxonomy\"},{\"No\":906,\"Category\":\"Educational Goals\",\"Format\":\"Fink's Taxonomy of Significant Learning\",\"Description\":\"Goal setting promoting holistic learning experiences and meaningful outcomes.\",\"type\":\"finksTaxonomy\",\"functionName\":\"createFinksTaxonomy\"},{\"No\":907,\"Category\":\"Educational Goals\",\"Format\":\"ISTE Standards for Students\",\"Description\":\"Goal setting fostering essential digital age skills.\",\"type\":\"iSTEStandardsTaxonomy\",\"functionName\":\"createISTEStandardsTaxonomy\"},{\"No\":908,\"Category\":\"Educational Goals\",\"Format\":\"Partnership for 21st Century Skills (P21)\",\"Description\":\"Goal setting promoting core subjects, 21st-century themes, and learning and innovation skills.\",\"type\":\"p21Taxonomy\",\"functionName\":\"createP21Taxonomy\"},{\"No\":909,\"Category\":\"Educational Goals\",\"Format\":\"Wiggins and McTighe's Backward Design\",\"Description\":\"Goal setting using the backward design framework, starting with desired outcomes.\",\"type\":\"backwardDesignTaxonomy\",\"functionName\":\"createBackwardDesignTaxonomy\"},{\"No\":910,\"Category\":\"Educational Goals\",\"Format\":\"Krathwohl's Affective Domain Taxonomy\",\"Description\":\"Goal setting focusing on the emotional and attitudinal aspects of learning.\",\"type\":\"krathwohlsAffectiveTaxonomy\",\"functionName\":\"createKrathwohlsAffectiveTaxonomy\"},{\"No\":911,\"Category\":\"Educational Goals\",\"Format\":\"Harrow's Psychomotor Domain Taxonomy\",\"Description\":\"Goal setting focusing on the development of physical skills and coordination.\",\"type\":\"harrowsPsychomotorTaxonomy\",\"functionName\":\"createHarrowsPsychomotorTaxonomy\"},{\"No\":912,\"Category\":\"Educational Goals\",\"Format\":\"Gagne's Nine Events of Instruction\",\"Description\":\"Goal setting using Gagne's nine-step model for effective instruction.\",\"type\":\"gagnesNineEventsTaxonomy\",\"functionName\":\"createGagnesNineEventsTaxonomy\"},{\"No\":913,\"Category\":\"Educational Goals\",\"Format\":\"Structure of the Knowledge Taxonomy\",\"Description\":\"Goal setting addressing educational objectives across cognitive, affective, and psychomotor domains.\",\"type\":\"knowledgeTaxonomy\",\"functionName\":\"createKnowledgeTaxonomy\"},{\"No\":914,\"Category\":\"Educational Goals\",\"Format\":\"Digital Bloom's Taxonomy\",\"Description\":\"Goal setting adapting Bloom's Taxonomy for the digital age, using technology tools and resources.\",\"type\":\"digitalBloomsTaxonomy\",\"functionName\":\"createDigitalBloomsTaxonomy\"},{\"No\":950,\"Category\":\"Spiritual Goals\",\"Format\":\"Christ-Likeness Formation\",\"Description\":\"Guides believers in personal transformation to reflect Jesus’ character and virtues.\",\"type\":\"christLikenessFormation\",\"functionName\":\"createChristLikenessFormation\"},{\"No\":951,\"Category\":\"Spiritual Goals\",\"Format\":\"Spiritual Disciplines\",\"Description\":\"Developing habits like prayer, fasting, and Bible study to deepen intimacy with God.\",\"type\":\"spiritualDisciplines\",\"functionName\":\"createSpiritualDisciplines\"},{\"No\":952,\"Category\":\"Spiritual Goals\",\"Format\":\"Biblical Literacy\",\"Description\":\"Structured progression for enhancing scriptural knowledge, interpretation, and life application.\",\"type\":\"biblicalLiteracy\",\"functionName\":\"createBiblicalLiteracy\"},{\"No\":953,\"Category\":\"Spiritual Goals\",\"Format\":\"Apologetics & Theological Reflection\",\"Description\":\"Exploring and defending core Christian doctrines while reflecting on deeper theological questions.\",\"type\":\"apologeticsTheologicalReflection\",\"functionName\":\"createApologeticsTheologicalReflection\"},{\"No\":954,\"Category\":\"Spiritual Goals\",\"Format\":\"Church Body Engagement\",\"Description\":\"Moving from church attendance to active service, leadership, and unity within the local congregation.\",\"type\":\"churchBodyEngagement\",\"functionName\":\"createChurchBodyEngagement\"},{\"No\":955,\"Category\":\"Spiritual Goals\",\"Format\":\"Christian Relationships & Fellowship\",\"Description\":\"Focusing on authentic, accountable relationships and cultivating a supportive faith community.\",\"type\":\"christianRelationshipsFellowship\",\"functionName\":\"createChristianRelationshipsFellowship\"},{\"No\":956,\"Category\":\"Spiritual Goals\",\"Format\":\"Missional Living & Evangelism\",\"Description\":\"Equips believers to integrate evangelism and service into daily life, from local outreach to global missions.\",\"type\":\"missionalLivingEvangelism\",\"functionName\":\"createMissionalLivingEvangelism\"},{\"No\":957,\"Category\":\"Spiritual Goals\",\"Format\":\"Spiritual Warfare & Resilience\",\"Description\":\"Helps believers stand firm against spiritual opposition and foster faith-based resilience.\",\"type\":\"spiritualWarfareResilience\",\"functionName\":\"createSpiritualWarfareResilience\"},{\"No\":1000,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Storytelling\",\"Description\":\"Sharing Bible stories in an engaging and relevant way.\",\"type\":\"storytelling\",\"functionName\":\"createStorytelling\"},{\"No\":1001,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Discussion\",\"Description\":\"Encouraging questions and conversations to explore deeper meanings.\",\"type\":\"discussion\",\"functionName\":\"createDiscussion\"},{\"No\":1002,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Interactive Activities\",\"Description\":\"Using games, crafts, and role-playing to make learning fun.\",\"type\":\"interactiveActivity\",\"functionName\":\"createInteractiveActivity\"},{\"No\":1003,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Technology-Enhanced\",\"Description\":\"Utilizing videos, apps, and online resources for better understanding.\",\"type\":\"technologyEnhanced\",\"functionName\":\"createTechnologyEnhanced\"},{\"No\":1004,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Personal Study\",\"Description\":\"Encouraging individual Bible reading and reflection.\",\"type\":\"personalStudy\",\"functionName\":\"createPersonalStudy\"},{\"No\":1005,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Group Study\",\"Description\":\"Facilitating group discussions to share insights and learn from each other.\",\"type\":\"groupStudy\",\"functionName\":\"createGroupStudy\"},{\"No\":1006,\"Category\":\"Bible Study - Creative Engagement\",\"Format\":\"Creative Expression\",\"Description\":\"Using art, music, and drama to creatively express biblical truths.\",\"type\":\"creativeExpression\",\"functionName\":\"createCreativeExpression\"},{\"No\":1007,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Service and Outreach\",\"Description\":\"Applying biblical principles through acts of service and sharing faith.\",\"type\":\"serviceAndOutreach\",\"functionName\":\"createServiceAndOutreach\"},{\"No\":1008,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Theological Reading\",\"Description\":\"Deep dive into studying doctrines and theological concepts.\",\"type\":\"theologicalReading\",\"functionName\":\"createTheologicalReading\"},{\"No\":1009,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Historical Reading\",\"Description\":\"Understanding the historical and cultural context of the Bible.\",\"type\":\"historicalReading\",\"functionName\":\"createHistoricalReading\"},{\"No\":1010,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Literary Reading\",\"Description\":\"Analyzing literary styles and metaphors used in the texts.\",\"type\":\"literaryReading\",\"functionName\":\"createLiteraryReading\"},{\"No\":1013,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Applicative Reading\",\"Description\":\"Applying Bible teachings to daily life and contemporary issues.\",\"type\":\"applicativeReading\",\"functionName\":\"createApplicativeReading\"},{\"No\":1014,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Silent Reading\",\"Description\":\"Reading in silence for personal reflection and spiritual connection.\",\"type\":\"silentReading\",\"functionName\":\"createSilentReading\"},{\"No\":1015,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Topical Reading\",\"Description\":\"Choosing a specific theme and studying all related verses.\",\"type\":\"topicalReading\",\"functionName\":\"createTopicalReading\"},{\"No\":1016,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Narrative Reading\",\"Description\":\"Reading the Bible as a continuous story, focusing on the plot and characters.\",\"type\":\"narrativeReading\",\"functionName\":\"createNarrativeReading\"},{\"No\":1017,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Symbolic Reading\",\"Description\":\"Searching for and interpreting symbols and hidden meanings.\",\"type\":\"symbolicReading\",\"functionName\":\"createSymbolicReading\"},{\"No\":1018,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Meditative Reading with Music\",\"Description\":\"Enhancing focus and reflection with calming music.\",\"type\":\"meditativeReadingWithMusic\",\"functionName\":\"createMeditativeReadingWithMusic\"},{\"No\":1019,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Reading with Prayer\",\"Description\":\"Incorporating prayer before and after reading for deeper connection.\",\"type\":\"readingWithPrayer\",\"functionName\":\"createReadingWithPrayer\"},{\"No\":1020,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Multilingual Reading\",\"Description\":\"Comparing translations in different languages for new insights.\",\"type\":\"multilingualReading\",\"functionName\":\"createMultilingualReading\"},{\"No\":1021,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Reading with Art\",\"Description\":\"Expressing biblical scenes or characters through drawing or painting.\",\"type\":\"readingWithArt\",\"functionName\":\"createReadingWithArt\"},{\"No\":1022,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Reading in Nature\",\"Description\":\"Connecting with creation while reading in a peaceful outdoor setting.\",\"type\":\"readingInNature\",\"functionName\":\"createReadingInNature\"},{\"No\":1023,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Character-Focused Reading\",\"Description\":\"Studying the journey and development of a specific biblical figure.\",\"type\":\"characterFocusedReading\",\"functionName\":\"createCharacterFocusedReading\"},{\"No\":1024,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Time-Period Focused Reading\",\"Description\":\"Exploring events within a specific timeframe in biblical history.\",\"type\":\"timePeriodFocusedReading\",\"functionName\":\"createTimePeriodFocusedReading\"},{\"No\":1025,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Genre-Focused Reading\",\"Description\":\"Focusing on a specific literary genre, like proverbs or prophecies.\",\"type\":\"genreFocusedReading\",\"functionName\":\"createGenreFocusedReading\"},{\"No\":1026,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Location-Focused Reading\",\"Description\":\"Studying events that occurred in a particular biblical location.\",\"type\":\"locationFocusedReading\",\"functionName\":\"createLocationFocusedReading\"},{\"No\":1027,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Word-Focused Reading\",\"Description\":\"Exploring all verses containing a specific word or concept.\",\"type\":\"wordFocusedReading\",\"functionName\":\"createWordFocusedReading\"},{\"No\":1028,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Dictionary-Aided Reading\",\"Description\":\"Using a dictionary to understand unfamiliar words and concepts.\",\"type\":\"dictionaryAidedReading\",\"functionName\":\"createDictionaryAidedReading\"},{\"No\":1029,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Map-Aided Reading\",\"Description\":\"Using maps to visualize locations and journeys in the Bible.\",\"type\":\"mapAidedReading\",\"functionName\":\"createMapAidedReading\"},{\"No\":1030,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Commentary-Aided Reading\",\"Description\":\"Using commentaries to gain deeper insights into the text.\",\"type\":\"commentaryAidedReading\",\"functionName\":\"createCommentaryAidedReading\"},{\"No\":1031,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Guided Reading\",\"Description\":\"Receiving guidance and support from a mentor or experienced believer.\",\"type\":\"guidedReading\",\"functionName\":\"createGuidedReading\"},{\"No\":1033,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Historical Criticism\",\"Description\":\"Examining the historical context of the texts.\",\"type\":\"historicalCriticism\",\"functionName\":\"createHistoricalCriticism\"},{\"No\":1034,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Literary Criticism\",\"Description\":\"Analyzing literary techniques and symbolism.\",\"type\":\"literaryCriticism\",\"functionName\":\"createLiteraryCriticism\"},{\"No\":1036,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Social Criticism\",\"Description\":\"Studying the Bible's impact on societies and values.\",\"type\":\"socialCriticism\",\"functionName\":\"createSocialCriticism\"},{\"No\":1037,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Promise-Focused Reading\",\"Description\":\"Identifying and reflecting on God's promises in the Bible.\",\"type\":\"promiseFocusedReading\",\"functionName\":\"createPromiseFocusedReading\"},{\"No\":1038,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Invitation-Focused Reading\",\"Description\":\"Understanding God's calls to action and faith.\",\"type\":\"invitationFocusedReading\",\"functionName\":\"createInvitationFocusedReading\"},{\"No\":1039,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Encouragement-Focused Reading\",\"Description\":\"Finding comfort and strength in uplifting verses.\",\"type\":\"encouragementFocusedReading\",\"functionName\":\"createEncouragementFocusedReading\"},{\"No\":1040,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Love-Focused Reading\",\"Description\":\"Discovering expressions of God's unconditional love.\",\"type\":\"loveFocusedReading\",\"functionName\":\"createLoveFocusedReading\"},{\"No\":1041,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Hope-Focused Reading\",\"Description\":\"Finding messages of hope and a brighter future.\",\"type\":\"hopeFocusedReading\",\"functionName\":\"createHopeFocusedReading\"},{\"No\":1042,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Interactive Reading\",\"Description\":\"Utilizing apps/websites for notes, highlights, and searches.\",\"type\":\"interactiveReading\",\"functionName\":\"createInteractiveReading\"},{\"No\":1043,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Audio Reading\",\"Description\":\"Listening to the Bible while multitasking.\",\"type\":\"audioReading\",\"functionName\":\"createAudioReading\"},{\"No\":1044,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Reading with Instant Translation\",\"Description\":\"Accessing on-the-spot translations for difficult words.\",\"type\":\"readingWithInstantTranslation\",\"functionName\":\"createReadingWithInstantTranslation\"},{\"No\":1046,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Image Generation Reading\",\"Description\":\"Employing AI to create visuals based on the text.\",\"type\":\"imageGenerationReading\",\"functionName\":\"createImageGenerationReading\"},{\"No\":1047,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Online Group Reading\",\"Description\":\"Facilitating discussions and sharing insights virtually.\",\"type\":\"onlineGroupReading\",\"functionName\":\"createOnlineGroupReading\"},{\"No\":1048,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Reading with Audio Commentary\",\"Description\":\"Recording and sharing personal reflections on the text.\",\"type\":\"readingWithAudioCommentary\",\"functionName\":\"createReadingWithAudioCommentary\"},{\"No\":1049,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Creative Content Reading\",\"Description\":\"Expressing biblical inspiration through stories, poems, or music.\",\"type\":\"creativeContentReading\",\"functionName\":\"createCreativeContentReading\"},{\"No\":1050,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Presentation-Based Reading\",\"Description\":\"Creating visual presentations on specific biblical themes.\",\"type\":\"presentationBasedReading\",\"functionName\":\"createPresentationBasedReading\"},{\"No\":1051,\"Category\":\"Bible Study - Engagement Styles\",\"Format\":\"Question-Driven Reading\",\"Description\":\"Actively engaging with the text by asking and answering questions.\",\"type\":\"questionDrivenReading\",\"functionName\":\"createQuestionDrivenReading\"},{\"No\":1052,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Comparative Translation Reading\",\"Description\":\"Comparing different translations to gain deeper understanding.\",\"type\":\"comparativeTranslationReading\",\"functionName\":\"createComparativeTranslationReading\"},{\"No\":1053,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Cultural & Social Reading\",\"Description\":\"Exploring customs, traditions, and social practices in context.\",\"type\":\"culturalSocialReading\",\"functionName\":\"createCulturalSocialReading\"},{\"No\":1054,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Geographical Reading\",\"Description\":\"Studying locations and tracing journeys mentioned in the Bible.\",\"type\":\"geographicalReading\",\"functionName\":\"createGeographicalReading\"},{\"No\":1055,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Linguistic Reading\",\"Description\":\"Delving into the original languages for deeper comprehension.\",\"type\":\"linguisticReading\",\"functionName\":\"createLinguisticReading\"},{\"No\":1056,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Verse Mapping\",\"Description\":\"Detailed analysis of a verse, including cross-references and context.\",\"type\":\"verseMapping\",\"functionName\":\"createVerseMapping\"},{\"No\":1057,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Topical Study\",\"Description\":\"In-depth exploration of a specific theme across the Bible.\",\"type\":\"topicalStudy\",\"functionName\":\"createTopicalStudy\"},{\"No\":1058,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Character Study\",\"Description\":\"Focusing on the life and lessons of a particular biblical figure.\",\"type\":\"characterStudy\",\"functionName\":\"createCharacterStudy\"},{\"No\":1059,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Inductive Study\",\"Description\":\"Observation, interpretation, and application of a passage.\",\"type\":\"inductiveStudy\",\"functionName\":\"createInductiveStudy\"},{\"No\":1060,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"SOAP Method\",\"Description\":\"Scripture, Observation, Application, and Prayer approach.\",\"type\":\"sOAPMethod\",\"functionName\":\"createSOAPMethod\"},{\"No\":1061,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Lectio Divina\",\"Description\":\"Slow, meditative reading with prayerful reflection.\",\"type\":\"lectioDivina\",\"functionName\":\"createLectioDivina\"},{\"No\":1062,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Chronological Reading\",\"Description\":\"Following the Bible's events in historical order.\",\"type\":\"chronologicalReading\",\"functionName\":\"createChronologicalReading\"},{\"No\":1063,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Parallel Reading\",\"Description\":\"Comparing accounts of the same event in different Gospels.\",\"type\":\"parallelReading\",\"functionName\":\"createParallelReading\"},{\"No\":1064,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Book-by-Book Study\",\"Description\":\"Systematic study of one book at a time.\",\"type\":\"bookByBookStudy\",\"functionName\":\"createBookByBookStudy\"},{\"No\":1065,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Word Study\",\"Description\":\"Examining the original meaning and usage of specific words.\",\"type\":\"wordStudy\",\"functionName\":\"createWordStudy\"},{\"No\":1066,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Prayer Journaling\",\"Description\":\"Writing down prayers and reflections inspired by the reading.\",\"type\":\"prayerJournaling\",\"functionName\":\"createPrayerJournaling\"},{\"No\":1067,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Memory Verse Practice\",\"Description\":\"Memorizing and reciting key verses for deeper internalization.\",\"type\":\"memoryVersePractice\",\"functionName\":\"createMemoryVersePractice\"},{\"No\":1068,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Bible Art Journaling\",\"Description\":\"Combining creative expression with Bible study through visual journaling.\",\"type\":\"bibleArtJournaling\",\"functionName\":\"createBibleArtJournaling\"},{\"No\":1069,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Bible Study Games\",\"Description\":\"Using games to reinforce knowledge and make learning enjoyable.\",\"type\":\"bibleStudyGames\",\"functionName\":\"createBibleStudyGames\"},{\"No\":1070,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Group Bible Projects\",\"Description\":\"Collaborating on creative projects inspired by the Bible.\",\"type\":\"groupBibleProjects\",\"functionName\":\"createGroupBibleProjects\"},{\"No\":1071,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Devotional Reading\",\"Description\":\"Reading short daily passages with guided reflections.\",\"type\":\"devotionalReading\",\"functionName\":\"createDevotionalReading\"},{\"No\":1072,\"Category\":\"Bible Study - Creative Engagement\",\"Format\":\"Story Format\",\"Description\":\"Exploring biblical themes and characters through fictional narratives.\",\"type\":\"bibleStoryFormat\",\"functionName\":\"createBibleStoryFormat\"},{\"No\":1073,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Video Summary\",\"Description\":\"Watching movies or documentaries that illuminate biblical stories.\",\"type\":\"videoSummary\",\"functionName\":\"createVideoSummary\"},{\"No\":1074,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Pilgrimage & Travel\",\"Description\":\"Visiting biblical sites for a deeper connection to the text.\",\"type\":\"pilgrimageAndTravel\",\"functionName\":\"createPilgrimageAndTravel\"},{\"No\":1075,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"AI-Generated Summaries\",\"Description\":\"Using AI to generate concise overviews of passages or books.\",\"type\":\"aIGeneratedSummaries\",\"functionName\":\"createAIGeneratedSummaries\"},{\"No\":1076,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"AI-Generated Discussion Questions\",\"Description\":\"Using AI to stimulate deeper thought and conversation.\",\"type\":\"aiGeneratedDiscussionQuestions\",\"functionName\":\"createAIGeneratedDiscussionQuestions\"},{\"No\":1077,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"AI-Generated Personalization\",\"Description\":\"Tailoring study plans and content based on user preferences.\",\"type\":\"aiGeneratedPersonalization\",\"functionName\":\"createAIGeneratedPersonalization\"},{\"No\":1078,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Verse-by-Verse Study\",\"Description\":\"In-depth analysis of each verse within a passage, focusing on grammar, context, and cross-references.\",\"type\":\"verseByVerseStudy\",\"functionName\":\"createVerseByVerseStudy\"},{\"No\":1079,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Book Overview\",\"Description\":\"Gaining a general understanding of a book's purpose, themes, and historical context before diving into deeper study.\",\"type\":\"bookOverview\",\"functionName\":\"createBookOverview\"},{\"No\":1080,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Concordance Study\",\"Description\":\"Using a concordance to explore the various contexts in which a specific word or phrase is used throughout the Bible.\",\"type\":\"concordanceStudy\",\"functionName\":\"createConcordanceStudy\"},{\"No\":1081,\"Category\":\"Bible Study - Content Focus\",\"Format\":\"Biographical Study\",\"Description\":\"Examining the lives of biblical figures, their relationships, challenges, and spiritual growth.\",\"type\":\"biographicalStudy\",\"functionName\":\"createBiographicalStudy\"},{\"No\":1082,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Historical Context Study\",\"Description\":\"Researching the cultural, political, and social backdrop of specific events or periods in the Bible.\",\"type\":\"historicalContextStudy\",\"functionName\":\"createHistoricalContextStudy\"},{\"No\":1083,\"Category\":\"Bible Study - Literary & Genre Analysis\",\"Format\":\"Figurative Language Study\",\"Description\":\"Identifying and interpreting metaphors, similes, and other literary devices used in the Bible.\",\"type\":\"figurativeLanguageStudy\",\"functionName\":\"createFigurativeLanguageStudy\"},{\"No\":1084,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Typology Study\",\"Description\":\"Exploring connections between Old Testament events/people and their fulfillment in Christ.\",\"type\":\"typologyStudy\",\"functionName\":\"createTypologyStudy\"},{\"No\":1085,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Thematic Study\",\"Description\":\"Tracing a particular theme (e.g., justice, grace, redemption) across different books and eras of the Bible.\",\"type\":\"thematicStudy\",\"functionName\":\"createThematicStudy\"},{\"No\":1086,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Exegetical Study\",\"Description\":\"Careful analysis of the original languages and historical context to understand the author's intended meaning.\",\"type\":\"exegeticalStudy\",\"functionName\":\"createExegeticalStudy\"},{\"No\":1087,\"Category\":\"Bible Study - Exegetical & Hermeneutical Methods\",\"Format\":\"Hermeneutics Study\",\"Description\":\"Learning principles of interpretation to apply the Bible's message to contemporary life.\",\"type\":\"hermeneuticsStudy\",\"functionName\":\"createHermeneuticsStudy\"},{\"No\":1088,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Group Discussion Guides\",\"Description\":\"Providing structured questions and prompts for group Bible studies.\",\"type\":\"groupDiscussionGuides\",\"functionName\":\"createGroupDiscussionGuides\"},{\"No\":1089,\"Category\":\"Bible Study - Engagement Styles\",\"Format\":\"Personalized Study Plans\",\"Description\":\"Creating customized plans based on user's interests, goals, and available time.\",\"type\":\"personalizedStudyPlans\",\"functionName\":\"createPersonalizedStudyPlans\"},{\"No\":1090,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Gamified Bible Quizzes\",\"Description\":\"Making learning fun and interactive with quizzes and challenges.\",\"type\":\"gamifiedBibleQuizzes\",\"functionName\":\"createGamifiedBibleQuizzes\"},{\"No\":1091,\"Category\":\"Bible Study - Creative Engagement\",\"Format\":\"Bible-Based Creative Writing\",\"Description\":\"Encouraging users to express their understanding through creative writing inspired by the Bible.\",\"type\":\"bibleBasedCreativeWriting\",\"functionName\":\"createBibleBasedCreativeWriting\"},{\"No\":1092,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Prayer & Meditation Prompts\",\"Description\":\"Offering prompts to guide prayer and reflection on specific passages.\",\"type\":\"prayerMeditationPrompts\",\"functionName\":\"createPrayerMeditationPrompts\"},{\"No\":1093,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Social Sharing & Community Building\",\"Description\":\"Enabling users to connect with others for shared learning and encouragement.\",\"type\":\"socialSharingCommunityBuilding\",\"functionName\":\"createSocialSharingCommunityBuilding\"},{\"No\":1094,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Scripture Memory Systems\",\"Description\":\"Utilizing techniques (e.g., flashcards, repetition, visualization) to memorize verses and passages.\",\"type\":\"scriptureMemorySystems\",\"functionName\":\"createScriptureMemorySystems\"},{\"No\":1095,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Scripture Writing\",\"Description\":\"Copying verses or passages by hand to aid in memorization and meditation.\",\"type\":\"scriptureWriting\",\"functionName\":\"createScriptureWriting\"},{\"No\":1096,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Bible Journaling Prompts\",\"Description\":\"Providing prompts to encourage creative and reflective journaling about specific verses or themes.\",\"type\":\"bibleJournalingPrompts\",\"functionName\":\"createBibleJournalingPrompts\"},{\"No\":1097,\"Category\":\"Bible Study - Spiritual Formation & Engagement\",\"Format\":\"Bible-Based Music Playlists\",\"Description\":\"Curating playlists of songs that connect to specific passages or themes for enhanced reflection and worship.\",\"type\":\"bibleBasedMusicPlaylists\",\"functionName\":\"createBibleBasedMusicPlaylists\"},{\"No\":1098,\"Category\":\"Bible Study - Technology & Multimedia\",\"Format\":\"Bible-Based Podcasts & Sermons\",\"Description\":\"Recommending relevant podcasts or sermons for deeper understanding and diverse perspectives.\",\"type\":\"bibleBasedPodcastsSermons\",\"functionName\":\"createBibleBasedPodcastsSermons\"},{\"No\":1099,\"Category\":\"Bible Study - Group & Community\",\"Format\":\"Bible-Based Book Clubs\",\"Description\":\"Facilitating online or in-person groups to discuss books that explore biblical themes or characters.\",\"type\":\"bibleBasedBookClubs\",\"functionName\":\"createBibleBasedBookClubs\"},{\"No\":1101,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Apocrypha & Pseudepigrapha Study\",\"Description\":\"Exploring additional texts outside the biblical canon to gain historical and cultural context.\",\"type\":\"apocryphaPseudepigraphaStudy\",\"functionName\":\"createApocryphaPseudepigraphaStudy\"},{\"No\":1102,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Biblical Archaeology Study\",\"Description\":\"Learning about archaeological discoveries that shed light on biblical events and cultures.\",\"type\":\"biblicalArchaeologyStudy\",\"functionName\":\"createBiblicalArchaeologyStudy\"},{\"No\":1103,\"Category\":\"Bible Study - Theological & Historical Exploration\",\"Format\":\"Biblical Languages Study\",\"Description\":\"Delving into Hebrew or Greek to understand nuances and original meanings.\",\"type\":\"biblicalLanguagesStudy\",\"functionName\":\"createBiblicalLanguagesStudy\"},{\"No\":1104,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Social Justice & Advocacy Study\",\"Description\":\"Examining the Bible's teachings on social justice and exploring ways to apply them today.\",\"type\":\"socialJusticeAdvocacyStudy\",\"functionName\":\"createSocialJusticeAdvocacyStudy\"},{\"No\":1105,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Environmental Stewardship Study\",\"Description\":\"Exploring the Bible's call to care for creation and promote sustainability.\",\"type\":\"environmentalStewardshipStudy\",\"functionName\":\"createEnvironmentalStewardshipStudy\"},{\"No\":1106,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Interfaith Dialogue Study\",\"Description\":\"Engaging in respectful conversations with people of other faiths to promote understanding and peace.\",\"type\":\"interfaithDialogueStudy\",\"functionName\":\"createInterfaithDialogueStudy\"},{\"No\":1107,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Bible-Based Leadership Development\",\"Description\":\"Studying biblical principles of leadership and applying them to personal and professional growth.\",\"type\":\"bibleBasedLeadershipDevelopment\",\"functionName\":\"createBibleBasedLeadershipDevelopment\"},{\"No\":1108,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Bible-Based Financial Stewardship\",\"Description\":\"Learning about biblical principles of money management and generosity.\",\"type\":\"bibleBasedFinancialStewardship\",\"functionName\":\"createBibleBasedFinancialStewardship\"},{\"No\":1109,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Bible-Based Parenting & Family Life\",\"Description\":\"Exploring the Bible's wisdom for raising children and building strong families.\",\"type\":\"bibleBasedParentingFamilyLife\",\"functionName\":\"createBibleBasedParentingFamilyLife\"},{\"No\":1110,\"Category\":\"Bible Study - Practical Application & Ministry\",\"Format\":\"Bible-Based Marriage Enrichment\",\"Description\":\"Studying biblical principles for cultivating healthy and fulfilling marriages.\",\"type\":\"bibleBasedMarriageEnrichment\",\"functionName\":\"createBibleBasedMarriageEnrichment\"},{\"No\":1111,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Expository Sermon\",\"Description\":\"A detailed explanation of a specific passage of scripture, examining the meaning verse by verse.\",\"type\":\"expositorySermon\",\"functionName\":\"createExpositorySermon\"},{\"No\":1112,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Doctrinal Sermon\",\"Description\":\"Exploring a specific doctrine in the Bible and explaining its theological significance.\",\"type\":\"doctrinalSermon\",\"functionName\":\"createDoctrinalSermon\"},{\"No\":1113,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Redemptive-Historical Sermon\",\"Description\":\"Connecting a passage to the larger redemptive story of scripture, showing how it points to Christ.\",\"type\":\"redemptiveHistoricalSermon\",\"functionName\":\"createRedemptiveHistoricalSermon\"},{\"No\":1114,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Expository Character Study\",\"Description\":\"An in-depth study of a biblical character, exploring their role and significance within a specific passage.\",\"type\":\"expositoryCharacterStudy\",\"functionName\":\"createExpositoryCharacterStudy\"},{\"No\":1115,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Expository Biographical Sermon\",\"Description\":\"Focusing on the life of a biblical figure and their impact within the broader scriptural narrative.\",\"type\":\"expositoryBiographicalSermon\",\"functionName\":\"createExpositoryBiographicalSermon\"},{\"No\":1116,\"Category\":\"Expository and Scripture-Centered Sermons\",\"Format\":\"Bible Reading Sermon\",\"Description\":\"A simple sermon that focuses on reading a portion of scripture with limited commentary or application.\",\"type\":\"bibleReadingSermon\",\"functionName\":\"createBibleReadingSermon\"},{\"No\":1117,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Topical Sermon\",\"Description\":\"Exploring a specific theme or topic in the Bible, gathering insights from various passages.\",\"type\":\"topicalSermon\",\"functionName\":\"createTopicalSermon\"},{\"No\":1118,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Practical Sermon\",\"Description\":\"Offering practical advice for Christian living, rooted in biblical principles.\",\"type\":\"practicalSermon\",\"functionName\":\"createPracticalSermon\"},{\"No\":1119,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Vocational Sermon\",\"Description\":\"A sermon focused on connecting faith with professional or vocational life.\",\"type\":\"vocationalSermon\",\"functionName\":\"createVocationalSermon\"},{\"No\":1120,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Counseling Sermon\",\"Description\":\"Offering biblical guidance and comfort for personal or emotional struggles.\",\"type\":\"counselingSermon\",\"functionName\":\"createCounselingSermon\"},{\"No\":1121,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Social Issues Sermon\",\"Description\":\"Addressing contemporary social issues from a biblical perspective and encouraging faithful responses.\",\"type\":\"socialIssuesSermon\",\"functionName\":\"createSocialIssuesSermon\"},{\"No\":1122,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Teaching Sermon\",\"Description\":\"An instructional sermon focused on biblical education and understanding.\",\"type\":\"teachingSermon\",\"functionName\":\"createTeachingSermon\"},{\"No\":1123,\"Category\":\"Narrative and Story-Based Sermons\",\"Format\":\"Narrative Sermon\",\"Description\":\"Using biblical stories to communicate deeper truths and lessons to the audience.\",\"type\":\"narrativeSermon\",\"functionName\":\"createNarrativeSermon\"},{\"No\":1124,\"Category\":\"Narrative and Story-Based Sermons\",\"Format\":\"Imaginative Sermon\",\"Description\":\"Using creativity and imagination to re-tell a biblical story, making it more relatable and engaging.\",\"type\":\"imaginativeSermon\",\"functionName\":\"createImaginativeSermon\"},{\"No\":1125,\"Category\":\"Narrative and Story-Based Sermons\",\"Format\":\"Biblical Storytelling Sermon\",\"Description\":\"A sermon that retells key biblical stories in an engaging, memorable way.\",\"type\":\"biblicalStorytellingSermon\",\"functionName\":\"createBiblicalStorytellingSermon\"},{\"No\":1126,\"Category\":\"Narrative and Story-Based Sermons\",\"Format\":\"Parable Sermon\",\"Description\":\"A sermon focused on Jesus' parables, using them to convey deeper truths and spiritual lessons.\",\"type\":\"parableSermon\",\"functionName\":\"createParableSermon\"},{\"No\":1127,\"Category\":\"Narrative and Story-Based Sermons\",\"Format\":\"Biographical Sermon\",\"Description\":\"A sermon centered around the life and spiritual journey of a biblical character.\",\"type\":\"biographicalSermon\",\"functionName\":\"createBiographicalSermon\"},{\"No\":1128,\"Category\":\"Devotional, Meditative, and Reflective Sermons\",\"Format\":\"Devotional Sermon\",\"Description\":\"Encouraging personal reflection and connection with God through scripture and prayer.\",\"type\":\"devotionalSermon\",\"functionName\":\"createDevotionalSermon\"},{\"No\":1129,\"Category\":\"Devotional, Meditative, and Reflective Sermons\",\"Format\":\"Meditation Sermon\",\"Description\":\"Guiding the congregation in meditation on scripture and the presence of God.\",\"type\":\"meditationSermon\",\"functionName\":\"createMeditationSermon\"},{\"No\":1130,\"Category\":\"Devotional, Meditative, and Reflective Sermons\",\"Format\":\"Poetic Sermon\",\"Description\":\"Using poetic language and themes to inspire deeper emotional and spiritual reflection.\",\"type\":\"poeticSermon\",\"functionName\":\"createPoeticSermon\"},{\"No\":1131,\"Category\":\"Devotional, Meditative, and Reflective Sermons\",\"Format\":\"Encouragement Sermon\",\"Description\":\"A sermon offering hope and encouragement to the congregation, rooted in biblical promises.\",\"type\":\"encouragementSermon\",\"functionName\":\"createEncouragementSermon\"},{\"No\":1132,\"Category\":\"Devotional, Meditative, and Reflective Sermons\",\"Format\":\"Comforting Sermon\",\"Description\":\"Providing comfort and reassurance through scripture, especially during times of hardship.\",\"type\":\"comfortingSermon\",\"functionName\":\"createComfortingSermon\"},{\"No\":1133,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Ethical Sermon\",\"Description\":\"Exploring ethical questions through a biblical lens and encouraging ethical Christian living.\",\"type\":\"ethicalSermon\",\"functionName\":\"createEthicalSermon\"},{\"No\":1134,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Holiness Sermon\",\"Description\":\"Encouraging a life of holiness and consecration in line with biblical teachings.\",\"type\":\"holinessSermon\",\"functionName\":\"createHolinessSermon\"},{\"No\":1135,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Consecration Sermon\",\"Description\":\"A sermon focused on the dedication of one’s life to God, emphasizing spiritual commitment.\",\"type\":\"consecrationSermon\",\"functionName\":\"createConsecrationSermon\"},{\"No\":1136,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Obedience Sermon\",\"Description\":\"Teaching the importance of obedience to God's word and commands, using biblical examples.\",\"type\":\"obedienceSermon\",\"functionName\":\"createObedienceSermon\"},{\"No\":1137,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Discipleship Sermon\",\"Description\":\"Focusing on the call to be a disciple of Christ, living a life of commitment and growth in faith.\",\"type\":\"discipleshipSermon\",\"functionName\":\"createDiscipleshipSermon\"},{\"No\":1138,\"Category\":\"Prophetic, Call-to-Action, and Missionary Sermons\",\"Format\":\"Prophetic Sermon\",\"Description\":\"A sermon delivering a prophetic message, calling the congregation to spiritual renewal or repentance.\",\"type\":\"propheticSermon\",\"functionName\":\"createPropheticSermon\"},{\"No\":1139,\"Category\":\"Moral, Ethical, and Transformational Sermons\",\"Format\":\"Transformational Sermon\",\"Description\":\"Challenging the audience to change their lives based on the message of scripture.\",\"type\":\"transformationalSermon\",\"functionName\":\"createTransformationalSermon\"},{\"No\":1140,\"Category\":\"Prophetic, Call-to-Action, and Missionary Sermons\",\"Format\":\"Call to Repentance Sermon\",\"Description\":\"A sermon urging the congregation to repent from sin and turn back to God.\",\"type\":\"callToRepentanceSermon\",\"functionName\":\"createCallToRepentanceSermon\"},{\"No\":1141,\"Category\":\"Prophetic, Call-to-Action, and Missionary Sermons\",\"Format\":\"Call to Action Sermon\",\"Description\":\"A sermon urging the congregation to take specific actions based on biblical teachings.\",\"type\":\"callToActionSermon\",\"functionName\":\"createCallToActionSermon\"},{\"No\":1142,\"Category\":\"Prophetic, Call-to-Action, and Missionary Sermons\",\"Format\":\"Spiritual Warfare Sermon\",\"Description\":\"A sermon focusing on the spiritual battles Christians face and how to overcome them using biblical principles.\",\"type\":\"spiritualWarfareSermon\",\"functionName\":\"createSpiritualWarfareSermon\"},{\"No\":1143,\"Category\":\"Prophetic, Call-to-Action, and Missionary Sermons\",\"Format\":\"Missionary Sermon\",\"Description\":\"A sermon emphasizing the importance of evangelism and spreading the gospel to others.\",\"type\":\"missionarySermon\",\"functionName\":\"createMissionarySermon\"},{\"No\":1144,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Wedding Sermon\",\"Description\":\"A sermon given during a wedding ceremony, focusing on the biblical view of marriage.\",\"type\":\"weddingSermon\",\"functionName\":\"createWeddingSermon\"},{\"No\":1145,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Funeral Sermon\",\"Description\":\"A sermon delivered at a funeral, providing comfort and hope through the message of eternal life.\",\"type\":\"funeralSermon\",\"functionName\":\"createFuneralSermon\"},{\"No\":1146,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Baptism Sermon\",\"Description\":\"A sermon delivered during a baptism, explaining the spiritual significance of the act.\",\"type\":\"baptismSermon\",\"functionName\":\"createBaptismSermon\"},{\"No\":1147,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Graduation Sermon\",\"Description\":\"A sermon encouraging graduates to live out their faith as they enter a new chapter in life.\",\"type\":\"graduationSermon\",\"functionName\":\"createGraduationSermon\"},{\"No\":1148,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Anniversary Sermon\",\"Description\":\"A sermon celebrating a church or individual’s anniversary, reflecting on God’s faithfulness.\",\"type\":\"anniversarySermon\",\"functionName\":\"createAnniversarySermon\"},{\"No\":1149,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Crisis Sermon\",\"Description\":\"A sermon providing comfort, hope, and guidance during times of crisis or hardship.\",\"type\":\"crisisSermon\",\"functionName\":\"createCrisisSermon\"},{\"No\":1150,\"Category\":\"Prayer, Worship, and Revival Sermons\",\"Format\":\"Intercessory Sermon\",\"Description\":\"A sermon focused on the power of intercessory prayer and its role in the Christian faith.\",\"type\":\"intercessorySermon\",\"functionName\":\"createIntercessorySermon\"},{\"No\":1151,\"Category\":\"Prayer, Worship, and Revival Sermons\",\"Format\":\"Prayer Sermon\",\"Description\":\"A sermon emphasizing the importance of prayer, its power, and how to cultivate a strong prayer life.\",\"type\":\"prayerSermon\",\"functionName\":\"createPrayerSermon\"},{\"No\":1152,\"Category\":\"Prayer, Worship, and Revival Sermons\",\"Format\":\"Doxological Sermon\",\"Description\":\"A sermon focused on worship and giving glory to God, encouraging the congregation to live a life of praise.\",\"type\":\"doxologicalSermon\",\"functionName\":\"createDoxologicalSermon\"},{\"No\":1153,\"Category\":\"Prayer, Worship, and Revival Sermons\",\"Format\":\"Worship Sermon\",\"Description\":\"A sermon about the purpose and practice of worship, helping the congregation connect deeply with God.\",\"type\":\"worshipSermon\",\"functionName\":\"createWorshipSermon\"},{\"No\":1154,\"Category\":\"Prayer, Worship, and Revival Sermons\",\"Format\":\"Revival Sermon\",\"Description\":\"A sermon encouraging spiritual revival and renewal, calling the congregation to deeper faith and action.\",\"type\":\"revivalSermon\",\"functionName\":\"createRevivalSermon\"},{\"No\":1155,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Teaching Sermon\",\"Description\":\"An instructional sermon designed to teach specific biblical principles or doctrines.\",\"type\":\"teachingSermon\",\"functionName\":\"createTeachingSermon\"},{\"No\":1156,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Educational Sermon\",\"Description\":\"A sermon focused on providing knowledge or insight on biblical topics or Christian living.\",\"type\":\"educationalSermon\",\"functionName\":\"createEducationalSermon\"},{\"No\":1157,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Catechetical Sermon\",\"Description\":\"A sermon focused on teaching the essentials of the Christian faith, often used in preparation for baptism or confirmation.\",\"type\":\"catecheticalSermon\",\"functionName\":\"createCatecheticalSermon\"},{\"No\":1158,\"Category\":\"Topical, Practical, and Instructional Sermons\",\"Format\":\"Instructional Sermon\",\"Description\":\"A sermon that gives practical guidance and instructions based on biblical principles.\",\"type\":\"instructionalSermon\",\"functionName\":\"createInstructionalSermon\"},{\"No\":1159,\"Category\":\"Healing, Restoration, and Reconciliation Sermons\",\"Format\":\"Healing Sermon\",\"Description\":\"A sermon focused on God's power to heal physically, emotionally, and spiritually, encouraging faith in God's healing.\",\"type\":\"healingSermon\",\"functionName\":\"createHealingSermon\"},{\"No\":1160,\"Category\":\"Healing, Restoration, and Reconciliation Sermons\",\"Format\":\"Reconciliation Sermon\",\"Description\":\"A sermon focused on reconciliation with God and others, highlighting forgiveness and restoration of relationships.\",\"type\":\"reconciliationSermon\",\"functionName\":\"createReconciliationSermon\"},{\"No\":1161,\"Category\":\"Healing, Restoration, and Reconciliation Sermons\",\"Format\":\"Restoration Sermon\",\"Description\":\"A sermon focusing on God's ability to restore what has been broken, offering hope and encouragement.\",\"type\":\"restorationSermon\",\"functionName\":\"createRestorationSermon\"},{\"No\":1162,\"Category\":\"Healing, Restoration, and Reconciliation Sermons\",\"Format\":\"Forgiveness Sermon\",\"Description\":\"A sermon focusing on the biblical principle of forgiveness, encouraging both the giving and receiving of forgiveness.\",\"type\":\"forgivenessSermon\",\"functionName\":\"createForgivenessSermon\"},{\"No\":1163,\"Category\":\"Healing, Restoration, and Reconciliation Sermons\",\"Format\":\"Deliverance Sermon\",\"Description\":\"A sermon addressing the theme of deliverance from sin, bondage, and oppression, emphasizing God’s power to set free.\",\"type\":\"deliveranceSermon\",\"functionName\":\"createDeliveranceSermon\"},{\"No\":1164,\"Category\":\"Community and Fellowship Sermons\",\"Format\":\"Community Sermon\",\"Description\":\"A sermon emphasizing the importance of Christian community and fellowship, encouraging unity and support among believers.\",\"type\":\"communitySermon\",\"functionName\":\"createCommunitySermon\"},{\"No\":1165,\"Category\":\"Community and Fellowship Sermons\",\"Format\":\"Unity Sermon\",\"Description\":\"A sermon focused on promoting unity within the body of Christ, using scripture to highlight the value of togetherness.\",\"type\":\"unitySermon\",\"functionName\":\"createUnitySermon\"},{\"No\":1166,\"Category\":\"Community and Fellowship Sermons\",\"Format\":\"Service Sermon\",\"Description\":\"A sermon calling the congregation to serve others selflessly, based on the example of Christ and biblical teachings.\",\"type\":\"serviceSermon\",\"functionName\":\"createServiceSermon\"},{\"No\":1167,\"Category\":\"Community and Fellowship Sermons\",\"Format\":\"Stewardship Sermon\",\"Description\":\"A sermon encouraging faithful stewardship of time, talents, and resources in service to God and others.\",\"type\":\"stewardshipSermon\",\"functionName\":\"createStewardshipSermon\"},{\"No\":1168,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Narrative-Topical Hybrid\",\"Description\":\"A sermon blending narrative storytelling with a topical focus, making biblical truths more relatable and memorable.\",\"type\":\"narrativeTopicalHybrid\",\"functionName\":\"createNarrativeTopicalHybrid\"},{\"No\":1169,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Narrative-Call to Action Hybrid\",\"Description\":\"A sermon using narrative storytelling to drive a clear call to action for the congregation.\",\"type\":\"narrativeCallToActionHybrid\",\"functionName\":\"createNarrativeCallToActionHybrid\"},{\"No\":1170,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Expository-Topical Hybrid\",\"Description\":\"A sermon combining detailed exposition of scripture with a topical theme, balancing in-depth study with practical relevance.\",\"type\":\"expositoryTopicalHybrid\",\"functionName\":\"createExpositoryTopicalHybrid\"},{\"No\":1171,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Doctrinal-Practical Hybrid\",\"Description\":\"A sermon blending doctrinal teaching with practical application, helping the congregation apply theological concepts to their lives.\",\"type\":\"doctrinalPracticalHybrid\",\"functionName\":\"createDoctrinalPracticalHybrid\"},{\"No\":1172,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Cultural Issues Sermon\",\"Description\":\"A sermon addressing cultural issues from a biblical perspective, offering guidance on how to engage with societal challenges.\",\"type\":\"culturalIssuesSermon\",\"functionName\":\"createCulturalIssuesSermon\"},{\"No\":1173,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Current Events Sermon\",\"Description\":\"A sermon that connects biblical teachings to current events, helping the congregation understand their faith in relation to contemporary issues.\",\"type\":\"currentEventsSermon\",\"functionName\":\"createCurrentEventsSermon\"},{\"No\":1174,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Contextualized Sermon\",\"Description\":\"A sermon tailored to the specific cultural, social, or economic context of the congregation, making biblical truths more relevant to their lives.\",\"type\":\"contextualizedSermon\",\"functionName\":\"createContextualizedSermon\"},{\"No\":1175,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Youth Sermon\",\"Description\":\"A sermon designed specifically for a youth audience, addressing issues relevant to their age group and spiritual growth.\",\"type\":\"youthSermon\",\"functionName\":\"createYouthSermon\"},{\"No\":1176,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Children’s Sermon\",\"Description\":\"A sermon tailored for children, using simple language and illustrations to convey biblical truths.\",\"type\":\"childrensSermon\",\"functionName\":\"createChildrensSermon\"},{\"No\":1177,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Men’s Sermon\",\"Description\":\"A sermon addressing issues and responsibilities unique to men, encouraging spiritual growth and leadership.\",\"type\":\"mensSermon\",\"functionName\":\"createMensSermon\"},{\"No\":1178,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Women’s Sermon\",\"Description\":\"A sermon focused on topics relevant to women, encouraging spiritual growth and biblical understanding.\",\"type\":\"womensSermon\",\"functionName\":\"createWomensSermon\"},{\"No\":1179,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Professional Sermon\",\"Description\":\"A sermon tailored for professionals, helping them integrate their faith with their work and vocation.\",\"type\":\"professionalSermon\",\"functionName\":\"createProfessionalSermon\"},{\"No\":1180,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Family Sermon\",\"Description\":\"A sermon focused on family relationships, offering biblical guidance for building strong, faith-centered families.\",\"type\":\"familySermon\",\"functionName\":\"createFamilySermon\"},{\"No\":1181,\"Category\":\"Patriotic and Special Occasions Sermons\",\"Format\":\"Patriotic Sermon\",\"Description\":\"A sermon focused on national pride and responsibility, offering a biblical perspective on patriotism.\",\"type\":\"patrioticSermon\",\"functionName\":\"createPatrioticSermon\"},{\"No\":1182,\"Category\":\"Patriotic and Special Occasions Sermons\",\"Format\":\"Seasonal Sermon\",\"Description\":\"A sermon aligned with specific liturgical seasons or holidays, helping the congregation engage with the spiritual themes of the season.\",\"type\":\"seasonalSermon\",\"functionName\":\"createSeasonalSermon\"},{\"No\":1183,\"Category\":\"Patriotic and Special Occasions Sermons\",\"Format\":\"Occasional Sermon\",\"Description\":\"A sermon tailored for special church events, such as anniversaries or dedications.\",\"type\":\"occasionalSermon\",\"functionName\":\"createOccasionalSermon\"},{\"No\":1184,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Narrative-Doctrinal Hybrid\",\"Description\":\"A sermon blending doctrinal teaching with narrative storytelling, making complex theological concepts easier to understand.\",\"type\":\"narrativeDoctrinalHybrid\",\"functionName\":\"createNarrativeDoctrinalHybrid\"},{\"No\":1185,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Expository-Practical Hybrid\",\"Description\":\"A sermon combining expository preaching with practical life applications, offering both in-depth study and actionable insights.\",\"type\":\"expositoryPracticalHybrid\",\"functionName\":\"createExpositoryPracticalHybrid\"},{\"No\":1186,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Prophetic-Narrative Hybrid\",\"Description\":\"A sermon that uses narrative elements to deliver a prophetic message, calling the congregation to change.\",\"type\":\"propheticNarrativeHybrid\",\"functionName\":\"createPropheticNarrativeHybrid\"},{\"No\":1187,\"Category\":\"Hybrid Approaches Sermons\",\"Format\":\"Topical-Call to Action Hybrid\",\"Description\":\"A sermon that addresses a specific topic while also urging the congregation to take concrete action.\",\"type\":\"topicalCallToActionHybrid\",\"functionName\":\"createTopicalCallToActionHybrid\"},{\"No\":1188,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Global Context Sermon\",\"Description\":\"A sermon addressing global issues, encouraging the congregation to think about their faith in a broader, global context.\",\"type\":\"globalContextSermon\",\"functionName\":\"createGlobalContextSermon\"},{\"No\":1189,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Justice Sermon\",\"Description\":\"A sermon focused on the biblical call for justice, challenging the congregation to engage with social justice issues.\",\"type\":\"justiceSermon\",\"functionName\":\"createJusticeSermon\"},{\"No\":1190,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Technology Sermon\",\"Description\":\"A sermon addressing the impact of technology on faith and daily life, offering a biblical perspective on the use of technology.\",\"type\":\"technologySermon\",\"functionName\":\"createTechnologySermon\"},{\"No\":1191,\"Category\":\"Cultural Relevance Sermons\",\"Format\":\"Environmental Stewardship Sermon\",\"Description\":\"A sermon focused on the biblical call to care for creation, encouraging responsible environmental stewardship.\",\"type\":\"environmentalStewardshipSermon\",\"functionName\":\"createEnvironmentalStewardshipSermon\"},{\"No\":1192,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Senior Citizen Sermon\",\"Description\":\"A sermon designed specifically for senior citizens, addressing the unique spiritual and life challenges they face.\",\"type\":\"seniorCitizenSermon\",\"functionName\":\"createSeniorCitizenSermon\"},{\"No\":1193,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Teen Sermon\",\"Description\":\"A sermon tailored for teenagers, addressing their specific challenges and encouraging spiritual growth.\",\"type\":\"teenSermon\",\"functionName\":\"createTeenSermon\"},{\"No\":1194,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Single Adult Sermon\",\"Description\":\"A sermon focused on the spiritual and personal challenges faced by single adults, offering biblical guidance.\",\"type\":\"singleAdultSermon\",\"functionName\":\"createSingleAdultSermon\"},{\"No\":1195,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"New Believer Sermon\",\"Description\":\"A sermon designed for new believers, providing foundational teachings to help them grow in their faith.\",\"type\":\"newBelieverSermon\",\"functionName\":\"createNewBelieverSermon\"},{\"No\":1196,\"Category\":\"Audience-Specific Sermons\",\"Format\":\"Married Couples Sermon\",\"Description\":\"A sermon focused on strengthening marriage, offering biblical guidance for building healthy, faith-centered relationships.\",\"type\":\"marriedCouplesSermon\",\"functionName\":\"createMarriedCouplesSermon\"},{\"No\":1197,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"New Year Sermon\",\"Description\":\"A sermon focused on renewal, hope, and spiritual growth as the congregation enters a new year.\",\"type\":\"newYearSermon\",\"functionName\":\"createNewYearSermon\"},{\"No\":1198,\"Category\":\"Patriotic and Special Occasions Sermons\",\"Format\":\"Independence Day Sermon\",\"Description\":\"A sermon focused on national freedom and civic responsibility, connecting biblical themes to Independence Day celebrations.\",\"type\":\"independenceDaySermon\",\"functionName\":\"createIndependenceDaySermon\"},{\"No\":1199,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Mother’s Day Sermon\",\"Description\":\"A sermon honoring mothers, offering biblical insights on motherhood and family life.\",\"type\":\"mothersDaySermon\",\"functionName\":\"createMothersDaySermon\"},{\"No\":1300,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Father’s Day Sermon\",\"Description\":\"A sermon celebrating fathers, focusing on biblical teachings about fatherhood and spiritual leadership.\",\"type\":\"fathersDaySermon\",\"functionName\":\"createFathersDaySermon\"},{\"No\":1301,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Thanksgiving Day Sermon\",\"Description\":\"A sermon focused on gratitude, encouraging the congregation to give thanks for God’s blessings.\",\"type\":\"thanksgivingDaySermon\",\"functionName\":\"createThanksgivingDaySermon\"},{\"No\":1302,\"Category\":\"Life Event (Specific Needs) Sermons\",\"Format\":\"Church Dedication Sermon\",\"Description\":\"A sermon celebrating the dedication of a new church building, focusing on its purpose and mission for God's glory.\",\"type\":\"churchDedicationSermon\",\"functionName\":\"createChurchDedicationSermon\"},{\"No\":600,\"Category\":\"Core Content Modifications\",\"Format\":\"Informative Article/Essay\",\"Description\":\"Provides in-depth information and analysis on a specific topic, potentially including arguments and evidence.\",\"type\":\"informativeArticle\",\"functionName\":\"createInformativeArticle\"},{\"No\":601,\"Category\":\"Core Content Modifications\",\"Format\":\"Book Chapter/Section\",\"Description\":\"Presents structured and comprehensive content on a specific subtopic within a larger subject.\",\"type\":\"bookChapter\",\"functionName\":\"createBookChapter\"},{\"No\":602,\"Category\":\"Core Content Modifications\",\"Format\":\"Lecture Transcript\",\"Description\":\"Provides a written record of a lecture-style presentation, including explanations, examples, and key takeaways.\",\"type\":\"lectureTranscript\",\"functionName\":\"createLectureTranscript\"},{\"No\":603,\"Category\":\"Social Sciences\",\"Format\":\"Historical Document (Simulated)\",\"Description\":\"Recreates a historical document like a letter, diary entry, or speech, offering a glimpse into the past.\",\"type\":\"historicalDocument\",\"functionName\":\"createHistoricalDocument\"},{\"No\":604,\"Category\":\"Science\",\"Format\":\"Scientific Research Summary\",\"Description\":\"Condenses complex scientific research papers into accessible summaries for students.\",\"type\":\"scientificReportSummary\",\"functionName\":\"createScientificReportSummary\"},{\"No\":609,\"Category\":\"Language Arts\",\"Format\":\"Poetry Analysis\",\"Description\":\"Offer guided analysis and interpretations of poems, exploring poetic devices and themes.\",\"type\":\"poetryAnalysis\",\"functionName\":\"createPoetryAnalysis\"},{\"No\":610,\"Category\":\"Content Enrichment\",\"Format\":\"Educational Short Stories\",\"Description\":\"Weave educational content into engaging short stories, making learning fun and relatable.\",\"type\":\"educationalShortStory\",\"functionName\":\"createEducationalShortStory\"},{\"No\":613,\"Category\":\"Study Aids\",\"Format\":\"Math Word Problem Explanations\",\"Description\":\"Offers clear and step-by-step explanations for solving math word problems.\",\"type\":\"mathWordProblemExplanation\",\"functionName\":\"createMathWordProblemExplanation\"},{\"No\":614,\"Category\":\"Language Arts\",\"Format\":\"Vocabulary Building Exercises\",\"Description\":\"Provides engaging vocabulary practice activities beyond traditional flashcards and quizzes.\",\"type\":\"vocabularyBuildingExercises\",\"functionName\":\"createVocabularyBuildingExercises\"},{\"No\":615,\"Category\":\"Social Sciences\",\"Format\":\"Historical \\\"Choose Your Own Adventure\\\" Stories\",\"Description\":\"Creates interactive narratives where students' choices influence the story's outcome, allowing them to explore historical events and their consequences.\",\"type\":\"historicalChooseAdventure\",\"functionName\":\"createHistoricalChooseAdventure\"},{\"No\":605,\"Category\":\"Language Arts\",\"Format\":\"Literary Critique\",\"Description\":\"Offers in-depth analysis and interpretation of a literary work, exploring themes, characters, and literary devices.\",\"type\":\"literaryCritique\",\"functionName\":\"createLiteraryCritique\"},{\"No\":606,\"Category\":\"Content Enrichment\",\"Format\":\"Newspaper Article (Simulated)\",\"Description\":\"Simulates a newspaper article on a current event or topic, adhering to journalistic conventions and objectivity.\",\"type\":\"newspaperArticle\",\"functionName\":\"createNewspaperArticle\"},{\"No\":607,\"Category\":\"Simulations & Games\",\"Format\":\"Debate Scripts\",\"Description\":\"Provides structured debate scripts with arguments and counterarguments on controversial topics.\",\"type\":\"debateScripts\",\"functionName\":\"createDebateScripts\"},\n{\"No\":617,\"Category\":\"Science\",\"Format\":\"Scientific Investigations\",\"Description\":\"Detailed guides for conducting scientific investigations, including formulating hypotheses, designing experiments, collecting and analyzing data, and drawing conclusions.\",\"type\":\"scientificInvestigations\",\"functionName\":\"createScientificInvestigations\"},{\"No\":618,\"Category\":\"Science\",\"Format\":\"Science News Articles (Curated)\",\"Description\":\"Presents a curated collection of age-appropriate science news articles from reputable sources.\",\"type\":\"scienceNewsArticles\",\"functionName\":\"createScienceNewsArticles\"},{\"No\":619,\"Category\":\"Science\",\"Format\":\"Scientific Diagrams and Illustrations\",\"Description\":\"Provides clear and labeled diagrams or illustrations to visually represent scientific concepts, processes, or anatomical structures.\",\"type\":\"scientificDiagramsIllustrations\",\"functionName\":\"createScientificDiagramsIllustrations\"},{\"No\":624,\"Category\":\"Science\",\"Format\":\"Scientific Method Practice\",\"Description\":\"Provide interactive exercises and scenarios that guide students through the steps of the scientific method, from observation to conclusion.\",\"type\":\"scientificMethodPractice\",\"functionName\":\"createScientificMethodPractice\"},{\"No\":652,\"Category\":\"Social Sciences\",\"Format\":\"Social Science Experiments (Text-Based)\",\"Description\":\"Design text-based simulations or scenarios to explore social phenomena, decision-making, and consequences.\",\"type\":\"socialScienceExperiments\",\"functionName\":\"createSocialScienceExperiments\"},{\"No\":653,\"Category\":\"Social Sciences\",\"Format\":\"Cultural Comparisons\",\"Description\":\"Present information about different cultures, highlighting similarities and differences in traditions, beliefs, and practices.\",\"type\":\"culturalComparisons\",\"functionName\":\"createCulturalComparisons\"},{\"No\":655,\"Category\":\"Social Sciences\",\"Format\":\"Ethical Dilemmas and Decision-Making\",\"Description\":\"Present ethical dilemmas related to historical events or social issues, prompting students to consider different perspectives and make informed choices.\",\"type\":\"ethicalDilemmasDecisionMaking\",\"functionName\":\"createEthicalDilemmasDecisionMaking\"},{\"No\":656,\"Category\":\"Social Sciences\",\"Format\":\"Historical \\\"What If\\\" Scenarios\",\"Description\":\"Stimulates historical imagination and understanding of cause-and-effect relationships by exploring alternative outcomes.\",\"type\":\"historicalWhatIfScenarios\",\"functionName\":\"createHistoricalWhatIfScenarios\"},{\"No\":658,\"Category\":\"Social Sciences\",\"Format\":\"Map-Based Activities\",\"Description\":\"Provide interactive maps with historical events, geographical features, or cultural data, encouraging exploration and spatial understanding.\",\"type\":\"mapBasedActivities\",\"functionName\":\"createMapBasedActivities\"},{\"No\":674,\"Category\":\"Science\",\"Format\":\"Scientific Illustration and Labeling\",\"Description\":\"Offer interactive diagrams or images for students to label and explore scientific structures or processes.\",\"type\":\"scientificIllustrationLabeling\",\"functionName\":\"createScientificIllustrationLabeling\"},{\"No\":675,\"Category\":\"Science\",\"Format\":\"Science Vocabulary Games\",\"Description\":\"Create engaging games specifically designed to reinforce scientific vocabulary and terminology.\",\"type\":\"scienceVocabularyGames\",\"functionName\":\"createScienceVocabularyGames\"},\n{\"No\":1201,\"Category\":\"Study Aids\",\"Format\":\"Text with Adjustable Font and Spacing\",\"Description\":\"Allow users to customize font type, size, and spacing for optimal readability.\",\"type\":\"textAdjustableFontSpacing\",\"functionName\":\"createTextAdjustableFontSpacing\"},{\"No\":1202,\"Category\":\"Study Aids\",\"Format\":\"Read-Aloud Functionality\",\"Description\":\"Provide text-to-speech capabilities with adjustable reading speed and highlighting of the currently read text.\",\"type\":\"readAloudFunctionality\",\"functionName\":\"createReadAloudFunctionality\"},{\"No\":1203,\"Category\":\"Interactive Learning\",\"Format\":\"Phonics Game\",\"Description\":\"Develop engaging games that focus on phonemic awareness, letter-sound correspondence, and blending.\",\"type\":\"phonicsGame\",\"functionName\":\"createPhonicsGame\"},{\"No\":1205,\"Category\":\"Interactive Learning\",\"Format\":\"Multi-Sensory Spelling Practice\",\"Description\":\"Incorporate activities that involve tracing, building, or manipulating letters and words to reinforce spelling.\",\"type\":\"multiSensorySpellingPractice\",\"functionName\":\"createMultiSensorySpellingPractice\"},{\"No\":1206,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Vocabulary Maps\",\"Description\":\"Create visual maps that connect new vocabulary words with related concepts and images.\",\"type\":\"interactiveVocabularyMaps\",\"functionName\":\"createInteractiveVocabularyMaps\"},{\"No\":1207,\"Category\":\"Interactive Learning\",\"Format\":\"Visual Story Sequencing\",\"Description\":\"Present stories with a series of images that users can rearrange to practice comprehension and sequencing skills.\",\"type\":\"visualStorySequencing\",\"functionName\":\"createVisualStorySequencing\"},{\"No\":1208,\"Category\":\"Assessments\",\"Format\":\"Interactive Reading Comprehension\",\"Description\":\"Engage students with texts that include interactive questions and activities to check understanding and encourage deeper analysis.\",\"type\":\"interactiveReadingComprehension\",\"functionName\":\"createInteractiveReadingComprehension\"},{\"No\":1209,\"Category\":\"Interactive Learning\",\"Format\":\"Interactive Math Games\",\"Description\":\"Design engaging math games that help students practice arithmetic, problem-solving, and other mathematical concepts through interactive activities.\",\"type\":\"interactiveMathGames\",\"functionName\":\"createInteractiveMathGames\"},{\"No\":1211,\"Category\":\"Study Aids\",\"Format\":\"Guided Writing Prompts\",\"Description\":\"Provide prompts that guide students through the writing process, including brainstorming, drafting, and revising.\",\"type\":\"guidedWritingPrompts\",\"functionName\":\"createGuidedWritingPrompts\"},{\"No\":1212,\"Category\":\"Interactive Learning\",\"Format\":\"Visual Storytelling Tools\",\"Description\":\"Enable students to create and share stories using images, audio, and text to enhance creativity and narrative skills.\",\"type\":\"visualStorytellingTools\",\"functionName\":\"createVisualStorytellingTools\"},\n{\"No\":1216,\"Category\":\"Interactive Learning\",\"Format\":\"Multi-Sensory Reading Activities\",\"Description\":\"Incorporate visual, auditory, and tactile elements to engage students in reading activities that enhance comprehension and retention.\",\"type\":\"multiSensoryReadingActivities\",\"functionName\":\"createMultiSensoryReadingActivities\"},{\"No\":1218,\"Category\":\"Interactive Learning\",\"Format\":\"Visual Math Problem Solving\",\"Description\":\"Use visual aids like diagrams and charts to help students solve math problems and understand mathematical concepts.\",\"type\":\"visualMathProblemSolving\",\"functionName\":\"createVisualMathProblemSolving\"},{\"No\":1219,\"Category\":\"Study Aids\",\"Format\":\"Guided Reading Exercises\",\"Description\":\"Provide structured reading exercises with prompts and guidance to help students improve reading comprehension and fluency.\",\"type\":\"guidedReadingExercises\",\"functionName\":\"createGuidedReadingExercises\"},\n{\"No\":1800,\"Category\":\"Educational Games\",\"Format\":\"Word Search\",\"Description\":\"Find hidden words in a grid of letters.\",\"type\":\"wordSearch\",\"functionName\":\"createWordSearchGame\"},{\"No\":1801,\"Category\":\"Educational Games\",\"Format\":\"Jigsaw Puzzle\",\"Description\":\"Assemble pieces to form a complete picture.\",\"type\":\"jigsawPuzzleGame\",\"functionName\":\"createJigsawPuzzleGame\"},{\"No\":1802,\"Category\":\"Educational Games\",\"Format\":\"Hangman\",\"Description\":\"Guess the hidden word letter by letter.\",\"type\":\"hangman\",\"functionName\":\"createHangmanGame\"},{\"No\":1803,\"Category\":\"Educational Games\",\"Format\":\"Wordle\",\"Description\":\"Guess the 5-letter word in 6 tries.\",\"type\":\"wordle\",\"functionName\":\"createWordleGame\"},{\"No\":1804,\"Category\":\"Educational Games\",\"Format\":\"Anagrams\",\"Description\":\"Rearrange letters to form a word.\",\"type\":\"anagrams\",\"functionName\":\"createAnagramsGame\"},{\"No\":1805,\"Category\":\"Educational Games\",\"Format\":\"Crossword Puzzle\",\"Description\":\"Solve crossword puzzles with intersecting words and clues.\",\"type\":\"crosswordPuzzle\",\"functionName\":\"createCrosswordGame\"},{\"No\":1806,\"Category\":\"Educational Games\",\"Format\":\"Sudoku\",\"Description\":\"Solve Sudoku puzzles by filling a 9x9 grid with digits.\",\"type\":\"sudoku\",\"functionName\":\"createSudokuGame\"},{\"No\":1807,\"Category\":\"Educational Games\",\"Format\":\"Boggle\",\"Description\":\"Find as many words as possible in a grid of letters.\",\"type\":\"boggle\",\"functionName\":\"createBoggleGame\"},{\"No\":1808,\"Category\":\"Educational Games\",\"Format\":\"7 Little Words\",\"Description\":\"Create 7 words by combining letter groups.\",\"type\":\"sevenLittleWords\",\"functionName\":\"create7LittleWordsGame\"},{\"No\":1809,\"Category\":\"Educational Games\",\"Format\":\"KenKen\",\"Description\":\"Solve KenKen puzzles, a variation of Sudoku with math operations.\",\"type\":\"kenken\",\"functionName\":\"createKenKenGame\"},{\"No\":1810,\"Category\":\"Educational Games\",\"Format\":\"Cryptogram\",\"Description\":\"Decipher the coded message by substituting letters.\",\"type\":\"cryptogram\",\"functionName\":\"createCryptogramGame\"},{\"No\":1811,\"Category\":\"Educational Games\",\"Format\":\"SpellTower\",\"Description\":\"A word game with elements of Tetris and Boggle.\",\"type\":\"spellTower\",\"functionName\":\"createSpellTowerGame\"},{\"No\":1812,\"Category\":\"Educational Games\",\"Format\":\"Typeshift\",\"Description\":\"Find words by shifting columns of letters.\",\"type\":\"typeshift\",\"functionName\":\"createTypeshiftGame\"},{\"No\":1813,\"Category\":\"Educational Games\",\"Format\":\"Cryptic Crossword\",\"Description\":\"Solve cryptic crosswords with clues that involve wordplay.\",\"type\":\"crypticCrossword\",\"functionName\":\"createCrypticCrosswordGame\"},{\"No\":1814,\"Category\":\"Educational Games\",\"Format\":\"Bookworm Adventures\",\"Description\":\"A word game where you create words to defeat monsters.\",\"type\":\"bookwormAdventures\",\"functionName\":\"createBookwormAdventuresGame\"},{\"No\":1815,\"Category\":\"Educational Games\",\"Format\":\"Babble Royale\",\"Description\":\"A competitive word game where you eliminate opponents by spelling words.\",\"type\":\"babbleRoyale\",\"functionName\":\"createBabbleRoyaleGame\"},{\"No\":1816,\"Category\":\"Educational Games\",\"Format\":\"Kitty Letter\",\"Description\":\"A word game where you create words to summon armies of cats.\",\"type\":\"kittyLetter\",\"functionName\":\"createKittyLetterGame\"},{\"No\":1817,\"Category\":\"Educational Games\",\"Format\":\"Letterpress\",\"Description\":\"A strategic word game where you capture tiles by forming words.\",\"type\":\"letterpress\",\"functionName\":\"createLetterpressGame\"},{\"No\":1818,\"Category\":\"Educational Games\",\"Format\":\"Sentence Unscramble\",\"Description\":\"Rearrange the words to form a grammatically correct sentence.\",\"type\":\"sentenceUnscramble\",\"functionName\":\"createSentenceUnscrambleGame\"},{\"No\":1819,\"Category\":\"Educational Games\",\"Format\":\"Odd One Out\",\"Description\":\"Identify the item that doesn't belong in the set.\",\"type\":\"oddOneOut\",\"functionName\":\"createOddOneOutGame\"},{\"No\":1820,\"Category\":\"Educational Games\",\"Format\":\"Interactive Timeline\",\"Description\":\"Explore events on a timeline with clickable elements and zoom functionality.\",\"type\":\"interactiveTimeline\",\"functionName\":\"createInteractiveTimeline\"},{\"No\":1821,\"Category\":\"Educational Games\",\"Format\":\"Coding Challenge\",\"Description\":\"Solve coding puzzles or create animations and games.\",\"type\":\"codingChallenge\",\"functionName\":\"createCodingChallenge\"},{\"No\":1822,\"Category\":\"Educational Games\",\"Format\":\"Debate Game\",\"Description\":\"Research, present arguments, and engage in discussions on a topic.\",\"type\":\"debateGame\",\"functionName\":\"createDebateGame\"},{\"No\":1823,\"Category\":\"Educational Games\",\"Format\":\"Classification Game\",\"Description\":\"Categorize items based on shared characteristics.\",\"type\":\"classificationGame\",\"functionName\":\"createClassificationGame\"},{\"No\":1824,\"Category\":\"Educational Games\",\"Format\":\"Simulation Game\",\"Description\":\"Interact with a simulated environment to learn about concepts or systems.\",\"type\":\"simulationGame\",\"functionName\":\"createSimulationGame\"},{\"No\":1825,\"Category\":\"Educational Games\",\"Format\":\"Strategy Game\",\"Description\":\"Plan and make decisions to achieve goals in a game with strategic elements.\",\"type\":\"strategyGame\",\"functionName\":\"createStrategyGame\"},{\"No\":1826,\"Category\":\"Educational Games\",\"Format\":\"Creative Writing Prompt\",\"Description\":\"Inspire creative writing with engaging prompts.\",\"type\":\"creativeWritingPrompt\",\"functionName\":\"createCreativeWritingPrompt\"},{\"No\":1827,\"Category\":\"Educational Games\",\"Format\":\"Interactive Storytelling\",\"Description\":\"Create and share stories with multimedia elements.\",\"type\":\"interactiveStorytelling\",\"functionName\":\"createInteractiveStorytelling\"},{\"No\":1828,\"Category\":\"Educational Games\",\"Format\":\"Tangram Puzzle\",\"Description\":\"Arrange the 7 geometric shapes to form different figures.\",\"type\":\"tangramPuzzle\",\"functionName\":\"createTangramPuzzle\"},{\"No\":1829,\"Category\":\"Educational Games\",\"Format\":\"Tower of Hanoi Puzzle\",\"Description\":\"Move disks between pegs, following the rules of the Tower of Hanoi.\",\"type\":\"towerOfHanoiPuzzle\",\"functionName\":\"createTowerOfHanoiPuzzle\"},{\"No\":1830,\"Category\":\"Educational Games\",\"Format\":\"What If? Scenario\",\"Description\":\"Analyze hypothetical situations and their potential outcomes.\",\"type\":\"whatIfScenario\",\"functionName\":\"createWhatIfScenario\"},{\"No\":3050,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Emotional Resilience Action Plan\",\"Description\":\"A structured plan to help children manage emotions, cope with stress, and build resilience.\",\"type\":\"emotionalResilienceActionPlan\",\"functionName\":\"createEmotionalResilienceActionPlan\"},{\"No\":3051,\"Category\":\"Parenting Action Plans\",\"Format\":\"Encouraging a Growth Mindset Action Plan\",\"Description\":\"A plan to help children develop a growth mindset, embrace challenges, and value effort.\",\"type\":\"growthMindsetActionPlan\",\"functionName\":\"createGrowthMindsetActionPlan\"},{\"No\":3052,\"Category\":\"Parenting Action Plans\",\"Format\":\"Fostering Independence Action Plan\",\"Description\":\"A plan to promote self-reliance, decision-making, and accountability in children.\",\"type\":\"fosteringIndependenceActionPlan\",\"functionName\":\"createFosteringIndependenceActionPlan\"},{\"No\":3053,\"Category\":\"Parenting Action Plans\",\"Format\":\"Strengthening Family Bonds Action Plan\",\"Description\":\"A plan to build trust, improve communication, and create strong family connections.\",\"type\":\"familyBondsActionPlan\",\"functionName\":\"createFamilyBondsActionPlan\"},{\"No\":3054,\"Category\":\"Parenting Action Plans\",\"Format\":\"Boosting Cognitive Skills Action Plan\",\"Description\":\"A plan to enhance problem-solving, memory, and critical thinking abilities in children.\",\"type\":\"cognitiveSkillsActionPlan\",\"functionName\":\"createCognitiveSkillsActionPlan\"},{\"No\":3055,\"Category\":\"Parenting Action Plans\",\"Format\":\"Nurturing Social Skills Action Plan\",\"Description\":\"A plan to help children develop empathy, communication, and collaboration skills.\",\"type\":\"socialSkillsActionPlan\",\"functionName\":\"createSocialSkillsActionPlan\"},{\"No\":3056,\"Category\":\"Parenting Action Plans\",\"Format\":\"Promoting Physical Well-being Action Plan\",\"Description\":\"A plan to encourage healthy habits, physical activity, and motor skill development.\",\"type\":\"physicalWellbeingActionPlan\",\"functionName\":\"createPhysicalWellbeingActionPlan\"},{\"No\":3057,\"Category\":\"Parenting Action Plans\",\"Format\":\"Teaching Values and Ethics Action Plan\",\"Description\":\"A plan to foster integrity, empathy, and social responsibility in children.\",\"type\":\"valuesAndEthicsActionPlan\",\"functionName\":\"createValuesAndEthicsActionPlan\"},{\"No\":3058,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Self-Regulation Action Plan\",\"Description\":\"A plan to help children develop control over impulses, emotions, and attention.\",\"type\":\"selfRegulationActionPlan\",\"functionName\":\"createSelfRegulationActionPlan\"},{\"No\":3059,\"Category\":\"Parenting Action Plans\",\"Format\":\"Improving Communication Action Plan\",\"Description\":\"A plan to teach children how to express themselves clearly and listen actively.\",\"type\":\"communicationSkillsActionPlan\",\"functionName\":\"createCommunicationSkillsActionPlan\"},{\"No\":3060,\"Category\":\"Parenting Action Plans\",\"Format\":\"Promoting Problem-Solving Skills Action Plan\",\"Description\":\"A plan to develop critical thinking and analytical abilities in children.\",\"type\":\"problemSolvingSkillsActionPlan\",\"functionName\":\"createProblemSolvingSkillsActionPlan\"},{\"No\":3061,\"Category\":\"Parenting Action Plans\",\"Format\":\"Encouraging Emotional Expression Action Plan\",\"Description\":\"A plan to help children articulate their emotions in healthy ways.\",\"type\":\"emotionalExpressionActionPlan\",\"functionName\":\"createEmotionalExpressionActionPlan\"},{\"No\":3062,\"Category\":\"Parenting Action Plans\",\"Format\":\"Strengthening Peer Relationships Action Plan\",\"Description\":\"A plan to help children build positive relationships with their peers.\",\"type\":\"peerRelationshipsActionPlan\",\"functionName\":\"createPeerRelationshipsActionPlan\"},{\"No\":3063,\"Category\":\"Parenting Action Plans\",\"Format\":\"Developing Self-Confidence Action Plan\",\"Description\":\"A plan to build a strong sense of self and the ability to face challenges.\",\"type\":\"selfConfidenceActionPlan\",\"functionName\":\"createSelfConfidenceActionPlan\"},{\"No\":3064,\"Category\":\"Parenting Action Plans\",\"Format\":\"Fostering Creativity Action Plan\",\"Description\":\"A plan to encourage imagination, innovation, and creative expression in children.\",\"type\":\"fosteringCreativityActionPlan\",\"functionName\":\"createFosteringCreativityActionPlan\"},{\"No\":3065,\"Category\":\"Parenting Action Plans\",\"Format\":\"Balancing Digital and Real Life Action Plan\",\"Description\":\"A plan to teach responsible technology use and encourage offline engagement.\",\"type\":\"digitalAndRealLifeBalanceActionPlan\",\"functionName\":\"createDigitalAndRealLifeBalanceActionPlan\"},{\"No\":3066,\"Category\":\"Parenting Action Plans\",\"Format\":\"Child Development Milestones Action Plan\",\"Description\":\"A plan to track and support a child's developmental milestones across different domains.\",\"type\":\"childDevelopmentMilestonesActionPlan\",\"functionName\":\"createChildDevelopmentMilestonesActionPlan\"},{\"No\":3067,\"Category\":\"Parenting Action Plans\",\"Format\":\"Stress Management for Families Action Plan\",\"Description\":\"A plan to help families manage stress, build resilience, and promote emotional well-being.\",\"type\":\"stressManagementActionPlan\",\"functionName\":\"createStressManagementActionPlan\"},{\"No\":3068,\"Category\":\"Parenting Action Plans\",\"Format\":\"Family Dynamics and Communication Action Plan\",\"Description\":\"A plan to improve communication patterns, strengthen relationships, and resolve conflicts within the family.\",\"type\":\"familyDynamicsActionPlan\",\"functionName\":\"createFamilyDynamicsActionPlan\"},{\"No\":3069,\"Category\":\"Parenting Action Plans\",\"Format\":\"Building Social Skills Action Plan\",\"Description\":\"A plan to help children develop strong social skills, including communication, empathy, and cooperation.\",\"type\":\"socialSkillsActionPlan\",\"functionName\":\"createSocialSkillsActionPlan\"},{\"No\":3070,\"Category\":\"Parenting Action Plans\",\"Format\":\"Mindfulness Practices Action Plan\",\"Description\":\"A plan to introduce mindfulness techniques to promote emotional regulation, reduce stress, and enhance well-being.\",\"type\":\"mindfulnessPracticesActionPlan\",\"functionName\":\"createMindfulnessPracticesActionPlan\"},{\"No\":3071,\"Category\":\"Parenting Action Plans\",\"Format\":\"Ethical and Moral Development Action Plan\",\"Description\":\"A plan to promote ethical reasoning, integrity, and social responsibility in children.\",\"type\":\"ethicalDevelopmentActionPlan\",\"functionName\":\"createEthicalDevelopmentActionPlan\"},{\"No\":3072,\"Category\":\"Parenting Action Plans\",\"Format\":\"Parenting Neurodiverse Children Action Plan\",\"Description\":\"A plan with tailored strategies and activities for children with autism, ADHD, or sensory needs.\",\"type\":\"neurodiverseParentingActionPlan\",\"functionName\":\"createNeurodiverseParentingActionPlan\"},{\"No\":3100,\"Category\":\"Parenting Methods\",\"Format\":\"Positive Reinforcement\",\"Description\":\"Encourage positive behaviors in children through rewards, praise, and recognition.\",\"type\":\"positiveReinforcement\",\"functionName\":\"createPositiveReinforcementMethod\"},{\"No\":3101,\"Category\":\"Parenting Methods\",\"Format\":\"Emotion Coaching\",\"Description\":\"Help children understand and manage their emotions effectively.\",\"type\":\"emotionCoaching\",\"functionName\":\"createEmotionCoachingMethod\"},{\"No\":3102,\"Category\":\"Parenting Methods\",\"Format\":\"Collaborative Problem-Solving\",\"Description\":\"Engage children in finding solutions to problems, fostering responsibility and cooperation.\",\"type\":\"collaborativeProblemSolving\",\"functionName\":\"createCollaborativeProblemSolvingMethod\"},{\"No\":3103,\"Category\":\"Parenting Methods\",\"Format\":\"Routine Building\",\"Description\":\"Establish consistent routines to provide structure, predictability, and security for children.\",\"type\":\"routineBuilding\",\"functionName\":\"createRoutineBuildingMethod\"},{\"No\":3104,\"Category\":\"Parenting Methods\",\"Format\":\"Growth Mindset Feedback\",\"Description\":\"Provide feedback that encourages effort, learning, and a growth mindset in children.\",\"type\":\"growthMindsetFeedback\",\"functionName\":\"createGrowthMindsetFeedbackMethod\"},{\"No\":3105,\"Category\":\"Parenting Methods\",\"Format\":\"Setting Limits with Respect\",\"Description\":\"Establish clear boundaries and expectations while maintaining a respectful and positive relationship with children.\",\"type\":\"settingLimitsWithRespect\",\"functionName\":\"createSettingLimitsWithRespectMethod\"},{\"No\":3106,\"Category\":\"Parenting Methods\",\"Format\":\"Natural Consequences\",\"Description\":\"Allow children to experience the natural outcomes of their choices to learn responsibility and accountability.\",\"type\":\"naturalConsequences\",\"functionName\":\"createNaturalConsequencesMethod\"},{\"No\":3107,\"Category\":\"Parenting Methods\",\"Format\":\"Scaffolding for Skills\",\"Description\":\"Provide temporary support and guidance to help children learn new skills and gradually increase their independence.\",\"type\":\"scaffoldingForSkills\",\"functionName\":\"createScaffoldingForSkillsMethod\"},{\"No\":3108,\"Category\":\"Parenting Methods\",\"Format\":\"Active Listening Techniques\",\"Description\":\"Develop effective communication skills by truly listening and understanding children's perspectives.\",\"type\":\"activeListeningTechniques\",\"functionName\":\"createActiveListeningTechniquesMethod\"},{\"No\":3109,\"Category\":\"Parenting Methods\",\"Format\":\"Celebrating Small Wins\",\"Description\":\"Recognize and celebrate children's efforts, progress, and achievements to boost motivation and confidence.\",\"type\":\"celebratingSmallWins\",\"functionName\":\"createCelebratingSmallWinsMethod\"},{\"No\":3110,\"Category\":\"Parenting Methods\",\"Format\":\"Reflective Listening\",\"Description\":\"Enhance communication and understanding by reflecting on and validating children's feelings and perspectives.\",\"type\":\"reflectiveListening\",\"functionName\":\"createReflectiveListeningMethod\"},{\"No\":3111,\"Category\":\"Parenting Methods\",\"Format\":\"Task Analysis\",\"Description\":\"Break down complex tasks into smaller, more manageable steps to help children learn and succeed.\",\"type\":\"taskAnalysis\",\"functionName\":\"createTaskAnalysisMethod\"},{\"No\":3112,\"Category\":\"Parenting Methods\",\"Format\":\"Empathy Building\",\"Description\":\"Help children develop empathy and understand the perspectives and feelings of others.\",\"type\":\"empathyBuilding\",\"functionName\":\"createEmpathyBuildingMethod\"},{\"No\":3113,\"Category\":\"Parenting Methods\",\"Format\":\"Time-Out as Reflection, Not Punishment\",\"Description\":\"Use time-outs as an opportunity for children to calm down, reflect on their behavior, and develop self-regulation skills.\",\"type\":\"timeOutAsReflection\",\"functionName\":\"createTimeOutAsReflectionMethod\"},{\"No\":3114,\"Category\":\"Parenting Methods\",\"Format\":\"Natural Curiosity Method\",\"Description\":\"Encourage learning and exploration by nurturing children's innate curiosity and interests.\",\"type\":\"naturalCuriosityMethod\",\"functionName\":\"createNaturalCuriosityMethod\"},{\"No\":3115,\"Category\":\"Parenting Methods\",\"Format\":\"Strength-Based Parenting\",\"Description\":\"Focus on identifying and nurturing children's strengths and talents to build confidence and resilience.\",\"type\":\"strengthBasedParenting\",\"functionName\":\"createStrengthBasedParentingMethod\"},{\"No\":3116,\"Category\":\"Parenting Methods\",\"Format\":\"Sibling Mediation Techniques\",\"Description\":\"Teach siblings effective strategies for resolving conflicts and building positive relationships.\",\"type\":\"siblingMediationTechniques\",\"functionName\":\"createSiblingMediationTechniquesMethod\"},{\"No\":3117,\"Category\":\"Parenting Methods\",\"Format\":\"Screen Time Negotiation\",\"Description\":\"Establish healthy boundaries and agreements for screen time usage with children.\",\"type\":\"screenTimeNegotiation\",\"functionName\":\"createScreenTimeNegotiationMethod\"},{\"No\":3118,\"Category\":\"Parenting Methods\",\"Format\":\"Promoting Problem-Solving\",\"Description\":\"Encourage and support children's problem-solving skills in various contexts.\",\"type\":\"promotingProblemSolving\",\"functionName\":\"createPromotingProblemSolvingMethod\"},{\"No\":3119,\"Category\":\"Parenting Methods\",\"Format\":\"Encouraging a Growth Mindset\",\"Description\":\"Foster a growth mindset in children by emphasizing effort, learning, and resilience.\",\"type\":\"encouragingGrowthMindset\",\"functionName\":\"createEncouragingGrowthMindsetMethod\"},{\"No\":3120,\"Category\":\"Parenting Methods\",\"Format\":\"Building Strong Bonds\",\"Description\":\"Nurture secure and loving relationships between parents and children.\",\"type\":\"buildingStrongBonds\",\"functionName\":\"createBuildingStrongBondsMethod\"},{\"No\":3121,\"Category\":\"Parenting Methods\",\"Format\":\"Nurturing Emotional Intelligence\",\"Description\":\"Help children develop emotional awareness, understanding, and management skills.\",\"type\":\"nurturingEmotionalIntelligence\",\"functionName\":\"createNurturingEmotionalIntelligenceMethod\"},{\"No\":3122,\"Category\":\"Parenting Methods\",\"Format\":\"Positive Discipline\",\"Description\":\"Guide and discipline children with respect, understanding, and a focus on teaching valuable life skills.\",\"type\":\"positiveDiscipline\",\"functionName\":\"createPositiveDisciplineMethod\"},{\"No\":3150,\"Category\":\"Parenting Activities\",\"Format\":\"Emotion Wheel Game\",\"Description\":\"A fun and interactive game to help children learn about different emotions and how to express them.\",\"type\":\"emotionWheelGame\",\"functionName\":\"createEmotionWheelGameActivity\"},{\"No\":3151,\"Category\":\"Parenting Activities\",\"Format\":\"Gratitude Journaling\",\"Description\":\"A reflective activity to encourage children to appreciate the positive aspects of their lives and develop gratitude.\",\"type\":\"gratitudeJournaling\",\"functionName\":\"createGratitudeJournalingActivity\"},{\"No\":3152,\"Category\":\"Parenting Activities\",\"Format\":\"Cooperative Board Games\",\"Description\":\"Engage children in cooperative board games that promote teamwork, communication, and social skills.\",\"type\":\"cooperativeBoardGames\",\"functionName\":\"createCooperativeBoardGamesActivity\"},{\"No\":3153,\"Category\":\"Parenting Activities\",\"Format\":\"Daily Chore Chart\",\"Description\":\"A visual chart to assign and track daily chores, promoting responsibility and independence in children.\",\"type\":\"dailyChoreChart\",\"functionName\":\"createDailyChoreChartActivity\"},{\"No\":3154,\"Category\":\"Parenting Activities\",\"Format\":\"Family Storytime\",\"Description\":\"A bonding activity where families read together, fostering literacy, imagination, and connection.\",\"type\":\"familyStorytime\",\"functionName\":\"createFamilyStorytimeActivity\"},{\"No\":3155,\"Category\":\"Parenting Activities\",\"Format\":\"Role-Playing Scenarios\",\"Description\":\"Engage children in role-playing different scenarios to practice problem-solving, communication, and social skills.\",\"type\":\"rolePlayingScenarios\",\"functionName\":\"createRolePlayingScenariosActivity\"},{\"No\":3156,\"Category\":\"Parenting Activities\",\"Format\":\"Building Together\",\"Description\":\"Collaborative building activities that promote creativity, problem-solving, and teamwork.\",\"type\":\"buildingTogether\",\"functionName\":\"createBuildingTogetherActivity\"},{\"No\":3157,\"Category\":\"Parenting Activities\",\"Format\":\"Mindfulness Walks\",\"Description\":\"Engage in mindful walks in nature with children to promote relaxation, observation skills, and connection with the environment.\",\"type\":\"mindfulnessWalks\",\"functionName\":\"createMindfulnessWalksActivity\"},{\"No\":3158,\"Category\":\"Parenting Activities\",\"Format\":\"Meal Prep as a Team\",\"Description\":\"Involve children in meal preparation to teach life skills, promote healthy eating habits, and encourage teamwork.\",\"type\":\"mealPrepAsATeam\",\"functionName\":\"createMealPrepAsATeamActivity\"},{\"No\":3159,\"Category\":\"Parenting Activities\",\"Format\":\"Art and Craft Projects\",\"Description\":\"Engage in creative art and craft projects with children to promote self-expression, fine motor skills, and imagination.\",\"type\":\"artAndCraftProjects\",\"functionName\":\"createArtAndCraftProjectsActivity\"},{\"No\":3160,\"Category\":\"Parenting Activities\",\"Format\":\"Playdate Planning\",\"Description\":\"Help children plan and host playdates to develop social skills, cooperation, and friendship.\",\"type\":\"playdatePlanning\",\"functionName\":\"createPlaydatePlanningActivity\"},{\"No\":3161,\"Category\":\"Parenting Activities\",\"Format\":\"Learning Through Play\",\"Description\":\"Engage children in educational and fun activities that promote learning through play.\",\"type\":\"learningThroughPlay\",\"functionName\":\"createLearningThroughPlayActivity\"},{\"No\":3162,\"Category\":\"Parenting Activities\",\"Format\":\"Community Service Activities\",\"Description\":\"Involve children in community service activities to foster empathy, social responsibility, and compassion.\",\"type\":\"communityServiceActivities\",\"functionName\":\"createCommunityServiceActivities\"},{\"No\":3163,\"Category\":\"Parenting Activities\",\"Format\":\"Fitness Challenges\",\"Description\":\"Engage in fun fitness challenges as a family to promote physical activity, teamwork, and healthy competition.\",\"type\":\"fitnessChallenges\",\"functionName\":\"createFitnessChallengesActivity\"},{\"No\":3164,\"Category\":\"Parenting Activities\",\"Format\":\"Conflict Resolution Role Play\",\"Description\":\"Engage children in role-playing scenarios to practice resolving conflicts constructively and peacefully.\",\"type\":\"conflictResolutionRolePlay\",\"functionName\":\"createConflictResolutionRolePlayActivity\"},{\"No\":3165,\"Category\":\"Parenting Activities\",\"Format\":\"Outdoor Exploration Challenges\",\"Description\":\"Engage in outdoor challenges and adventures to promote resilience, curiosity, and teamwork.\",\"type\":\"outdoorExplorationChallenges\",\"functionName\":\"createOutdoorExplorationChallengesActivity\"},{\"No\":3166,\"Category\":\"Parenting Activities\",\"Format\":\"Shared Hobby Projects\",\"Description\":\"Strengthen parent-child bonds through collaborative hobby projects.\",\"type\":\"sharedHobbyProjects\",\"functionName\":\"createSharedHobbyProjectsActivity\"},{\"No\":3167,\"Category\":\"Parenting Activities\",\"Format\":\"Digital Detox Day\",\"Description\":\"A planned day with limited or no screen time to encourage family interaction, creativity, and mindfulness.\",\"type\":\"digitalDetoxDay\",\"functionName\":\"createDigitalDetoxDayActivity\"},{\"No\":3168,\"Category\":\"Parenting Activities\",\"Format\":\"Leadership Activities\",\"Description\":\"Engage children in activities that develop leadership skills, such as decision-making, teamwork, and communication.\",\"type\":\"leadershipActivities\",\"functionName\":\"createLeadershipActivities\"},{\"No\":3169,\"Category\":\"Parenting Activities\",\"Format\":\"Family Debate Nights\",\"Description\":\"Engage in family debates to promote critical thinking, communication skills, and respectful disagreement.\",\"type\":\"familyDebateNights\",\"functionName\":\"createFamilyDebateNightsActivity\"},{\"No\":3200,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Regulation Tracker\",\"Description\":\"Monitor and assess a child's progress in understanding and managing their emotions.\",\"type\":\"emotionalRegulationTracker\",\"functionName\":\"createEmotionalRegulationTrackerAssessment\"},{\"No\":3201,\"Category\":\"Parenting Assessments\",\"Format\":\"Behavior Progress Log\",\"Description\":\"Track and evaluate changes in a child's behavior over time.\",\"type\":\"behaviorProgressLog\",\"functionName\":\"createBehaviorProgressLogAssessment\"},{\"No\":3202,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Interaction Journal\",\"Description\":\"A reflective journal for parents to document and analyze their interactions with their children.\",\"type\":\"familyInteractionJournal\",\"functionName\":\"createFamilyInteractionJournalAssessment\"},{\"No\":3203,\"Category\":\"Parenting Assessments\",\"Format\":\"Learning Milestone Checklist\",\"Description\":\"Track a child's progress in achieving key learning milestones across different developmental stages.\",\"type\":\"learningMilestoneChecklist\",\"functionName\":\"createLearningMilestoneChecklistAssessment\"},{\"No\":3204,\"Category\":\"Parenting Assessments\",\"Format\":\"Independence Progress Tracker\",\"Description\":\"Monitor and assess a child's progress in developing independence and self-reliance.\",\"type\":\"independenceProgressTracker\",\"functionName\":\"createIndependenceProgressTrackerAssessment\"},{\"No\":3205,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Interaction Rating\",\"Description\":\"Evaluate a child's social skills and interactions with peers and family members.\",\"type\":\"socialInteractionRating\",\"functionName\":\"createSocialInteractionRatingAssessment\"},{\"No\":3206,\"Category\":\"Parenting Assessments\",\"Format\":\"Resilience Growth Tracker\",\"Description\":\"Assess and monitor a child's ability to cope with challenges, setbacks, and adversity.\",\"type\":\"resilienceGrowthTracker\",\"functionName\":\"createResilienceGrowthTrackerAssessment\"},{\"No\":3207,\"Category\":\"Parenting Assessments\",\"Format\":\"Parenting Style Reflection Tool\",\"Description\":\"A self-assessment tool for parents to reflect on their parenting style and identify areas for growth.\",\"type\":\"parentingStyleReflectionTool\",\"functionName\":\"createParentingStyleReflectionToolAssessment\"},{\"No\":3208,\"Category\":\"Parenting Assessments\",\"Format\":\"Routine Consistency Tracker\",\"Description\":\"Monitor and evaluate the consistency of daily routines and their impact on family life.\",\"type\":\"routineConsistencyTracker\",\"functionName\":\"createRoutineConsistencyTrackerAssessment\"},{\"No\":3209,\"Category\":\"Parenting Assessments\",\"Format\":\"Stress Reduction Assessment\",\"Description\":\"Evaluate the effectiveness of stress management techniques and their impact on family well-being.\",\"type\":\"stressReductionAssessment\",\"functionName\":\"createStressReductionAssessment\"},{\"No\":3210,\"Category\":\"Parenting Assessments\",\"Format\":\"Peer Relationship Tracker\",\"Description\":\"Monitor and assess a child's peer relationships and social interactions.\",\"type\":\"peerRelationshipTracker\",\"functionName\":\"createPeerRelationshipTrackerAssessment\"},{\"No\":3211,\"Category\":\"Parenting Assessments\",\"Format\":\"Creative Output Log\",\"Description\":\"Document and analyze a child's creative projects and activities over time.\",\"type\":\"creativeOutputLog\",\"functionName\":\"createCreativeOutputLogAssessment\"},{\"No\":3212,\"Category\":\"Parenting Assessments\",\"Format\":\"Conflict Resolution Assessment\",\"Description\":\"Evaluate a child's ability to resolve conflicts peacefully and effectively.\",\"type\":\"conflictResolutionAssessment\",\"functionName\":\"createConflictResolutionAssessment\"},{\"No\":3213,\"Category\":\"Parenting Assessments\",\"Format\":\"Leadership Skills Assessment\",\"Description\":\"Observe and evaluate a child's leadership qualities and potential.\",\"type\":\"leadershipSkillsAssessment\",\"functionName\":\"createLeadershipSkillsAssessment\"},{\"No\":3214,\"Category\":\"Parenting Assessments\",\"Format\":\"Screen Time Balance Review\",\"Description\":\"Evaluate the balance between screen time and other activities in a child's life.\",\"type\":\"screenTimeBalanceReview\",\"functionName\":\"createScreenTimeBalanceReviewAssessment\"},{\"No\":3215,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Dynamics Check-In\",\"Description\":\"Assess the overall emotional climate and interaction patterns within the family.\",\"type\":\"familyDynamicsCheckIn\",\"functionName\":\"createFamilyDynamicsCheckInAssessment\"},{\"No\":3216,\"Category\":\"Parenting Assessments\",\"Format\":\"Progress-Based Reward System\",\"Description\":\"A system for tracking and rewarding progress towards goals, using positive reinforcement to motivate children.\",\"type\":\"progressBasedRewardSystem\",\"functionName\":\"createProgressBasedRewardSystemAssessment\"},{\"No\":3217,\"Category\":\"Parenting Assessments\",\"Format\":\"Behavioral Frequency Log\",\"Description\":\"Track the frequency of specific behaviors over time to identify patterns and monitor progress.\",\"type\":\"behavioralFrequencyLog\",\"functionName\":\"createBehavioralFrequencyLogAssessment\"},{\"No\":3218,\"Category\":\"Parenting Assessments\",\"Format\":\"Growth Mindset Journal\",\"Description\":\"Encourage children to reflect on their learning experiences and develop a growth mindset through journaling.\",\"type\":\"growthMindsetJournal\",\"functionName\":\"createGrowthMindsetJournalAssessment\"},{\"No\":3219,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Vocabulary Expansion Test\",\"Description\":\"Assess a child's understanding and use of emotional vocabulary.\",\"type\":\"emotionalVocabularyExpansionTest\",\"functionName\":\"createEmotionalVocabularyExpansionTestAssessment\"},{\"No\":3220,\"Category\":\"Parenting Assessments\",\"Format\":\"Family Connection Log\",\"Description\":\"Track and reflect on the frequency and quality of family bonding activities.\",\"type\":\"familyConnectionLog\",\"functionName\":\"createFamilyConnectionLogAssessment\"},{\"No\":3221,\"Category\":\"Parenting Assessments\",\"Format\":\"Decision-Making Evaluation\",\"Description\":\"Assess a child's ability to make thoughtful and responsible decisions.\",\"type\":\"decisionMakingEvaluation\",\"functionName\":\"createDecisionMakingEvaluationAssessment\"},{\"No\":3222,\"Category\":\"Parenting Assessments\",\"Format\":\"Collaborative Task Review\",\"Description\":\"Evaluate the effectiveness of teamwork and collaboration during family or group activities.\",\"type\":\"collaborativeTaskReview\",\"functionName\":\"createCollaborativeTaskReviewAssessment\"},{\"No\":3223,\"Category\":\"Parenting Assessments\",\"Format\":\"Adaptability Assessment\",\"Description\":\"Assess a child's ability to adjust to changes, transitions, and unexpected situations.\",\"type\":\"adaptabilityAssessment\",\"functionName\":\"createAdaptabilityAssessment\"},{\"No\":3224,\"Category\":\"Parenting Assessments\",\"Format\":\"Independence and Responsibility Log\",\"Description\":\"Track a child's progress in taking initiative and fulfilling responsibilities.\",\"type\":\"independenceAndResponsibilityLog\",\"functionName\":\"createIndependenceAndResponsibilityLogAssessment\"},{\"No\":3225,\"Category\":\"Parenting Assessments\",\"Format\":\"Open-Ended Creative Project Evaluation\",\"Description\":\"Assess creativity, problem-solving, and critical thinking through open-ended creative projects.\",\"type\":\"openEndedCreativeProjectEvaluation\",\"functionName\":\"createOpenEndedCreativeProjectEvaluationAssessment\"},{\"No\":3226,\"Category\":\"Parenting Assessments\",\"Format\":\"Goal-Setting and Achievement Assessment\",\"Description\":\"Guide children in setting personal goals and track their progress towards achieving them.\",\"type\":\"goalSettingAndAchievementAssessment\",\"functionName\":\"createGoalSettingAndAchievementAssessment\"},{\"No\":3227,\"Category\":\"Parenting Assessments\",\"Format\":\"Emotional Intelligence Growth Assessment\",\"Description\":\"Assess a child's overall emotional intelligence, including self-awareness, self-regulation, social skills, empathy, and motivation.\",\"type\":\"emotionalIntelligenceGrowthAssessment\",\"functionName\":\"createEmotionalIntelligenceGrowthAssessment\"},{\"No\":3228,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Intelligence Assessment\",\"Description\":\"Evaluate a child's ability to understand and navigate social situations effectively.\",\"type\":\"socialIntelligenceAssessment\",\"functionName\":\"createSocialIntelligenceAssessment\"},{\"No\":3229,\"Category\":\"Parenting Assessments\",\"Format\":\"Social Awareness Assessment\",\"Description\":\"Evaluate a child's ability to understand social cues, perspectives, and dynamics.\",\"type\":\"socialAwarenessAssessment\",\"functionName\":\"createSocialAwarenessAssessment\"},{\"No\":3230,\"Category\":\"Parenting Assessments\",\"Format\":\"Personality Traits Assessment\",\"Description\":\"Identify and understand a child's personality traits to tailor parenting approaches and support their development.\",\"type\":\"personalityTraitsAssessment\",\"functionName\":\"createPersonalityTraitsAssessment\"},{\"No\":3231,\"Category\":\"Parenting Assessments\",\"Format\":\"Personality Disorders Screening\",\"Description\":\"A screening tool to identify potential signs of personality disorders in children or adolescents.\",\"type\":\"personalityDisordersScreening\",\"functionName\":\"createPersonalityDisordersScreeningAssessment\"},{\"No\":3250,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Intelligence Assessment\",\"Description\":\"Evaluate a child's ability to understand and navigate social situations effectively.\",\"type\":\"socialIntelligenceAssessment\",\"functionName\":\"createSocialIntelligenceAssessment\"},{\"No\":3251,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Awareness Assessment\",\"Description\":\"Evaluate a child's ability to understand social cues, perspectives, and dynamics.\",\"type\":\"socialAwarenessAssessment\",\"functionName\":\"createSocialAwarenessAssessment\"},{\"No\":3252,\"Category\":\"Advanced Assessments\",\"Format\":\"Personality Traits Assessment\",\"Description\":\"Identify and understand a child's personality traits to tailor parenting approaches and support their development.\",\"type\":\"personalityTraitsAssessment\",\"functionName\":\"createPersonalityTraitsAssessment\"},{\"No\":3253,\"Category\":\"Advanced Assessments\",\"Format\":\"Personality Disorders Screening\",\"Description\":\"A screening tool to identify potential signs of personality disorders in children or adolescents.\",\"type\":\"personalityDisordersScreening\",\"functionName\":\"createPersonalityDisordersScreeningAssessment\"},{\"No\":3254,\"Category\":\"Advanced Assessments\",\"Format\":\"Goal-Setting and Achievement Assessment\",\"Description\":\"Guide children in setting personal goals and track their progress towards achieving them.\",\"type\":\"goalSettingAndAchievementAssessment\",\"functionName\":\"createGoalSettingAndAchievementAssessment\"},{\"No\":3255,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Intelligence Growth Assessment\",\"Description\":\"Assess a child's overall emotional intelligence, including self-awareness, self-regulation, social skills, empathy, and motivation.\",\"type\":\"emotionalIntelligenceGrowthAssessment\",\"functionName\":\"createEmotionalIntelligenceGrowthAssessment\"},{\"No\":3256,\"Category\":\"Advanced Assessments\",\"Format\":\"Developmental Milestones Tracker\",\"Description\":\"Monitor a child's progress in gross motor skills, fine motor skills, language acquisition, cognitive development, and social-emotional growth.\",\"type\":\"developmentalMilestonesTracker\",\"functionName\":\"createDevelopmentalMilestonesTrackerAssessment\"},{\"No\":3257,\"Category\":\"Advanced Assessments\",\"Format\":\"Readiness Assessment\",\"Description\":\"Evaluate a child's readiness for transitions like starting school, potty training, or moving to a new environment.\",\"type\":\"readinessAssessment\",\"functionName\":\"createReadinessAssessment\"},{\"No\":3258,\"Category\":\"Advanced Assessments\",\"Format\":\"Learning Styles and Preferences Inventory\",\"Description\":\"Identify a child's preferred learning styles (visual, auditory, kinesthetic) and tailor activities accordingly.\",\"type\":\"learningStylesAndPreferencesInventory\",\"functionName\":\"createLearningStylesAndPreferencesInventoryAssessment\"},{\"No\":3259,\"Category\":\"Advanced Assessments\",\"Format\":\"Giftedness Screening\",\"Description\":\"Assess a child's potential for advanced cognitive abilities or talents.\",\"type\":\"giftednessScreening\",\"functionName\":\"createGiftednessScreeningAssessment\"},{\"No\":3260,\"Category\":\"Advanced Assessments\",\"Format\":\"Behavior Observation Checklist\",\"Description\":\"Track specific behaviors (positive and challenging) in various settings (home, school, social).\",\"type\":\"behaviorObservationChecklist\",\"functionName\":\"createBehaviorObservationChecklistAssessment\"},{\"No\":3261,\"Category\":\"Advanced Assessments\",\"Format\":\"Habit Tracker\",\"Description\":\"Monitor progress in establishing positive habits (e.g., sleep routines, hygiene, chores).\",\"type\":\"habitTracker\",\"functionName\":\"createHabitTrackerAssessment\"},{\"No\":3262,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Literacy Assessment\",\"Description\":\"Evaluate a child's ability to identify, understand, and express emotions.\",\"type\":\"emotionalLiteracyAssessment\",\"functionName\":\"createEmotionalLiteracyAssessment\"},{\"No\":3263,\"Category\":\"Advanced Assessments\",\"Format\":\"Emotional Regulation Skills Assessment\",\"Description\":\"Assess a child's ability to manage and respond to emotions effectively.\",\"type\":\"emotionalRegulationSkillsAssessment\",\"functionName\":\"createEmotionalRegulationSkillsAssessment\"},{\"No\":3264,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Skills Observation Checklist\",\"Description\":\"Observe and evaluate a child's social skills in different settings.\",\"type\":\"socialSkillsObservationChecklist\",\"functionName\":\"createSocialSkillsObservationChecklistAssessment\"},{\"No\":3265,\"Category\":\"Advanced Assessments\",\"Format\":\"Friendship Quality Assessment\",\"Description\":\"Assess the quality of a child's friendships and peer relationships.\",\"type\":\"friendshipQualityAssessment\",\"functionName\":\"createFriendshipQualityAssessment\"},{\"No\":3266,\"Category\":\"Advanced Assessments\",\"Format\":\"Social Problem-Solving Assessment\",\"Description\":\"Evaluate a child's ability to navigate social conflicts and find solutions.\",\"type\":\"socialProblemSolvingAssessment\",\"functionName\":\"createSocialProblemSolvingAssessment\"},{\"No\":3267,\"Category\":\"Advanced Assessments\",\"Format\":\"Perspective-Taking Assessment\",\"Description\":\"Assess a child's ability to understand and consider the perspectives of others.\",\"type\":\"perspectiveTakingAssessment\",\"functionName\":\"createPerspectiveTakingAssessment\"},{\"No\":3268,\"Category\":\"Advanced Assessments\",\"Format\":\"Family Communication Patterns Assessment\",\"Description\":\"Identify communication styles and patterns within the family.\",\"type\":\"familyCommunicationPatternsAssessment\",\"functionName\":\"createFamilyCommunicationPatternsAssessment\"},{\"No\":3269,\"Category\":\"Advanced Assessments\",\"Format\":\"Parent-Child Relationship Quality Assessment\",\"Description\":\"Evaluate the quality of the parent-child bond and identify areas for improvement.\",\"type\":\"parentChildRelationshipQualityAssessment\",\"functionName\":\"createParentChildRelationshipQualityAssessment\"},{\"No\":3270,\"Category\":\"Advanced Assessments\",\"Format\":\"Cognitive Skills Assessment Battery\",\"Description\":\"Assess various cognitive abilities, such as memory, attention, problem-solving, and critical thinking.\",\"type\":\"cognitiveSkillsAssessmentBattery\",\"functionName\":\"createCognitiveSkillsAssessmentBattery\"},{\"No\":3271,\"Category\":\"Advanced Assessments\",\"Format\":\"Executive Functioning Assessment\",\"Description\":\"Evaluate skills like planning, organization, and impulse control.\",\"type\":\"executiveFunctioningAssessment\",\"functionName\":\"createExecutiveFunctioningAssessment\"},{\"No\":3272,\"Category\":\"Advanced Assessments\",\"Format\":\"Learning Strengths and Weaknesses Inventory\",\"Description\":\"Identify a child's learning strengths and areas where they may need additional support.\",\"type\":\"learningStrengthsAndWeaknessesInventory\",\"functionName\":\"createLearningStrengthsAndWeaknessesInventoryAssessment\"},{\"No\":3273,\"Category\":\"Advanced Assessments\",\"Format\":\"Creativity Assessment\",\"Description\":\"Assess a child's ability to think divergently and generate novel ideas.\",\"type\":\"creativityAssessment\",\"functionName\":\"createCreativityAssessment\"},{\"No\":3274,\"Category\":\"Advanced Assessments\",\"Format\":\"Mood Tracker\",\"Description\":\"Monitor a child's mood patterns over time to identify potential concerns or triggers.\",\"type\":\"moodTracker\",\"functionName\":\"createMoodTrackerAssessment\"},{\"No\":3275,\"Category\":\"Advanced Assessments\",\"Format\":\"Family Stressors and Coping Strategies Inventory\",\"Description\":\"Assess sources of stress and coping mechanisms within the family unit.\",\"type\":\"familyStressorsAndCopingStrategiesInventory\",\"functionName\":\"createFamilyStressorsAndCopingStrategiesInventoryAssessment\"},{\"No\":3276,\"Category\":\"Advanced Assessments\",\"Format\":\"Sibling Relationship Assessment\",\"Description\":\"Assess the dynamics and quality of relationships between siblings.\",\"type\":\"siblingRelationshipAssessment\",\"functionName\":\"createSiblingRelationshipAssessment\"}];var x=exports.x=[{\"No\":1000,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Storytelling\",\"Description\":\"Sharing Bible stories in an engaging and relevant way.\",\"type\":\"storytelling\",\"functionName\":\"createStorytelling\"},{\"No\":1001,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Discussion\",\"Description\":\"Encouraging questions and conversations to explore deeper meanings.\",\"type\":\"discussion\",\"functionName\":\"createDiscussion\"},{\"No\":1004,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Personal Study\",\"Description\":\"Encouraging individual Bible reading and reflection.\",\"type\":\"personalStudy\",\"functionName\":\"createPersonalStudy\"},{\"No\":1005,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Group Study\",\"Description\":\"Facilitating group discussions to share insights and learn from each other.\",\"type\":\"groupStudy\",\"functionName\":\"createGroupStudy\"},{\"No\":1013,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Applicative Reading\",\"Description\":\"Applying Bible teachings to daily life and contemporary issues.\",\"type\":\"applicativeReading\",\"functionName\":\"createApplicativeReading\"},{\"No\":1014,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Silent Reading\",\"Description\":\"Reading in silence for personal reflection and spiritual connection.\",\"type\":\"silentReading\",\"functionName\":\"createSilentReading\"},{\"No\":1019,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Reading with Prayer\",\"Description\":\"Incorporating prayer before and after reading for deeper connection.\",\"type\":\"readingWithPrayer\",\"functionName\":\"createReadingWithPrayer\"},{\"No\":1023,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Character-Focused Reading\",\"Description\":\"Studying the journey and development of a specific biblical figure.\",\"type\":\"characterFocusedReading\",\"functionName\":\"createCharacterFocusedReading\"},{\"No\":1026,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Location-Focused Reading\",\"Description\":\"Studying events that occurred in a particular biblical location.\",\"type\":\"locationFocusedReading\",\"functionName\":\"createLocationFocusedReading\"},{\"No\":1027,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Word-Focused Reading\",\"Description\":\"Exploring all verses containing a specific word or concept.\",\"type\":\"wordFocusedReading\",\"functionName\":\"createWordFocusedReading\"},{\"No\":1028,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Dictionary-Aided Reading\",\"Description\":\"Using a dictionary to understand unfamiliar words and concepts.\",\"type\":\"dictionaryAidedReading\",\"functionName\":\"createDictionaryAidedReading\"},{\"No\":1030,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Commentary-Aided Reading\",\"Description\":\"Using commentaries to gain deeper insights into the text.\",\"type\":\"commentaryAidedReading\",\"functionName\":\"createCommentaryAidedReading\"},{\"No\":1037,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Promise-Focused Reading\",\"Description\":\"Identifying and reflecting on God's promises in the Bible.\",\"type\":\"promiseFocusedReading\",\"functionName\":\"createPromiseFocusedReading\"},{\"No\":1038,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Invitation-Focused Reading\",\"Description\":\"Understanding God's calls to action and faith.\",\"type\":\"invitationFocusedReading\",\"functionName\":\"createInvitationFocusedReading\"},{\"No\":1039,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Encouragement-Focused Reading\",\"Description\":\"Finding comfort and strength in uplifting verses.\",\"type\":\"encouragementFocusedReading\",\"functionName\":\"createEncouragementFocusedReading\"},{\"No\":1040,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Love-Focused Reading\",\"Description\":\"Discovering expressions of God's unconditional love.\",\"type\":\"loveFocusedReading\",\"functionName\":\"createLoveFocusedReading\"},{\"No\":1051,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Question-Driven Reading\",\"Description\":\"Actively engaging with the text by asking and answering questions.\",\"type\":\"questionDrivenReading\",\"functionName\":\"createQuestionDrivenReading\"},{\"No\":1064,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Book-by-Book Study\",\"Description\":\"Systematic study of one book at a time.\",\"type\":\"bookByBookStudy\",\"functionName\":\"createBookByBookStudy\"},{\"No\":1066,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Prayer Journaling\",\"Description\":\"Writing down prayers and reflections inspired by the reading.\",\"type\":\"prayerJournaling\",\"functionName\":\"createPrayerJournaling\"},{\"No\":1067,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Memory Verse Practice\",\"Description\":\"Memorizing and reciting key verses for deeper internalization.\",\"type\":\"memoryVersePractice\",\"functionName\":\"createMemoryVersePractice\"},{\"No\":1071,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Devotional Reading\",\"Description\":\"Reading short daily passages with guided reflections.\",\"type\":\"devotionalReading\",\"functionName\":\"createDevotionalReading\"},{\"No\":1079,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Book Overview\",\"Description\":\"Gaining a general understanding of a book's purpose, themes, and historical context before diving into deeper study.\",\"type\":\"bookOverview\",\"functionName\":\"createBookOverview\"},{\"No\":1081,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Biographical Study\",\"Description\":\"Examining the lives of biblical figures, their relationships, challenges, and spiritual growth.\",\"type\":\"biographicalStudy\",\"functionName\":\"createBiographicalStudy\"},{\"No\":1088,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Group Discussion Guides\",\"Description\":\"Providing structured questions and prompts for group Bible studies.\",\"type\":\"groupDiscussionGuides\",\"functionName\":\"createGroupDiscussionGuides\"},{\"No\":1092,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Prayer & Meditation Prompts\",\"Description\":\"Offering prompts to guide prayer and reflection on specific passages.\",\"type\":\"prayerMeditationPrompts\",\"functionName\":\"createPrayerMeditationPrompts\"},{\"No\":1094,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Scripture Memory Systems\",\"Description\":\"Utilizing techniques (e.g., flashcards, repetition, visualization) to memorize verses and passages.\",\"type\":\"scriptureMemorySystems\",\"functionName\":\"createScriptureMemorySystems\"},{\"No\":1095,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Scripture Writing\",\"Description\":\"Copying verses or passages by hand to aid in memorization and meditation.\",\"type\":\"scriptureWriting\",\"functionName\":\"createScriptureWriting\"},{\"No\":1096,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Bible Journaling Prompts\",\"Description\":\"Providing prompts to encourage creative and reflective journaling about specific verses or themes.\",\"type\":\"bibleJournalingPrompts\",\"functionName\":\"createBibleJournalingPrompts\"},{\"No\":1104,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Social Justice & Advocacy Study\",\"Description\":\"Examining the Bible's teachings on social justice and exploring ways to apply them today.\",\"type\":\"socialJusticeAdvocacyStudy\",\"functionName\":\"createSocialJusticeAdvocacyStudy\"},{\"No\":1105,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Environmental Stewardship Study\",\"Description\":\"Exploring the Bible's call to care for creation and promote sustainability.\",\"type\":\"environmentalStewardshipStudy\",\"functionName\":\"createEnvironmentalStewardshipStudy\"},{\"No\":1107,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Bible-Based Leadership Development\",\"Description\":\"Studying biblical principles of leadership and applying them to personal and professional growth.\",\"type\":\"bibleBasedLeadershipDevelopment\",\"functionName\":\"createBibleBasedLeadershipDevelopment\"},{\"No\":1108,\"Category\":\"Bible Study - Essential Foundations\",\"Format\":\"Bible-Based Financial Stewardship\",\"Description\":\"Learning about biblical principles of money management and generosity.\",\"type\":\"bibleBasedFinancialStewardship\",\"functionName\":\"createBibleBasedFinancialStewardship\"},\n{\"No\":1002,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Interactive Activities\",\"Description\":\"Using games, crafts, and role-playing to make learning fun.\",\"type\":\"interactiveActivity\",\"functionName\":\"createInteractiveActivity\"},{\"No\":1006,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Creative Expression\",\"Description\":\"Using art, music, and drama to creatively express biblical truths.\",\"type\":\"creativeExpression\",\"functionName\":\"createCreativeExpression\"},{\"No\":1052,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Comparative Translation Reading\",\"Description\":\"Comparing different translations to gain deeper understanding.\",\"type\":\"comparativeTranslationReading\",\"functionName\":\"createComparativeTranslationReading\"},{\"No\":1053,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Cultural & Social Reading\",\"Description\":\"Exploring customs, traditions, and social practices in context.\",\"type\":\"culturalSocialReading\",\"functionName\":\"createCulturalSocialReading\"},{\"No\":1054,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Geographical Reading\",\"Description\":\"Studying locations and tracing journeys mentioned in the Bible.\",\"type\":\"geographicalReading\",\"functionName\":\"createGeographicalReading\"},{\"No\":1056,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Verse Mapping\",\"Description\":\"Detailed analysis of a verse, including cross-references and context.\",\"type\":\"verseMapping\",\"functionName\":\"createVerseMapping\"},{\"No\":1057,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Topical Study\",\"Description\":\"In-depth exploration of a specific theme across the Bible.\",\"type\":\"topicalStudy\",\"functionName\":\"createTopicalStudy\"},{\"No\":1058,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Character Study\",\"Description\":\"Focusing on the life and lessons of a particular biblical figure.\",\"type\":\"characterStudy\",\"functionName\":\"createCharacterStudy\"},{\"No\":1059,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Inductive Study\",\"Description\":\"Observation, interpretation, and application of a passage.\",\"type\":\"inductiveStudy\",\"functionName\":\"createInductiveStudy\"},{\"No\":1060,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"SOAP Method\",\"Description\":\"Scripture, Observation, Application, and Prayer approach.\",\"type\":\"sOAPMethod\",\"functionName\":\"createSOAPMethod\"},{\"No\":1065,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Word Study\",\"Description\":\"Examining the original meaning and usage of specific words.\",\"type\":\"wordStudy\",\"functionName\":\"createWordStudy\"},{\"No\":1069,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Bible Study Games\",\"Description\":\"Using games to reinforce knowledge and make learning enjoyable.\",\"type\":\"bibleStudyGames\",\"functionName\":\"createBibleStudyGames\"},{\"No\":1070,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Group Bible Projects\",\"Description\":\"Collaborating on creative projects inspired by the Bible.\",\"type\":\"groupBibleProjects\",\"functionName\":\"createGroupBibleProjects\"},{\"No\":1072,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Story Format\",\"Description\":\"Exploring biblical themes and characters through fictional narratives.\",\"type\":\"bibleStoryFormat\",\"functionName\":\"createBibleStoryFormat\"},{\"No\":1080,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Concordance Study\",\"Description\":\"Using a concordance to explore the various contexts in which a specific word or phrase is used throughout the Bible.\",\"type\":\"concordanceStudy\",\"functionName\":\"createConcordanceStudy\"},{\"No\":1082,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Historical Context Study\",\"Description\":\"Researching the cultural, political, and social backdrop of specific events or periods in the Bible.\",\"type\":\"historicalContextStudy\",\"functionName\":\"createHistoricalContextStudy\"},{\"No\":1090,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Gamified Bible Quizzes\",\"Description\":\"Making learning fun and interactive with quizzes and challenges.\",\"type\":\"gamifiedBibleQuizzes\",\"functionName\":\"createGamifiedBibleQuizzes\"},{\"No\":1091,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Bible-Based Creative Writing\",\"Description\":\"Encouraging users to express their understanding through creative writing inspired by the Bible.\",\"type\":\"bibleBasedCreativeWriting\",\"functionName\":\"createBibleBasedCreativeWriting\"},{\"No\":1093,\"Category\":\"Bible Study - Interactive Exploration\",\"Format\":\"Social Sharing & Community Building\",\"Description\":\"Enabling users to connect with others for shared learning and encouragement.\",\"type\":\"socialSharingCommunityBuilding\",\"functionName\":\"createSocialSharingCommunityBuilding\"}];\n\n},{}],26:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAssistiveTechnologyTools = createAssistiveTechnologyTools;\nexports.createGraphicOrganizers = createGraphicOrganizers;\nexports.createHandsOnActivities = createHandsOnActivities;\nexports.createOralLanguageBasedActivities = createOralLanguageBasedActivities;\nexports.createProfessionalDevelopmentResources = createProfessionalDevelopmentResources;\nexports.createRolePlayingSimulations = createRolePlayingSimulations;\nexports.createSocialStories = createSocialStories;\nfunction createAssistiveTechnologyTools(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var toolsList = document.createElement(\"ul\");\n toolsList.classList.add(\"list\");\n contentData.tools.forEach(function (tool) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(tool.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(tool.description, \"</p>\\n \").concat(tool.examples && tool.examples.length > 0 ? \"<ul class=\\\"list\\\">\".concat(tool.examples.map(function (example) {\n return \"<li>\".concat(example, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n \").concat(tool.benefits && tool.benefits.length > 0 ? \"<ul class=\\\"list\\\">\".concat(tool.benefits.map(function (benefit) {\n return \"<li>\".concat(benefit, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n \");\n toolsList.appendChild(listItem);\n });\n contentArea.appendChild(toolsList);\n}\n\nfunction createHandsOnActivities(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var activitiesList = document.createElement(\"ul\");\n activitiesList.classList.add(\"list\");\n contentData.activities.forEach(function (activity) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(activity.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(activity.description, \"</p>\\n \").concat(activity.materials && activity.materials.length > 0 ? \"<ul class=\\\"list\\\">\".concat(activity.materials.map(function (material) {\n return \"<li>\".concat(material, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n <ol class=\\\"list\\\">\\n \").concat(activity.instructions.map(function (instruction) {\n return \"<li>\".concat(instruction, \"</li>\");\n }).join(\"\"), \"\\n </ol>\\n \");\n activitiesList.appendChild(listItem);\n });\n contentArea.appendChild(activitiesList);\n}\n\nfunction createGraphicOrganizers(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var organizersList = document.createElement(\"ul\");\n organizersList.classList.add(\"list\");\n contentData.organizers.forEach(function (organizer) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(organizer.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(organizer.description, \"</p>\\n \").concat(organizer.examples && organizer.examples.length > 0 ? \"<ul class=\\\"list\\\">\".concat(organizer.examples.map(function (example) {\n return \"<li>\".concat(example, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n \");\n organizersList.appendChild(listItem);\n });\n contentArea.appendChild(organizersList);\n}\n\nfunction createRolePlayingSimulations(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var activitiesList = document.createElement(\"ul\");\n activitiesList.classList.add(\"list\");\n contentData.activities.forEach(function (activity) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(activity.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(activity.description, \"</p>\\n \").concat(activity.roles && activity.roles.length > 0 ? \"<ul class=\\\"list\\\">\".concat(activity.roles.map(function (role) {\n return \"<li>\".concat(role, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n <ul class=\\\"list\\\">\\n \").concat(activity.scenarios.map(function (scenario) {\n return \"<li>\".concat(scenario, \"</li>\");\n }).join(\"\"), \"\\n </ul>\\n \").concat(activity.outcomes && activity.outcomes.length > 0 ? \"<ul class=\\\"list\\\">\".concat(activity.outcomes.map(function (outcome) {\n return \"<li>\".concat(outcome, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n \");\n activitiesList.appendChild(listItem);\n });\n contentArea.appendChild(activitiesList);\n}\n\nfunction createOralLanguageBasedActivities(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var activitiesList = document.createElement(\"ul\");\n activitiesList.classList.add(\"list\");\n contentData.activities.forEach(function (activity) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(activity.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(activity.description, \"</p>\\n <ol class=\\\"list\\\">\\n \").concat(activity.instructions.map(function (instruction) {\n return \"<li>\".concat(instruction, \"</li>\");\n }).join(\"\"), \"\\n </ol>\\n \").concat(activity.examples && activity.examples.length > 0 ? \"<ul class=\\\"list\\\">\".concat(activity.examples.map(function (example) {\n return \"<li>\".concat(example, \"</li>\");\n }).join(\"\"), \"</ul>\") : '', \"\\n \");\n activitiesList.appendChild(listItem);\n });\n contentArea.appendChild(activitiesList);\n}\n\nfunction createProfessionalDevelopmentResources(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var resourcesList = document.createElement(\"ul\");\n resourcesList.classList.add(\"list\");\n contentData.resources.forEach(function (resource) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(resource.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(resource.description, \"</p>\\n <a href=\\\"\").concat(resource.link, \"\\\" target=\\\"_blank\\\">\").concat(resource.link, \"</a> \\n \");\n resourcesList.appendChild(listItem);\n });\n contentArea.appendChild(resourcesList);\n}\n\nfunction createSocialStories(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var storiesList = document.createElement(\"ul\");\n storiesList.classList.add(\"list\");\n contentData.stories.forEach(function (story) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(story.title, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(story.description, \"</p>\\n <ul class=\\\"list\\\">\\n \").concat(story.scenarios.map(function (scenario) {\n return \"<li>\".concat(scenario, \"</li>\");\n }).join(\"\"), \"\\n </ul>\\n \");\n storiesList.appendChild(listItem);\n });\n contentArea.appendChild(storiesList);\n}\n\n},{}],27:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createLesson = createLesson;\nvar _SharedScript = require(\"./SharedScript.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction createLesson(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n\n if (!contentData || !contentData.type) {\n console.error(\"Invalid or missing data for lesson generation.\");\n var feedbackArea = feedbackAreaId ? document.getElementById(feedbackAreaId) : contentArea;\n feedbackArea.innerHTML = \"<p class='error-message'>Error loading lesson. Please try again.</p>\";\n return;\n }\n\n var formatData = newTTableData.find(function (item) {\n return item.type === contentData.type;\n });\n if (!formatData) {\n console.error(\"Format not found in newTTableData for type: \".concat(contentData.type));\n return;\n }\n var instructionalModel = formatData.Format;\n var functionName = formatData.functionName;\n\n if (instructional_model_functions.hasOwnProperty(functionName)) {\n instructional_model_functions[functionName](contentData, contentArea);\n } else {\n console.error(\"Function not found for instructional model: \".concat(instructionalModel));\n contentArea.innerHTML = \"<p class=\\\"error-message\\\">Unsupported instructional model: \".concat(instructionalModel, \"</p>\");\n }\n}\n\nvar instructional_model_functions = {\n createDirectInstructionLesson: function createDirectInstructionLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Introduction\", contentData.introduction);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Content Presentation\", contentData.contentPresentation);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Guided Practice\", contentData.guidedPractice, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Independent Practice\", contentData.independentPractice, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Closure\", contentData.closure);\n },\n createInquiryBasedLearningLesson: function createInquiryBasedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Question/Problem\", contentData.questionOrProblem);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Investigation\", contentData.investigation);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Discussion\", contentData.discussion);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Conclusion & Reflection\", contentData.conclusion);\n },\n createProjectBasedLearningLesson: function createProjectBasedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Driving Question\", contentData.drivingQuestion);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Project Steps\", contentData.projectSteps, 'ol');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Resources\", contentData.resources, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createFlippedClassroomLesson: function createFlippedClassroomLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Pre-Class Preparation\", contentData.preClassPreparation, 'ul', function (item) {\n var listItem = document.createElement('li');\n if (_typeof(item) === 'object' && item !== null && item.resourceType && item.resourceLinkOrDescription) {\n var typeText = item.resourceType.charAt(0).toUpperCase() + item.resourceType.slice(1) + \": \";\n if (item.resourceLinkOrDescription.startsWith('http')) {\n var resourceLink = document.createElement('a');\n resourceLink.href = item.resourceLinkOrDescription;\n resourceLink.textContent = \"Open \".concat(item.resourceType);\n resourceLink.target = \"_blank\"; \n\n listItem.appendChild(document.createTextNode(typeText)); \n listItem.appendChild(resourceLink);\n } else {\n listItem.textContent = typeText + item.resourceLinkOrDescription;\n }\n } else {\n listItem.textContent = \"Invalid resource entry\";\n }\n return listItem;\n });\n (0, _SharedScript.addLessonSection)(lessonContainer, \"In-Class Activities\", contentData.inClassActivities, 'ul');\n\n if (contentData.postClassReflection) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Post-Class Reflection\", [contentData.postClassReflection], 'p');\n }\n },\n createCooperativeLearningLesson: function createCooperativeLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Group Formation\", contentData.groupFormation);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Collaborative Tasks\", contentData.collaborativeTasks, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Group Roles\", contentData.groupRoles, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Interaction Guidelines\", contentData.interactionGuidelines);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createDifferentiatedInstructionLesson: function createDifferentiatedInstructionLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var tieredActivitiesContainer = document.createElement('div');\n tieredActivitiesContainer.classList.add('tiered-activities');\n contentData.tieredActivities.forEach(function (tier) {\n var tierSection = document.createElement('section');\n tierSection.classList.add('tier', tier.tier);\n var tierTitle = document.createElement('h4');\n tierTitle.textContent = \"Tier: \".concat(tier.tier.charAt(0).toUpperCase() + tier.tier.slice(1));\n tierSection.appendChild(tierTitle);\n var activityParagraph = document.createElement('p');\n activityParagraph.textContent = tier.activity;\n tierSection.appendChild(activityParagraph);\n tieredActivitiesContainer.appendChild(tierSection);\n });\n lessonContainer.appendChild(tieredActivitiesContainer);\n\n var assessmentStrategiesContainer = document.createElement('div');\n assessmentStrategiesContainer.classList.add('assessment-strategies');\n for (var tier in contentData.assessmentStrategies) {\n var strategyParagraph = document.createElement('p');\n strategyParagraph.textContent = \"Assessment for \".concat(tier, \" Tier: \").concat(contentData.assessmentStrategies[tier]);\n assessmentStrategiesContainer.appendChild(strategyParagraph);\n }\n lessonContainer.appendChild(assessmentStrategiesContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Flexible Grouping\", contentData.flexibleGrouping);\n },\n createStationRotationLesson: function createStationRotationLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Overview\", contentData.overview);\n\n var stationsContainer = document.createElement('div');\n stationsContainer.classList.add('stations-container');\n contentData.stations.forEach(function (station) {\n var stationSection = document.createElement('section');\n stationSection.classList.add('station');\n var stationTitle = document.createElement('h4');\n stationTitle.textContent = station.stationName;\n stationSection.appendChild(stationTitle);\n (0, _SharedScript.addLessonSection)(stationSection, \"Learning Objectives\", station.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(stationSection, \"Activity\", station.activity);\n stationsContainer.appendChild(stationSection);\n });\n lessonContainer.appendChild(stationsContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Rotation Instructions\", contentData.rotationInstructions);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Time Management\", contentData.timeManagement);\n },\n createExplicitInstructionLesson: function createExplicitInstructionLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Introduction\", contentData.introduction);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var explanationsContainer = document.createElement('div');\n explanationsContainer.classList.add('explanations-container');\n for (var i = 0; i < contentData.explanations.length; i++) {\n var explanationSection = document.createElement('section');\n explanationSection.classList.add('explanation');\n var explanationTitle = document.createElement('h4');\n explanationTitle.textContent = \"Explanation \".concat(i + 1);\n explanationSection.appendChild(explanationTitle);\n var explanationParagraph = document.createElement('p');\n explanationParagraph.textContent = contentData.explanations[i];\n explanationSection.appendChild(explanationParagraph);\n if (contentData.examples && contentData.examples[i]) {\n var exampleParagraph = document.createElement('p');\n exampleParagraph.textContent = \"Example: \".concat(contentData.examples[i]);\n explanationSection.appendChild(exampleParagraph);\n }\n explanationsContainer.appendChild(explanationSection);\n }\n lessonContainer.appendChild(explanationsContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Guided Practice\", contentData.guidedPractice, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Independent Practice\", contentData.independentPractice, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createBlendedLearningLesson: function createBlendedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var onlineActivitiesContainer = document.createElement('div');\n onlineActivitiesContainer.classList.add('online-activities');\n contentData.onlineActivities.forEach(function (activity) {\n var activitySection = document.createElement('section');\n activitySection.classList.add('activity');\n var activityTitle = document.createElement('h4');\n activityTitle.textContent = activity.activity;\n activitySection.appendChild(activityTitle);\n var platformParagraph = document.createElement('p');\n platformParagraph.textContent = \"Platform/Tool: \".concat(activity.platformOrTool);\n activitySection.appendChild(platformParagraph);\n var instructionsParagraph = document.createElement('p');\n instructionsParagraph.textContent = \"Instructions: \".concat(activity.instructions);\n activitySection.appendChild(instructionsParagraph);\n onlineActivitiesContainer.appendChild(activitySection);\n });\n lessonContainer.appendChild(onlineActivitiesContainer);\n\n var offlineActivitiesContainer = document.createElement('div');\n offlineActivitiesContainer.classList.add('offline-activities');\n contentData.offlineActivities.forEach(function (activity) {\n var activitySection = document.createElement('section');\n activitySection.classList.add('activity');\n var activityTitle = document.createElement('h4');\n activityTitle.textContent = activity.activity;\n activitySection.appendChild(activityTitle);\n if (activity.materials && activity.materials.length > 0) {\n var materialsList = document.createElement('ul');\n activity.materials.forEach(function (material) {\n var materialItem = document.createElement('li');\n materialItem.textContent = material;\n materialsList.appendChild(materialItem);\n });\n activitySection.appendChild(materialsList);\n }\n var instructionsParagraph = document.createElement('p');\n instructionsParagraph.textContent = \"Instructions: \".concat(activity.instructions);\n activitySection.appendChild(instructionsParagraph);\n offlineActivitiesContainer.appendChild(activitySection);\n });\n lessonContainer.appendChild(offlineActivitiesContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createGamificationLesson: function createGamificationLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var gameElementsContainer = document.createElement('div');\n gameElementsContainer.classList.add('game-elements');\n contentData.gameElements.forEach(function (element) {\n var elementSection = document.createElement('section');\n elementSection.classList.add('game-element');\n var elementTitle = document.createElement('h4');\n elementTitle.textContent = \"Game Element: \".concat(element.element);\n elementSection.appendChild(elementTitle);\n var descriptionParagraph = document.createElement('p');\n descriptionParagraph.textContent = \"Description: \".concat(element.description);\n elementSection.appendChild(descriptionParagraph);\n var connectionParagraph = document.createElement('p');\n connectionParagraph.textContent = \"Connection to Content: \".concat(element.howItRelatesToContent);\n elementSection.appendChild(connectionParagraph);\n gameElementsContainer.appendChild(elementSection);\n });\n lessonContainer.appendChild(gameElementsContainer);\n\n if (contentData.assessment) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n }\n },\n createCaseBasedLearningLesson: function createCaseBasedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Case Scenario\", contentData.caseScenario);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Guiding Questions\", contentData.guidingQuestions, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Discussion Prompts\", contentData.discussionPrompts, 'ul');\n },\n\n createTechnologyEnhancedLearningLesson: function createTechnologyEnhancedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var techToolsContainer = document.createElement('div');\n techToolsContainer.classList.add('tech-tools');\n contentData.technologyTools.forEach(function (tool) {\n var toolSection = document.createElement('section');\n toolSection.classList.add('tech-tool');\n var toolTitle = document.createElement('h4');\n toolTitle.textContent = \"Tool: \".concat(tool.toolName);\n toolSection.appendChild(toolTitle);\n var purposeParagraph = document.createElement('p');\n purposeParagraph.textContent = \"Purpose: \".concat(tool.purpose);\n toolSection.appendChild(purposeParagraph);\n techToolsContainer.appendChild(toolSection);\n });\n lessonContainer.appendChild(techToolsContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Activities\", contentData.activities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createUniversalDesignForLearningLesson: function createUniversalDesignForLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Multiple Means of Representation\", contentData.representation, 'ul', function (item) {\n var listItem = document.createElement('li');\n listItem.innerHTML = \"<strong>\".concat(item.method, \":</strong> \").concat(item.description);\n return listItem;\n });\n\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Multiple Means of Engagement\", contentData.engagement, 'ul', function (item) {\n var listItem = document.createElement('li');\n listItem.innerHTML = \"<strong>\".concat(item.strategy, \":</strong> \").concat(item.description);\n return listItem;\n });\n\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Multiple Means of Action & Expression\", contentData.actionAndExpression, 'ul', function (item) {\n var listItem = document.createElement('li');\n listItem.innerHTML = \"<strong>\".concat(item.option, \":</strong> \").concat(item.description);\n return listItem;\n });\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createCulturallyResponsiveTeachingLesson: function createCulturallyResponsiveTeachingLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Cultural Connections\", contentData.culturalConnections, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Inclusive Classroom Strategies\", contentData.inclusiveClassroomStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Promoting Cultural Understanding\", contentData.promotingCulturalUnderstanding, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createCompetencyBasedEducationLesson: function createCompetencyBasedEducationLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Competencies\", contentData.competencies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Resources\", contentData.learningResources, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Activities\", contentData.activities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Formative Assessments\", contentData.formativeAssessments, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Summative Assessment\", contentData.summativeAssessment);\n },\n createMasteryLearningLesson: function createMasteryLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Key Concepts/Skills\", contentData.keyConcepts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Instructional Activities\", contentData.instructionalActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Formative Assessments\", contentData.formativeAssessments, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Remediation Activities\", contentData.remediationActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Summative Assessment\", contentData.summativeAssessment);\n },\n createSocialEmotionalLearningLesson: function createSocialEmotionalLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"SEL Competencies\", contentData.selCompetencies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Activities\", contentData.activities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Discussion Prompts\", contentData.discussionPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Reflection Prompts\", contentData.reflectionPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createTraumaInformedTeachingLesson: function createTraumaInformedTeachingLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Safe Environment Strategies\", contentData.safeEnvironmentStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Relationship-Building Activities\", contentData.relationshipBuildingActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Emotional Regulation Strategies\", contentData.emotionalRegulationStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Trigger Awareness and Response\", contentData.triggerAwarenessAndResponse);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createUnderstandingByDesignLesson: function createUnderstandingByDesignLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Desired Results (Learning Goals)\", contentData.desiredResults, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment Evidence\", contentData.assessmentEvidence, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Activities\", contentData.learningActivities, 'ul');\n },\n createSamrModelLesson: function createSamrModelLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var techIntegrationContainer = document.createElement('div');\n techIntegrationContainer.classList.add('tech-integration');\n contentData.technologyIntegration.forEach(function (integration) {\n var integrationSection = document.createElement('section');\n integrationSection.classList.add('integration');\n var levelHeading = document.createElement('h4');\n levelHeading.textContent = \"SAMR Level: \".concat(integration.samrLevel);\n integrationSection.appendChild(levelHeading);\n var toolParagraph = document.createElement('p');\n toolParagraph.textContent = \"Technology Tool: \".concat(integration.technologyTool);\n integrationSection.appendChild(toolParagraph);\n var howUsedParagraph = document.createElement('p');\n howUsedParagraph.textContent = \"How Used: \".concat(integration.howUsed);\n integrationSection.appendChild(howUsedParagraph);\n techIntegrationContainer.appendChild(integrationSection);\n });\n lessonContainer.appendChild(techIntegrationContainer);\n\n if (contentData.assessment) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n }\n },\n createTpackLesson: function createTpackLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Technology Tools\", contentData.technologyTools, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Pedagogical Approaches\", contentData.pedagogicalApproaches, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Content Connections\", contentData.contentConnections);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createConstructivismLesson: function createConstructivismLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var activitiesContainer = document.createElement('div');\n activitiesContainer.classList.add('activities-container');\n contentData.activities.forEach(function (activity) {\n var activitySection = document.createElement('section');\n activitySection.classList.add('activity');\n var activityTitle = document.createElement('h4');\n activityTitle.textContent = activity.activity;\n activitySection.appendChild(activityTitle);\n var constructionParagraph = document.createElement('p');\n constructionParagraph.textContent = \"How it Promotes Construction: \".concat(activity.howItPromotesConstruction);\n activitySection.appendChild(constructionParagraph);\n activitiesContainer.appendChild(activitySection);\n });\n lessonContainer.appendChild(activitiesContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Reflection Prompts\", contentData.reflectionPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createBehaviorismLesson: function createBehaviorismLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Observable Behaviors\", contentData.observableBehaviors, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Positive Reinforcement\", contentData.positiveReinforcement, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Practice Activities\", contentData.practiceActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Feedback Strategies\", contentData.feedbackStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createMultipleIntelligencesLesson: function createMultipleIntelligencesLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var activitiesContainer = document.createElement('div');\n activitiesContainer.classList.add('activities-container');\n contentData.activities.forEach(function (activity) {\n var activitySection = document.createElement('section');\n activitySection.classList.add('activity');\n var intelligenceTypeHeading = document.createElement('h4');\n intelligenceTypeHeading.textContent = \"Intelligence Type: \".concat(activity.intelligenceType);\n activitySection.appendChild(intelligenceTypeHeading);\n var activityDescription = document.createElement('p');\n activityDescription.textContent = activity.activity;\n activitySection.appendChild(activityDescription);\n activitiesContainer.appendChild(activitySection);\n });\n lessonContainer.appendChild(activitiesContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createGrowthMindsetLesson: function createGrowthMindsetLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Activities\", contentData.activities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Discussion Prompts\", contentData.discussionPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Reflection Prompts\", contentData.reflectionPrompts, 'ul');\n },\n createCognitivismLesson: function createCognitivismLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Memory Strategies\", contentData.memoryStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Attention Strategies\", contentData.attentionStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Problem-Solving Activities\", contentData.problemSolvingActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n createHumanismLesson: function createHumanismLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Positive Environment Strategies\", contentData.positiveEnvironmentStrategies, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Student Choice Activities\", contentData.studentChoiceActivities, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Personal Growth Prompts\", contentData.personalGrowthPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n },\n\n createPersonalizedLearningLesson: function createPersonalizedLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n\n var resourcesContainer = document.createElement('div');\n resourcesContainer.classList.add('learning-resources');\n contentData.learningResources.forEach(function (resource) {\n var resourceSection = document.createElement('section');\n resourceSection.classList.add('resource');\n var typeParagraph = document.createElement('p');\n typeParagraph.textContent = \"Resource Type: \".concat(resource.resourceType);\n resourceSection.appendChild(typeParagraph);\n var descriptionOrLink = document.createElement('p');\n if (resource.resourceType === 'video' || resource.resourceType === 'article') {\n var link = document.createElement('a');\n link.href = resource.descriptionOrLink;\n link.textContent = resource.descriptionOrLink;\n descriptionOrLink.appendChild(link);\n } else {\n descriptionOrLink.textContent = \"Description: \".concat(resource.descriptionOrLink);\n }\n resourceSection.appendChild(descriptionOrLink);\n var learningStylesList = document.createElement('ul');\n resource.learningStyles.forEach(function (style) {\n var styleItem = document.createElement('li');\n styleItem.textContent = style;\n learningStylesList.appendChild(styleItem);\n });\n resourceSection.appendChild(learningStylesList);\n resourcesContainer.appendChild(resourceSection);\n });\n lessonContainer.appendChild(resourcesContainer);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Formative Assessments\", contentData.formativeAssessments, 'ul');\n },\n createExperientialLearningLesson: function createExperientialLearningLesson(contentData, lessonContainer) {\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Learning Objectives\", contentData.learningObjectives, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Hands-On Activity\", contentData.handsOnActivity);\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Reflection Prompts\", contentData.reflectionPrompts, 'ul');\n (0, _SharedScript.addLessonSection)(lessonContainer, \"Assessment\", contentData.assessment);\n }\n};\n\n\n},{\"./SharedScript.js\":30}],28:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAdjustableText = createAdjustableText;\nexports.createBookChapter = createBookChapter;\nexports.createChooseYourOwnAdventure = createChooseYourOwnAdventure;\nexports.createCulturalComparison = createCulturalComparison;\nexports.createDebateScript = createDebateScript;\nexports.createEducationalShortStory = createEducationalShortStory;\nexports.createEthicalDilemma = createEthicalDilemma;\nexports.createGuidedReadingExercises = createGuidedReadingExercises;\nexports.createGuidedWritingPrompts = createGuidedWritingPrompts;\nexports.createHistoricalDocument = createHistoricalDocument;\nexports.createHistoricalWhatIf = createHistoricalWhatIf;\nexports.createInformativeArticle = createInformativeArticle;\nexports.createInteractiveMathGames = createInteractiveMathGames;\nexports.createInteractivePhonicsGames = createInteractivePhonicsGames;\nexports.createInteractiveReadingComprehension = createInteractiveReadingComprehension;\nexports.createInteractiveVocabularyMaps = createInteractiveVocabularyMaps;\nexports.createLabReportTemplate = createLabReportTemplate;\nexports.createLectureTranscript = createLectureTranscript;\nexports.createLiteraryCritique = createLiteraryCritique;\nexports.createMapBasedActivity = createMapBasedActivity;\nexports.createMathWordProblemExplanation = createMathWordProblemExplanation;\nexports.createMultiSensoryReadingActivities = createMultiSensoryReadingActivities;\nexports.createMultiSensoryVocabularyBuilder = createMultiSensoryVocabularyBuilder;\nexports.createNewspaperArticle = createNewspaperArticle;\nexports.createPhonicsGame = createPhonicsGame;\nexports.createPoetryAnalysis = createPoetryAnalysis;\nexports.createReadAloudFunctionality = createReadAloudFunctionality;\nexports.createScienceNewsArticles = createScienceNewsArticles;\nexports.createScienceVocabularyGame = createScienceVocabularyGame;\nexports.createScientificDiagram = createScientificDiagram;\nexports.createScientificIllustration = createScientificIllustration;\nexports.createScientificInvestigation = createScientificInvestigation;\nexports.createScientificMethodPractice = createScientificMethodPractice;\nexports.createScientificResearchSummary = createScientificResearchSummary;\nexports.createSocialScienceExperiment = createSocialScienceExperiment;\nexports.createSpellingPractice = createSpellingPractice;\nexports.createSpellingPracticeVer2 = createSpellingPracticeVer2;\nexports.createStorySequencing = createStorySequencing;\nexports.createVisualMathProblemSolving = createVisualMathProblemSolving;\nexports.createVisualStorytelling = createVisualStorytelling;\nexports.createVocabularyBuildingExercises = createVocabularyBuildingExercises;\nvar _SharedScript = require(\"./SharedScript.js\");\nfunction createInformativeArticle(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, null, contentData.introduction);\n\n contentData.body.forEach(function (section) {\n displayText(contentArea, section.heading, section.content);\n });\n\n displayText(contentArea, \"Conclusion\", contentData.conclusion);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createBookChapter(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Introduction\", contentData.introduction);\n\n contentData.sections.forEach(function (section) {\n displayText(contentArea, section.heading, section.content);\n });\n\n displayText(contentArea, \"Summary\", contentData.summary);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createLectureTranscript(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Introduction\", contentData.introduction);\n\n contentData.sections.forEach(function (section) {\n displayText(contentArea, section.heading, section.content);\n });\n\n displayText(contentArea, \"Conclusion\", contentData.conclusion);\n\n if (contentData.questions && contentData.questions.length > 0) {\n displayList(contentArea, \"Discussion Questions\", contentData.questions);\n }\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createHistoricalDocument(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Document Type\", contentData.documentType);\n displayText(contentArea, \"Author\", contentData.author);\n displayText(contentArea, \"Date\", contentData.date);\n displayText(contentArea, \"Recipient\", contentData.recipient);\n\n displayText(contentArea, \"Content\", contentData.content);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScientificResearchSummary(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Key Findings\", contentData.keyFindings);\n\n displayText(contentArea, \"Methodology\", contentData.methodology);\n\n displayText(contentArea, \"Implications\", contentData.implications);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createPoetryAnalysis(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Interpretation\", contentData.interpretation);\n\n var poeticDevices = contentData.poeticDevices.map(function (device) {\n return \"<strong>\".concat(device.device, \"</strong>: \").concat(device.explanation);\n });\n displayList(contentArea, \"Poetic Devices\", poeticDevices);\n\n displayText(contentArea, \"Structure and Rhythm\", contentData.structureAndRhythm);\n\n displayText(contentArea, \"Language Analysis\", contentData.languageAnalysis);\n\n displayList(contentArea, \"Discussion Prompts\", contentData.discussionPrompts);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createEducationalShortStory(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Story\", contentData.story, 'p');\n}\n\nfunction createMathWordProblemExplanation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Problem\", contentData.problem);\n\n contentData.explanation.forEach(function (step) {\n displayText(contentArea, \"Step \".concat(step.step), step.description);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createVocabularyBuildingExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, \"Vocabulary List\", contentData.vocabularyList);\n\n contentData.exercises.forEach(function (exercise) {\n displayText(contentArea, exercise.exerciseType, exercise.instructions);\n displayText(contentArea, null, exercise.content);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createChooseYourOwnAdventure(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Introduction\", contentData.introduction);\n\n contentData.scenes.forEach(function (scene) {\n displayText(contentArea, \"Scene: \".concat(scene.sceneId), scene.text);\n var choices = scene.choices.map(function (choice) {\n return \"\".concat(choice.text, \" (Next: \").concat(choice.nextSceneId, \")\");\n });\n displayList(contentArea, \"Choices\", choices);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createLiteraryCritique(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Title\", contentData.title);\n displayText(contentArea, \"Author\", contentData.author);\n\n displayList(contentArea, \"Themes\", contentData.themes);\n\n var characterDescriptions = contentData.characters.map(function (character) {\n return \"\".concat(character.name, \": \").concat(character.analysis);\n });\n displayList(contentArea, \"Characters\", characterDescriptions);\n\n var literaryDevices = contentData.literaryDevices.map(function (device) {\n return \"\".concat(device.device, \": \").concat(device.analysis);\n });\n displayList(contentArea, \"Literary Devices\", literaryDevices);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createNewspaperArticle(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId); \n\n (0, _SharedScript.addLessonSection)(contentArea, \"Headline\", contentData.headline);\n (0, _SharedScript.addLessonSection)(contentArea, \"Byline\", contentData.byline);\n (0, _SharedScript.addLessonSection)(contentArea, \"Date\", contentData.date);\n\n (0, _SharedScript.addLessonSection)(contentArea, \"Lead\", contentData.lead);\n (0, _SharedScript.addLessonSection)(contentArea, \"Body\", contentData.body, 'p'); \n\n if (contentData.quotes && contentData.quotes.length > 0) {\n var formattedQuotes = contentData.quotes.map(function (quote) {\n return \"\\\"\".concat(quote.quoteText, \"\\\" - \").concat(quote.attribution);\n });\n (0, _SharedScript.addLessonSection)(contentArea, \"Quotes\", formattedQuotes, 'ul');\n }\n}\n\nfunction createDebateScript(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Debate Topic\", contentData.topic);\n\n var affirmativeArguments = contentData.affirmativeArguments.map(function (arg) {\n return \"\".concat(arg.point, \": \").concat(arg.evidence);\n });\n displayList(contentArea, \"Affirmative Arguments\", affirmativeArguments);\n\n var negativeArguments = contentData.negativeArguments.map(function (arg) {\n return \"\".concat(arg.point, \": \").concat(arg.evidence);\n });\n displayList(contentArea, \"Negative Arguments\", negativeArguments);\n\n var rebuttals = contentData.rebuttals.map(function (rebuttal) {\n return \"\".concat(rebuttal.side, \": \").concat(rebuttal.point, \" - \").concat(rebuttal.response);\n });\n displayList(contentArea, \"Rebuttals\", rebuttals);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createLabReportTemplate(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.sections.forEach(function (section) {\n displayText(contentArea, section.sectionName, section.instructions);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScientificInvestigation(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Research Question\", contentData.researchQuestion);\n\n displayText(contentArea, \"Hypothesis\", contentData.hypothesis);\n\n displayList(contentArea, \"Materials\", contentData.materials);\n\n displayList(contentArea, \"Procedure\", contentData.procedure);\n\n displayText(contentArea, \"Data Collection\", contentData.dataCollection);\n\n displayText(contentArea, \"Data Analysis\", contentData.dataAnalysis);\n\n displayText(contentArea, \"Conclusion\", contentData.conclusion);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScienceNewsArticles(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.articles.forEach(function (article) {\n displayText(contentArea, article.articleTitle, \"\".concat(article.summary, \" (Source: \").concat(article.source, \", Date: \").concat(article.publicationDate, \")\"));\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScientificDiagram(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Description\", contentData.description);\n\n displayList(contentArea, \"Labels\", contentData.labels);\n\n if (contentData.annotations && contentData.annotations.length > 0) {\n displayList(contentArea, \"Annotations\", contentData.annotations);\n }\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScientificMethodPractice(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayList(contentArea, \"Observation Prompts\", contentData.observationPrompts);\n\n displayText(contentArea, \"Hypothesis Template\", contentData.hypothesisTemplate);\n\n displayText(contentArea, \"Experiment Design Guidance\", contentData.experimentDesignGuidance);\n\n displayList(contentArea, \"Data Collection Prompts\", contentData.dataCollectionPrompts);\n\n displayText(contentArea, \"Data Analysis Guidance\", contentData.dataAnalysisGuidance);\n\n displayText(contentArea, \"Conclusion Template\", contentData.conclusionTemplate);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createSocialScienceExperiment(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Scenario\", contentData.scenario);\n\n var choices = contentData.choices.map(function (choice) {\n return \"\".concat(choice.choice, \": \").concat(choice.consequences);\n });\n displayList(contentArea, \"Choices and Consequences\", choices);\n\n displayList(contentArea, \"Reflection Prompts\", contentData.reflectionPrompts);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createCulturalComparison(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.cultures.forEach(function (culture) {\n displayText(contentArea, culture.cultureName, formatList(culture.keyAspects.map(function (aspect) {\n return [aspect.aspect, aspect.description];\n })));\n });\n\n displayText(contentArea, \"Comparative Analysis\", contentData.comparativeAnalysis);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createEthicalDilemma(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Scenario\", contentData.scenario);\n\n displayList(contentArea, \"Possible Actions\", contentData.possibleActions);\n\n displayList(contentArea, \"Discussion Prompts\", contentData.discussionPrompts);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createHistoricalWhatIf(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Original Event\", contentData.originalEvent);\n\n displayText(contentArea, \"Altered Event\", contentData.alteredEvent);\n\n displayList(contentArea, \"Potential Consequences\", contentData.potentialConsequences);\n\n displayList(contentArea, \"Discussion Prompts\", contentData.discussionPrompts);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createMapBasedActivity(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Map\", contentData.map);\n\n contentData.interactiveElements.forEach(function (element) {\n displayText(contentArea, \"Interactive Element: \".concat(element.type), \"Location: \".concat(element.location.join(', ')));\n displayText(contentArea, null, element.content);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScientificIllustration(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Description\", contentData.description);\n\n var labels = contentData.labels.map(function (label) {\n return \"Label: \".concat(label.label, \", Correct Position: \").concat(label.correctPosition.join(', '));\n });\n displayList(contentArea, \"Labels\", labels);\n\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createScienceVocabularyGame(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Game Title\", contentData.title);\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n displayText(contentArea, \"Game Content\", JSON.stringify(contentData.content, null, 2));\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createMultiSensoryVocabularyBuilder(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.vocabulary.forEach(function (vocab) {\n displayText(contentArea, \"Word\", vocab.word);\n\n var imageElement = document.createElement(\"img\");\n imageElement.src = vocab.image;\n imageElement.alt = \"Image representing \".concat(vocab.word);\n imageElement.classList.add(\"vocabulary-image\");\n contentArea.appendChild(imageElement);\n\n var audioElement = document.createElement(\"audio\");\n audioElement.controls = true;\n audioElement.src = vocab.audio;\n contentArea.appendChild(audioElement);\n\n vocab.activities.forEach(function (activity) {\n displayText(contentArea, \"Activity: \".concat(activity.activityType), activity.instructions);\n });\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createAdjustableText(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var textElement = document.createElement(\"p\");\n textElement.textContent = contentData.content;\n textElement.classList.add(\"adjustable-text\");\n contentArea.appendChild(textElement);\n\n var fontSize = document.createElement(\"input\");\n fontSize.type = \"range\";\n fontSize.min = \"12\";\n fontSize.max = \"48\";\n fontSize.value = contentData.options.fontSize;\n fontSize.addEventListener(\"input\", function () {\n textElement.style.fontSize = \"\".concat(fontSize.value, \"px\");\n });\n contentArea.appendChild(fontSize);\n var lineSpacing = document.createElement(\"input\");\n lineSpacing.type = \"range\";\n lineSpacing.min = \"1\";\n lineSpacing.max = \"3\";\n lineSpacing.value = contentData.options.lineSpacing;\n lineSpacing.addEventListener(\"input\", function () {\n textElement.style.lineHeight = lineSpacing.value;\n });\n contentArea.appendChild(lineSpacing);\n var letterSpacing = document.createElement(\"input\");\n letterSpacing.type = \"range\";\n letterSpacing.min = \"0\";\n letterSpacing.max = \"10\";\n letterSpacing.value = contentData.options.letterSpacing;\n letterSpacing.addEventListener(\"input\", function () {\n textElement.style.letterSpacing = \"\".concat(letterSpacing.value, \"px\");\n });\n contentArea.appendChild(letterSpacing);\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createReadAloudFunctionality(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n var textElement = document.createElement(\"p\");\n textElement.textContent = contentData.content;\n textElement.classList.add(\"read-aloud-text\");\n contentArea.appendChild(textElement);\n\n var audioElement = document.createElement(\"audio\");\n audioElement.controls = true;\n audioElement.src = contentData.audio;\n audioElement.addEventListener(\"timeupdate\", function () {\n });\n contentArea.appendChild(audioElement);\n\n if (contentData.speedControl) {\n var speedControl = document.createElement(\"input\");\n speedControl.type = \"range\";\n speedControl.min = \"0.5\";\n speedControl.max = \"2\";\n speedControl.step = \"0.1\";\n speedControl.value = \"1\";\n speedControl.addEventListener(\"input\", function () {\n audioElement.playbackRate = speedControl.value;\n });\n contentArea.appendChild(speedControl);\n }\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createPhonicsGame(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Game Title\", contentData.title);\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n contentData.phonicsElements.forEach(function (element) {\n displayText(contentArea, \"Phonics Element\", \"Letter Sound: \".concat(element.letterSound));\n\n var imageElement = document.createElement(\"img\");\n imageElement.src = element.image;\n imageElement.alt = \"Image for letter sound \".concat(element.letterSound);\n contentArea.appendChild(imageElement);\n\n var audioElement = document.createElement(\"audio\");\n audioElement.controls = true;\n audioElement.src = element.audio;\n contentArea.appendChild(audioElement);\n });\n\n contentData.interactiveComponents.forEach(function (component) {\n displayText(contentArea, component.componentType, component.details);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createSpellingPractice(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.activities.forEach(function (activity) {\n displayText(contentArea, \"Activity: \".concat(activity.activityType), activity.instructions);\n\n var letterList = activity.letters.join(\", \");\n displayText(contentArea, \"Letters\", letterList);\n\n if (activity.word) {\n displayText(contentArea, \"Word\", activity.word);\n }\n\n activity.interactiveElements.forEach(function (element) {\n displayText(contentArea, element.elementType, element.details);\n });\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createInteractiveVocabularyMaps(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.maps.forEach(function (map) {\n displayText(contentArea, \"Word\", map.word);\n\n var relatedConcepts = map.relatedConcepts.map(function (concept) {\n return \"\".concat(concept.concept, \" (\").concat(concept.image ? 'Image Included' : 'No Image', \")\");\n });\n displayList(contentArea, \"Related Concepts\", relatedConcepts);\n\n var mapElement = document.createElement(\"img\");\n mapElement.src = map.visualMap;\n mapElement.alt = \"Visual map for \".concat(map.word);\n mapElement.classList.add(\"vocabulary-map\");\n contentArea.appendChild(mapElement);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createStorySequencing(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n contentData.images.forEach(function (imageObj) {\n var imageElement = document.createElement(\"img\");\n imageElement.src = imageObj.image;\n imageElement.alt = imageObj.caption || \"Story image\";\n imageElement.classList.add(\"story-sequence-image\");\n contentArea.appendChild(imageElement);\n\n imageElement.draggable = true;\n imageElement.addEventListener(\"dragstart\", function (event) {\n event.dataTransfer.setData(\"text/plain\", imageObj.image);\n });\n\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createInteractiveReadingComprehension(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Reading Text\", contentData.content);\n\n contentData.questions.forEach(function (question) {\n displayText(contentArea, \"Question\", question.question);\n if (question.type === \"multipleChoice\") {\n question.options.forEach(function (option) {\n var label = document.createElement(\"label\");\n var input = document.createElement(\"input\");\n input.type = \"radio\";\n input.name = question.question;\n input.value = option;\n label.appendChild(input);\n label.appendChild(document.createTextNode(option));\n contentArea.appendChild(label);\n });\n } else if (question.type === \"trueFalse\") {\n [\"True\", \"False\"].forEach(function (option) {\n var label = document.createElement(\"label\");\n var input = document.createElement(\"input\");\n input.type = \"radio\";\n input.name = question.question;\n input.value = option;\n label.appendChild(input);\n label.appendChild(document.createTextNode(option));\n contentArea.appendChild(label);\n });\n } else if (question.type === \"shortAnswer\") {\n var input = document.createElement(\"input\");\n input.type = \"text\";\n contentArea.appendChild(input);\n }\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createInteractiveMathGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Game Title\", contentData.title);\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n contentData.games.forEach(function (game) {\n displayText(contentArea, game.gameType, \"Math Problems:\");\n\n game.mathProblems.forEach(function (problem) {\n displayText(contentArea, \"Problem\", problem.problem);\n\n var input = document.createElement(\"input\");\n input.type = \"text\";\n input.placeholder = \"Enter your answer\";\n contentArea.appendChild(input);\n });\n\n game.interactiveElements.forEach(function (element) {\n displayText(contentArea, \"Interactive Component: \".concat(element.elementType), element.details);\n });\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createGuidedWritingPrompts(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.prompts.forEach(function (prompt) {\n displayText(contentArea, \"Stage: \".concat(prompt.stage), prompt.instructions);\n\n if (prompt.examples && prompt.examples.length > 0) {\n displayList(contentArea, \"Examples\", prompt.examples);\n }\n\n var textarea = document.createElement(\"textarea\");\n textarea.placeholder = \"Write your response here...\";\n contentArea.appendChild(textarea);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createVisualStorytelling(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n if (contentData.tools.images) {\n displayText(contentArea, \"Add Images\", \"Click to upload or select images to enhance your story.\");\n var imageInput = document.createElement(\"input\");\n imageInput.type = \"file\";\n imageInput.accept = \"image/*\";\n imageInput.multiple = true;\n contentArea.appendChild(imageInput);\n }\n if (contentData.tools.audio) {\n displayText(contentArea, \"Add Audio\", \"Click to upload or record audio to complement your story.\");\n var audioInput = document.createElement(\"input\");\n audioInput.type = \"file\";\n audioInput.accept = \"audio/*\";\n contentArea.appendChild(audioInput);\n }\n if (contentData.tools.text) {\n displayText(contentArea, \"Add Text\", \"Write your story below:\");\n var textarea = document.createElement(\"textarea\");\n textarea.placeholder = \"Write your story here...\";\n contentArea.appendChild(textarea);\n }\n if (contentData.tools.sharingOptions) {\n displayText(contentArea, \"Sharing Options\", \"After creating your story, share it with others.\");\n }\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createSpellingPracticeVer2(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.activities.forEach(function (activity) {\n displayText(contentArea, \"Activity: \".concat(activity.activityType), activity.instructions);\n\n var letters = document.createElement(\"div\");\n letters.classList.add(\"letters-container\");\n activity.letters.forEach(function (letter) {\n var letterElement = document.createElement(\"span\");\n letterElement.textContent = letter;\n letterElement.classList.add(\"spelling-letter\");\n letters.appendChild(letterElement);\n });\n contentArea.appendChild(letters);\n\n if (activity.word) {\n displayText(contentArea, \"Word\", activity.word);\n }\n\n activity.interactiveElements.forEach(function (element) {\n displayText(contentArea, element.elementType, element.details);\n });\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createMultiSensoryReadingActivities(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Reading Text\", contentData.text);\n\n contentData.sensoryElements.forEach(function (element) {\n if (element.elementType === \"audio\") {\n var audioElement = document.createElement(\"audio\");\n audioElement.controls = true;\n audioElement.src = element.details;\n contentArea.appendChild(audioElement);\n } else if (element.elementType === \"image\") {\n var imageElement = document.createElement(\"img\");\n imageElement.src = element.details;\n imageElement.alt = \"Visual element for reading activity\";\n contentArea.appendChild(imageElement);\n } else if (element.elementType === \"tactile\") {\n displayText(contentArea, \"Tactile Element\", element.details);\n }\n });\n\n contentData.activities.forEach(function (activity) {\n displayText(contentArea, \"Activity: \".concat(activity.activityType), activity.instructions);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createVisualMathProblemSolving(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.problems.forEach(function (problem) {\n displayText(contentArea, \"Problem\", problem.problem);\n\n var visualElement = document.createElement(\"img\");\n visualElement.src = problem.visualAid;\n visualElement.alt = \"Visual aid for math problem\";\n contentArea.appendChild(visualElement);\n\n displayText(contentArea, \"Solution\", problem.solution);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createGuidedReadingExercises(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n contentData.exercises.forEach(function (exercise) {\n displayText(contentArea, \"Reading Passage\", exercise.passage);\n\n exercise.prompts.forEach(function (prompt) {\n displayText(contentArea, \"Prompt: \".concat(prompt.type), prompt.prompt);\n });\n\n displayText(contentArea, \"Guidance\", exercise.guidance);\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\nfunction createInteractivePhonicsGames(contentData) {\n var ContentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, \"Game Title\", contentData.title);\n displayText(contentArea, \"Instructions\", contentData.instructions);\n\n contentData.games.forEach(function (game) {\n displayText(contentArea, game.gameTitle, \"Phonics Skills:\");\n\n game.phonicsSkills.forEach(function (skill) {\n displayText(contentArea, \"Skill\", skill);\n });\n\n game.interactiveElements.forEach(function (element) {\n displayText(contentArea, \"Interactive Component: \".concat(element.elementType), element.details);\n });\n });\n\n if (feedbackAreaId) {\n var feedbackArea = document.getElementById(feedbackAreaId);\n feedbackArea.innerHTML = \"<p>Feedback will be shown here after review.</p>\";\n }\n return contentArea;\n}\n\n},{\"./SharedScript.js\":30}],29:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAnniversarySermon = createAnniversarySermon;\nexports.createBaptismSermon = createBaptismSermon;\nexports.createBibleReadingSermon = createBibleReadingSermon;\nexports.createBiblicalStorytellingSermon = createBiblicalStorytellingSermon;\nexports.createBiographicalSermon = createBiographicalSermon;\nexports.createCallToActionSermon = createCallToActionSermon;\nexports.createCallToRepentanceSermon = createCallToRepentanceSermon;\nexports.createCatecheticalSermon = createCatecheticalSermon;\nexports.createChildrensSermon = createChildrensSermon;\nexports.createChurchDedicationSermon = createChurchDedicationSermon;\nexports.createComfortingSermon = createComfortingSermon;\nexports.createCommunitySermon = createCommunitySermon;\nexports.createConsecrationSermon = createConsecrationSermon;\nexports.createContextualizedSermon = createContextualizedSermon;\nexports.createCounselingSermon = createCounselingSermon;\nexports.createCrisisSermon = createCrisisSermon;\nexports.createCulturalIssuesSermon = createCulturalIssuesSermon;\nexports.createCurrentEventsSermon = createCurrentEventsSermon;\nexports.createDeliveranceSermon = createDeliveranceSermon;\nexports.createDevotionalSermon = createDevotionalSermon;\nexports.createDiscipleshipSermon = createDiscipleshipSermon;\nexports.createDoctrinalPracticalHybrid = createDoctrinalPracticalHybrid;\nexports.createDoctrinalSermon = createDoctrinalSermon;\nexports.createDoxologicalSermon = createDoxologicalSermon;\nexports.createEducationalSermon = createEducationalSermon;\nexports.createEncouragementSermon = createEncouragementSermon;\nexports.createEnvironmentalStewardshipSermon = createEnvironmentalStewardshipSermon;\nexports.createEthicalSermon = createEthicalSermon;\nexports.createExpositoryBiographicalSermon = createExpositoryBiographicalSermon;\nexports.createExpositoryCharacterStudy = createExpositoryCharacterStudy;\nexports.createExpositoryPracticalHybrid = createExpositoryPracticalHybrid;\nexports.createExpositorySermon = createExpositorySermon;\nexports.createExpositoryTopicalHybrid = createExpositoryTopicalHybrid;\nexports.createFamilySermon = createFamilySermon;\nexports.createFathersDaySermon = createFathersDaySermon;\nexports.createForgivenessSermon = createForgivenessSermon;\nexports.createForgivenessSermonVer2 = createForgivenessSermonVer2;\nexports.createFuneralSermon = createFuneralSermon;\nexports.createGlobalContextSermon = createGlobalContextSermon;\nexports.createGraduationSermon = createGraduationSermon;\nexports.createHealingSermon = createHealingSermon;\nexports.createHolinessSermon = createHolinessSermon;\nexports.createImaginativeSermon = createImaginativeSermon;\nexports.createIndependenceDaySermon = createIndependenceDaySermon;\nexports.createInstructionalSermon = createInstructionalSermon;\nexports.createIntercessorySermon = createIntercessorySermon;\nexports.createJusticeSermon = createJusticeSermon;\nexports.createMarriedCouplesSermon = createMarriedCouplesSermon;\nexports.createMeditationSermon = createMeditationSermon;\nexports.createMensSermon = createMensSermon;\nexports.createMissionarySermon = createMissionarySermon;\nexports.createMothersDaySermon = createMothersDaySermon;\nexports.createNarrativeCallToActionHybrid = createNarrativeCallToActionHybrid;\nexports.createNarrativeDoctrinalHybrid = createNarrativeDoctrinalHybrid;\nexports.createNarrativeSermon = createNarrativeSermon;\nexports.createNarrativeTopicalHybrid = createNarrativeTopicalHybrid;\nexports.createNewBelieverSermon = createNewBelieverSermon;\nexports.createNewYearSermon = createNewYearSermon;\nexports.createObedienceSermon = createObedienceSermon;\nexports.createOccasionalSermon = createOccasionalSermon;\nexports.createParableSermon = createParableSermon;\nexports.createPatrioticSermon = createPatrioticSermon;\nexports.createPoeticSermon = createPoeticSermon;\nexports.createPracticalSermon = createPracticalSermon;\nexports.createPrayerSermon = createPrayerSermon;\nexports.createPrayerSermonVer2 = createPrayerSermonVer2;\nexports.createProfessionalSermon = createProfessionalSermon;\nexports.createPropheticNarrativeHybrid = createPropheticNarrativeHybrid;\nexports.createPropheticSermon = createPropheticSermon;\nexports.createReconciliationSermon = createReconciliationSermon;\nexports.createRedemptiveHistoricalSermon = createRedemptiveHistoricalSermon;\nexports.createRestorationSermon = createRestorationSermon;\nexports.createRevivalSermon = createRevivalSermon;\nexports.createRevivalSermonVer2 = createRevivalSermonVer2;\nexports.createSeasonalSermon = createSeasonalSermon;\nexports.createSeniorCitizenSermon = createSeniorCitizenSermon;\nexports.createServiceSermon = createServiceSermon;\nexports.createServiceSermonVer2 = createServiceSermonVer2;\nexports.createSingleAdultSermon = createSingleAdultSermon;\nexports.createSocialIssuesSermon = createSocialIssuesSermon;\nexports.createSpiritualWarfareSermon = createSpiritualWarfareSermon;\nexports.createStewardshipSermon = createStewardshipSermon;\nexports.createTeachingSermon = createTeachingSermon;\nexports.createTechnologySermon = createTechnologySermon;\nexports.createTeenSermon = createTeenSermon;\nexports.createThanksgivingDaySermon = createThanksgivingDaySermon;\nexports.createTopicalCallToActionHybrid = createTopicalCallToActionHybrid;\nexports.createTopicalSermon = createTopicalSermon;\nexports.createTransformationalSermon = createTransformationalSermon;\nexports.createUnitySermon = createUnitySermon;\nexports.createVocationalSermon = createVocationalSermon;\nexports.createVocationalSermonVer2 = createVocationalSermonVer2;\nexports.createWeddingSermon = createWeddingSermon;\nexports.createWomensSermon = createWomensSermon;\nexports.createWorshipSermon = createWorshipSermon;\nexports.createYouthSermon = createYouthSermon;\n\nfunction createExpositorySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Verse-by-Verse Explanation', formatList(contentData.verseByVerseExplanation || []), 'ul');\n\n displayList(contentArea, 'Key Points', contentData.keyPoints || [], 'ul');\n\n displayList(contentArea, 'Application', contentData.application || [], 'ul');\n}\n\nfunction createDoctrinalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n displayText(contentArea, 'Introduction', contentData.introduction);\n displayText(contentArea, 'Doctrinal Teaching', contentData.doctrinalTeaching);\n displayList(contentArea, 'Key Points', contentData.keyPoints, 'ul');\n displayList(contentArea, 'Application', contentData.application, 'ul');\n}\n\nfunction createRedemptiveHistoricalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createExpositoryCharacterStudy(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createExpositoryBiographicalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Lessons', contentData.lessons || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createBibleReadingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction);\n\n displayList(contentArea, 'Scripture Passage', formatList(contentData.scripturePassage), 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection);\n\n displayText(contentArea, 'Application', contentData.application);\n}\n\nfunction createTopicalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Key Bible Passages', contentData.keyPassages || [], 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createPracticalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Teachings', contentData.biblicalTeachings || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createVocationalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Principles', contentData.biblicalPrinciples || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCounselingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Practical Advice', contentData.practicalAdvice || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createSocialIssuesSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createVocationalSermonVer2(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createNarrativeSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Biblical Story', contentData.biblicalStory || '');\n\n displayText(contentArea, 'Narrative Arc', contentData.narrativeArc || '');\n\n displayText(contentArea, 'Life Lesson', contentData.lifeLesson || '');\n\n displayText(contentArea, 'Conclusion', contentData.conclusion || '');\n}\nfunction createImaginativeSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Imaginative Retelling', contentData.imaginativeRetelling || '');\n\n displayText(contentArea, 'Spiritual Lessons', contentData.spiritualLessons || '');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n}\n\nfunction createBiblicalStorytellingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Storytelling', contentData.storytelling || '');\n\n displayText(contentArea, 'Spiritual Lessons', contentData.spiritualLessons || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createParableSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Parable Explanation', contentData.parableExplanation || '');\n\n displayText(contentArea, 'Spiritual Lessons', contentData.spiritualLessons || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createBiographicalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Key Events', contentData.keyEvents || '');\n\n displayText(contentArea, 'Spiritual Lessons', contentData.spiritualLessons || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createDevotionalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createMeditationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayList(contentArea, 'Suggestions for Meditation', contentData.suggestions || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createPoeticSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Metaphors and Imagery', contentData.metaphorsAndImagery || [], 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createEncouragementSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createComfortingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createEthicalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Ethical Teaching', contentData.ethicalTeaching || '');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createHolinessSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createConsecrationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createServiceSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createForgivenessSermonVer2(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createPropheticSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Prophetic Message', contentData.propheticMessage || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createTransformationalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCallToRepentanceSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCallToActionSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createSpiritualWarfareSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Guidance', contentData.practicalGuidance || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createMissionarySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createWeddingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createFuneralSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Words of Encouragement', contentData.wordsOfEncouragement || '');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createBaptismSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n\n displayList(contentArea, 'Practical Advice', formatList(contentData.practicalAdvice || []), 'ul');\n}\n\nfunction createGraduationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n\n displayList(contentArea, 'Practical Advice', formatList(contentData.practicalAdvice || []), 'ul');\n}\n\nfunction createAnniversarySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCrisisSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n\n displayList(contentArea, 'Practical Advice', formatList(contentData.practicalAdvice || []), 'ul');\n}\n\nfunction createIntercessorySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Guidance', formatList(contentData.practicalGuidance || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\nfunction createPrayerSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Advice', formatList(contentData.practicalAdvice || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\nfunction createPrayerSermonVer2(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Advice', formatList(contentData.practicalAdvice || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createRevivalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createRevivalSermonVer2(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createTeachingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createEducationalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createCatecheticalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createInstructionalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createHealingSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\nfunction createReconciliationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createRestorationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createForgivenessSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createDeliveranceSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCommunitySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createUnitySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createServiceSermonVer2(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createStewardshipSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createNarrativeTopicalHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Story Retelling', contentData.storyRetelling || '');\n\n displayText(contentArea, 'Theme Explanation', contentData.themeExplanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createNarrativeCallToActionHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Story Retelling', contentData.storyRetelling || '');\n\n displayText(contentArea, 'Call to Action', contentData.callToAction || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createExpositoryTopicalHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Verse-by-Verse Explanation', formatList(contentData.verseByVerseExplanation || []), 'ul');\n\n displayText(contentArea, 'Theme Explanation', contentData.themeExplanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createDoctrinalPracticalHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Doctrinal Explanation', contentData.doctrinalExplanation || '');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createCulturalIssuesSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Cultural Context', contentData.culturalContext || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createCurrentEventsSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Current Event Context', contentData.currentEventContext || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createContextualizedSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Cultural Context', contentData.culturalContext || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createYouthSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Youth Context', contentData.youthContext || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createChildrensSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Interactive Elements', contentData.interactiveElements || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createMensSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createWomensSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createProfessionalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createFamilySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createPatrioticSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Explanation', contentData.explanation || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createSeasonalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createOccasionalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createNarrativeDoctrinalHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Story Retelling', contentData.storyRetelling || '');\n\n displayText(contentArea, 'Doctrinal Explanation', contentData.doctrinalExplanation || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createExpositoryPracticalHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Verse-by-Verse Explanation', formatList(contentData.verseByVerseExplanation || []), 'ul');\n\n displayText(contentArea, 'Practical Application', contentData.practicalApplication || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createPropheticNarrativeHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayText(contentArea, 'Story Retelling', contentData.storyRetelling || '');\n\n displayText(contentArea, 'Prophetic Message', contentData.propheticMessage || '');\n\n displayText(contentArea, 'Call to Action', contentData.callToAction || '');\n}\n\nfunction createTopicalCallToActionHybrid(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createGlobalContextSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Global Context', contentData.globalContext || '');\n\n displayText(contentArea, 'Application', contentData.application || '');\n}\n\nfunction createJusticeSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createTechnologySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Technology Context', contentData.technologyContext || '');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createEnvironmentalStewardshipSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createSeniorCitizenSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayText(contentArea, 'Practical Steps', contentData.practicalSteps || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createTeenSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createSingleAdultSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createNewBelieverSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createMarriedCouplesSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createNewYearSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createIndependenceDaySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createMothersDaySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createFathersDaySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createThanksgivingDaySermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createChurchDedicationSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', formatList(contentData.biblicalPassages || []), 'ul');\n\n displayList(contentArea, 'Practical Steps', formatList(contentData.practicalSteps || []), 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createObedienceSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Title', contentData.title || '');\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createDiscipleshipSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Title', contentData.title || '');\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createDoxologicalSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Title', contentData.title || '');\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayText(contentArea, 'Reflection', contentData.reflection || '');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\nfunction createWorshipSermon(contentData, ContentAreaId) {\n var contentArea = createContentHeader(contentData, ContentAreaId);\n\n displayText(contentArea, 'Title', contentData.title || '');\n\n displayText(contentArea, 'Introduction', contentData.introduction || '');\n\n displayList(contentArea, 'Biblical Passages', contentData.biblicalPassages || [], 'ul');\n\n displayList(contentArea, 'Practical Steps', contentData.practicalSteps || [], 'ul');\n\n displayText(contentArea, 'Encouragement', contentData.encouragement || '');\n}\n\n},{}],30:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLessonSection = addLessonSection;\nexports.closeLoginModal = closeLoginModal;\nexports.createInstructionalTechniques = createInstructionalTechniques;\nexports.createRecommendations = createRecommendations;\nexports.displayLoggedUsername = displayLoggedUsername;\nexports.enableDisableControl = enableDisableControl;\nexports.hideAlltabs = hideAlltabs;\nexports.logout = logout;\nexports.showAllTabs = showAllTabs;\nexports.showLoginModal = showLoginModal;\nexports.submitLogin = submitLogin;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction createRecommendations(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n console.log(\"Recommendation Content Data: \", contentData);\n\n var recommendationsByCategory = contentData.recommendations.reduce(function (acc, recommendation) {\n var category = recommendation.category;\n if (!acc[category]) {\n acc[category] = [];\n }\n acc[category].push(recommendation);\n return acc;\n }, {});\n\n var tempContainer = document.createElement('div');\n var outputHTML = '';\n\n for (var category in recommendationsByCategory) {\n var sortedRecommendations = recommendationsByCategory[category].sort(function (a, b) {\n return b.relevance - a.relevance;\n });\n outputHTML += \"<h2>\".concat(category, \"</h2>\");\n outputHTML += '<ul>';\n sortedRecommendations.forEach(function (recommendation) {\n outputHTML += \"<li>\\n <input type=\\\"checkbox\\\" class=\\\"format-checkbox\\\" data-format-id=\\\"\".concat(recommendation.formatNo, \"\\\"> \\n <a href=\\\"#\\\" data-format-id=\\\"\").concat(recommendation.formatNo, \"\\\" class=\\\"format-link\\\"> \\n <b>\").concat(recommendation.formatName, \"</b> \\n </a>\\n - \").concat(recommendation.description, \" \\n (Relevance: \").concat(recommendation.relevance, \"/10) \\n <p>\").concat(recommendation.explanation, \"</p>\\n </li>\");\n });\n outputHTML += '</ul>';\n }\n tempContainer.innerHTML = outputHTML;\n\n contentArea.appendChild(tempContainer);\n\n var formatLinks = contentArea.querySelectorAll('.format-link');\n formatLinks.forEach(function (link) {\n link.addEventListener('click', function (event) {\n event.preventDefault();\n var formatId = link.dataset.formatId;\n fetchAndInjectContent(formatId, \"modalContentArea\", \"modalFeedbackArea\");\n showLessonModal();\n });\n });\n\n var showAllButton = document.createElement('button');\n showAllButton.textContent = \"Show All\";\n showAllButton.classList.add(\"btn\", \"btn-primary\"); \n showAllButton.addEventListener('click', function () {\n var selectedFormats = Array.from(contentArea.querySelectorAll('.format-checkbox:checked')).map(function (checkbox) {\n return {\n id: checkbox.dataset.formatId\n };\n });\n showAllFormatsContent(selectedFormats);\n });\n contentArea.appendChild(showAllButton);\n}\nfunction createInstructionalTechniques(contentData) {\n var contentAreaId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var feedbackAreaId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var contentArea = createContentHeader(contentData, contentAreaId);\n var contentList = document.createElement(\"ul\");\n contentList.classList.add(\"techniques-list\");\n\n contentData.techniques.forEach(function (technique) {\n var listItem = document.createElement(\"li\");\n listItem.innerHTML = \"\\n <h3>\".concat(technique.name, \"</h3>\\n <p class=\\\"paragraph\\\">\").concat(technique.description, \"</p>\\n <ul class=\\\"list\\\">\\n \").concat(technique.examples.map(function (example) {\n return \"<li>\".concat(example, \"</li>\");\n }).join(\"\"), \"\\n </ul>\\n \");\n contentList.appendChild(listItem);\n });\n contentArea.appendChild(contentList);\n}\nfunction displayLoggedUsername() {\n var userName = sessionStorage.getItem('UserName');\n if (userName) {\n document.getElementById('usernameDisplay').textContent = userName + ' ';\n } else {\n document.getElementById('usernameDisplay').textContent = 'Guest ';\n }\n}\ndocument.addEventListener('DOMContentLoaded', _asyncToGenerator(_regeneratorRuntime().mark(function _callee() {\n var userId;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n userId = sessionStorage.getItem('UserId');\n if (userId) {\n enableDisableControl('loginButton', 'hide');\n enableDisableControl('logoutButton', 'show');\n } else {\n enableDisableControl('loginButton', 'show');\n enableDisableControl('logoutButton', 'hide');\n }\n displayLoggedUsername();\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n})));\nfunction enableDisableControl(controlId, action) {\n var control = document.getElementById(controlId);\n if (control) {\n if (action === 'show') {\n control.style.display = 'block';\n } else if (action === 'hide') {\n control.style.display = 'none';\n } else if (action === 'enable') {\n control.disabled = false;\n } else if (action === 'disable') {\n control.disabled = true;\n } else {\n console.error('Invalid action:', action);\n }\n } else {\n console.error('Control not found:', controlId);\n }\n}\nfunction showLoginModal() {\n document.getElementById('loginModal').style.display = 'block';\n}\nfunction closeLoginModal() {\n document.getElementById('loginModal').style.display = 'none';\n document.getElementById('loginError').style.display = 'none'; \n}\nfunction submitLogin() {\n return _submitLogin.apply(this, arguments);\n}\nfunction _submitLogin() {\n _submitLogin = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2() {\n var username, password, loginError, usersTab, response, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n username = document.getElementById('username').value.trim();\n password = document.getElementById('password').value.trim();\n loginError = document.getElementById('loginError');\n usersTab = document.getElementById('users-tab');\n if (!(!username || !password)) {\n _context2.next = 7;\n break;\n }\n alert('Please enter both username and password');\n return _context2.abrupt(\"return\");\n case 7:\n _context2.prev = 7;\n _context2.next = 10;\n return fetch(\"\".concat(baseUrl, \"/api/login\"), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n Username: username,\n UserPasswordHash: password \n })\n });\n case 10:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 19;\n break;\n }\n _context2.next = 14;\n return response.json();\n case 14:\n user = _context2.sent;\n console.log(user);\n if (user && user.userId) {\n sessionStorage.setItem('UserId', user.userId);\n sessionStorage.setItem('SchoolId', user.schoolId);\n sessionStorage.setItem('UserName', user.username);\n sessionStorage.setItem('SchoolName', user.schoolName || 'N/A'); \n sessionStorage.setItem('RoleName', user.RoleName);\n console.log('sessionStorage', sessionStorage);\n\n closeLoginModal();\n displayLoggedUsername();\n enableDisableControl('loginButton', 'hide');\n enableDisableControl('logoutButton', 'show');\n displayLoggedUsername();\n window.location.href = '/Home/Index1';\n showAllTabs();\n BLL.loadTeacherPreferences();\n\n BLL.loadCourses();\n if (user.roleId === 1 && usersTab) {\n usersTab.style.display = \"block\";\n } else {\n usersTab.style.display = \"none\";\n }\n } else {\n loginError.style.display = 'block';\n loginError.textContent = 'Invalid username or password';\n }\n _context2.next = 21;\n break;\n case 19:\n loginError.style.display = 'block';\n loginError.textContent = 'Invalid username or password';\n case 21:\n _context2.next = 28;\n break;\n case 23:\n _context2.prev = 23;\n _context2.t0 = _context2[\"catch\"](7);\n console.error('Login failed:', _context2.t0);\n loginError.style.display = 'block';\n loginError.textContent = 'An error occurred during login. Please try again.';\n case 28:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[7, 23]]);\n }));\n return _submitLogin.apply(this, arguments);\n}\nfunction getUserRole() {\n var role = (sessionStorage.getItem('RoleName') || \"\").toLowerCase();\n if (role === \"student\") return \"student\";\n if (role === \"teacher\") return \"teacher\";\n if (role === \"parent\") return \"parent\";\n return \"student\";\n}\nfunction logout() {\n sessionStorage.clear();\n var courseViewDiv = document.getElementById('course-view');\n enableDisableControl('loginButton', 'show');\n enableDisableControl('logoutButton', 'hide');\n if (courseViewDiv) {\n hideAlltabs(courseViewDiv);\n }\n}\nfunction showAllTabs() {\n var notLoggedInMessage = document.getElementById('not-logged-in-message');\n var courseViewDiv = document.getElementById('course-view');\n if (courseViewDiv) {\n if (notLoggedInMessage) notLoggedInMessage.style.display = \"none\";\n var tabs = document.getElementById('myTab');\n var tabContent = document.getElementById('myTabContent');\n var tabPrefLink = document.getElementById('customizeTabsLink');\n if (tabs) {\n tabs.style.display = 'flex'; \n tabPrefLink.style.display = 'block';\n } else {\n console.error('Error: \"myTab\" element not found.');\n }\n if (tabContent) {\n tabContent.style.display = 'block';\n } else {\n console.error('Error: \"myTabContent\" element not found.');\n }\n }\n}\nfunction hideAlltabs(courseViewDiv) {\n if (courseViewDiv) {\n var notLoggedInMessage = document.createElement('div');\n notLoggedInMessage.id = 'not-logged-in-message';\n notLoggedInMessage.innerHTML = \"\\n <b><p>You are not logged in</p>\\n <p>Please use the login button to login</p></b>\\n \";\n courseViewDiv.appendChild(notLoggedInMessage);\n courseViewDiv.style.display = 'block'; \n\n var tabPrefLink = document.getElementById('customizeTabsLink');\n var tabs = document.getElementById('myTab');\n var tabContent = document.getElementById('myTabContent');\n if (tabs) {\n tabs.style.display = 'none';\n tabPrefLink.style.display = 'none';\n } else {\n console.error('Error: \"myTab\" element not found.');\n }\n if (tabContent) {\n tabContent.style.display = 'none';\n } else {\n console.error('Error: \"myTabContent\" element not found.');\n }\n } else {\n console.log('Error: \"course-view\" div not found.');\n }\n}\n\nfunction addLessonSection(container, title, content) {\n var listType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'p';\n var customRenderer = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!content || Array.isArray(content) && content.length === 0) {\n return; \n }\n var section = document.createElement('section');\n section.classList.add('lesson-section');\n\n var sectionTitle = document.createElement('h3');\n sectionTitle.textContent = title;\n sectionTitle.addEventListener('click', function () {\n var contentElement = section.querySelector('.section-content');\n contentElement.classList.toggle('collapsed');\n });\n section.appendChild(sectionTitle);\n\n var contentElement = document.createElement('div');\n contentElement.classList.add('section-content');\n if (Array.isArray(content)) {\n var list = document.createElement(listType);\n content.forEach(function (item) {\n var listItem = document.createElement('li');\n if (customRenderer && typeof customRenderer === 'function') {\n listItem.appendChild(customRenderer(item)); \n } else if (_typeof(item) === 'object' && item !== null) {\n var textContent = item.resourceType ? \"\".concat(item.resourceType.charAt(0).toUpperCase() + item.resourceType.slice(1), \": \") : '';\n if (item.resourceLinkOrDescription) {\n if (item.resourceLinkOrDescription.startsWith('http')) {\n var resourceLink = document.createElement('a');\n resourceLink.href = item.resourceLinkOrDescription;\n resourceLink.textContent = \"Open \".concat(item.resourceType);\n resourceLink.target = \"_blank\";\n listItem.appendChild(document.createTextNode(textContent));\n listItem.appendChild(resourceLink);\n } else {\n listItem.textContent = textContent + item.resourceLinkOrDescription;\n }\n }\n } else {\n listItem.textContent = item; \n }\n list.appendChild(listItem);\n });\n contentElement.appendChild(list);\n } else if (typeof content === 'string' && content.trim() !== '') {\n var paragraph = document.createElement('p');\n paragraph.textContent = content;\n contentElement.appendChild(paragraph);\n } else {\n var emptyMessage = document.createElement('p');\n emptyMessage.textContent = \"No content available.\";\n contentElement.appendChild(emptyMessage);\n }\n section.appendChild(contentElement);\n container.appendChild(section);\n}\n\n},{}],31:[function(require,module,exports){\n\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getHelpContent=getHelpContent;exports.showAllFormatsContent=showAllFormatsContent;var _react=_interopRequireWildcard(require(\"react\"));var _client=_interopRequireDefault(require(\"react-dom/client\"));var _GlobalVariables=require(\"./GlobalVariables.js\");var _EducationalGames=require(\"./EducationalGames.js\");var _EducationalActivities=require(\"./EducationalActivities.js\");var _EducationalGoals=require(\"./EducationalGoals.js\");var _Formats100To=require(\"./Formats100To199.js\");var _Formats1To=require(\"./Formats1To99.js\");var _Formats200To=require(\"./Formats200To299.js\");var _Formats300To=require(\"./Formats300To399.js\");var _Formats400To=require(\"./Formats400To499.js\");var _Formats500To=require(\"./Formats500To599.js\");var _BLL=require(\"./BLL.js\");var _BibleStudy=require(\"./BibleStudy.js\");var _InstructionalStrategies=require(\"./InstructionalStrategies.js\");var _LessonPlans=require(\"./LessonPlans.js\");var _NewCode=require(\"./NewCode.js\");var _Sermons=require(\"./Sermons.js\");var _SharedScript=require(\"./SharedScript.js\");var _Formats5000To=require(\"./Formats5000To5100.js\");var _formatFunctions;function _interopRequireDefault(e){return e&&e.__esModule?e:{\"default\":e};}function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=_typeof(e)&&\"function\"!=typeof e)return{\"default\":e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n[\"default\"]=e,t&&t.set(e,n),n;}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _regeneratorRuntime(){\"use strict\";_regeneratorRuntime=function _regeneratorRuntime(){return e;};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value;},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e];}try{define({},\"\");}catch(t){define=function define(t,e,r){return t[e]=r;};}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,\"_invoke\",{value:makeInvokeMethod(t,r,c)}),a;}function tryCatch(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)};}catch(t){return{type:\"throw\",arg:t};}}e.wrap=wrap;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",s=\"completed\",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,function(){return this;});var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){[\"next\",\"throw\",\"return\"].forEach(function(e){define(t,e,function(t){return this._invoke(e,t);});});}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if(\"throw\"!==c.type){var u=c.arg,h=u.value;return h&&\"object\"==_typeof(h)&&n.call(h,\"__await\")?e.resolve(h.__await).then(function(t){invoke(\"next\",t,i,a);},function(t){invoke(\"throw\",t,i,a);}):e.resolve(h).then(function(t){u.value=t,i(u);},function(t){return invoke(\"throw\",t,i,a);});}a(c.arg);}var r;o(this,\"_invoke\",{value:function value(t,n){function callInvokeWithMethodAndArg(){return new e(function(e,r){invoke(t,n,e,r);});}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();}});}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error(\"Generator is already running\");if(o===s){if(\"throw\"===i)throw a;return{value:t,done:!0};}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u;}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg);}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);o=f;var p=tryCatch(e,r,n);if(\"normal\"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done};}\"throw\"===p.type&&(o=s,n.method=\"throw\",n.arg=p.arg);}};}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,\"throw\"===n&&e.iterator[\"return\"]&&(r.method=\"return\",r.arg=t,maybeInvokeDelegate(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),y;var i=tryCatch(o,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,y):a:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,y);}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e);}function resetTryEntry(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e;}function Context(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(pushTryEntry,this),this.reset(!0);}function values(e){if(e||\"\"===e){var r=e[a];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next;};return i.next=i;}}throw new TypeError(_typeof(e)+\" is not iterable\");}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,\"constructor\",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,\"constructor\",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||\"GeneratorFunction\"===(e.displayName||e.name));},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,\"GeneratorFunction\")),t.prototype=Object.create(g),t;},e.awrap=function(t){return{__await:t};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,function(){return this;}),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then(function(t){return t.done?t.value:a.next();});},defineIteratorMethods(g),define(g,u,\"Generator\"),define(g,a,function(){return this;}),define(g,\"toString\",function(){return\"[object Generator]\";}),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next;}return next.done=!0,next;};},e.values=values,Context.prototype={constructor:Context,reset:function reset(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)\"t\"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t);},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval;},dispatchException:function dispatchException(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type=\"throw\",a.arg=e,r.next=n,o&&(r.method=\"next\",r.arg=t),!!o;}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return handle(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);}else{if(!u)throw Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}}}},abrupt:function abrupt(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break;}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,y):this.complete(a);},complete:function complete(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),y;},finish:function finish(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y;}},\"catch\":function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;resetTryEntry(r);}return o;}}throw Error(\"illegal catch attempt\");},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),y;}},e;}function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o;},_typeof(o);}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _iterableToArray(r){if(\"undefined\"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r[\"@@iterator\"])return Array.from(r);}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r);}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t[\"return\"]&&(u=t[\"return\"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value;}catch(n){return void e(n);}i.done?t(u):Promise.resolve(u).then(r,o);}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,\"next\",n);}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,\"throw\",n);}_next(void 0);});};}function _createForOfIteratorHelper(r,e){var t=\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&\"number\"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]};},e:function e(r){throw r;},f:F};}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t[\"return\"]||t[\"return\"]();}finally{if(u)throw o;}}};}function _unsupportedIterableToArray(r,a){if(r){if(\"string\"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return\"Object\"===t&&r.constructor&&(t=r.constructor.name),\"Map\"===t||\"Set\"===t?Array.from(r):\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e;}function _toPropertyKey(t){var i=_toPrimitive(t,\"string\");return\"symbol\"==_typeof(i)?i:i+\"\";}function _toPrimitive(t,r){if(\"object\"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||\"default\");if(\"object\"!=_typeof(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\");}return(\"string\"===r?String:Number)(t);}\nvar baseUrl=window.location.origin;\nvar formatFunctions=(_formatFunctions={clozePassage:_Formats1To.createClozePassage,worksheet:_Formats1To.createWorksheet,flashcards:_Formats1To.createFlashcards,selfAssessmentQuiz:_Formats1To.createSelfAssessmentQuiz,errorCorrection:_Formats1To.createErrorCorrectionExercise,timeManagementTips:createTimeManagementTips,examPreparationTips:createExamPreparationTips,criticalThinkingExercises:createCriticalThinkingExercises,vocabularyCloze:_Formats1To.createVocabularyClozeSentences,definitions:_Formats1To.createDefinitions,definitionsWithEtymology:_Formats1To.createDefinitionsWithEtymology,keyTerms:_Formats1To.createKeyTermsList,interactiveGlossary:_Formats1To.createInteractiveGlossary,vocabularyQuiz:_Formats1To.createInteractiveVocabularyQuiz,dragAndDropTextSequencing:_Formats1To.createDragAndDropTextSequencing,adaptiveLearning:_Formats1To.createAdaptiveLearning,interactiveDiagram:_Formats1To.createInteractiveDiagram,timedReading:_Formats1To.createTimedReading,conceptSummary:_Formats100To.createConceptSummary,conceptDefinitionTable:_Formats100To.createConceptDefinitionTable,mathConceptExplanation:_Formats100To.createMathConceptExplanation,spotTheBias:_Formats100To.createSpotTheBiasScience,neurologicalDisorderExplanation:_Formats100To.createNeurologicalDisorderExplanation,digitalWorksheet:_Formats100To.createDigitalWorksheet,studyPlanBuilder:_Formats100To.createStudyPlanBuilder,vocabularyDefinitions:_Formats100To.createVocabularyDefinitions,problemSolvingScenario:_Formats100To.createProblemSolvingScenario,personalizedLearningGoals:_Formats100To.createPersonalizedLearningGoals,personalizedVocabularyBuilder:_Formats100To.createPersonalizedVocabularyBuilder,accessibilityOptions:_Formats100To.applyAccessibilityOptions,customizableInterface:_Formats100To.createCustomizableInterface,individualizedPace:_Formats100To.applyIndividualizedPace,difficultyLevels:_Formats100To.createDifficultyLevels,progressBookmarks:_Formats100To.createProgressBookmarks,personalizedRecommendations:_Formats100To.createPersonalizedRecommendations,interactiveQuestionnaire:_Formats100To.createInteractiveQuestionnaire,textToSpeech:_Formats100To.createTextToSpeech,multimodalLearning:_Formats100To.createMultimodalLearning,personalizedStudyPath:_Formats100To.createPersonalizedStudyPath,practiceExercisesWithFeedback:_Formats100To.createPracticeExercisesWithFeedback,adaptableContent:_Formats100To.createAdaptableContent,contentCuration:_Formats100To.createContentCuration,studySmarterTips:_Formats200To.createStudySmarterTips,grammarExercises:_Formats200To.createGrammarExercises,interactiveConversation:_Formats200To.createInteractiveConversationSimulations,flashcardApp:_Formats200To.createFlashcardApp,noteTakingTemplates:_Formats200To.createNoteTakingTemplates,differentiatedVocabularyExercises:_Formats200To.createDifferentiatedVocabularyExercises,vocabularyBuildingExercises:_NewCode.createVocabularyBuildingExercises,formulaFlashcards:_Formats200To.createFormulaFlashcards,grammarDrills:_Formats200To.createGrammarDrills,interactiveNumberLine:_Formats200To.createInteractiveNumberLine,sentenceCompletion:_Formats200To.createSentenceCompletion,sentenceTransformationExercises:_Formats200To.createSentenceTransformationExercises,verbConjugationPractice:_Formats200To.createVerbConjugationPractice},_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"vocabularyBuildingExercises\",_NewCode.createVocabularyBuildingExercises),\"vocabularySentenceCreation\",_Formats200To.createVocabularySentenceCreation),\"interactiveTextbook\",_Formats300To.createInteractiveTextbook),\"conceptSortingActivity\",_Formats300To.createConceptSortingActivity),\"graphicOrganizerCreator\",_Formats300To.createGraphicOrganizerCreator),\"interactiveNoteTakingTemplates\",_Formats300To.createInteractiveNoteTakingTemplates),\"outline\",_Formats300To.createOutline),\"scientificVocabularyBuilder\",_Formats300To.createScientificVocabularyBuilder),\"summarizationTool\",_Formats300To.createSummarizationTool),\"interactiveGeometryTools\",_Formats300To.createInteractiveGeometryTools),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"interactiveGraph\",_Formats300To.createInteractiveGraph),\"interactiveVocabularyBuilder\",_Formats300To.createInteractiveVocabularyBuilder),\"ELI5\",_Formats400To.createELI5),\"accessibleSummary\",_Formats400To.createAccessibleSummary),\"keyTakeawaysInfographic\",_Formats400To.createKeyTakeawaysInfographic),\"mathFormulas\",_Formats400To.createMathFormulas),\"simplifiedExplanation\",_Formats400To.createSimplifiedExplanation),\"textSummaryWithKeyPoints\",_Formats400To.createTextSummaryWithKeyPoints),\"annotations\",_Formats1To.createAnnotations),\"reverseOutlining\",_Formats1To.createReverseOutlining),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"chunkedText\",_Formats1To.createChunkedText),\"textHighlighting\",_Formats1To.createTextHighlighting),\"headingsAndSubheadings\",_Formats1To.createHeadingsAndSubheadings),\"table\",_Formats1To.createTableOrChart),\"chart\",_Formats1To.createTableOrChart),\"lists\",_Formats1To.createLists),\"hierarchicalStructure\",_Formats1To.createHierarchicalStructure),\"sequentialSteps\",_Formats1To.createSequentialSteps),\"invertedPyramid\",_Formats1To.createInvertedPyramid),\"causeAndEffect\",_Formats1To.createCauseAndEffect),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"problemAndSolution\",_Formats1To.createProblemAndSolution),\"factVsOpinion\",_Formats1To.createFactVsOpinion),\"shortSummary\",_Formats1To.createShortSummary),\"detailedSummary\",_Formats1To.createDetailedSummary),\"bulletPoints\",_Formats1To.createBulletPoints),\"keywords\",_Formats1To.createKeywords),\"simplifiedText\",_Formats1To.createSimplifiedText),\"storyFormat\",_Formats1To.createStoryFormat),\"examplesAndAnalogies\",_Formats1To.createExamplesAndAnalogies),\"questionsAndAnswers\",_Formats1To.createQuestionsAndAnswers),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"interactiveEbook\",_Formats1To.createInteractiveEbook),\"prosAndCons\",_Formats1To.createProsAndCons),\"persuasiveArgument\",_Formats1To.createPersuasiveArguments),\"thematicOverviews\",_Formats1To.createThematicOverviews),\"audioNarration\",_Formats1To.createAudioNarration),\"videoSummary\",_Formats1To.createVideoSummary),\"interactiveSimulation\",_Formats1To.createInteractiveSimulation),\"fillInTheBlanks\",_Formats1To.createClozePassage),\"trueFalseStatements\",_Formats1To.createTrueFalseStatements),\"dragAndDropActivity\",_Formats1To.createDragAndDropActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"caseStudy\",_Formats1To.createCaseStudy),\"mnemonicDevices\",_Formats1To.createMnemonicDevices),\"realWorldApplications\",_Formats1To.createRealWorldApplications),\"projectBasedLearning\",_Formats1To.createProjectBasedLearning),\"aIChatbot\",_Formats1To.createAIChatbot),\"conceptMap\",_Formats1To.createConceptMap),\"adaptiveQuiz\",_Formats1To.createAdaptiveQuiz),\"interactiveTimeline\",_Formats1To.createInteractiveTimeline),\"nestedBulletPoints\",_Formats100To.createNestedBulletPoints),\"conceptHierarchy\",_Formats100To.createConceptHierarchy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"adaptiveBranchingStory\",_Formats100To.createAdaptiveBranchingStory),\"personalizedConceptMap\",_Formats100To.createPersonalizedConceptMaps),\"expositoryWriting\",_Formats100To.createExpositoryWriting),\"narrativeDescription\",_Formats100To.createNarrativeDescriptions),\"analogiesAndMetaphors\",_Formats100To.createAnalogiesAndMetaphors),\"structuralMarkers\",_Formats100To.createStructuralMarkers),\"logicalProgression\",_Formats100To.createLogicalProgression),\"faq\",_Formats100To.createFaq),\"scenarioBasedExplanation\",_Formats100To.createScenarioBasedExplanation),\"visualTextFormatting\",_Formats100To.applyVisualTextFormatting),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"conceptualOverview\",_Formats100To.createConceptualOverview),\"incrementalComplexity\",_Formats100To.createIncrementalComplexity),\"socraticQuestions\",_Formats100To.createSocraticQuestions),\"comparativeTable\",_Formats100To.createComparativeTable),\"contrastingCases\",_Formats100To.createContrastingCases),\"comparativeAnalysis\",_Formats100To.createComparativeAnalysis),\"personalizedFeedback\",_Formats100To.createPersonalizedFeedback),\"spacedRepetition\",_Formats200To.createSpacedRepetition),\"gamifiedQuiz\",_Formats200To.createGamifiedQuiz),\"rhetoricalStructure\",_Formats200To.createRhetoricalStructure),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"temporalStructuring\",_Formats200To.createTemporalStructuring),\"exemplification\",_Formats200To.createExemplification),\"streamlinedContent\",_Formats200To.createStreamlinedContent),\"integratedAnnotations\",_Formats200To.createIntegratedAnnotations),\"distributedSummaries\",_Formats200To.createDistributedSummaries),\"glossary\",_Formats200To.createGlossary),\"descriptiveImagery\",_Formats200To.createDescriptiveImagery),\"cognitiveLoadManagement\",_Formats200To.applyCognitiveLoadManagement),\"similesAndMetaphors\",_Formats200To.createSimilesAndMetaphors),\"dynamicHighlighting\",_Formats200To.applyDynamicHighlighting),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"pedagogicalScaffolding\",_Formats200To.createPedagogicalScaffolding),\"iterativeExplanations\",_Formats200To.createIterativeExplanations),\"pacingTechniques\",_Formats200To.createPacingTechniques),\"dynamicTextAdjustment\",_Formats200To.createDynamicTextAdjustment),\"embeddedCaseStudies\",_Formats200To.createEmbeddedCaseStudies),\"logicalStructuring\",_Formats200To.createLogicalStructuring),\"contentLayering\",_Formats200To.createContentLayering),\"scaffoldedLearningPath\",_Formats200To.createScaffoldedLearningPath),\"contextualEmbedding\",_Formats200To.createContextualEmbedding),\"iterativeRefinement\",_Formats200To.createIterativeRefinement),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"episodicStructure\",_Formats300To.createEpisodicStructure),\"hypotheticalScenarios\",_Formats300To.createHypotheticalScenarios),\"paraphrasing\",_Formats500To.createParaphrasing),\"microlearningModules\",_Formats500To.createMicrolearningModules),\"thematicClusters\",_Formats500To.createThematicClusters),\"layeredExplanations\",_Formats500To.createLayeredExplanations),\"recursiveSummaries\",_Formats500To.createRecursiveSummaries),\"interactiveGrammarLesson\",_Formats1To.createInteractiveGrammarLesson),\"vocabularyQuizzes\",_Formats1To.createVocabularyQuizzes),\"pictureDescriptionGames\",_Formats1To.createPictureDescriptionGames),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"interactiveAudiobooks\",_Formats1To.createInteractiveAudiobooks),\"interactiveReadingQuizzes\",_Formats1To.createInteractiveReadingQuizzes),\"aIPoweredWritingAssistant\",_Formats1To.createAIPoweredWritingAssistant),\"vocabularyChallengeGames\",_Formats1To.createVocabularyChallengeGames),\"pronunciationDrillsWithFeedback\",_Formats1To.createPronunciationDrillsWithFeedback),\"interactiveCulturalActivities\",_Formats1To.createInteractiveCulturalActivities),\"matchingGame\",_Formats1To.createMatchingGame),\"crossword\",_Formats1To.createCrosswordOrWordSearch),\"wordSearch\",_Formats1To.createCrosswordOrWordSearch),\"arithmeticPracticeGames\",_Formats500To.createArithmeticPracticeGames),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"interactiveNumberLine\",_Formats200To.createInteractiveNumberLine),\"interactiveQuiz\",_Formats500To.createInteractiveQuiz),\"mathFactsGenerator\",_Formats500To.createMathFactsGenerator),\"shapeIdentification\",_Formats500To.createShapeIdentification),\"fractionVisualizer\",_Formats500To.createFractionVisualizer),\"graphingActivities\",_Formats500To.createGraphingActivities),\"geometryPuzzles\",_Formats500To.createGeometryPuzzles),\"moneyMathGames\",_Formats500To.createMoneyMathGames),\"mathWordProblems\",_Formats500To.createMathWordProblems),\"mathVocabularyBuilder\",_Formats500To.createMathVocabularyBuilder),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"mathConceptExplainer\",_Formats500To.createMathConceptExplainer),\"textSimulation\",_Formats500To.createTextSimulation),\"virtualLab\",_Formats500To.createVirtualLab),\"textGames\",_Formats500To.createTextGames),\"debate\",_Formats500To.createDebate),\"structuredProject\",_Formats500To.createStructuredProject),\"mysteryGame\",_Formats500To.createMysteryGame),\"rolePlayingGame\",_Formats500To.createRolePlayingGame),\"escapeRoom\",_Formats500To.createEscapeRoom),\"problemSolvingChallenge\",_Formats500To.createProblemSolvingChallenge),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"scavengerHunt\",_Formats500To.createScavengerHunt),\"dataAnalysisChallenge\",_Formats500To.createDataAnalysisChallenge),\"hypothesisTesting\",_Formats500To.createHypothesisTesting),\"enhancedQuestionGenerator\",_Formats500To.createEnhancedQuestionGenerator),\"directInstructionLesson\",_LessonPlans.createLesson),\"inquiryBasedLearningLesson\",_LessonPlans.createLesson),\"projectBasedLearningLesson\",_LessonPlans.createLesson),\"flippedClassroom\",_LessonPlans.createLesson),\"cooperativeLearning\",_LessonPlans.createLesson),\"differentiatedInstruction\",_LessonPlans.createLesson),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"stationRotation\",_LessonPlans.createLesson),\"explicitInstruction\",_LessonPlans.createLesson),\"blendedLearning\",_LessonPlans.createLesson),\"gamification\",_LessonPlans.createLesson),\"caseBasedLearning\",_LessonPlans.createLesson),\"anchoredInstruction\",_LessonPlans.createLesson),\"technologyEnhancedLearning\",_LessonPlans.createLesson),\"universalDesignForLearning\",_LessonPlans.createLesson),\"culturallyResponsiveTeaching\",_LessonPlans.createLesson),\"competencyBasedEducation\",_LessonPlans.createLesson),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"masteryLearning\",_LessonPlans.createLesson),\"socialEmotionalLearning\",_LessonPlans.createLesson),\"traumaInformedTeaching\",_LessonPlans.createLesson),\"understandingByDesign\",_LessonPlans.createLesson),\"samrModel\",_LessonPlans.createLesson),\"tpack\",_LessonPlans.createLesson),\"constructivism\",_LessonPlans.createLesson),\"behaviorism\",_LessonPlans.createLesson),\"multipleIntelligences\",_LessonPlans.createLesson),\"growthMindset\",_LessonPlans.createLesson),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"cognitivism\",_LessonPlans.createLesson),\"humanism\",_LessonPlans.createLesson),\"blendedLearning\",_LessonPlans.createLesson),\"personalizedLearning\",_LessonPlans.createLesson),\"experientialLearning\",_LessonPlans.createLesson),\"jigsawActivity\",_EducationalActivities.createActivity),\"thinkPairShareActivity\",_EducationalActivities.createActivity),\"numberedHeadsTogetherActivity\",_EducationalActivities.createActivity),\"galleryWalkActivity\",_EducationalActivities.createActivity),\"rolePlayingSimulationActivity\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"debateActivity\",_EducationalActivities.createActivity),\"collaborativeProblemSolvingActivity\",_EducationalActivities.createActivity),\"fishbowlActivity\",_EducationalActivities.createActivity),\"groupInvestigationActivity\",_EducationalActivities.createActivity),\"groupPresentationsActivity\",_EducationalActivities.createActivity),\"peerReviewFeedbackActivity\",_EducationalActivities.createActivity),\"conceptMapsActivity\",_EducationalActivities.createActivity),\"teamExpertActivity\",_EducationalActivities.createActivity),\"fourCornersActivity\",_EducationalActivities.createActivity),\"thinkWritePairShareActivity\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"guidedReadingActivity\",_EducationalActivities.createActivity),\"collaborativeWritingActivity\",_EducationalActivities.createActivity),\"roundRobinActivity\",_EducationalActivities.createActivity),\"independentReadingActivity\",_EducationalActivities.createActivity),\"researchProjectsActivity\",_EducationalActivities.createActivity),\"creativeWritingActivity\",_EducationalActivities.createActivity),\"problemSolvingActivity\",_EducationalActivities.createActivity),\"technologyEnhancedLearningActivity\",_EducationalActivities.createActivity),\"socraticSeminarActivity\",_EducationalActivities.createActivity),\"portfolioProjectsActivity\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"interactiveNotebooksActivity\",_EducationalActivities.createActivity),\"journalingWritingPromptsActivity\",_EducationalActivities.createActivity),\"webQuestActivity\",_EducationalActivities.createActivity),\"caseStudiesActivity\",_EducationalActivities.createActivity),\"challengeProblemsActivity\",_EducationalActivities.createActivity),\"stationsActivity\",_EducationalActivities.createActivity),\"inquiryBasedActivity\",_EducationalActivities.createActivity),\"christLikenessFormation\",_EducationalGoals.createEducationalGoal),\"spiritualDisciplines\",_EducationalGoals.createEducationalGoal),\"biblicalLiteracy\",_EducationalGoals.createEducationalGoal),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"apologeticsTheologicalReflection\",_EducationalGoals.createEducationalGoal),\"churchBodyEngagement\",_EducationalGoals.createEducationalGoal),\"christianRelationshipsFellowship\",_EducationalGoals.createEducationalGoal),\"missionalLivingEvangelism\",_EducationalGoals.createEducationalGoal),\"spiritualWarfareResilience\",_EducationalGoals.createEducationalGoal),\"emotionalResilienceGoals\",_EducationalGoals.createEducationalGoal),\"growthMindsetGoals\",_EducationalGoals.createEducationalGoal),\"fosteringIndependenceGoals\",_EducationalGoals.createEducationalGoal),\"familyBondsGoals\",_EducationalGoals.createEducationalGoal),\"cognitiveSkillsGoals\",_EducationalGoals.createEducationalGoal),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"socialSkillsGoals\",_EducationalGoals.createEducationalGoal),\"physicalWellbeingGoals\",_EducationalGoals.createEducationalGoal),\"valuesAndEthicsGoals\",_EducationalGoals.createEducationalGoal),\"selfRegulationGoals\",_EducationalGoals.createEducationalGoal),\"communicationSkillsGoals\",_EducationalGoals.createEducationalGoal),\"problemSolvingSkillsGoals\",_EducationalGoals.createEducationalGoal),\"emotionalExpressionGoals\",_EducationalGoals.createEducationalGoal),\"peerRelationshipsGoals\",_EducationalGoals.createEducationalGoal),\"selfConfidenceGoals\",_EducationalGoals.createEducationalGoal),\"fosteringCreativityGoals\",_EducationalGoals.createEducationalGoal),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"digitalAndRealLifeBalanceGoals\",_EducationalGoals.createEducationalGoal),\"emotionalResilienceActionPlan\",_EducationalActivities.createActivity),\"growthMindsetActionPlan\",_EducationalActivities.createActivity),\"fosteringIndependenceActionPlan\",_EducationalActivities.createActivity),\"familyBondsActionPlan\",_EducationalActivities.createActivity),\"cognitiveSkillsActionPlan\",_EducationalActivities.createActivity),\"socialSkillsActionPlan\",_EducationalActivities.createActivity),\"physicalWellbeingActionPlan\",_EducationalActivities.createActivity),\"valuesAndEthicsActionPlan\",_EducationalActivities.createActivity),\"selfRegulationActionPlan\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"communicationSkillsActionPlan\",_EducationalActivities.createActivity),\"problemSolvingSkillsActionPlan\",_EducationalActivities.createActivity),\"emotionalExpressionActionPlan\",_EducationalActivities.createActivity),\"peerRelationshipsActionPlan\",_EducationalActivities.createActivity),\"selfConfidenceActionPlan\",_EducationalActivities.createActivity),\"fosteringCreativityActionPlan\",_EducationalActivities.createActivity),\"digitalAndRealLifeBalanceActionPlan\",_EducationalActivities.createActivity),\"childDevelopmentMilestonesActionPlan\",_EducationalActivities.createActivity),\"stressManagementActionPlan\",_EducationalActivities.createActivity),\"familyDynamicsActionPlan\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"mindfulnessPracticesActionPlan\",_EducationalActivities.createActivity),\"ethicalDevelopmentActionPlan\",_EducationalActivities.createActivity),\"neurodiverseParentingActionPlan\",_EducationalActivities.createActivity),\"positiveReinforcement\",_EducationalActivities.createActivity),\"emotionCoaching\",_EducationalActivities.createActivity),\"collaborativeProblemSolving\",_EducationalActivities.createActivity),\"routineBuilding\",_EducationalActivities.createActivity),\"growthMindsetFeedback\",_EducationalActivities.createActivity),\"settingLimitsWithRespect\",_EducationalActivities.createActivity),\"naturalConsequences\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"scaffoldingForSkills\",_EducationalActivities.createActivity),\"activeListeningTechniques\",_EducationalActivities.createActivity),\"celebratingSmallWins\",_EducationalActivities.createActivity),\"reflectiveListening\",_EducationalActivities.createActivity),\"taskAnalysis\",_EducationalActivities.createActivity),\"empathyBuilding\",_EducationalActivities.createActivity),\"timeOutAsReflection\",_EducationalActivities.createActivity),\"naturalCuriosityMethod\",_EducationalActivities.createActivity),\"strengthBasedParenting\",_EducationalActivities.createActivity),\"siblingMediationTechniques\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"screenTimeNegotiation\",_EducationalActivities.createActivity),\"promotingProblemSolving\",_EducationalActivities.createActivity),\"encouragingGrowthMindset\",_EducationalActivities.createActivity),\"buildingStrongBonds\",_EducationalActivities.createActivity),\"nurturingEmotionalIntelligence\",_EducationalActivities.createActivity),\"positiveDiscipline\",_EducationalActivities.createActivity),\"emotionWheelGame\",_EducationalActivities.createActivity),\"gratitudeJournaling\",_EducationalActivities.createActivity),\"cooperativeBoardGames\",_EducationalActivities.createActivity),\"dailyChoreChart\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"familyStorytime\",_EducationalActivities.createActivity),\"rolePlayingScenarios\",_EducationalActivities.createActivity),\"buildingTogether\",_EducationalActivities.createActivity),\"mindfulnessWalks\",_EducationalActivities.createActivity),\"mealPrepAsATeam\",_EducationalActivities.createActivity),\"artAndCraftProjects\",_EducationalActivities.createActivity),\"playdatePlanning\",_EducationalActivities.createActivity),\"learningThroughPlay\",_EducationalActivities.createActivity),\"communityServiceActivities\",_EducationalActivities.createActivity),\"fitnessChallenges\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"conflictResolutionRolePlay\",_EducationalActivities.createActivity),\"outdoorExplorationChallenges\",_EducationalActivities.createActivity),\"sharedHobbyProjects\",_EducationalActivities.createActivity),\"digitalDetoxDay\",_EducationalActivities.createActivity),\"leadershipActivities\",_EducationalActivities.createActivity),\"familyDebateNights\",_EducationalActivities.createActivity),\"emotionalRegulationTracker\",_EducationalActivities.createActivity),\"behaviorProgressLog\",_EducationalActivities.createActivity),\"familyInteractionJournal\",_EducationalActivities.createActivity),\"learningMilestoneChecklist\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"independenceProgressTracker\",_EducationalActivities.createActivity),\"socialInteractionRating\",_EducationalActivities.createActivity),\"resilienceGrowthTracker\",_EducationalActivities.createActivity),\"parentingStyleReflectionTool\",_EducationalActivities.createActivity),\"routineConsistencyTracker\",_EducationalActivities.createActivity),\"stressReductionAssessment\",_EducationalActivities.createActivity),\"peerRelationshipTracker\",_EducationalActivities.createActivity),\"creativeOutputLog\",_EducationalActivities.createActivity),\"conflictResolutionAssessment\",_EducationalActivities.createActivity),\"leadershipSkillsAssessment\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"screenTimeBalanceReview\",_EducationalActivities.createActivity),\"familyDynamicsCheckIn\",_EducationalActivities.createActivity),\"progressBasedRewardSystem\",_EducationalActivities.createActivity),\"behavioralFrequencyLog\",_EducationalActivities.createActivity),\"growthMindsetJournal\",_EducationalActivities.createActivity),\"emotionalVocabularyExpansionTest\",_EducationalActivities.createActivity),\"familyConnectionLog\",_EducationalActivities.createActivity),\"decisionMakingEvaluation\",_EducationalActivities.createActivity),\"collaborativeTaskReview\",_EducationalActivities.createActivity),\"adaptabilityAssessment\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"independenceAndResponsibilityLog\",_EducationalActivities.createActivity),\"openEndedCreativeProjectEvaluation\",_EducationalActivities.createActivity),\"goalSettingAndAchievementAssessment\",_EducationalActivities.createActivity),\"emotionalIntelligenceGrowthAssessment\",_EducationalActivities.createActivity),\"socialIntelligenceAssessment\",_EducationalActivities.createActivity),\"socialAwarenessAssessment\",_EducationalActivities.createActivity),\"personalityTraitsAssessment\",_EducationalActivities.createActivity),\"personalityDisordersScreening\",_EducationalActivities.createActivity),\"developmentalMilestonesTracker\",_EducationalActivities.createActivity),\"readinessAssessment\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"learningStylesAndPreferencesInventory\",_EducationalActivities.createActivity),\"giftednessScreening\",_EducationalActivities.createActivity),\"behaviorObservationChecklist\",_EducationalActivities.createActivity),\"habitTracker\",_EducationalActivities.createActivity),\"emotionalLiteracyAssessment\",_EducationalActivities.createActivity),\"emotionalRegulationSkillsAssessment\",_EducationalActivities.createActivity),\"socialSkillsObservationChecklist\",_EducationalActivities.createActivity),\"friendshipQualityAssessment\",_EducationalActivities.createActivity),\"socialProblemSolvingAssessment\",_EducationalActivities.createActivity),\"perspectiveTakingAssessment\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"familyCommunicationPatternsAssessment\",_EducationalActivities.createActivity),\"parentChildRelationshipQualityAssessment\",_EducationalActivities.createActivity),\"cognitiveSkillsAssessmentBattery\",_EducationalActivities.createActivity),\"executiveFunctioningAssessment\",_EducationalActivities.createActivity),\"learningStrengthsAndWeaknessesInventory\",_EducationalActivities.createActivity),\"creativityAssessment\",_EducationalActivities.createActivity),\"moodTracker\",_EducationalActivities.createActivity),\"familyStressorsAndCopingStrategiesInventory\",_EducationalActivities.createActivity),\"siblingRelationshipAssessment\",_EducationalActivities.createActivity),\"bloomsTaxonomy\",_EducationalGoals.createBloomsTaxonomy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"revisedBloomsTaxonomy\",_EducationalGoals.createRevisedBloomsTaxonomy),\"dOKTaxonomy\",_EducationalGoals.createDOKTaxonomy),\"webbsDOKTaxonomy\",_EducationalGoals.createWebbsDOKTaxonomy),\"sOLOTaxonomy\",_EducationalGoals.createSOLOTaxonomy),\"marzanosTaxonomy\",_EducationalGoals.createMarzanosTaxonomy),\"finksTaxonomy\",_EducationalGoals.createFinksTaxonomy),\"iSTEStandardsTaxonomy\",_EducationalGoals.createISTEStandardsTaxonomy),\"p21Taxonomy\",_EducationalGoals.createP21Taxonomy),\"backwardDesignTaxonomy\",_EducationalGoals.createBackwardDesignTaxonomy),\"krathwohlsAffectiveTaxonomy\",_EducationalGoals.createKrathwohlsAffectiveTaxonomy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"harrowsPsychomotorTaxonomy\",_EducationalGoals.createHarrowsPsychomotorTaxonomy),\"gagnesNineEventsTaxonomy\",_EducationalGoals.createGagnesNineEventsTaxonomy),\"knowledgeTaxonomy\",_EducationalGoals.createKnowledgeTaxonomy),\"digitalBloomsTaxonomy\",_EducationalGoals.createDigitalBloomsTaxonomy),\"storytelling\",_BibleStudy.createStorytelling),\"discussion\",_BibleStudy.createDiscussion),\"interactiveActivity\",_BibleStudy.createInteractiveActivity),\"technologyEnhanced\",_BibleStudy.createTechnologyEnhanced),\"personalStudy\",_BibleStudy.createPersonalStudy),\"groupStudy\",_BibleStudy.createGroupStudy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"creativeExpression\",_BibleStudy.createCreativeExpression),\"serviceAndOutreach\",_BibleStudy.createServiceAndOutreach),\"theologicalReading\",_BibleStudy.createTheologicalReading),\"historicalReading\",_BibleStudy.createHistoricalReading),\"literaryReading\",_BibleStudy.createLiteraryReading),\"applicativeReading\",_BibleStudy.createApplicativeReading),\"silentReading\",_BibleStudy.createSilentReading),\"topicalReading\",_BibleStudy.createTopicalReading),\"narrativeReading\",_BibleStudy.createNarrativeReading),\"symbolicReading\",_BibleStudy.createSymbolicReading),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"meditativeReadingWithMusic\",_BibleStudy.createMeditativeReadingWithMusic),\"readingWithPrayer\",_BibleStudy.createReadingWithPrayer),\"multilingualReading\",_BibleStudy.createMultilingualReading),\"readingWithArt\",_BibleStudy.createReadingWithArt),\"readingInNature\",_BibleStudy.createReadingInNature),\"characterFocusedReading\",_BibleStudy.createCharacterFocusedReading),\"timePeriodFocusedReading\",_BibleStudy.createTimePeriodFocusedReading),\"genreFocusedReading\",_BibleStudy.createGenreFocusedReading),\"locationFocusedReading\",_BibleStudy.createLocationFocusedReading),\"wordFocusedReading\",_BibleStudy.createWordFocusedReading),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"dictionaryAidedReading\",_BibleStudy.createDictionaryAidedReading),\"mapAidedReading\",_BibleStudy.createMapAidedReading),\"commentaryAidedReading\",_BibleStudy.createCommentaryAidedReading),\"guidedReading\",_BibleStudy.createGuidedReading),\"historicalCriticism\",_BibleStudy.createHistoricalCriticism),\"literaryCriticism\",_BibleStudy.createLiteraryCriticism),\"socialCriticism\",_BibleStudy.createSocialCriticism),\"promiseFocusedReading\",_BibleStudy.createPromiseFocusedReading),\"invitationFocusedReading\",_BibleStudy.createInvitationFocusedReading),\"encouragementFocusedReading\",_BibleStudy.createEncouragementFocusedReading),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"loveFocusedReading\",_BibleStudy.createLoveFocusedReading),\"hopeFocusedReading\",_BibleStudy.createHopeFocusedReading),\"interactiveReading\",_BibleStudy.createInteractiveReading),\"audioReading\",_BibleStudy.createAudioReading),\"readingWithInstantTranslation\",_BibleStudy.createReadingWithInstantTranslation),\"imageGenerationReading\",_BibleStudy.createImageGenerationReading),\"onlineGroupReading\",_BibleStudy.createOnlineGroupReading),\"readingWithAudioCommentary\",_BibleStudy.createReadingWithAudioCommentary),\"creativeContentReading\",_BibleStudy.createCreativeContentReading),\"presentationBasedReading\",_BibleStudy.createPresentationBasedReading),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"questionDrivenReading\",_BibleStudy.createQuestionDrivenReading),\"comparativeTranslationReading\",_BibleStudy.createComparativeTranslationReading),\"culturalSocialReading\",_BibleStudy.createCulturalSocialReading),\"geographicalReading\",_BibleStudy.createGeographicalReading),\"linguisticReading\",_BibleStudy.createLinguisticReading),\"verseMapping\",_BibleStudy.createVerseMapping),\"topicalStudy\",_BibleStudy.createTopicalStudy),\"characterStudy\",_BibleStudy.createCharacterStudy),\"inductiveStudy\",_BibleStudy.createInductiveStudy),\"sOAPMethod\",_BibleStudy.createSOAPMethod),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"lectioDivina\",_BibleStudy.createLectioDivina),\"chronologicalReading\",_BibleStudy.createChronologicalReading),\"parallelReading\",_BibleStudy.createParallelReading),\"bookByBookStudy\",_BibleStudy.createBookByBookStudy),\"wordStudy\",_BibleStudy.createWordStudy),\"prayerJournaling\",_BibleStudy.createPrayerJournaling),\"memoryVersePractice\",_BibleStudy.createMemoryVersePractice),\"bibleArtJournaling\",_BibleStudy.createBibleArtJournaling),\"bibleStudyGames\",_BibleStudy.createBibleStudyGames),\"groupBibleProjects\",_BibleStudy.createGroupBibleProjects),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"devotionalReading\",_BibleStudy.createDevotionalReading),\"bibleStoryFormat\",_BibleStudy.createBibleStoryFormat),\"videoSummary\",_Formats1To.createVideoSummary),\"pilgrimageAndTravel\",_BibleStudy.createPilgrimageAndTravel),\"aIGeneratedSummaries\",_BibleStudy.createAIGeneratedSummaries),\"aIGeneratedDiscussionQuestions\",_BibleStudy.createAIGeneratedDiscussionQuestions),\"aIGeneratedPersonalization\",_BibleStudy.createAIGeneratedPersonalization),\"verseByVerseStudy\",_BibleStudy.createVerseByVerseStudy),\"bookOverview\",_BibleStudy.createBookOverview),\"concordanceStudy\",_BibleStudy.createConcordanceStudy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"biographicalStudy\",_BibleStudy.createBiographicalStudy),\"historicalContextStudy\",_BibleStudy.createHistoricalContextStudy),\"figurativeLanguageStudy\",_BibleStudy.createFigurativeLanguageStudy),\"typologyStudy\",_BibleStudy.createTypologyStudy),\"thematicStudy\",_BibleStudy.createThematicStudy),\"exegeticalStudy\",_BibleStudy.createExegeticalStudy),\"hermeneuticsStudy\",_BibleStudy.createHermeneuticsStudy),\"groupDiscussionGuides\",_BibleStudy.createGroupDiscussionGuides),\"personalizedStudyPlans\",_BibleStudy.createPersonalizedStudyPlans),\"gamifiedBibleQuizzes\",_BibleStudy.createGamifiedBibleQuizzes),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"bibleBasedCreativeWriting\",_BibleStudy.createBibleBasedCreativeWriting),\"prayerMeditationPrompts\",_BibleStudy.createPrayerMeditationPrompts),\"socialSharingCommunityBuilding\",_BibleStudy.createSocialSharingCommunityBuilding),\"scriptureMemorySystems\",_BibleStudy.createScriptureMemorySystems),\"scriptureWriting\",_BibleStudy.createScriptureWriting),\"bibleJournalingPrompts\",_BibleStudy.createBibleJournalingPrompts),\"bibleBasedMusicPlaylists\",_BibleStudy.createBibleBasedMusicPlaylists),\"bibleBasedPodcastsSermons\",_BibleStudy.createBibleBasedPodcastsSermons),\"bibleBasedBookClubs\",_BibleStudy.createBibleBasedBookClubs),\"apocryphaPseudepigraphaStudy\",_BibleStudy.createApocryphaPseudepigraphaStudy),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"biblicalArchaeologyStudy\",_BibleStudy.createBiblicalArchaeologyStudy),\"biblicalLanguagesStudy\",_BibleStudy.createBiblicalLanguagesStudy),\"socialJusticeAdvocacyStudy\",_BibleStudy.createSocialJusticeAdvocacyStudy),\"environmentalStewardshipStudy\",_BibleStudy.createEnvironmentalStewardshipStudy),\"interfaithDialogueStudy\",_BibleStudy.createInterfaithDialogueStudy),\"bibleBasedLeadershipDevelopment\",_BibleStudy.createBibleBasedLeadershipDevelopment),\"bibleBasedFinancialStewardship\",_BibleStudy.createBibleBasedFinancialStewardship),\"bibleBasedParentingFamilyLife\",_BibleStudy.createBibleBasedParentingFamilyLife),\"bibleBasedMarriageEnrichment\",_BibleStudy.createBibleBasedMarriageEnrichment),\"expositorySermon\",_Sermons.createExpositorySermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"doctrinalSermon\",_Sermons.createDoctrinalSermon),\"redemptiveHistoricalSermon\",_Sermons.createRedemptiveHistoricalSermon),\"expositoryCharacterStudy\",_Sermons.createExpositoryCharacterStudy),\"expositoryBiographicalSermon\",_Sermons.createExpositoryBiographicalSermon),\"bibleReadingSermon\",_Sermons.createBibleReadingSermon),\"topicalSermon\",_Sermons.createTopicalSermon),\"practicalSermon\",_Sermons.createPracticalSermon),\"vocationalSermon\",_Sermons.createVocationalSermon),\"counselingSermon\",_Sermons.createCounselingSermon),\"socialIssuesSermon\",_Sermons.createSocialIssuesSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"teachingSermon\",_Sermons.createTeachingSermon),\"educationalSermon\",_Sermons.createEducationalSermon),\"catecheticalSermon\",_Sermons.createCatecheticalSermon),\"instructionalSermon\",_Sermons.createInstructionalSermon),\"narrativeSermon\",_Sermons.createNarrativeSermon),\"imaginativeSermon\",_Sermons.createImaginativeSermon),\"biblicalStorytellingSermon\",_Sermons.createBiblicalStorytellingSermon),\"parableSermon\",_Sermons.createParableSermon),\"biographicalSermon\",_Sermons.createBiographicalSermon),\"narrativeTopicalHybrid\",_Sermons.createNarrativeTopicalHybrid),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"narrativeCallToActionHybrid\",_Sermons.createNarrativeCallToActionHybrid),\"devotionalSermon\",_Sermons.createDevotionalSermon),\"meditationSermon\",_Sermons.createMeditationSermon),\"poeticSermon\",_Sermons.createPoeticSermon),\"encouragementSermon\",_Sermons.createEncouragementSermon),\"comfortingSermon\",_Sermons.createComfortingSermon),\"ethicalSermon\",_Sermons.createEthicalSermon),\"holinessSermon\",_Sermons.createHolinessSermon),\"consecrationSermon\",_Sermons.createConsecrationSermon),\"obedienceSermon\",_Sermons.createObedienceSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"discipleshipSermon\",_Sermons.createDiscipleshipSermon),\"transformationalSermon\",_Sermons.createTransformationalSermon),\"propheticSermon\",_Sermons.createPropheticSermon),\"callToRepentanceSermon\",_Sermons.createCallToRepentanceSermon),\"callToActionSermon\",_Sermons.createCallToActionSermon),\"spiritualWarfareSermon\",_Sermons.createSpiritualWarfareSermon),\"missionarySermon\",_Sermons.createMissionarySermon),\"weddingSermon\",_Sermons.createWeddingSermon),\"funeralSermon\",_Sermons.createFuneralSermon),\"baptismSermon\",_Sermons.createBaptismSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"graduationSermon\",_Sermons.createGraduationSermon),\"anniversarySermon\",_Sermons.createAnniversarySermon),\"crisisSermon\",_Sermons.createCrisisSermon),\"intercessorySermon\",_Sermons.createIntercessorySermon),\"prayerSermon\",_Sermons.createPrayerSermon),\"doxologicalSermon\",_Sermons.createDoxologicalSermon),\"worshipSermon\",_Sermons.createWorshipSermon),\"revivalSermon\",_Sermons.createRevivalSermon),\"healingSermon\",_Sermons.createHealingSermon),\"reconciliationSermon\",_Sermons.createReconciliationSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"restorationSermon\",_Sermons.createRestorationSermon),\"forgivenessSermon\",_Sermons.createForgivenessSermon),\"deliveranceSermon\",_Sermons.createDeliveranceSermon),\"communitySermon\",_Sermons.createCommunitySermon),\"unitySermon\",_Sermons.createUnitySermon),\"serviceSermon\",_Sermons.createServiceSermon),\"stewardshipSermon\",_Sermons.createStewardshipSermon),\"narrativeTopicalHybrid\",_Sermons.createNarrativeTopicalHybrid),\"expositoryPracticalHybrid\",_Sermons.createExpositoryPracticalHybrid),\"expositoryTopicalHybrid\",_Sermons.createExpositoryTopicalHybrid),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"doctrinalPracticalHybrid\",_Sermons.createDoctrinalPracticalHybrid),\"narrativeDoctrinalHybrid\",_Sermons.createNarrativeDoctrinalHybrid),\"propheticNarrativeHybrid\",_Sermons.createPropheticNarrativeHybrid),\"culturalIssuesSermon\",_Sermons.createCulturalIssuesSermon),\"currentEventsSermon\",_Sermons.createCurrentEventsSermon),\"contextualizedSermon\",_Sermons.createContextualizedSermon),\"globalContextSermon\",_Sermons.createGlobalContextSermon),\"justiceSermon\",_Sermons.createJusticeSermon),\"technologySermon\",_Sermons.createTechnologySermon),\"environmentalStewardshipSermon\",_Sermons.createEnvironmentalStewardshipSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"youthSermon\",_Sermons.createYouthSermon),\"childrensSermon\",_Sermons.createChildrensSermon),\"mensSermon\",_Sermons.createMensSermon),\"womensSermon\",_Sermons.createWomensSermon),\"professionalSermon\",_Sermons.createProfessionalSermon),\"familySermon\",_Sermons.createFamilySermon),\"seniorCitizenSermon\",_Sermons.createSeniorCitizenSermon),\"teenSermon\",_Sermons.createTeenSermon),\"singleAdultSermon\",_Sermons.createSingleAdultSermon),\"newBelieverSermon\",_Sermons.createNewBelieverSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"marriedCouplesSermon\",_Sermons.createMarriedCouplesSermon),\"patrioticSermon\",_Sermons.createPatrioticSermon),\"seasonalSermon\",_Sermons.createSeasonalSermon),\"occasionalSermon\",_Sermons.createOccasionalSermon),\"newYearSermon\",_Sermons.createNewYearSermon),\"independenceDaySermon\",_Sermons.createIndependenceDaySermon),\"mothersDaySermon\",_Sermons.createMothersDaySermon),\"fathersDaySermon\",_Sermons.createFathersDaySermon),\"thanksgivingDaySermon\",_Sermons.createThanksgivingDaySermon),\"churchDedicationSermon\",_Sermons.createChurchDedicationSermon),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"differentiationTechniques\",_SharedScript.createInstructionalTechniques),\"questioningStrategiesTechniques\",_SharedScript.createInstructionalTechniques),\"activeLearningTechniques\",_SharedScript.createInstructionalTechniques),\"technologyIntegrationTechniques\",_SharedScript.createInstructionalTechniques),\"motivationAndEngagementTechniques\",_SharedScript.createInstructionalTechniques),\"scaffoldingTechniques\",_SharedScript.createInstructionalTechniques),\"modelingTechniques\",_SharedScript.createInstructionalTechniques),\"guidedPracticeTechniques\",_SharedScript.createInstructionalTechniques),\"independentPracticeTechniques\",_SharedScript.createInstructionalTechniques),\"feedbackAndAssessmentTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"collaborativeLearningTechniques\",_SharedScript.createInstructionalTechniques),\"inquiryBasedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"formativeAssessmentTechniques\",_SharedScript.createInstructionalTechniques),\"culturallyResponsiveTeachingTechniques\",_SharedScript.createInstructionalTechniques),\"criticalThinkingProblemSolvingTechniques\",_SharedScript.createInstructionalTechniques),\"classroomManagementTechniques\",_SharedScript.createInstructionalTechniques),\"metacognitiveStrategiesTechniques\",_SharedScript.createInstructionalTechniques),\"growthMindsetTechniques\",_SharedScript.createInstructionalTechniques),\"socialEmotionalLearningTechniques\",_SharedScript.createInstructionalTechniques),\"universalDesignForLearningTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"gameBasedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"experientialLearningTechniques\",_SharedScript.createInstructionalTechniques),\"studentCenteredLearningTechniques\",_SharedScript.createInstructionalTechniques),\"storytellingNarrativeTechniques\",_SharedScript.createInstructionalTechniques),\"visualLearningToolsTechniques\",_SharedScript.createInstructionalTechniques),\"handsOnLearningTechniques\",_SharedScript.createInstructionalTechniques),\"studentChoiceVoiceTechniques\",_SharedScript.createInstructionalTechniques),\"realWorldConnectionsTechniques\",_SharedScript.createInstructionalTechniques),\"reflectionMetacognitionTechniques\",_SharedScript.createInstructionalTechniques),\"personalizedLearningTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"creativityInnovationTechniques\",_SharedScript.createInstructionalTechniques),\"peerAssessmentTechniques\",_SharedScript.createInstructionalTechniques),\"selfAssessmentTechniques\",_SharedScript.createInstructionalTechniques),\"rubricsTechniques\",_SharedScript.createInstructionalTechniques),\"brainBasedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"globalAwarenessCulturalCompetenceTechniques\",_SharedScript.createInstructionalTechniques),\"flippedClassroomTechniques\",_SharedScript.createInstructionalTechniques),\"adaptiveLearningPlatformsTechniques\",_SharedScript.createInstructionalTechniques),\"geniusHourTechniques\",_SharedScript.createInstructionalTechniques),\"studentLedConferencesTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"podcastsTechniques\",_SharedScript.createInstructionalTechniques),\"screencastsTechniques\",_SharedScript.createInstructionalTechniques),\"virtualFieldTripsTechniques\",_SharedScript.createInstructionalTechniques),\"mindfulnessActivitiesTechniques\",_SharedScript.createInstructionalTechniques),\"brainBreaksTechniques\",_SharedScript.createInstructionalTechniques),\"positiveBehaviorSupportsTechniques\",_SharedScript.createInstructionalTechniques),\"multisensoryLearningTechniques\",_SharedScript.createInstructionalTechniques),\"assistiveTechnologyTools\",_InstructionalStrategies.createAssistiveTechnologyTools),\"structuredLiteracyInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"differentiationAccommodationsTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"personalizedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"strengthBasedApproachTechniques\",_SharedScript.createInstructionalTechniques),\"explicitInstructionModelingTechniques\",_SharedScript.createInstructionalTechniques),\"positiveReinforcementEncouragementTechniques\",_SharedScript.createInstructionalTechniques),\"visualSupportsTechniques\",_SharedScript.createInstructionalTechniques),\"clearConciseInstructionsTechniques\",_SharedScript.createInstructionalTechniques),\"frequentChecksForUnderstandingTechniques\",_SharedScript.createInstructionalTechniques),\"universalDesignForLearningTechniques\",_SharedScript.createInstructionalTechniques),\"specializedTechnologyIntegrationTechniques\",_SharedScript.createInstructionalTechniques),\"taskAnalysisTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"visualCuesPromptsTechniques\",_SharedScript.createInstructionalTechniques),\"concreteExamplesManipulativesTechniques\",_SharedScript.createInstructionalTechniques),\"directFrequentFeedbackTechniques\",_SharedScript.createInstructionalTechniques),\"augmentedAlternativeCommunicationTechniques\",_SharedScript.createInstructionalTechniques),\"differentiatedAssessmentTechniques\",_SharedScript.createInstructionalTechniques),\"visualSchedulesTimersTechniques\",_SharedScript.createInstructionalTechniques),\"preTeachingFrontloadingTechniques\",_SharedScript.createInstructionalTechniques),\"repeatedReadingPracticeTechniques\",_SharedScript.createInstructionalTechniques),\"multiModalLearningTechniques\",_SharedScript.createInstructionalTechniques),\"coTeachingCollaborationTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"handsOnActivities\",_InstructionalStrategies.createHandsOnActivities),\"graphicOrganizers\",_InstructionalStrategies.createGraphicOrganizers),\"rolePlayingSimulations\",_InstructionalStrategies.createRolePlayingSimulations),\"explicitVocabularyInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"selfMonitoringSelfRegulationStrategies\",_SharedScript.createInstructionalTechniques),\"assistiveTechnologyTrainingTechniques\",_SharedScript.createInstructionalTechniques),\"breakTasksSmallerStepsTechniques\",_SharedScript.createInstructionalTechniques),\"useOfRepetitionRoutineTechniques\",_SharedScript.createInstructionalTechniques),\"multiTieredSystemSupportTechniques\",_SharedScript.createInstructionalTechniques),\"interactiveWhiteboardsTouchScreensTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"gameBasedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"reciprocalTeachingTechniques\",_SharedScript.createInstructionalTechniques),\"oralLanguageBasedActivities\",_InstructionalStrategies.createOralLanguageBasedActivities),\"positiveBehaviorSupportTechniques\",_SharedScript.createInstructionalTechniques),\"collaborationPeerSupportTechniques\",_SharedScript.createInstructionalTechniques),\"flexibleLearningEnvironmentsTechniques\",_SharedScript.createInstructionalTechniques),\"errorlessLearningTechniques\",_SharedScript.createInstructionalTechniques),\"systematicInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"reinforcementRewardSystemsTechniques\",_SharedScript.createInstructionalTechniques),\"preferentialSeatingTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"sensoryBreaksTechniques\",_SharedScript.createInstructionalTechniques),\"socialSkillsInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"behaviorManagementTechniques\",_SharedScript.createInstructionalTechniques),\"collaborationRelatedServiceProvidersTechniques\",_SharedScript.createInstructionalTechniques),\"parentGuardianInvolvementTechniques\",_SharedScript.createInstructionalTechniques),\"professionalDevelopmentResources\",_InstructionalStrategies.createProfessionalDevelopmentResources),\"choralRespondingResponseCardsTechniques\",_SharedScript.createInstructionalTechniques),\"mnemonicDevicesTechniques\",_SharedScript.createInstructionalTechniques),\"pullOutPushInInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"environmentalModificationsTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"behaviorContractsTokenEconomiesTechniques\",_SharedScript.createInstructionalTechniques),\"socialStoriesComicStripConversationsTechniques\",_SharedScript.createInstructionalTechniques),\"videoModelingTechniques\",_SharedScript.createInstructionalTechniques),\"preferentialSeatingEnvironmentalModificationsTechniques\",_SharedScript.createInstructionalTechniques),\"clearExpectationsConsistentConsequencesTechniques\",_SharedScript.createInstructionalTechniques),\"choiceControlTechniques\",_SharedScript.createInstructionalTechniques),\"peerMediatedInstructionTechniques\",_SharedScript.createInstructionalTechniques),\"socialStories\",_InstructionalStrategies.createSocialStories),\"movementBasedLearningTechniques\",_SharedScript.createInstructionalTechniques),\"mindfulnessRelaxationTechniques\",_SharedScript.createInstructionalTechniques),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"learningStationsCentersTechniques\",_SharedScript.createInstructionalTechniques),\"flippedClassroomApproachTechniques\",_SharedScript.createInstructionalTechniques),\"guidedImageryVisualizationTechniques\",_SharedScript.createInstructionalTechniques),\"generalRecommendations\",_SharedScript.createRecommendations),\"activityRichRecommendations\",_SharedScript.createRecommendations),\"specialNeedsRecommendations\",_SharedScript.createRecommendations),\"giftedLearnerRecommendations\",_SharedScript.createRecommendations),\"sundaySchoolRecommendations\",_SharedScript.createRecommendations),\"extracurricularActivityRecommendations\",_SharedScript.createRecommendations),\"shortLessonRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"longLessonRecommendations\",_SharedScript.createRecommendations),\"visualLearnerRecommendations\",_SharedScript.createRecommendations),\"auditoryLearnerRecommendations\",_SharedScript.createRecommendations),\"efficiencyExpertRecommendations\",_SharedScript.createRecommendations),\"engagementCatalystRecommendations\",_SharedScript.createRecommendations),\"differentiationDynamoRecommendations\",_SharedScript.createRecommendations),\"techSavvyTeachersToolkitRecommendations\",_SharedScript.createRecommendations),\"creativeClassroomCuratorRecommendations\",_SharedScript.createRecommendations),\"stemStarRecommendations\",_SharedScript.createRecommendations),\"literacyLuminaryRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"historyHeroRecommendations\",_SharedScript.createRecommendations),\"artsAdvocateRecommendations\",_SharedScript.createRecommendations),\"neurodivergentNavigatorRecommendations\",_SharedScript.createRecommendations),\"giftedGuideRecommendations\",_SharedScript.createRecommendations),\"ellEmpowererRecommendations\",_SharedScript.createRecommendations),\"afterSchoolAllStarRecommendations\",_SharedScript.createRecommendations),\"homeschoolHelperRecommendations\",_SharedScript.createRecommendations),\"assessmentAceRecommendations\",_SharedScript.createRecommendations),\"classroomWhispererRecommendations\",_SharedScript.createRecommendations),\"codingConnoisseurRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"globalCitizenCultivatorRecommendations\",_SharedScript.createRecommendations),\"kinestheticCommanderRecommendations\",_SharedScript.createRecommendations),\"twiceExceptionalTrailblazerRecommendations\",_SharedScript.createRecommendations),\"remoteLearningRockstarRecommendations\",_SharedScript.createRecommendations),\"projectBasedProdigyRecommendations\",_SharedScript.createRecommendations),\"generalParentingRecommendations\",_SharedScript.createRecommendations),\"buildingStrongBondsRecommendations\",_SharedScript.createRecommendations),\"encouragingGrowthMindsetRecommendations\",_SharedScript.createRecommendations),\"positiveDisciplineRecommendations\",_SharedScript.createRecommendations),\"familyLifeRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"nurturingIndependenceRecommendations\",_SharedScript.createRecommendations),\"boostingCognitiveSkillsRecommendations\",_SharedScript.createRecommendations),\"nurturingSocialSkillsRecommendations\",_SharedScript.createRecommendations),\"promotingPhysicalWellbeingRecommendations\",_SharedScript.createRecommendations),\"teachingValuesAndEthicsRecommendations\",_SharedScript.createRecommendations),\"buildingSelfRegulationRecommendations\",_SharedScript.createRecommendations),\"improvingCommunicationRecommendations\",_SharedScript.createRecommendations),\"promotingProblemSolvingRecommendations\",_SharedScript.createRecommendations),\"encouragingEmotionalExpressionRecommendations\",_SharedScript.createRecommendations),\"strengtheningPeerRelationshipsRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"developingSelfConfidenceRecommendations\",_SharedScript.createRecommendations),\"fosteringCreativityRecommendations\",_SharedScript.createRecommendations),\"balancingDigitalAndRealLifeRecommendations\",_SharedScript.createRecommendations),\"stressManagementRecommendations\",_SharedScript.createRecommendations),\"familyDynamicsAndCommunicationRecommendations\",_SharedScript.createRecommendations),\"mindfulnessForFamiliesRecommendations\",_SharedScript.createRecommendations),\"specialNeedsParentingRecommendations\",_SharedScript.createRecommendations),\"emotionalIntelligenceBuilderRecommendations\",_SharedScript.createRecommendations),\"independenceEncouragerRecommendations\",_SharedScript.createRecommendations),\"familyBondingAdvocateRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"socialSkillsEnhancerRecommendations\",_SharedScript.createRecommendations),\"academicSupportSpecialistRecommendations\",_SharedScript.createRecommendations),\"positiveDisciplineStrategistRecommendations\",_SharedScript.createRecommendations),\"mindfulnessGuruRecommendations\",_SharedScript.createRecommendations),\"teenagerTransitionSupporterRecommendations\",_SharedScript.createRecommendations),\"digitalBalanceAdvocateRecommendations\",_SharedScript.createRecommendations),\"neurodiversePlaySpecialistRecommendations\",_SharedScript.createRecommendations),\"globalAwarenessBuilderRecommendations\",_SharedScript.createRecommendations),\"resilienceParentingRecommendations\",_SharedScript.createRecommendations),\"multimodalLearnerSupportRecommendations\",_SharedScript.createRecommendations),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"communityValuesNurturerRecommendations\",_SharedScript.createRecommendations),\"transitionNavigatorRecommendations\",_SharedScript.createRecommendations),\"creativityCultivatorRecommendations\",_SharedScript.createRecommendations),\"leadershipAdvisorRecommendations\",_SharedScript.createRecommendations),\"tailoredParentingRecommendations\",_SharedScript.createRecommendations),\"understandingChildDevelopmentRecommendations\",_SharedScript.createRecommendations),\"effectiveCommunicationAndConnectionRecommendations\",_SharedScript.createRecommendations),\"mathConceptExplainer\",_Formats500To.createMathConceptExplainer),\"informativeArticle\",_NewCode.createInformativeArticle),\"bookChapter\",_NewCode.createBookChapter),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"lectureTranscript\",_NewCode.createLectureTranscript),\"historicalDocument\",_NewCode.createHistoricalDocument),\"scientificResearchSummary\",_NewCode.createScientificResearchSummary),\"literaryCritique\",_NewCode.createLiteraryCritique),\"newspaperArticle\",_NewCode.createNewspaperArticle),\"debateScript\",_NewCode.createDebateScript),\"labReportTemplate\",_NewCode.createLabReportTemplate),\"scientificInvestigation\",_NewCode.createScientificInvestigation),\"scienceNewsArticles\",_NewCode.createScienceNewsArticles),\"scientificDiagram\",_NewCode.createScientificDiagram),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"scientificMethodPractice\",_NewCode.createScientificMethodPractice),\"socialScienceExperiment\",_NewCode.createSocialScienceExperiment),\"culturalComparison\",_NewCode.createCulturalComparison),\"ethicalDilemma\",_NewCode.createEthicalDilemma),\"historicalWhatIf\",_NewCode.createHistoricalWhatIf),\"mapBasedActivity\",_NewCode.createMapBasedActivity),\"scientificIllustration\",_NewCode.createScientificIllustration),\"scienceVocabularyGame\",_NewCode.createScienceVocabularyGame),\"multiSensoryVocabularyBuilder\",_NewCode.createMultiSensoryVocabularyBuilder),\"adjustableText\",_NewCode.createAdjustableText),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"readAloudFunctionality\",_NewCode.createReadAloudFunctionality),\"phonicsGame\",_NewCode.createPhonicsGame),\"interactivePhonicsGames\",_NewCode.createInteractivePhonicsGames),\"spellingPractice\",_NewCode.createSpellingPractice),\"interactiveVocabularyMaps\",_NewCode.createInteractiveVocabularyMaps),\"storySequencing\",_NewCode.createStorySequencing),\"interactiveReadingComprehension\",_NewCode.createInteractiveReadingComprehension),\"interactiveMathGames\",_NewCode.createInteractiveMathGames),\"guidedWritingPrompts\",_NewCode.createGuidedWritingPrompts),\"visualStorytelling\",_NewCode.createVisualStorytelling),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"multiSensoryReadingActivities\",_NewCode.createMultiSensoryReadingActivities),\"visualMathProblemSolving\",_NewCode.createVisualMathProblemSolving),\"guidedReadingExercises\",_NewCode.createGuidedReadingExercises),\"chooseYourOwnAdventure\",_NewCode.createChooseYourOwnAdventure),\"educationalShortStory\",_NewCode.createEducationalShortStory),\"mathWordProblemExplanation\",_NewCode.createMathWordProblemExplanation),\"poetryAnalysis\",_NewCode.createPoetryAnalysis),\"escapeRoomChallenge\",_EducationalActivities.createActivity),\"scienceExperiment\",_EducationalActivities.createActivity),\"designThinkingChallenge\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"buildAStoryCards\",_EducationalActivities.createActivity),\"rotatingRolePlaying\",_EducationalActivities.createActivity),\"bingo\",_EducationalActivities.createActivity),\"jeopardy\",_EducationalActivities.createActivity),\"simulations\",_EducationalActivities.createActivity),\"interactiveWhiteboard\",_EducationalActivities.createActivity),\"codingChallenges\",_EducationalActivities.createActivity),\"problemOfTheDayChallenge\",_EducationalActivities.createActivity),\"charades\",_EducationalActivities.createActivity),\"pictionary\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"scavengerHunt\",_EducationalActivities.createActivity),\"cardGame\",_EducationalActivities.createActivity),\"boardGame\",_EducationalActivities.createActivity),\"debateTournament\",_EducationalActivities.createActivity),\"onlineEscapeRoom\",_EducationalActivities.createActivity),\"wouldYouRatherDebate\",_EducationalActivities.createActivity),\"historicalDinnerParty\",_EducationalActivities.createActivity),\"inventProductChallenge\",_EducationalActivities.createActivity),\"timeCapsuleProject\",_EducationalActivities.createActivity),\"debateLaw\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"documentaryProject\",_EducationalActivities.createActivity),\"ethicalDilemmasDiscussion\",_EducationalActivities.createActivity),\"mysteryScienceInvestigation\",_EducationalActivities.createActivity),\"historicalWhatIfScenario\",_EducationalActivities.createActivity),\"designCityChallenge\",_EducationalActivities.createActivity),\"codeRobot\",_EducationalActivities.createActivity),\"interactiveStorytellingActivity\",_EducationalActivities.createActivity),\"gamifiedLearningPlatform\",_EducationalActivities.createActivity),\"augmentedRealityLearning\",_EducationalActivities.createActivity),\"escapeRoomDesignChallenge\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"gameShowCreation\",_EducationalActivities.createActivity),\"simonSaysTwist\",_EducationalActivities.createActivity),\"relayRaceEducational\",_EducationalActivities.createActivity),\"obstacleCourseAcademic\",_EducationalActivities.createActivity),\"outdoorScavengerHunt\",_EducationalActivities.createActivity),\"cardMatchingEducational\",_EducationalActivities.createActivity),\"triviaQuizShow\",_EducationalActivities.createActivity),\"debateTournament\",_EducationalActivities.createActivity),\"rolePlayingScenario\",_EducationalActivities.createActivity),\"historicalDinnerParty\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"timeCapsuleProject\",_EducationalActivities.createActivity),\"createDocumentary\",_EducationalActivities.createActivity),\"ethicalDilemmasDiscussion\",_EducationalActivities.createActivity),\"groupPuzzles\",_EducationalActivities.createActivity),\"storytelling\",_EducationalActivities.createActivity),\"humanBingo\",_EducationalActivities.createActivity),\"blindfoldObstacleCourse\",_EducationalActivities.createActivity),\"groupStorytelling\",_EducationalActivities.createActivity),\"expertPanels\",_EducationalActivities.createActivity),\"classroomDebate\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"whatIfScenarios\",_EducationalActivities.createActivity),\"decisionMakingChallenges\",_EducationalActivities.createActivity),\"resourceManagementGame\",_EducationalActivities.createActivity),\"brokenTelephoneGame\",_EducationalActivities.createActivity),\"findTheImposterGame\",_EducationalActivities.createActivity),\"vocabularyHopscotchGame\",_EducationalActivities.createActivity),\"mathTwisterGame\",_EducationalActivities.createActivity),\"historicalReenactment\",_EducationalActivities.createActivity),\"scienceCharadesGame\",_EducationalActivities.createActivity),\"geographyScavengerHuntGame\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"onceUponATimeMachineGame\",_EducationalActivities.createActivity),\"characterCreationChallengeGame\",_EducationalActivities.createActivity),\"mythicalCreatureDesignGame\",_EducationalActivities.createActivity),\"fairyTaleRewriteGame\",_EducationalActivities.createActivity),\"whatHappensNextGame\",_EducationalActivities.createActivity),\"historicalFictionWritingGame\",_EducationalActivities.createActivity),\"classroomOlympicsGame\",_EducationalActivities.createActivity),\"buildATowerGame\",_EducationalActivities.createActivity),\"eggDropExperimentGame\",_EducationalActivities.createActivity),\"stockMarketSimulationGame\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"escapeTheClassroomGame\",_EducationalActivities.createActivity),\"historicalWhoAmIGame\",_EducationalActivities.createActivity),\"inventAGameChallenge\",_EducationalActivities.createActivity),\"communityServiceProject\",_EducationalActivities.createActivity),\"expertDay\",_EducationalActivities.createActivity),\"fieldTripsWithATwist\",_EducationalActivities.createActivity),\"mockElections\",_EducationalActivities.createActivity),\"classroomEconomy\",_EducationalActivities.createActivity),\"designAWorldChallenge\",_EducationalActivities.createActivity),\"inventALanguage\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"timeTravelerDebates\",_EducationalActivities.createActivity),\"mysteryScienceTheater\",_EducationalActivities.createActivity),\"createABusinessSimulation\",_EducationalActivities.createActivity),\"designMuseumExhibit\",_EducationalActivities.createActivity),\"twoTruthsAndALie\",_EducationalActivities.createActivity),\"chainReactionStorytelling\",_EducationalActivities.createActivity),\"pictureThisTwist\",_EducationalActivities.createActivity),\"musicalChairsTrivia\",_EducationalActivities.createActivity),\"bingoTwist\",_EducationalActivities.createActivity),\"jeopardyStudentContent\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"humanKnot\",_EducationalActivities.createActivity),\"balloonVolleyball\",_EducationalActivities.createActivity),\"musicalChairsTwist\",_EducationalActivities.createActivity),\"freezeDancePoses\",_EducationalActivities.createActivity),\"outdoorEscapeRoom\",_EducationalActivities.createActivity),\"geocaching\",_EducationalActivities.createActivity),\"onlineCollaboration\",_EducationalActivities.createActivity),\"educationalAppsAndGames\",_EducationalActivities.createActivity),\"videoCreationChallenge\",_EducationalActivities.createActivity),\"podcastCreation\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"onlineDebatesAndForums\",_EducationalActivities.createActivity),\"digitalStorytelling\",_EducationalActivities.createActivity),\"stopMotionAnimation\",_EducationalActivities.createActivity),\"improvisationTheater\",_EducationalActivities.createActivity),\"modelBuildingChallenges\",_EducationalActivities.createActivity),\"fashionDesignChallenge\",_EducationalActivities.createActivity),\"culinaryChallenge\",_EducationalActivities.createActivity),\"scienceFair\",_EducationalActivities.createActivity),\"mockTrial\",_EducationalActivities.createActivity),\"fashionShow\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"obstacleCourseRelay\",_EducationalActivities.createActivity),\"scavengerHuntWithChallenges\",_EducationalActivities.createActivity),\"virtualRealityFieldTrip\",_EducationalActivities.createActivity),\"augmentedRealityGame\",_EducationalActivities.createActivity),\"interactiveQuizGame\",_EducationalActivities.createActivity),\"peerReviewWorkshop\",_EducationalActivities.createActivity),\"puzzleChallenge\",_EducationalActivities.createActivity),\"virtualLabSimulation\",_EducationalActivities.createActivity),\"historicalTimelineChallenge\",_EducationalActivities.createActivity),\"mathematicalPuzzle\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"languageRelay\",_EducationalActivities.createActivity),\"culturalExchangeGame\",_EducationalActivities.createActivity),\"scienceTriviaBattle\",_EducationalActivities.createActivity),\"artCritiqueChallenge\",_EducationalActivities.createActivity),\"mindMappingGame\",_EducationalActivities.createActivity),\"financialLiteracySimulation\",_EducationalActivities.createActivity),\"ecoChallenge\",_EducationalActivities.createActivity),\"codingPuzzleGame\",_EducationalActivities.createActivity),\"roboticsProgrammingChallenge\",_EducationalActivities.createActivity),\"digitalArtCreationGame\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"musicCompositionChallenge\",_EducationalActivities.createActivity),\"dramaRolePlayScenario\",_EducationalActivities.createActivity),\"creativeProblemSolvingWorkshop\",_EducationalActivities.createActivity),\"interactiveScienceExhibit\",_EducationalActivities.createActivity),\"storyRemixChallenge\",_EducationalActivities.createActivity),\"languageImmersionGame\",_EducationalActivities.createActivity),\"civicEngagementSimulation\",_EducationalActivities.createActivity),\"virtualFieldTripDebrief\",_EducationalActivities.createActivity),\"collaborationPuzzle\",_EducationalActivities.createActivity),\"interactiveHistoryTimeline\",_EducationalActivities.createActivity),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"mindfulnessRelaxationGame\",_EducationalActivities.createActivity),\"debateStrategyGame\",_EducationalActivities.createActivity),\"interdisciplinaryChallengeGame\",_EducationalActivities.createActivity),\"flowchart\",_Formats5000To.renderEducationalComponent),\"conceptMap\",_Formats5000To.renderEducationalComponent),\"timeline\",_Formats5000To.renderEducationalComponent),\"interactiveMap\",_Formats5000To.renderEducationalComponent),\"vennDiagram\",_Formats5000To.renderEducationalComponent),\"stateDiagram\",_Formats5000To.renderEducationalComponent),\"sequenceDiagram\",_Formats5000To.renderEducationalComponent),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"umlClassDiagram\",_Formats5000To.renderEducationalComponent),\"networkDiagram\",_Formats5000To.renderEducationalComponent),\"interactiveDataDashboard\",_Formats5000To.renderEducationalComponent),\"animatedDataVisualization\",_Formats5000To.renderEducationalComponent),\"interactiveQuiz\",_Formats5000To.renderEducationalComponent),\"virtualLaboratory\",_Formats5000To.renderEducationalComponent),\"physicsSimulation\",_Formats5000To.renderEducationalComponent),\"molecularModel\",_Formats5000To.renderEducationalComponent),\"periodicTableExplorer\",_Formats5000To.renderEducationalComponent),\"astronomySimulation\",_Formats5000To.renderEducationalComponent),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"bodySystemsExplorer\",_Formats5000To.renderEducationalComponent),\"languageLearningGame\",_Formats5000To.renderEducationalComponent),\"dragDropActivity\",_Formats5000To.renderEducationalComponent),\"digitalStorytelling\",_Formats5000To.renderEducationalComponent),\"virtualWhiteboard\",_Formats5000To.renderEducationalComponent),\"gamifiedLearning\",_Formats5000To.renderEducationalComponent),\"codeExecution\",_Formats5000To.renderEducationalComponent),\"sentenceConstruction\",_Formats5000To.renderEducationalComponent),\"speechTextIntegration\",_Formats5000To.renderEducationalComponent),\"studentChatbot\",_Formats5000To.renderEducationalComponent),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"virtualScienceLab\",_Formats5000To.renderEducationalComponent),\"interactiveDebate\",_Formats5000To.renderEducationalComponent),\"aiEssayGrading\",_Formats5000To.renderEducationalComponent),\"typingTrainer\",_Formats5000To.renderEducationalComponent),\"toneDetection\",_Formats5000To.renderEducationalComponent),\"typingTrainerInteractive\",_Formats5000To.renderEducationalComponent),\"sentimentAnalysis\",_Formats5000To.renderEducationalComponent),\"speechTextLearning\",_Formats5000To.renderEducationalComponent),\"wordCloud\",_Formats5000To.renderEducationalComponent),\"mindMap\",_Formats5000To.renderEducationalComponent),_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_formatFunctions,\"treeDiagram\",_Formats5000To.renderEducationalComponent),\"sunburst\",_Formats5000To.renderEducationalComponent),\"bubbleChart\",_Formats5000To.renderEducationalComponent),\"treemap\",_Formats5000To.renderEducationalComponent),\"stackedArea\",_Formats5000To.renderEducationalComponent),\"frayerModel\",_Formats5000To.renderEducationalComponent),\"storyboardGrid\",_Formats5000To.renderEducationalComponent),\"fiveWsChart\",_Formats5000To.renderEducationalComponent),\"causeEffect\",_Formats5000To.renderEducationalComponent),\"graphicOrganizer\",_Formats5000To.renderEducationalComponent));var reactComponents={wordSearch:_EducationalGames.CreateWordSearchGame,jigsawPuzzleGame:_EducationalGames.CreateJigsawPuzzleGame,hangman:_EducationalGames.CreateHangmanGame,wordle:_EducationalGames.CreateWordleGame,anagrams:_EducationalGames.CreateAnagramsGame,crosswordPuzzle:_EducationalGames.CreateCrosswordGame,sudoku:_EducationalGames.CreateSudokuGame,boggle:_EducationalGames.CreateBoggleGame,sevenLittleWords:_EducationalGames.Create7LittleWordsGame,kenken:_EducationalGames.CreateKenKenGame,cryptogram:_EducationalGames.CreateCryptogramGame,spellTower:_EducationalGames.CreateSpellTowerGame,typeshift:_EducationalGames.CreateTypeshiftGame,crypticCrossword:_EducationalGames.CreateCrypticCrosswordGame,bookwormAdventures:_EducationalGames.CreateBookwormAdventuresGame,babbleRoyale:_EducationalGames.CreateBabbleRoyaleGame,kittyLetter:_EducationalGames.CreateKittyLetterGame,letterpress:_EducationalGames.CreateLetterpressGame,sentenceUnscramble:_EducationalGames.CreateSentenceUnscrambleGame,oddOneOut:_EducationalGames.CreateOddOneOutGame,interactiveTimeline:_EducationalGames.CreateInteractiveTimeline,codingChallenge:_EducationalGames.CreateCodingChallenge,debateGame:_EducationalGames.CreateDebateGame,classificationGame:_EducationalGames.CreateClassificationGame,simulationGame:_EducationalGames.CreateSimulationGame,strategyGame:_EducationalGames.CreateStrategyGame,creativeWritingPrompt:_EducationalGames.CreateCreativeWritingPrompt,interactiveStorytelling:_EducationalGames.CreateInteractiveStorytelling,tangramPuzzle:_EducationalGames.CreateTangramPuzzle,towerOfHanoiPuzzle:_EducationalGames.CreateTowerOfHanoiPuzzle,whatIfScenario:_EducationalGames.CreateWhatIfScenario};\nvar userFormats=[];\ntry{var storedData=localStorage.getItem('userFormats');if(storedData){userFormats=JSON.parse(storedData);\n}}catch(error){console.error(\"Error retrieving user format data:\",error);\n}\nvar categories=Array.from(new Set(_GlobalVariables.newTTableData.map(function(item){return item.Category;})));var teacherCategories=[\"Lesson Plans\",\"Instructional Strategies\",\"Inclusive Teaching Strategies\",\"Educational Activities\",\"Recommendations\",\"Educational Classroom Games\"];var spiritualCategories=[\"Interactive Study\",\"Technology & AI\",\"Personal Reflection\",\"Creative Exploration\",\"Practical Application\",\"Theological Insights\",\"Historical Context\",\"Exegetical & Hermeneutical\",\"Content-Focused Study\",\"Multi-Sensory Experiences\",\"Expository Sermons\",\"Topical Sermons\",\"Narrative Sermons\",\"Devotional Sermons\",\"Ethical/Transformational Sermons\",\"Prophetic/Evangelistic Sermons\",\"Life Events Sermons\",\"Prayer/Worship Sermons\",\"Community/Fellowship Sermons\",\"Cultural Relevance Sermons\"];var parentingCategories=[\"Parenting Recommendations\",\"Parenting Action Plans\",\"Parenting Methods\",\"Parenting Activities\",\"Parenting Assessments\",\"Advanced Assessments\"];var contentCategories=categories.filter(function(item){return!teacherCategories.includes(item);}).filter(function(cat){return cat!==\"Educational Goals\"&&cat!==\"Spiritual Goals\"&&cat!==\"Parenting Goals\";}).filter(function(cat){return!spiritualCategories.includes(cat);}).filter(function(cat){return!parentingCategories.includes(cat);});\nfunction initializeFormatMenu(){\nvar contentExpander=document.querySelector(\"#content-expander .content-selection\");var teacherExpander=document.querySelector('#teacher-corner-expander .content-selection');var spiritualExpander=document.querySelector('#spiritual-corner-expander .content-selection');var parentingExpander=document.querySelector('#parenting-corner-expander .content-selection');\nconsole.log(\"categories\",categories);console.log('All newTTableData:',_GlobalVariables.newTTableData);\ncategories.forEach(function(category){var detailsElement=\"\";\nif(category!==\"Educational Goals\"&&category!==\"Parenting Goals\"&&category!==\"Spiritual Goals\"){detailsElement=document.createElement(\"details\");detailsElement.className='category-entry';var summary=document.createElement(\"summary\");summary.textContent=category;summary.classList.add(\"paragraph\");detailsElement.appendChild(summary);detailsElement.addEventListener(\"toggle\",function(event){if(event.target.open){var allDetails=document.querySelectorAll(\".content-selection details\");var _iterator=_createForOfIteratorHelper(allDetails),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var otherDetails=_step.value;if(otherDetails.open&&otherDetails!==event.target){otherDetails.removeAttribute(\"open\");break;}}}catch(err){_iterator.e(err);}finally{_iterator.f();}}});}\nvar container=document.createElement(\"div\");container.classList.add(\"format-menu\");\n_GlobalVariables.newTTableData.filter(function(item){return item.Category===category;}).forEach(function(formatData){var buttonContainer=document.createElement(\"div\");buttonContainer.classList.add('button-container');\nif(formatData.Category==='Recommendations'){buttonContainer.classList.add('recommendation-button-container');}var button=document.createElement(\"button\");button.textContent=formatData.Format;button.title=formatData.Description;button.classList.add(\"btn\",\"btn-secondary\",\"format-button\");button.setAttribute('data-category',category);console.log(\"categoryHere:\",category);button.setAttribute('data-format-no',formatData.No);console.log(\"Added button: \".concat(formatData.Format,\" (Format No: \").concat(formatData.No,\")\"));button.addEventListener(\"click\",function(){var formatName=formatData.Format;console.log(formatData.No);console.log(\"formatData\",formatData);fetchAndInjectContent(formatData.No,\"content-area\",\"feedback-area\");var existingFormat=userFormats.find(function(f){return f.formatName===formatName;});if(existingFormat){existingFormat.count++;}else{userFormats.push({formatName:formatName,count:1});}localStorage.setItem('userFormats',JSON.stringify(userFormats));getAndHighlightFormats();});buttonContainer.addEventListener(\"submit\",function(event){event.preventDefault();buttonContainer.submit();});buttonContainer.appendChild(button);container.appendChild(buttonContainer);});\nif(detailsElement!==\"\"){\ndetailsElement.appendChild(container);if(teacherCategories.includes(category)){teacherExpander.appendChild(detailsElement);}else if(spiritualCategories.includes(category)){spiritualExpander.appendChild(detailsElement);}else if(parentingCategories.includes(category)){parentingExpander.appendChild(detailsElement);}else{contentExpander.appendChild(detailsElement);}}\n});\npopulatcategorFilter(\"content-expander\",\"category-filter\",contentCategories);populatcategorFilter(\"teacher-corner-expander\",\"teacher-category-filter\",teacherCategories);populatcategorFilter(\"spiritual-corner-expander\",\"spiritual-category-filter\",spiritualCategories);populatcategorFilter(\"parenting-corner-expander\",\"parenting-category-filter\",parentingCategories);\nsearchBrFunctionality(\"general-accordion\");searchBrFunctionality(\"teacher-accordion\");searchBrFunctionality(\"spiritual-accordion\");searchBrFunctionality(\"parenting-accordion\");renderPersonalizedFormatLists();\nvar createNewFormatListButton=document.getElementById('createNewFormatList');if(createNewFormatListButton){createNewFormatListButton.addEventListener(\"click\",function(){showCreateNewListModal();});}else{console.error('Error: createNewFormatListButton not found.');}}function initializeUnifiedGoalMenu(){var goalCategoryFilter=document.getElementById('goal-category-filter');var goalsContainer=document.getElementById('goals-formats');function renderGoals(){goalsContainer.innerHTML='';var selectedCategory=goalCategoryFilter.value;\nvar container=document.createElement('div');container.classList.add('format-menu');_GlobalVariables.newTTableData.filter(function(item){if(selectedCategory==='All Goals'){return item.Category==='Educational Goals'||item.Category==='Parenting Goals'||item.Category==='Spiritual Goals';}else{return item.Category===selectedCategory;}}).forEach(function(formatData){var buttonContainer=document.createElement('div');buttonContainer.classList.add('button-container');var button=document.createElement('button');button.textContent=formatData.Format;button.title=formatData.Description;button.classList.add('btn','btn-secondary','format-button');button.addEventListener('click',function(){console.log(\"Selected Format: \".concat(formatData.No,\" - \").concat(formatData.Format));fetchAndInjectContent(formatData.No,'content-area','feedback-area');});buttonContainer.appendChild(button);container.appendChild(buttonContainer);});goalsContainer.appendChild(container);}goalCategoryFilter.addEventListener('change',renderGoals);renderGoals();}var formatListButtons={};\nvar personalizedFormats;\nfunction renderPersonalizedFormatLists(){var personalizedFormatsContainer=document.getElementById(\"personalized-format-lists\");personalizedFormatsContainer.innerHTML=\"\";\npersonalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];if(personalizedFormats.length>0){\npersonalizedFormats.forEach(function(formatList,index){var formatListDiv=createFormatListElement(formatList,index);personalizedFormatsContainer.appendChild(formatListDiv);});\nvar headers=document.querySelectorAll('.format-list-header');headers.forEach(function(header){header.addEventListener('click',function(){var formatList=header.parentElement;formatList.classList.toggle('expanded');var icon=header.querySelector('.collapse-icon');icon.classList.toggle('collapsed');\nvar formatMenu=formatList.querySelector('.format-menu');if(formatList.classList.contains('expanded')){formatMenu.style.maxHeight=formatMenu.scrollHeight+'px';}else{formatMenu.style.maxHeight='0px';}});});\nvar expander=document.getElementById('format-list-expander');expander.addEventListener('click',function(){expander.classList.toggle('expanded');\npersonalizedFormatsContainer.classList.toggle('expanded');});}else{\nvar noListsMessage=document.createElement(\"p\");noListsMessage.textContent=\"No personalized format lists found.\";personalizedFormatsContainer.appendChild(noListsMessage);}}\nfunction createFormatListElement(formatList,listIndex){var formatListDiv=document.createElement(\"div\");formatListDiv.classList.add(\"format-list\");\nvar header=document.createElement(\"div\");header.classList.add(\"format-list-header\");var imageContainer=document.createElement(\"div\");imageContainer.classList.add(\"module-image-wrapper\");imageContainer.innerHTML=\"<img src='../images/module.png' alt='Personalized modules' Image>\";var titleHeading=document.createElement(\"h3\");titleHeading.textContent=formatList.categoryName;titleHeading.classList.add(\"list-title\");\nvar editIcon=document.createElement(\"span\");editIcon.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi-pencil\" viewBox=\"0 0 16 16\"><path d=\"M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z\"/></svg>';editIcon.classList.add(\"edit-icon\");editIcon.dataset.listIndex=listIndex;editIcon.addEventListener(\"click\",function(e){e.stopPropagation();\nvar listIndex=parseInt(editIcon.dataset.listIndex,10);\ncurrentEditListIndex=listIndex;\ncurrentModalAction=\"edit\";\nnewListNameInput.value=personalizedFormats[listIndex].categoryName;\nshowEditListModal(listIndex);});\nvar deleteButton=document.createElement(\"button\");deleteButton.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-x\" viewBox=\"0 0 16 16\"><path d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"/></svg>';deleteButton.classList.add(\"btn\",\"btn-danger\",\"delete-button\");deleteButton.addEventListener(\"click\",function(e){e.stopPropagation();\ndeleteFormatList(listIndex);});\nvar addFormatButton=document.createElement(\"button\");addFormatButton.textContent=\"Add Format\";addFormatButton.classList.add(\"btn\",\"btn-primary\",\"add-format-button\");addFormatButton.style.display=\"none\";formatListButtons[listIndex]=addFormatButton;addFormatButton.addEventListener(\"click\",function(e){e.stopPropagation();\nshowFormatSelectionModal(formatList,listIndex);});\nvar viewAllButton=document.createElement(\"button\");viewAllButton.textContent=\"View All\";viewAllButton.classList.add(\"btn\",\"btn-info\",\"view-all-button\");viewAllButton.addEventListener(\"click\",function(e){e.stopPropagation();\nshowAllFormatsContent(formatList.formats);});\nvar collapseIcon=document.createElement(\"span\");collapseIcon.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-down\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0 - .708z\"/></svg>';collapseIcon.classList.add(\"collapse-icon\");\nheader.appendChild(imageContainer);header.appendChild(titleHeading);header.appendChild(editIcon);header.appendChild(deleteButton);header.appendChild(addFormatButton);header.appendChild(viewAllButton);header.appendChild(collapseIcon);\nformatListDiv.appendChild(header);var formatsList=document.createElement(\"div\");formatsList.classList.add(\"format-menu\");formatsList.id=\"formatsList\".concat(listIndex);\nformatsList.style.maxHeight='0px';\nformatsList.style.overflowY=\"auto\";\nformatList.formats.forEach(function(format){addFormatToPersonalizedListUI(format,formatsList,listIndex);});formatListDiv.appendChild(formatsList);\nheader.addEventListener('click',function(){var formatList=header.parentElement;var formatMenu=formatList.querySelector('.format-menu');\nif(formatMenu.style.maxHeight==='0px'){formatMenu.style.maxHeight='200px';\n}else{formatMenu.style.maxHeight='0px';\n}});return formatListDiv;}\nfunction addFormatToPersonalizedListUI(format,formatsList,listIndex){var listItem=document.createElement(\"li\");listItem.classList.add(\"format-list-item\");\nvar buttonGroup=document.createElement(\"div\");buttonGroup.classList.add(\"d-flex\",\"align-items-center\");\nvar button=document.createElement(\"button\");button.textContent=format.Format;button.title=format.description;button.classList.add(\"btn\",\"btn-secondary\",\"format-button\");button.addEventListener(\"click\",function(){return fetchAndInjectContent(format.id,\"content-area\",\"feedback-area\");});\nbuttonGroup.appendChild(button);\nvar removeButton=document.createElement(\"button\");removeButton.classList.add(\"btn\",\"btn-danger\",\"remove-format-button\",\"ms-0\");\nvar iconSpan=document.createElement(\"span\");iconSpan.classList.add(\"remove-icon-circle\");\nvar iconSVG=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");iconSVG.setAttribute(\"width\",\"16\");iconSVG.setAttribute(\"height\",\"16\");iconSVG.setAttribute(\"fill\",\"currentColor\");iconSVG.setAttribute(\"class\",\"bi bi-x\");iconSVG.setAttribute(\"viewBox\",\"0 0 16 16\");iconSVG.innerHTML='<path d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"/>';iconSpan.appendChild(iconSVG);\nremoveButton.appendChild(iconSpan);\nremoveButton.addEventListener(\"click\",function(){removeFormatFromList(format,listIndex);});\nbuttonGroup.appendChild(removeButton);\nlistItem.appendChild(buttonGroup);\nformatsList.appendChild(listItem);}\nfunction addFormatToPersonalizedList(newFormat,listIndex){var personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];personalizedFormats[listIndex].formats.push(newFormat);localStorage.setItem(\"personalizedFormats\",JSON.stringify(personalizedFormats));renderPersonalizedFormatLists();}\nfunction toggleEditList(listIndex,titleHeading,editIcon){var personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];var formatListDiv=titleHeading.closest(\".format-list\");\nvar titleInput=formatListDiv.querySelector(\".list-title\");var addFormatButton=formatListButtons[listIndex];if(!formatListDiv){console.error(\"Error: Unable to find format list div.\");return;}if(titleInput.style.display===\"none\"){\ntitleHeading.style.display=\"none\";titleInput.style.display=\"block\";titleInput.value=titleHeading.textContent;\ntitleInput.focus();editIcon.textContent=\"Save\";\nif(addFormatButton){addFormatButton.style.display=\"block\";}else{console.error(\"Error: Add Format button not found in this list.\");}}else{\nvar updatedName=titleInput.textContent.trim();if(updatedName!==\"\"){\npersonalizedFormats[listIndex].categoryName=updatedName;localStorage.setItem(\"personalizedFormats\",JSON.stringify(personalizedFormats));\ntitleHeading.textContent=updatedName;}else{alert(\"Please enter a valid name for the list.\");}titleHeading.style.display=\"block\";titleInput.style.display=\"none\";\naddFormatButton.style.display='none';\ncurrentModalAction=\"edit\";}\nvar formatListParentElement=formatListDiv.parentElement;formatListParentElement.replaceChild(createFormatListElement(personalizedFormats[listIndex],listIndex),formatListDiv);}function getDateTime(){var currentdate=new Date();var datetime=\"Time: \"+currentdate.getDate()+\"/\"+(currentdate.getMonth()+1)+\"/\"+currentdate.getFullYear()+\" @ \"+currentdate.getHours()+\":\"+currentdate.getMinutes()+\":\"+currentdate.getSeconds();return datetime;}function generateContent(_x){return _generateContent.apply(this,arguments);}function _generateContent(){_generateContent=_asyncToGenerator(_regeneratorRuntime().mark(function _callee50(formatNumber){var mvcUrl,contentData,inputValues,payload,response,_args50=arguments;return _regeneratorRuntime().wrap(function _callee50$(_context50){while(1)switch(_context50.prev=_context50.next){case 0:mvcUrl=_args50.length>1&&_args50[1]!==undefined?_args50[1]:null;contentData=_args50.length>2&&_args50[2]!==undefined?_args50[2]:null;_context50.prev=2;console.log(\"Start \",getDateTime());inputValues=mvcUrl||getInputValues().parameters;contentData=contentData?JSON.stringify(contentData):\"{}\";\npayload={formatNo:formatNumber,parameters:inputValues,contentData:contentData};console.log(\"Payload to send:\",payload);_context50.next=10;return axios.post(\"\".concat(baseUrl,\"/api/generate-content\"),payload,{headers:{'Content-Type':'application/json'}});case 10:response=_context50.sent;console.log(\"response-data\",response);\nconsole.log(\"Generated JSON Content:\",response.data);return _context50.abrupt(\"return\",response.data);case 16:_context50.prev=16;_context50.t0=_context50[\"catch\"](2);if(_context50.t0.response){\nconsole.error(\"Error \".concat(_context50.t0.response.status,\": \").concat(_context50.t0.response.data.error||_context50.t0.response.statusText));}else{\nconsole.error(\"Request failed:\",_context50.t0.message);}return _context50.abrupt(\"return\",null);case 20:case\"end\":return _context50.stop();}},_callee50,null,[[2,16]]);}));return _generateContent.apply(this,arguments);}function generateTweaks(_x2){return _generateTweaks.apply(this,arguments);}function _generateTweaks(){_generateTweaks=_asyncToGenerator(_regeneratorRuntime().mark(function _callee51(formatNumber){var baseUrl,url,response,tweaks;return _regeneratorRuntime().wrap(function _callee51$(_context51){while(1)switch(_context51.prev=_context51.next){case 0:baseUrl=window.location.origin;_context51.prev=1;url=\"\".concat(baseUrl,\"/api/generate-tweaks/?formatNo=\").concat(formatNumber);_context51.next=5;return fetch(url,{method:\"GET\"});case 5:response=_context51.sent;if(response.ok){_context51.next=8;break;}throw new Error(\"Error generating tweaks: \".concat(response.statusText));case 8:_context51.next=10;return response.json();case 10:tweaks=_context51.sent;\nconsole.log(\"Generated tweaks:\",tweaks);return _context51.abrupt(\"return\",tweaks);case 15:_context51.prev=15;_context51.t0=_context51[\"catch\"](1);console.error(\"Error:\",_context51.t0);\nreturn _context51.abrupt(\"return\",null);case 19:case\"end\":return _context51.stop();}},_callee51,null,[[1,15]]);}));return _generateTweaks.apply(this,arguments);}var longUrl=\"\";var lessonParameters=null;function showAllFormatsContent(_x3){return _showAllFormatsContent.apply(this,arguments);}\nfunction _showAllFormatsContent(){_showAllFormatsContent=_asyncToGenerator(_regeneratorRuntime().mark(function _callee52(formats){var inputValues,lessonId,contentContainer,commonRef,unbundled,bundled,html;return _regeneratorRuntime().wrap(function _callee52$(_context52){while(1)switch(_context52.prev=_context52.next){case 0:console.log(Date.now());inputValues=getInputValues();longUrl=inputValues.parameters;lessonId=inputValues.lessonId;contentContainer=document.createElement('div');contentContainer.id='all-formats-content';commonRef=\"\\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js\\\"></script>\\n <link href=\\\"https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css\\\" rel=\\\"stylesheet\\\" type=\\\"text/css\\\" />\\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.2.1/chart.umd.min.js\\\"></script>\\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/d3-cloud/1.2.5/d3.layout.cloud.min.js\\\"></script>\\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js\\\"></script>\\n <link rel=\\\"stylesheet\\\" href=\\\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.css\\\"\\n integrity=\\\"sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=\\\"\\n crossorigin=\\\"\\\" />\\n <script src=\\\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.js\\\"\\n integrity=\\\"sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=\\\"\\n crossorigin=\\\"\\\"></script>\\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js\\\"></script>\\n\\n <script src=\\\"https://unpkg.com/react@18/umd/react.development.js\\\" defer></script>\\n <script src=\\\"https://unpkg.com/react-dom@18/umd/react-dom.development.js\\\" defer></script>\\n <link rel=\\\"stylesheet\\\" href=\\\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css\\\">\\n <link href=\\\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css\\\" rel=\\\"stylesheet\\\" integrity=\\\"sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN\\\" crossorigin=\\\"anonymous\\\">\\n <link rel=\\\"stylesheet\\\" href=\\\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css\\\">\\n <link href=\\\"https://cdn.quilljs.com/1.3.6/quill.snow.css\\\" rel=\\\"stylesheet\\\">\\n <link rel=\\\"stylesheet\\\" href=\\\"https://cdn.jsdelivr.net/npm/water.css@2/out/water.css\\\">\\n <link rel=\\\"stylesheet\\\" href=\\\"~/LessonMVCweb.styles.css\\\" asp-append-version=\\\"true\\\" />\\n <link href=\\\"~/dist/styles.min.css\\\" rel=\\\"stylesheet\\\" />\\n <script src=\\\"https://cdn.quilljs.com/1.3.6/quill.js\\\"></script>\\n <script src=\\\"https://cdn.jsdelivr.net/npm/jsplumb@2/dist/js/jsplumb.min.js\\\"></script>\\n <script src=\\\"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js\\\"></script> \\n \";unbundled=\"\\n <link rel=\\\"stylesheet\\\" href=\\\"../css/lesson.css\\\">\\n <script src=\\\"../js/GlobalVariables.js\\\"></script>\\n <script src=\\\"../js/SharedScript.js\\\"></script>\\n <script src=\\\"../js/InstructionalStrategies.js\\\"></script>\\n <script src=\\\"../js/Formats1To99.js\\\"></script>\\n <script src=\\\"../js/Formats100To199.js\\\"></script>\\n <script src=\\\"../js/Formats200To299.js\\\"></script>\\n <script src=\\\"../js/Formats300To399.js\\\"></script>\\n <script src=\\\"../js/Formats400To499.js\\\"></script>\\n <script src=\\\"../js/Formats500To599.js\\\"></script>\\n <script src=\\\"../js/Formats600To699.js\\\"></script>\\n <script src=\\\"../js/EducationalGoals.js\\\"></script>\\n <script src=\\\"../js/EducationalActivities.js\\\"></script>\\n <script src=\\\"../js/LessonPlans.js\\\"></script>\\n <script src=\\\"../js/BibleStudy.js\\\"></script>\\n <script src=\\\"../js/Sermons.js\\\"></script>\\n <script src=\\\"../js/NewCode.js\\\"></script>\\n <script src=\\\"../js/FormatFunctions.js\\\"></script>\\n <script src=\\\"../js/script.js\\\"></script>\\n \";bundled=\"\\n <link rel=\\\"stylesheet\\\" href=\\\"../dist/styles.min.css\\\">\\n <script src=\\\"../dist/bundle.min.js\\\"></script>\\n \";\nhtml=\"\\n <!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset=\\\"UTF-8\\\">\\n <title>All Formats Content</title>\\n <link href=\\\"https://cdn.quilljs.com/1.3.6/quill.snow.css\\\" rel=\\\"stylesheet\\\">\\n <script src=\\\"https://cdn.quilljs.com/1.3.6/quill.js\\\"></script>\\n <link rel=\\\"stylesheet\\\" href=\\\"https://cdn.jsdelivr.net/npm/water.css@2/out/water.css\\\">\\n <script src=\\\"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js\\\"></script>\\n\\n \\n \"+commonRef+bundled+\"\\n \\n\\n </head>\\n <body>\\n <div class=\\\"main-container\\\">\\n <input type=\\\"hidden\\\" id=\\\"lesson-id\\\" value=\\\"\".concat(lessonId,\"\\\">\\n \");\nformats.forEach(function(format,index){\nvar divId=\"format-\".concat(index);\nvar feedbackAreaId=\"feedback-\".concat(index);\nhtml+=\"<div id=\\\"\".concat(divId,\"\\\" class=\\\"format-content\\\"></div>\");html+=\"<div id=\\\"\".concat(feedbackAreaId,\"\\\" class=\\\"feedback-area\\\"></div>\");html+=\"<hr>\";});\nhtml+=\"\\n <div id=\\\"loadingOverlay\\\">\\n <div class=\\\"hourglass\\\"></div>\\n </div>\\n <script>\\n \\n /*(function() {*/\\n\\n const formats = \".concat(JSON.stringify(formats),\";\\n lessonParameters=\").concat(JSON.stringify(getInputValues().parameters),\";\\n function initializeFormats() {\\n console.log(\\\"code before the loop\\\");\\n \\n formats.forEach((format, index) => {\\n \\n if (format) { \\n \\n const divId = 'format-' + index;\\n const feedbackAreaId='feedback-'+index; \\n \\n fetchAndInjectContent(format.id, divId,feedbackAreaId,lessonParameters); \\n console.log(\\\"code in the loop\\\");\\n }\\n console.log(Date.now());\\n });\\n console.log(\\\"code afrter loop\\\");\\n }\\n console.log(\\\"code came here\\\");\\n// if (document.readyState === 'loading') {\\n// document.addEventListener('DOMContentLoaded', setTimeout(initializeFormats, 100)); \\n// } else {\\n// console.log(\\\"code second initialize\\\"); \\n// //document.addEventListener('DOMContentLoaded', setTimeout(initializeFormats, 100));\\n// initializeFormats();\\n//console.log(\\\"code third initialize\\\");\\n// }\\n \\n /* })();*/\\n // document.addEventListener('DOMContentLoaded',initializeFormats);\\n initializeFormats();\\n\\n </script>\\n <div id=\\\"messages-area\\\"></div>\\n </div>\\n <div id=\\\"feedback-message\\\" class=\\\"alert\\\" style=\\\"display: none;\\\"></div>\\n </body>\\n </html>\\n \");\nopenInNewTab(html);console.log(Date.now());case 14:case\"end\":return _context52.stop();}},_callee52);}));return _showAllFormatsContent.apply(this,arguments);}function showEditListModal(listIndex){var personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];var formatList=personalizedFormats[listIndex];if(!formatList){displayErrorMessage(\"Format list does not exist!\");return;}modalTitle.textContent=\"Edit Format List\";listNameLabel.textContent=\"Edit List Name:\";addSelectedFormatsButton.textContent=\"Save Changes\";newListNameInput.value=formatList.categoryName;\navailableFormatsContainer.innerHTML=\"\";var categories=Array.from(new Set(_GlobalVariables.newTTableData.map(function(item){return item.Category;})));categories.forEach(function(category){var categorySection=document.createElement(\"div\");var categoryHeading=document.createElement(\"h3\");categoryHeading.textContent=category;categorySection.appendChild(categoryHeading);var formatsList=document.createElement(\"ul\");formatsList.classList.add(\"list\");_GlobalVariables.newTTableData.filter(function(item){return item.Category===category;}).forEach(function(formatData){var listItem=document.createElement(\"li\");var isChecked=formatList.formats.some(function(f){return f.id===formatData.No;});listItem.innerHTML=\"\\n <label>\\n <input type=\\\"checkbox\\\" value=\\\"\".concat(formatData.No,\"\\\" \").concat(isChecked?\"checked\":\"\",\"> \\n \").concat(formatData.Format,\" - \").concat(formatData.Description,\"\\n </label>\\n \");formatsList.appendChild(listItem);});categorySection.appendChild(formatsList);availableFormatsContainer.appendChild(categorySection);});modal.style.display=\"block\";\n}\nfunction deleteFormatList(listIndex){var personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];personalizedFormats.splice(listIndex,1);localStorage.setItem(\"personalizedFormats\",JSON.stringify(personalizedFormats));renderPersonalizedFormatLists();}\nfunction removeFormatFromList(format,listIndex){var personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];\npersonalizedFormats[listIndex].formats=personalizedFormats[listIndex].formats.filter(function(f){return f.id!==format.id;});\nlocalStorage.setItem(\"personalizedFormats\",JSON.stringify(personalizedFormats));renderPersonalizedFormatLists();}\nfunction savePersonalizedFormats(){var personalizedFormats=[];var formatLists=document.querySelectorAll(\".format-list\");formatLists.forEach(function(list){var title=list.querySelector(\".list-title\").value;var formats=Array.from(list.querySelectorAll(\".format-button\")).map(function(button){return{id:_GlobalVariables.newTTableData.find(function(item){return item.Format===button.textContent;}).No,\n\"Format\":button.textContent,\"description\":button.title};});personalizedFormats.push({categoryName:title,formats:formats});});localStorage.setItem(\"personalizedFormats\",JSON.stringify(personalizedFormats));}\nfunction showFormatSelectionModal(){var formatList=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var listIndex=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(formatList){\ncurrentModalAction=\"edit\";currentEditListIndex=listIndex;modalTitle.textContent=\"Edit Format List\";listNameLabel.textContent=\"Edit List Name:\";addSelectedFormatsButton.textContent=\"Save Changes\";newListNameInput.value=formatList.categoryName;}else{\ncurrentModalAction=\"create\";currentEditListIndex=null;modalTitle.textContent=\"Create New Format List\";listNameLabel.textContent=\"List Name:\";addSelectedFormatsButton.textContent=\"Create List\";newListNameInput.value=\"\";}\npopulateAvailableFormatsModal(formatList);modal.style.display=\"block\";\n}\nfunction closeModal(){modal.style.display=\"none\";\nmodal.querySelector(\"#newListName\").value=\"\";var checkboxes=modal.querySelectorAll(\"input[type='checkbox']\");checkboxes.forEach(function(checkbox){return checkbox.checked=false;});}\nfunction populateAvailableFormatsModal(){var formatList=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{formats:[]};\navailableFormatsContainer.innerHTML=\"\";\nif(!_GlobalVariables.newTTableData||_GlobalVariables.newTTableData.length===0){displayErrorMessage(\"No format data available.\");\nreturn;}\nvar categories=Array.from(new Set(_GlobalVariables.newTTableData.map(function(item){return item.Category;})));categories.forEach(function(category){var categorySection=document.createElement(\"div\");categorySection.classList.add('category-section');var categoryHeading=document.createElement(\"h3\");categoryHeading.textContent=category;categorySection.appendChild(categoryHeading);var formatsList=document.createElement(\"ul\");formatsList.classList.add(\"list\");_GlobalVariables.newTTableData.filter(function(item){return item.Category===category;}).forEach(function(formatData){\nvar isChecked=formatList.formats.some(function(f){return f.id===formatData.No;});if(!isChecked){var listItem=document.createElement(\"li\");listItem.innerHTML=\"<label><input type=\\\"checkbox\\\" value=\\\"\".concat(formatData.No,\"\\\"> \").concat(formatData.Format,\" - \").concat(formatData.Description,\"</label>\");formatsList.appendChild(listItem);}});\nif(formatsList.children.length>0){categorySection.appendChild(formatsList);availableFormatsContainer.appendChild(categorySection);}});}\nfunction showCreateNewListModal(){currentModalAction=\"create\";currentEditListIndex=null;modalTitle.textContent=\"Create New Format List\";listNameLabel.textContent=\"List Name:\";addSelectedFormatsButton.textContent=\"Create List\";newListNameInput.value=\"\";\npopulateAvailableFormatsModal();modal.style.display=\"block\";\n}\nfunction getAndHighlightFormats(){try{var _storedData=localStorage.getItem(\"userFormats\");if(_storedData){userFormats=JSON.parse(_storedData);}}catch(error){console.error(\"Error retrieving user format data:\",error);\n}\nhighlightFormats(userFormats,_GlobalVariables.topSchoolFormats);\n}function highlightFormats(userFormats,schoolFormats){var formatElements=document.querySelectorAll(\".btn.btn-secondary.format-button\");\nformatElements.forEach(function(element){var formatName=element.textContent.trim();var userFormat=userFormats.find(function(f){return f.formatName===formatName&&f.count>=3;});var schoolFormat=schoolFormats.find(function(f){return f.formatName===formatName;});element.classList.remove(\"frequently-used\",\"school-wide\");\nif(userFormat){element.classList.add(\"frequently-used\");}else if(schoolFormat){element.classList.add(\"school-wide\");}});}\nfunction setCountry(){fetch('https://ipapi.co/json/').then(function(response){return response.json();}).then(function(data){var countryCode=data.country_code;\nvar optionToSelect=document.querySelector(\"#country option[value=\\\"\".concat(countryCode,\"\\\"]\"));\nif(optionToSelect){optionToSelect.selected=true;}else{console.log(\"Country code not found in dropdown options:\",countryCode);\n}})[\"catch\"](function(error){console.log(\"Error fetching IP data:\",error);\n});}document.addEventListener(\"DOMContentLoaded\",function(){setCountry();});var filterableFormats=[{\"formatNo\":700,\"formatName\":\"Jigsaw\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"collaboration\",\"group work\",\"active learning\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":701,\"formatName\":\"Think-Pair-Share\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"discussion\",\"collaboration\",\"critical thinking\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":702,\"formatName\":\"Numbered Heads Together\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"teamwork\",\"accountability\",\"group work\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":703,\"formatName\":\"Gallery Walk\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\",\"Arts\"],\"learningStyleSuitability\":[\"Visual\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"visual\",\"interactive\",\"peer feedback\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":704,\"formatName\":\"Role-Playing/Simulations\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Arts\",\"Physical Education\",\"Business\",\"Healthcare\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Interpersonal\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"immersive\",\"simulation\",\"role-play\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":705,\"formatName\":\"Debates\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Technology\",\"Business\",\"Healthcare\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"argumentation\",\"research\",\"public speaking\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":706,\"formatName\":\"Collaborative Problem-Solving\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"teamwork\",\"problem-solving\",\"collaboration\",\"critical thinking\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":707,\"formatName\":\"Fishbowl\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Technology\",\"Business\",\"Healthcare\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Interpersonal\",\"Intrapersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"discussion\",\"active listening\",\"observation\",\"feedback\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":708,\"formatName\":\"Group Investigation\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Science\",\"Social Studies\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Access to research resources (internet, library, etc.)\",\"popularity\":\"Medium\",\"tags\":[\"research\",\"collaboration\",\"inquiry\",\"investigation\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":709,\"formatName\":\"Group Presentations\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Presentation software, projector, or other visual aids.\",\"popularity\":\"High\",\"tags\":[\"presentation\",\"collaboration\",\"communication\",\"teamwork\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":710,\"formatName\":\"Peer Review/Feedback\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Arts\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Interpersonal\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"feedback\",\"peer review\",\"collaboration\",\"self-reflection\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":711,\"formatName\":\"Concept Maps\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Science\",\"Social Studies\",\"Language Arts\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Read/Write\",\"Logical/Mathematical\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"visual\",\"organization\",\"concept mapping\",\"critical thinking\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":712,\"formatName\":\"Team-Expert Model\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Science\",\"Social Studies\",\"Language Arts\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"peer teaching\",\"collaboration\",\"expertise\",\"leadership\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":713,\"formatName\":\"Four Corners\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Arts\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Interpersonal\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"movement\",\"active learning\",\"opinions\",\"discussion\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":714,\"formatName\":\"Think-Write-Pair-Share\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\",\"Technology\",\"Business\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Interpersonal\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"writing\",\"discussion\",\"peer learning\",\"reflection\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":715,\"formatName\":\"Guided Reading\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"reading comprehension\",\"fluency\",\"vocabulary\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":716,\"formatName\":\"Shared Reading\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"reading aloud\",\"modeling\",\"engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":717,\"formatName\":\"Reading Response Journals\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Read/Write\",\"Intrapersonal\",\"Interpersonal\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"reflection\",\"critical thinking\",\"writing\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":718,\"formatName\":\"Socratic Seminar\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Philosophy\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"discussion\",\"critical thinking\",\"analysis\"],\"gradeLevel\":[\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":719,\"formatName\":\"Debates\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Technology\",\"Business\",\"Healthcare\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"argumentation\",\"research\",\"public speaking\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":720,\"formatName\":\"Literature Circles\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"discussion\",\"collaboration\",\"analysis\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":721,\"formatName\":\"Creative Writing\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"creative writing\",\"storytelling\",\"imagination\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":722,\"formatName\":\"Poetry Analysis\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"poetry\",\"analysis\",\"interpretation\"],\"gradeLevel\":[\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":723,\"formatName\":\"Essay Writing\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\"],\"learningStyleSuitability\":[\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"essay writing\",\"argumentation\",\"research\"],\"gradeLevel\":[\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":724,\"formatName\":\"Research Papers\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Advanced\",\"ageSuitability\":[\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\"],\"learningStyleSuitability\":[\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Computer with internet access, word processing software\",\"popularity\":\"Low\",\"tags\":[\"research\",\"analysis\",\"writing\"],\"gradeLevel\":[\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":725,\"formatName\":\"Interactive Notebooks\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Read/Write\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"note-taking\",\"organization\",\"personalization\",\"creativity\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":726,\"formatName\":\"Journaling/Writing Prompts\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\"],\"learningStyleSuitability\":[\"Read/Write\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"reflection\",\"self-expression\",\"writing\",\"critical thinking\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":727,\"formatName\":\"WebQuests\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Computers with internet access\",\"popularity\":\"Medium\",\"tags\":[\"research\",\"online learning\",\"inquiry\",\"problem-solving\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":728,\"formatName\":\"Case Studies\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Social Studies\",\"Science\",\"Business\",\"Healthcare\"],\"learningStyleSuitability\":[\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"real-world application\",\"problem-solving\",\"critical thinking\",\"analysis\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":729,\"formatName\":\"Challenge Problems\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Technology\"],\"learningStyleSuitability\":[\"Logical/Mathematical\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"problem-solving\",\"critical thinking\",\"creativity\",\"challenge\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":730,\"formatName\":\"Stations Activities\",\"category\":\"Educational Activities\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Varies depending on the station activities\",\"popularity\":\"High\",\"tags\":[\"stations\",\"rotation\",\"active learning\",\"differentiation\",\"engagement\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":800,\"formatName\":\"Direct Instruction\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"direct instruction\",\"teacher-led\",\"structured\",\"explicit teaching\",\"presentation\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":801,\"formatName\":\"Flipped Classroom\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology for pre-class content and in-class activities\",\"popularity\":\"High\",\"tags\":[\"flipped classroom\",\"blended learning\",\"active learning\",\"student-centered\",\"technology integration\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":802,\"formatName\":\"Inquiry-Based Learning (IBL)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"inquiry-based learning\",\"student-centered\",\"exploration\",\"discovery\",\"questioning\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":803,\"formatName\":\"Cooperative Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"cooperative learning\",\"collaboration\",\"group work\",\"peer interaction\",\"social skills\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":804,\"formatName\":\"Differentiated Instruction\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"differentiated instruction\",\"inclusive\",\"personalized\",\"flexible grouping\",\"learning styles\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":805,\"formatName\":\"Station Rotation\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Varies depending on the station activities\",\"popularity\":\"High\",\"tags\":[\"station rotation\",\"active learning\",\"stations\",\"differentiation\",\"engagement\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":806,\"formatName\":\"Explicit Instruction\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"explicit instruction\",\"modeling\",\"teacher-led\",\"structured\",\"clear explanations\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":807,\"formatName\":\"Project-Based Learning (PBL)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"project-based learning\",\"collaboration\",\"inquiry\",\"student-centered\",\"real-world application\"],\"gradeLevel\":[\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":808,\"formatName\":\"Blended Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology for both online and offline activities\",\"popularity\":\"High\",\"tags\":[\"blended learning\",\"flexible learning\",\"technology integration\",\"online learning\",\"offline learning\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":809,\"formatName\":\"Gamification\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"gamification\",\"engagement\",\"motivation\",\"game-based learning\",\"interactive learning\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":810,\"formatName\":\"Case-Based Learning (CBL)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Read/Write\",\"Logical/Mathematical\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"case-based learning\",\"case study\",\"analysis\",\"discussion\",\"problem-solving\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":811,\"formatName\":\"Anchored Instruction\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"anchored instruction\",\"real-world\",\"engagement\",\"authentic learning\",\"problem-solving\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":812,\"formatName\":\"Technology-Enhanced Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology for online resources and collaboration\",\"popularity\":\"High\",\"tags\":[\"technology-enhanced learning\",\"digital\",\"interactive\",\"online resources\",\"collaboration tools\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":813,\"formatName\":\"Universal Design for Learning (UDL)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"universal design for learning\",\"UDL\",\"inclusive\",\"accessible\",\"flexible learning\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":814,\"formatName\":\"Culturally Responsive Teaching\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"culturally responsive teaching\",\"inclusive\",\"multicultural\",\"equity\",\"diversity\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":815,\"formatName\":\"Competency-Based Education\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"competency-based education\",\"mastery\",\"personalized\",\"self-paced\",\"demonstration of learning\"],\"gradeLevel\":[\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":816,\"formatName\":\"Mastery Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"mastery learning\",\"assessment\",\"remediation\",\"formative assessment\",\"individualized instruction\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":817,\"formatName\":\"Social-Emotional Learning (SEL)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"social-emotional learning\",\"SEL\",\"emotional\",\"social\",\"self-awareness\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":818,\"formatName\":\"Trauma-Informed Teaching\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"trauma-informed teaching\",\"safe environment\",\"resilience\",\"supportive\",\"empathy\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":819,\"formatName\":\"Understanding by Design (UbD)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"understanding by design\",\"UbD\",\"backward design\",\"curriculum planning\",\"assessment alignment\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":820,\"formatName\":\"The SAMR Model\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology tools and resources\",\"popularity\":\"High\",\"tags\":[\"SAMR model\",\"technology integration\",\"transformation\",\"technology enhancement\",\"technology adoption\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":821,\"formatName\":\"TPACK (Technological Pedagogical Content Knowledge)\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"TPACK\",\"technology integration\",\"pedagogy\",\"content knowledge\",\"interdisciplinary\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":822,\"formatName\":\"Constructivism\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"constructivism\",\"active learning\",\"knowledge construction\",\"experiential\",\"student-centered\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":823,\"formatName\":\"Behaviorism\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"behaviorism\",\"reinforcement\",\"conditioning\",\"rewards\",\"stimulus-response\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":824,\"formatName\":\"Multiple Intelligences Theory\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"multiple intelligences\",\"diversity\",\"holistic\",\"personalized learning\",\"varied instruction\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":825,\"formatName\":\"Growth Mindset\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"growth mindset\",\"resilience\",\"perseverance\",\"grit\",\"self-efficacy\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":826,\"formatName\":\"Cognitivism\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"cognitivism\",\"mental processes\",\"problem-solving\",\"critical thinking\",\"information processing\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":827,\"formatName\":\"Humanism\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"humanism\",\"learner-centered\",\"self-actualization\",\"personal growth\",\"holistic development\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":829,\"formatName\":\"Personalized Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can be used to provide personalized learning resources and track student progress.\",\"popularity\":\"High\",\"tags\":[\"personalized learning\",\"self-paced\",\"individualized\",\"differentiated instruction\",\"student-centered\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":830,\"formatName\":\"Experiential Learning\",\"category\":\"Lesson Plans\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Visual\",\"Auditory\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"experiential learning\",\"hands-on\",\"reflective\",\"active learning\",\"authentic learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1500,\"formatName\":\"Differentiation Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to provide differentiated resources and activities.\",\"popularity\":\"High\",\"tags\":[\"individual needs\",\"modification\",\"diverse styles\",\"inclusivity\",\"personalized learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1501,\"formatName\":\"Questioning Strategies Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"questioning\",\"socratic\",\"inquiry\",\"critical thinking\",\"engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1502,\"formatName\":\"Active Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"active learning\",\"engagement\",\"hands-on\",\"student-centered\",\"collaborative\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1503,\"formatName\":\"Technology Integration Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology tools and resources (computers, tablets, internet, etc.)\",\"popularity\":\"High\",\"tags\":[\"technology integration\",\"digital learning\",\"interactive\",\"multimedia\",\"online resources\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1504,\"formatName\":\"Motivation & Engagement Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to enhance engagement and provide interactive experiences.\",\"popularity\":\"High\",\"tags\":[\"motivation\",\"engagement\",\"inspiration\",\"student-centered\",\"relevance\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1505,\"formatName\":\"Scaffolding Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"scaffolding\",\"support\",\"guided release\",\"stepwise\",\"differentiation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1506,\"formatName\":\"Modeling Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can enhance modeling.\",\"popularity\":\"High\",\"tags\":[\"modeling\",\"demonstration\",\"think-aloud\",\"example\",\"learning by imitation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1507,\"formatName\":\"Guided Practice Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, though interactive tools can be used.\",\"popularity\":\"High\",\"tags\":[\"guided practice\",\"practice\",\"feedback\",\"scaffolding\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1508,\"formatName\":\"Independent Practice Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but interactive tools can support independent work.\",\"popularity\":\"High\",\"tags\":[\"independent practice\",\"self-directed\",\"practice\",\"homework\",\"differentiation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1509,\"formatName\":\"Feedback & Assessment Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, though technology can facilitate feedback.\",\"popularity\":\"High\",\"tags\":[\"feedback\",\"assessment\",\"evaluation\",\"formative assessment\",\"summative assessment\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1510,\"formatName\":\"Collaborative Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can enhance group collaboration.\",\"popularity\":\"High\",\"tags\":[\"collaboration\",\"teamwork\",\"group learning\",\"peer learning\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1511,\"formatName\":\"Inquiry-Based Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can support research and presentation.\",\"popularity\":\"High\",\"tags\":[\"inquiry-based learning\",\"exploration\",\"discovery\",\"student-centered\",\"questioning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1512,\"formatName\":\"Formative Assessment Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, though technology may facilitate assessment.\",\"popularity\":\"High\",\"tags\":[\"formative assessment\",\"assessment\",\"ongoing feedback\",\"feedback\",\"student progress\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1513,\"formatName\":\"Culturally Responsive Teaching Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to access diverse resources.\",\"popularity\":\"High\",\"tags\":[\"culturally responsive teaching\",\"inclusivity\",\"multicultural\",\"equity\",\"diversity\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1514,\"formatName\":\"Critical Thinking & Problem-Solving Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can enhance interactive problem-solving.\",\"popularity\":\"High\",\"tags\":[\"critical thinking\",\"problem-solving\",\"analysis\",\"reasoning\",\"decision-making\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1515,\"formatName\":\"Concept Attainment Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Logical/Mathematical\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but visuals can be presented using technology.\",\"popularity\":\"Medium\",\"tags\":[\"concept attainment\",\"examples\",\"inductive reasoning\",\"critical thinking\",\"categorization\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1516,\"formatName\":\"Classroom Management Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, though technology can support management systems.\",\"popularity\":\"High\",\"tags\":[\"classroom management\",\"behavior management\",\"routines\",\"procedures\",\"positive reinforcement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1517,\"formatName\":\"Metacognitive Strategies Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can support reflective activities.\",\"popularity\":\"Medium\",\"tags\":[\"metacognition\",\"self-awareness\",\"reflection\",\"self-regulation\",\"learning strategies\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1518,\"formatName\":\"Growth Mindset Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to access resources.\",\"popularity\":\"High\",\"tags\":[\"growth mindset\",\"perseverance\",\"effort\",\"resilience\",\"motivation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1519,\"formatName\":\"Social-Emotional Learning (SEL) Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to access SEL resources.\",\"popularity\":\"High\",\"tags\":[\"SEL\",\"social-emotional learning\",\"emotional intelligence\",\"social skills\",\"self-regulation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1520,\"formatName\":\"Universal Design for Learning (UDL) Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can enhance accessibility.\",\"popularity\":\"High\",\"tags\":[\"UDL\",\"universal design for learning\",\"inclusive\",\"flexible\",\"accessibility\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1521,\"formatName\":\"Game-Based Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can enhance interactive game elements.\",\"popularity\":\"High\",\"tags\":[\"game-based learning\",\"interactive\",\"engaging\",\"gamification\",\"motivation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1522,\"formatName\":\"Experiential Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Visual\",\"Auditory\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can document experiences.\",\"popularity\":\"High\",\"tags\":[\"experiential learning\",\"hands-on\",\"reflective\",\"active learning\",\"authentic learning\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1523,\"formatName\":\"Student-Centered Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can enhance choice.\",\"popularity\":\"High\",\"tags\":[\"student-centered learning\",\"autonomy\",\"ownership\",\"engagement\",\"differentiation\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1524,\"formatName\":\"Storytelling & Narrative Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Auditory\",\"Visual\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but multimedia can enhance storytelling.\",\"popularity\":\"Medium\",\"tags\":[\"storytelling\",\"narrative\",\"engagement\",\"real-world connections\",\"creativity\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1525,\"formatName\":\"Visual Learning Tools Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Read/Write\",\"Logical/Mathematical\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to create and present visuals.\",\"popularity\":\"High\",\"tags\":[\"visual learning\",\"visual aids\",\"diagrams\",\"infographics\",\"graphic organizers\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1526,\"formatName\":\"Hands-on Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Visual\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can be used to enhance interactive experiences.\",\"popularity\":\"High\",\"tags\":[\"hands-on learning\",\"experiential\",\"active learning\",\"manipulatives\",\"experiments\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1527,\"formatName\":\"Student Choice & Voice Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to support student voice.\",\"popularity\":\"High\",\"tags\":[\"student choice\",\"autonomy\",\"voice\",\"student-centered\",\"engagement\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1528,\"formatName\":\"Real-World Connections Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can be used to access real-world resources.\",\"popularity\":\"High\",\"tags\":[\"real-world connections\",\"relevance\",\"application\",\"authentic learning\",\"engagement\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1529,\"formatName\":\"Reflection & Metacognition Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None, but technology can support reflective activities.\",\"popularity\":\"Medium\",\"tags\":[\"reflection\",\"metacognition\",\"self-regulation\",\"critical thinking\",\"self-assessment\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1530,\"formatName\":\"Personalized Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None, but technology can be used to provide personalized resources and track progress.\",\"popularity\":\"High\",\"tags\":[\"personalized learning\",\"individualized\",\"self-paced\",\"differentiation\",\"student-centered\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1531,\"formatName\":\"Creativity & Innovation Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"creativity\",\"innovation\",\"problem-solving\",\"critical thinking\",\"design thinking\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1532,\"formatName\":\"Peer Assessment Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"peer assessment\",\"feedback\",\"collaboration\",\"self-assessment\",\"critical thinking\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1533,\"formatName\":\"Self-Assessment Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"self-assessment\",\"reflection\",\"metacognition\",\"self-regulation\",\"goal setting\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1534,\"formatName\":\"Rubrics Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"rubrics\",\"assessment\",\"feedback\",\"criteria\",\"evaluation\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1535,\"formatName\":\"Brain-Based Learning Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"brain-based learning\",\"neuroscience\",\"engagement\",\"active learning\",\"multisensory\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1536,\"formatName\":\"Global Awareness & Cultural Competence Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"global awareness\",\"cultural competence\",\"diversity\",\"inclusion\",\"global citizenship\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1537,\"formatName\":\"Flipped Classroom Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to technology for pre-class content and in-class activities\",\"popularity\":\"High\",\"tags\":[\"flipped classroom\",\"blended learning\",\"active learning\",\"technology integration\",\"student-centered\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1538,\"formatName\":\"Adaptive Learning Platforms Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to computers, tablets, and internet connectivity\",\"popularity\":\"High\",\"tags\":[\"adaptive learning\",\"personalized learning\",\"technology integration\",\"differentiation\",\"data-driven instruction\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1539,\"formatName\":\"Genius Hour Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"genius hour\",\"passion projects\",\"inquiry-based learning\",\"student-centered\",\"creativity\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1540,\"formatName\":\"Student-Led Conferences Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"student-led conferences\",\"student agency\",\"communication\",\"reflection\",\"parent involvement\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1541,\"formatName\":\"Podcasts Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Auditory\",\"Read/Write\",\"Intrapersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to devices with internet connectivity and audio playback capabilities\",\"popularity\":\"Medium\",\"tags\":[\"podcasts\",\"audio learning\",\"differentiation\",\"engagement\",\"multimedia\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1542,\"formatName\":\"Screencasts Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Kinesthetic\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to screen recording software, video editing software, and devices with internet connectivity\",\"popularity\":\"High\",\"tags\":[\"screencasts\",\"video tutorials\",\"demonstration\",\"technology integration\",\"flipped classroom\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1543,\"formatName\":\"Virtual Field Trips Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Access to devices with internet connectivity and video playback (VR equipment optional)\",\"popularity\":\"Medium\",\"tags\":[\"virtual field trips\",\"online learning\",\"engagement\",\"real-world connections\",\"exploration\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1544,\"formatName\":\"Mindfulness Activities Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"mindfulness\",\"relaxation\",\"stress management\",\"emotional regulation\",\"self-awareness\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1545,\"formatName\":\"Brain Breaks Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"brain breaks\",\"movement\",\"energizers\",\"engagement\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1546,\"formatName\":\"Positive Behavior Supports Techniques\",\"category\":\"Instructional Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Intrapersonal\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"positive behavior supports\",\"behavior management\",\"social-emotional learning\",\"classroom management\",\"positive reinforcement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1601,\"formatName\":\"Assistive Technology\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\",\"Logical/Mathematical\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Requires specialized assistive technology tools\",\"popularity\":\"High\",\"tags\":[\"assistive technology\",\"accessibility\",\"inclusive education\",\"disabilities\",\"technology integration\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"High\"},{\"formatNo\":1602,\"formatName\":\"Structured Literacy Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\"],\"subjectSuitability\":[\"Language Arts\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"structured literacy\",\"reading\",\"writing\",\"dyslexia\",\"literacy intervention\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1603,\"formatName\":\"Differentiation & Accommodations\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"differentiation\",\"accommodations\",\"inclusive education\",\"individual needs\",\"learning styles\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1604,\"formatName\":\"Personalized Learning\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"personalized learning\",\"individualized\",\"adaptive\",\"student-centered\",\"differentiation\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1605,\"formatName\":\"Strength-Based Approach\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"strength-based approach\",\"positive psychology\",\"growth mindset\",\"talent development\",\"student engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1606,\"formatName\":\"Explicit Instruction & Modeling\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"explicit instruction\",\"modeling\",\"clear explanation\",\"demonstration\",\"scaffolding\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1607,\"formatName\":\"Positive Reinforcement & Encouragement\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"positive reinforcement\",\"encouragement\",\"motivation\",\"praise\",\"feedback\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1608,\"formatName\":\"Visual Supports\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"visual supports\",\"visual aids\",\"diagrams\",\"charts\",\"graphic organizers\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1609,\"formatName\":\"Clear & Concise Instructions\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"clear instructions\",\"concise\",\"step-by-step\",\"explicit instruction\",\"organization\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1610,\"formatName\":\"Frequent Checks for Understanding\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"checks for understanding\",\"formative assessment\",\"feedback\",\"questioning\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1611,\"formatName\":\"Universal Design for Learning (UDL)\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"UDL\",\"universal design for learning\",\"inclusive education\",\"flexible learning\",\"accessibility\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1612,\"formatName\":\"Technology Integration (Specialized)\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Access to specialized assistive technology tools\",\"popularity\":\"High\",\"tags\":[\"technology integration\",\"assistive technology\",\"inclusive education\",\"differentiation\",\"accessibility\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"High\"},{\"formatNo\":1613,\"formatName\":\"Task Analysis\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"task analysis\",\"step-by-step\",\"breakdown\",\"scaffolding\",\"differentiation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1614,\"formatName\":\"Visual Cues and Prompts\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"visual cues\",\"prompts\",\"visual supports\",\"scaffolding\",\"differentiation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1615,\"formatName\":\"Concrete Examples & Manipulatives\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Visual\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"manipulatives\",\"concrete examples\",\"hands-on learning\",\"active learning\",\"sensory engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1616,\"formatName\":\"Direct & Frequent Feedback\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"feedback\",\"direct feedback\",\"frequent feedback\",\"assessment\",\"motivation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1617,\"formatName\":\"Augmented and Alternative Communication (AAC)\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Specialized AAC tools required\",\"popularity\":\"Medium\",\"tags\":[\"AAC\",\"augmented and alternative communication\",\"communication\",\"assistive technology\",\"inclusive education\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"High\"},{\"formatNo\":1618,\"formatName\":\"Differentiated Assessment\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"differentiated assessment\",\"assessment\",\"inclusive education\",\"individual needs\",\"fairness\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1619,\"formatName\":\"Visual Schedules and Timers\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"visual schedules\",\"timers\",\"structure\",\"organization\",\"time management\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1620,\"formatName\":\"Pre-teaching/Front-loading\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"pre-teaching\",\"front-loading\",\"prior knowledge\",\"scaffolding\",\"preparation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1621,\"formatName\":\"Repeated Reading & Practice\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"repeated reading\",\"practice\",\"repetition\",\"fluency\",\"automaticity\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1622,\"formatName\":\"Small Group Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"small group instruction\",\"differentiated instruction\",\"collaborative learning\",\"targeted support\",\"flexible grouping\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1623,\"formatName\":\"Peer Tutoring\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"peer tutoring\",\"collaborative learning\",\"student support\",\"mentoring\",\"reciprocal teaching\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1624,\"formatName\":\"Sensory Breaks\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"sensory breaks\",\"movement breaks\",\"self-regulation\",\"focus\",\"well-being\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1625,\"formatName\":\"Graphic Organizers\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Read/Write\",\"Logical/Mathematical\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"graphic organizers\",\"visual aids\",\"organization\",\"note-taking\",\"concept mapping\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1626,\"formatName\":\"Role-Playing & Simulations\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\",\"Math\"],\"learningStyleSuitability\":[\"Kinesthetic\",\"Interpersonal\",\"Visual\",\"Auditory\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"role-playing\",\"simulations\",\"interactive\",\"engagement\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1627,\"formatName\":\"Explicit Vocabulary Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"vocabulary\",\"explicit instruction\",\"language development\",\"word learning\",\"reading comprehension\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1628,\"formatName\":\"Self-Monitoring & Self-Regulation Strategies\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"self-monitoring\",\"self-regulation\",\"metacognition\",\"executive function\",\"goal setting\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1629,\"formatName\":\"Assistive Technology Training\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to assistive technology tools\",\"popularity\":\"Medium\",\"tags\":[\"assistive technology training\",\"assistive technology\",\"inclusive education\",\"technology integration\",\"professional development\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1630,\"formatName\":\"Visual Schedules & Timers\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"visual schedules\",\"timers\",\"structure\",\"organization\",\"time management\",\"transitions\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1632,\"formatName\":\"Use of Repetition & Routine\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\",\"Logical/Mathematical\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"repetition\",\"routine\",\"memory\",\"structure\",\"predictability\",\"consistency\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1633,\"formatName\":\"Multi-Tiered System of Support (MTSS)\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\",\"Logical/Mathematical\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"MTSS\",\"multi-tiered system of support\",\"early intervention\",\"data-driven\",\"differentiation\",\"student support\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1634,\"formatName\":\"Interactive Whiteboards or Touch Screens\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to interactive whiteboards or touch screens\",\"popularity\":\"High\",\"tags\":[\"interactive whiteboards\",\"touch screens\",\"technology integration\",\"interactive learning\",\"engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"High\"},{\"formatNo\":1635,\"formatName\":\"Game-Based Learning\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"game-based learning\",\"engagement\",\"interactive\",\"motivation\",\"fun learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1636,\"formatName\":\"Reciprocal Teaching\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"reciprocal teaching\",\"peer teaching\",\"collaborative learning\",\"reading comprehension\",\"critical thinking\"],\"gradeLevel\":[\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1637,\"formatName\":\"Oral Language-Based Activities\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"Language Arts\",\"Social Studies\",\"Science\"],\"learningStyleSuitability\":[\"Auditory\",\"Visual\",\"Kinesthetic\",\"Interpersonal\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"oral language\",\"communication\",\"speaking\",\"listening\",\"discussions\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1638,\"formatName\":\"Positive Behavior Support\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"positive behavior support\",\"behavior management\",\"classroom management\",\"social-emotional learning\",\"positive reinforcement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1639,\"formatName\":\"Collaboration & Peer Support\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"collaboration\",\"peer support\",\"cooperative learning\",\"group work\",\"social skills\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1640,\"formatName\":\"Flexible Learning Environments\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"flexible learning environments\",\"flexible seating\",\"learning spaces\",\"student choice\",\"differentiation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1641,\"formatName\":\"Errorless Learning\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"errorless learning\",\"scaffolding\",\"positive reinforcement\",\"reduce frustration\",\"build confidence\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1642,\"formatName\":\"Systematic Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"systematic instruction\",\"explicit instruction\",\"structured learning\",\"routines\",\"consistency\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1643,\"formatName\":\"Reinforcement & Reward Systems\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"reinforcement\",\"rewards\",\"behavior management\",\"motivation\",\"positive behavior support\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1644,\"formatName\":\"Preferential Seating\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"preferential seating\",\"classroom arrangement\",\"flexible seating\",\"student needs\",\"focus\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1645,\"formatName\":\"Sensory Breaks\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"sensory breaks\",\"movement breaks\",\"self-regulation\",\"focus\",\"well-being\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1646,\"formatName\":\"Social Skills Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"social skills instruction\",\"social skills\",\"communication\",\"behavior\",\"emotional intelligence\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1647,\"formatName\":\"Behavior Management Techniques\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"behavior management\",\"classroom management\",\"positive behavior\",\"social-emotional learning\",\"student engagement\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1648,\"formatName\":\"Collaboration with Related Service Providers\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"collaboration\",\"service providers\",\"specialists\",\"interprofessional collaboration\",\"student support\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1649,\"formatName\":\"Parent/Guardian Involvement\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"parent involvement\",\"family engagement\",\"collaboration\",\"communication\",\"home-school connection\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Slow\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1650,\"formatName\":\"Professional Development\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"Varies\",\"popularity\":\"High\",\"tags\":[\"professional development\",\"teacher training\",\"inclusive teaching\",\"workshops\",\"online courses\"],\"gradeLevel\":[\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Moderate\"},{\"formatNo\":1651,\"formatName\":\"Choral Responding/Response Cards\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\"],\"timeCommitment\":\"Short (5-15 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"choral responding\",\"response cards\",\"formative assessment\",\"engagement\",\"active learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Fast\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1652,\"formatName\":\"Mnemonic Devices\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Read/Write\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"mnemonic devices\",\"memory aids\",\"recall\",\"encoding strategies\",\"memorization\"],\"gradeLevel\":[\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1653,\"formatName\":\"Pull-Out/Push-In Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Intermediate\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"pull-out instruction\",\"push-in instruction\",\"inclusive education\",\"special education\",\"collaboration\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1654,\"formatName\":\"Environmental Modifications\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"environmental modifications\",\"classroom setup\",\"inclusive environment\",\"sensory needs\",\"accessibility\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1655,\"formatName\":\"Behavior Contracts & Token Economies\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"behavior contracts\",\"token economies\",\"behavior management\",\"positive reinforcement\",\"motivation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1657,\"formatName\":\"Video Modeling\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"Access to video playback devices\",\"popularity\":\"Medium\",\"tags\":[\"video modeling\",\"demonstration\",\"visual learning\",\"social skills\",\"behavioral skills\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Other\"],\"techComfort\":\"Intermediate\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1658,\"formatName\":\"Preferential Seating & Environmental Modifications\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"preferential seating\",\"environmental modifications\",\"inclusive environment\",\"sensory needs\",\"accessibility\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1659,\"formatName\":\"Clear Expectations & Consistent Consequences\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"All learning styles\"],\"timeCommitment\":\"Long (30+ minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"clear expectations\",\"consistent consequences\",\"behavior management\",\"classroom management\",\"positive behavior support\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1660,\"formatName\":\"Choice & Control\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"Medium\",\"tags\":[\"choice\",\"control\",\"student autonomy\",\"engagement\",\"motivation\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"},{\"formatNo\":1661,\"formatName\":\"Peer-Mediated Instruction\",\"category\":\"Inclusive Teaching Strategies\",\"difficultyLevel\":\"Beginner\",\"ageSuitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18+\"],\"subjectSuitability\":[\"All Subjects\"],\"learningStyleSuitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"timeCommitment\":\"Medium (15-30 minutes)\",\"technologyRequirements\":\"None\",\"popularity\":\"High\",\"tags\":[\"peer-mediated instruction\",\"peer support\",\"collaboration\",\"social skills\",\"peer learning\"],\"gradeLevel\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\"],\"learningPace\":\"Moderate\",\"learningDifficulties\":[\"None\"],\"techComfort\":\"Basic\",\"resourceRequirement\":\"Minimal\"}];\nfunction searchBrFunctionality(accordionClass){var searchBar=document.getElementById(accordionClass+\"-search-bar\");var formatMenus=document.querySelectorAll(accordionClass+\" .format-menu\");function handleSearch(searchBar,formatMenus){if(!searchBar){console.error(\"Error: Search bar element not found.\");return;}searchBar.addEventListener(\"input\",function(){var searchTerm=searchBar.value.toLowerCase();formatMenus=document.querySelectorAll(\".\"+accordionClass+\" .format-menu\");formatMenus.forEach(function(formatMenu){\nvar container=formatMenu.closest(\"details\");\nif(!container){container=formatMenu.parentElement.closest(\"details\");}if(!container){console.error(\"Error: Could not find the parent details element.\");return;}var formatElements=container.querySelectorAll(\".format-button\");\nif(searchTerm.length===0){formatElements.forEach(function(formatElement){formatElement.style.display=\"block\";});container.removeAttribute(\"open\");\nreturn;}var shouldOpen=false;formatElements.forEach(function(formatElement){var formatText=formatElement.textContent.toLowerCase();if(formatText.includes(searchTerm)){formatElement.style.display=\"block\";shouldOpen=true;}else{formatElement.style.display=\"none\";}});container.open=shouldOpen;\n});});}if(searchBar){handleSearch(searchBar,formatMenus);}}\nfunction populatcategorFilter(expanderID,categoryFilterID,uniqueCategories){\nvar categoryFilter=document.getElementById(categoryFilterID);if(categoryFilter){\nvar accordion=document.getElementById(expanderID);uniqueCategories.forEach(function(category){var option=document.createElement(\"option\");option.value=category.toLowerCase();\noption.textContent=category;categoryFilter.appendChild(option);});categoryFilter.addEventListener(\"change\",function(event){var selectedCategory=event.target.value;\nvar formatElements=accordion.querySelectorAll(\"details[class='category-entry']\");\nformatElements.forEach(function(element){var elementCategory=element.children[0].innerText;\nif(selectedCategory===\"all\"||elementCategory&&elementCategory.toLowerCase()===selectedCategory){element.style.display=\"block\";\nvar categoryDetails=element.closest(\"details\");if(categoryDetails){categoryDetails.open=true;}}else{element.style.display=\"none\";}});});}}function initializeAdvancedFilters(){\nvar filterContainer=document.createElement(\"div\");filterContainer.id=\"advanced-filters\";filterContainer.classList.add(\"filter-container\");filterContainer.style.display=\"none\";\nvar filterCriteria={\"Age Suitability\":new Set(),\"Subject Suitability\":new Set(),\"Learning Style Suitability\":new Set(),\"Time Commitment\":new Set(),\"Difficulty Level\":new Set(),\"Tech Comfort\":new Set(),\"Learning Difficulties\":new Set(),\"Popularity\":new Set(),\"Grade Level\":new Set(),\"Learning Pace\":new Set(),\"Resource Requirement\":new Set()};\nfilterableFormats.forEach(function(item){var _item$ageSuitability,_item$subjectSuitabil,_item$learningStyleSu,_item$learningDifficu,_item$gradeLevel;(_item$ageSuitability=item.ageSuitability)===null||_item$ageSuitability===void 0||_item$ageSuitability.forEach(function(val){return filterCriteria[\"Age Suitability\"].add(val);});(_item$subjectSuitabil=item.subjectSuitability)===null||_item$subjectSuitabil===void 0||_item$subjectSuitabil.forEach(function(val){if(val.toLowerCase()!==\"all subjects\"){filterCriteria[\"Subject Suitability\"].add(val);}});(_item$learningStyleSu=item.learningStyleSuitability)===null||_item$learningStyleSu===void 0||_item$learningStyleSu.forEach(function(val){if(val.toLowerCase()!==\"all learning styles\"){filterCriteria[\"Learning Style Suitability\"].add(val);}});if(item.timeCommitment)filterCriteria[\"Time Commitment\"].add(item.timeCommitment);if(item.difficultyLevel)filterCriteria[\"Difficulty Level\"].add(item.difficultyLevel);if(item.techComfort)filterCriteria[\"Tech Comfort\"].add(item.techComfort);(_item$learningDifficu=item.learningDifficulties)===null||_item$learningDifficu===void 0||_item$learningDifficu.forEach(function(val){if(val.toLowerCase()!==\"none\"){\nfilterCriteria[\"Learning Difficulties\"].add(val);}});if(item.popularity)filterCriteria[\"Popularity\"].add(item.popularity);(_item$gradeLevel=item.gradeLevel)===null||_item$gradeLevel===void 0||_item$gradeLevel.forEach(function(val){return filterCriteria[\"Grade Level\"].add(val);});if(item.learningPace)filterCriteria[\"Learning Pace\"].add(item.learningPace);if(item.resourceRequirement)filterCriteria[\"Resource Requirement\"].add(item.resourceRequirement);});\nvar order={\"Age Suitability\":[\"Ages 3-5\",\"Ages 6-8\",\"Ages 9-11\",\"Ages 12-14\",\"Ages 15-17\",\"Ages 18-24\"],\"Subject Suitability\":[\"Math\",\"Science\",\"Language Arts\",\"Social Studies\",\"Art\",\"Physical Education\",\"Business\",\"Healthcare\",\"Technology\"],\"Learning Style Suitability\":[\"Visual\",\"Auditory\",\"Kinesthetic\",\"Read/Write\",\"Logical/Mathematical\",\"Intrapersonal\",\"Interpersonal\",\"Naturalist\"],\"Time Commitment\":[\"Short (5-15 minutes)\",\"Medium (15-30 minutes)\",\"Long (30+ minutes)\"],\"Difficulty Level\":[\"Beginner\",\"Intermediate\"],\"Tech Comfort\":[\"Basic\",\"Intermediate\"],\"Learning Difficulties\":[\"Dyslexia\",\"ADHD\",\"Autism Spectrum\",\"Other\"],\"Popularity\":[\"Low\",\"Medium\",\"High\"],\"Grade Level\":[\"Preschool\",\"K-2\",\"Higher Primary\",\"Lower Secondary\",\"Upper Secondary\",\"College\",\"Extra Curricula\",\"Seniors\"],\"Learning Pace\":[\"Slow\",\"Moderate\",\"Fast\"],\"Resource Requirement\":[\"Minimal\",\"Moderate\",\"High\"]};\nObject.keys(filterCriteria).forEach(function(category){var categoryDiv=document.createElement(\"div\");categoryDiv.classList.add(\"filter-group\");var title=document.createElement(\"h4\");title.textContent=category;categoryDiv.appendChild(title);\nvar values=Array.from(filterCriteria[category]);if(order[category]){values.sort(function(a,b){var indexA=order[category].indexOf(a);var indexB=order[category].indexOf(b);\nif(indexA===-1&&indexB===-1){return a.localeCompare(b);\n}else if(indexA===-1){return 1;\n}else if(indexB===-1){return-1;\n}else{return indexA-indexB;\n}});}else{\nvalues.sort(function(a,b){return a.localeCompare(b);});}\nconsole.log(\"Sorted values for \".concat(category,\":\"),values);\nvalues.forEach(function(value){var label=document.createElement(\"label\");label.classList.add(\"filter-option\");var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.value=value;checkbox.classList.add(\"filter-checkbox\");checkbox.dataset.category=category;\ncheckbox.addEventListener(\"change\",function(){console.log(\"Checkbox changed:\",category,checkbox.value,checkbox.checked);applyFilters();});label.appendChild(checkbox);label.appendChild(document.createTextNode(value));categoryDiv.appendChild(label);});filterContainer.appendChild(categoryDiv);});\nvar clearFiltersBtn=document.createElement(\"button\");clearFiltersBtn.textContent=\"Clear Filters\";clearFiltersBtn.classList.add(\"clear-filters-btn\");clearFiltersBtn.addEventListener(\"click\",function(){document.querySelectorAll(\".filter-checkbox:checked\").forEach(function(cb){return cb.checked=false;});console.log(\"Clear Filters clicked\");applyFilters();\n});filterContainer.appendChild(clearFiltersBtn);\nvar teacherCornerSection=document.querySelector(\"#teacher-corner-expander\");if(teacherCornerSection){teacherCornerSection.insertBefore(filterContainer,teacherCornerSection.firstChild);}else{console.log(\"Teacher Corner expander not found!\");}\nvar showFiltersBtn=document.createElement(\"button\");showFiltersBtn.textContent=\"Show Filters\";showFiltersBtn.classList.add(\"show-filters-btn\");var teacherCornerTitle=document.querySelector(\"#teacher-corner-title\");if(teacherCornerTitle){teacherCornerTitle.appendChild(showFiltersBtn);}else{console.log(\"Teacher Corner title (teacher-corner-title) not found!\");}\nshowFiltersBtn.addEventListener(\"click\",function(){if(filterContainer.style.display===\"none\"||filterContainer.style.display===\"\"){filterContainer.style.display=\"flex\";\nshowFiltersBtn.textContent=\"Hide Filters\";}else{filterContainer.style.display=\"none\";showFiltersBtn.textContent=\"Show Filters\";}console.log(\"Toggle Filters clicked; new display:\",filterContainer.style.display);\nevent.stopPropagation();});\ndocument.addEventListener('click',function(event){var filterContainer=document.getElementById('advanced-filters');var showFiltersBtn=document.querySelector('.show-filters-btn');\nif(filterContainer&&!filterContainer.contains(event.target)&&showFiltersBtn&&showFiltersBtn.textContent===\"Hide Filters\"){filterContainer.style.display='none';showFiltersBtn.textContent=\"Show Filters\";console.log(\"Filters hidden due to outside click\");}});}\nfunction applyFilters(){var selectedFilters={};document.querySelectorAll(\".filter-checkbox:checked\").forEach(function(cb){var category=cb.dataset.category;if(!selectedFilters[category]){selectedFilters[category]=[];}selectedFilters[category].push(cb.value);});console.log(\"Selected Filters:\",selectedFilters);\nvar categoryKeys={\"Age Suitability\":\"ageSuitability\",\"Subject Suitability\":\"subjectSuitability\",\"Learning Style Suitability\":\"learningStyleSuitability\",\"Time Commitment\":\"timeCommitment\",\"Difficulty Level\":\"difficultyLevel\",\"Tech Comfort\":\"techComfort\",\"Learning Difficulties\":\"learningDifficulties\",\"Popularity\":\"popularity\",\"Grade Level\":\"gradeLevel\",\"Learning Pace\":\"learningPace\",\"Resource Requirement\":\"resourceRequirement\"};\nvar filteredFormats=filterableFormats.filter(function(format){return Object.keys(selectedFilters).every(function(category){if(selectedFilters[category].length>0){var key=categoryKeys[category];\nif(category===\"Subject Suitability\"&&Array.isArray(format[key])){if(format[key].includes(\"All Subjects\")){return true;}}if(category===\"Learning Style Suitability\"&&Array.isArray(format[key])){if(format[key].includes(\"All learning styles\")){return true;}}if(Array.isArray(format[key])){var match=format[key].some(function(val){return selectedFilters[category].includes(val);});console.log(\"Checking \".concat(category,\" (array) for formatNo \").concat(format.formatNo,\":\"),match);return match;}else{var _match=selectedFilters[category].includes(format[key]);console.log(\"Checking \".concat(category,\" (value) for formatNo \").concat(format.formatNo,\":\"),_match);return _match;}}return true;});});console.log(\"Filtered Formats (by formatNo):\",filteredFormats.map(function(f){return f.formatNo;}));\ndocument.querySelectorAll(\"#teacher-corner-expander .button-container\").forEach(function(container){container.style.display=\"none\";\n});filteredFormats.forEach(function(format){var button=document.querySelector(\"#teacher-corner-expander button.format-button[data-format-no=\\\"\".concat(format.formatNo,\"\\\"]\"));if(button&&button.parentElement){button.parentElement.style.display=\"block\";console.log(\"Showing button with formatNo:\",format.formatNo);}else{console.warn(\"Button not found for formatNo:\",format.formatNo);}});\ndocument.querySelectorAll(\".recommendation-button-container\").forEach(function(container){container.style.display=\"block\";});}document.addEventListener(\"DOMContentLoaded\",initializeAdvancedFilters);var sliderData=[{\"title\":\"Educational AI Innovation\",\"description\":\"Education meets innovation—Powered by AI.\",\"image\":\"images/slider1.jpeg\"},{\"title\":\"Personalized Learning Pathways\",\"description\":\"Customized learning tailored to every student.\",\"image\":\"images/slider2.jpeg\"},{\"title\":\"Interactive Educational Formats\",\"description\":\"Over 400 dynamic learning formats at your fingertips.\",\"image\":\"images/slider3.jpeg\"},{\"title\":\"Engaging Classroom Activities\",\"description\":\"Boost classroom engagement with interactive games.\",\"image\":\"images/slider4.jpeg\"},{\"title\":\"Advanced Instructional Design\",\"description\":\"Structured learning aligned with educational standards.\",\"image\":\"images/slider5.jpeg\"},{\"title\":\"MyModules Customization\",\"description\":\"Personalize your lessons seamlessly with MyModules.\",\"image\":\"images/slider6.jpeg\"},{\"title\":\"Teacher's Lesson Planning Dashboard\",\"description\":\"Efficient, targeted lesson planning for every classroom.\",\"image\":\"images/slider7.jpeg\"},{\"title\":\"Professional Teacher Development\",\"description\":\"Empowering teachers with AI-focused training.\",\"image\":\"images/slider8.jpeg\"},{\"title\":\"Social-Emotional Learning\",\"description\":\"Building emotional intelligence through structured SEL activities.\",\"image\":\"images/slider9.jpeg\"},{\"title\":\"Family Learning at Home\",\"description\":\"Extend learning beyond classrooms with family engagement.\",\"image\":\"images/slider10.jpeg\"},{\"title\":\"Supportive Parenting Resources\",\"description\":\"Practical parenting guides to enhance family connections.\",\"image\":\"images/slider11.jpeg\"},{\"title\":\"Simplified Sermon Preparation\",\"description\":\"Simplify sermon preparation and Bible studies with AI-driven insights.\",\"image\":\"images/slider12.jpeg\"},{\"title\":\"AI Analytics & Adaptive Learning\",\"description\":\"Harness AI analytics to deliver precise, personalized learning experiences.\",\"image\":\"images/slider13.jpeg\"},{\"title\":\"Measurable Educational Impact\",\"description\":\"Proven results that enhance educational outcomes.\",\"image\":\"images/slider14.jpeg\"},{\"title\":\"Join LessonInnovation.com\",\"description\":\"Join today—revolutionize education with LessonInnovation.com.\",\"image\":\"images/slider15.jpeg\"}];document.addEventListener(\"DOMContentLoaded\",function(){try{var carouselInner=document.getElementById(\"carousel-inner\");var carouselIndicators=document.getElementById(\"carousel-indicators\");\nif(!carouselInner||!carouselIndicators){console.warn(\"Carousel elements not found. Skipping slider initialization.\");return;\n}\nif(!Array.isArray(sliderData)||sliderData.length===0){console.warn(\"No slider data found. Skipping slider initialization.\");return;}sliderData.forEach(function(slide,index){\nvar indicator=document.createElement(\"button\");indicator.setAttribute(\"type\",\"button\");indicator.setAttribute(\"data-bs-target\",\"#carouselExampleIndicators\");indicator.setAttribute(\"data-bs-slide-to\",index);indicator.setAttribute(\"aria-label\",\"Slide \".concat(index+1));if(index===0){indicator.classList.add(\"active\");indicator.setAttribute(\"aria-current\",\"true\");}carouselIndicators.appendChild(indicator);\nvar slideItem=document.createElement(\"div\");slideItem.classList.add(\"carousel-item\",\"fade-in\");\nif(index===0)slideItem.classList.add(\"active\");slideItem.innerHTML=\"\\n <img src=\\\"\".concat(slide.image,\"\\\" class=\\\"d-block w-100 lazyload\\\" alt=\\\"\").concat(slide.title,\"\\\" loading=\\\"lazy\\\">\\n <div class=\\\"carousel-caption d-md-block\\\">\\n <h5 class=\\\"slide-title\\\">\").concat(slide.title,\"</h5>\\n <p class=\\\"slide-description\\\">\").concat(slide.description,\"</p>\\n </div>\\n \");carouselInner.appendChild(slideItem);});console.log(\"Carousel initialized successfully.\");}catch(error){console.error(\"Error initializing the carousel:\",error);}});function createContentGenerationTabs(contentAreaId,generatedGoalsId){var tabsContainer=document.querySelector('.content-tabs');var contentGenerationAreas=document.getElementById(\"content-generation-areas\");var generateButton=document.getElementById(\"generateButton\");var types=[\"Bible Reading\",\"Problem-Based\",\"Dialogue\"];\nvar activeTab=0;\ntypes.forEach(function(type,index){var button=document.createElement(\"button\");button.textContent=type;button.classList.add(\"btn\");if(index===activeTab){button.classList.add(\"active\");}button.addEventListener(\"click\",function(){\nactiveTab=index;updateActiveTab(tabsContainer);displayContentGenerationArea(contentAreaId,generatedGoalsId,type);});tabsContainer.appendChild(button);});\ndisplayContentGenerationArea(contentAreaId,generatedGoalsId,types[activeTab]);}function displayContentGenerationArea(contentAreaId,generatedGoalsId,type){var contentGenerationArea=document.getElementById(contentAreaId);var generatedGoals=document.getElementById(generatedGoalsId);var allContentAreas=document.querySelectorAll(\".content-generation-area\");allContentAreas.forEach(function(area){return area.classList.remove(\"active\");});var contentArea=document.getElementById(contentAreaId+\"-\"+type);if(!contentArea){contentArea=document.createElement(\"div\");contentArea.id=contentAreaId+\"-\"+type;contentArea.classList.add(\"content-generation-area\");var textArea=document.createElement(\"div\");textArea.id=\"<span class=\\\"math-inline\\\">{contentAreaId}-editor-</span>{type}\";var quill=new Quill(\"#<span class=\\\"math-inline\\\">{contentAreaId}-editor-</span>{type}\",{theme:\"snow\",modules:{toolbar:[[{header:[1,2,3,false]}],\n[\"bold\",\"italic\",\"underline\"],\n[{list:\"ordered\"},{list:\"bullet\"}],\n[{color:[]},{background:[]}],\n[{align:[]}]\n]}});contentArea.appendChild(textArea);contentGenerationAreas.appendChild(contentArea);}contentArea.classList.add(\"active\");generateButton.style.display=\"block\";\ngeneratedGoals.innerHTML=\"\";}\nfunction updateActiveTab(tabsContainer){var tabButtons=tabsContainer.querySelectorAll(\"button\");tabButtons.forEach(function(button,i){if(i===activeTab){button.classList.add(\"active\");}else{button.classList.remove(\"active\");}});}\nvar isLoading=false;function showLoading(){if(!isLoading){loadingOverlay.style.display=\"block\";isLoading=true;}}function hideLoading(){if(isLoading){loadingOverlay.style.display=\"none\";isLoading=false;}}function showFeedbackMessage(message){var type=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'success';var feedback=document.getElementById('feedback-message');feedback.className=\"alert alert-\".concat(type);feedback.textContent=message;feedback.style.display='block';setTimeout(function(){return feedback.style.display='none';},3000);\n}function executeWithLoading(_x4){return _executeWithLoading.apply(this,arguments);}function _executeWithLoading(){_executeWithLoading=_asyncToGenerator(_regeneratorRuntime().mark(function _callee53(fn){return _regeneratorRuntime().wrap(function _callee53$(_context53){while(1)switch(_context53.prev=_context53.next){case 0:_context53.prev=0;showLoading();\n_context53.next=4;return fn();case 4:_context53.next=9;break;case 6:_context53.prev=6;_context53.t0=_context53[\"catch\"](0);console.error('Error:',_context53.t0);\ncase 9:_context53.prev=9;hideLoading();\nreturn _context53.finish(9);case 12:case\"end\":return _context53.stop();}},_callee53,null,[[0,6,9,12]]);}));return _executeWithLoading.apply(this,arguments);}function closeLessonModal(){var lessonModal=document.getElementById(\"formatModal\");\nvar RecommendationModal=document.getElementById(\"content-modalX\");lessonModal.style.display=\"none\";RecommendationModal.style.display=\"block\";}function showLessonModal(){var lessonModal=document.getElementById(\"formatModal\");\nvar RecommendationModal=document.getElementById(\"content-modalX\");lessonModal.style.display=\"block\";RecommendationModal.style.display=\"none\";}\nvar modal,modalTitle,listNameLabel,newListNameInput,addSelectedFormatsButton,availableFormatsContainer;var currentModalAction=\"create\";\nvar currentEditListIndex=null;\ndocument.addEventListener(\"DOMContentLoaded\",function(){\nmodal=document.getElementById(\"formatListModal\");modalTitle=document.getElementById(\"modalTitle\");listNameLabel=document.getElementById(\"listNameLabel\");newListNameInput=document.getElementById(\"newListName\");addSelectedFormatsButton=document.getElementById(\"addSelectedFormatsButton\");if(modal){availableFormatsContainer=modal.querySelector(\"#available-formats\");}\nif(addSelectedFormatsButton){addSelectedFormatsButton.onclick=function(){var listName=newListNameInput.value.trim();if(listName){\nvar selectedFormats=Array.from(modal.querySelectorAll(\"input[type='checkbox']:checked\")).map(function(checkbox){var formatData=_GlobalVariables.newTTableData.find(function(item){return item.No===parseInt(checkbox.value,10);});return{id:formatData.No,\"Format\":formatData.Format,\"description\":formatData.Description};});console.log(currentModalAction);if(currentModalAction===\"create\"){\nvar _personalizedFormats=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];_personalizedFormats.push({categoryName:listName,formats:selectedFormats});localStorage.setItem(\"personalizedFormats\",JSON.stringify(_personalizedFormats));\nvar formatListDiv=createFormatListElement({categoryName:listName,formats:selectedFormats},_personalizedFormats.length-1\n);var personalizedFormatsContainer=document.getElementById(\"personalized-format-lists\");personalizedFormatsContainer.appendChild(formatListDiv);}else{\nvar _personalizedFormats2=JSON.parse(localStorage.getItem(\"personalizedFormats\"))||[];\nconsole.log(\"currentEditListIndex:\",currentEditListIndex);console.log(\"Number of .format-list elements:\",document.querySelectorAll(\".format-list\").length);\n_personalizedFormats2[currentEditListIndex]={categoryName:listName,formats:selectedFormats};localStorage.setItem(\"personalizedFormats\",JSON.stringify(_personalizedFormats2));\nvar _formatListDiv=document.querySelectorAll(\".format-list\")[currentEditListIndex];\nif(_formatListDiv.parentElement){_formatListDiv.parentElement.replaceChild(createFormatListElement(_personalizedFormats2[currentEditListIndex],currentEditListIndex),_formatListDiv);}else{console.error(\"formatListDiv has no parent element!\");}}\nrenderPersonalizedFormatLists();}\ncloseModal();};}\nif(modal){initializeFormatMenu();initializeUnifiedGoalMenu();getAndHighlightFormats();\n}\n});function fetchContentData(_x5){return _fetchContentData.apply(this,arguments);}\nfunction _fetchContentData(){_fetchContentData=_asyncToGenerator(_regeneratorRuntime().mark(function _callee54(formatId){var contentData;return _regeneratorRuntime().wrap(function _callee54$(_context54){while(1)switch(_context54.prev=_context54.next){case 0:_context54.prev=0;contentData=eval(\"contentData\"+formatId);\nif(contentData){_context54.next=4;break;}throw new Error(\"No content data found for ID: \".concat(formatId));case 4:return _context54.abrupt(\"return\",contentData);case 7:_context54.prev=7;_context54.t0=_context54[\"catch\"](0);console.error(\"Error fetching content data:\",_context54.t0);displayErrorMessage(\"An error occurred while loading the content.\");return _context54.abrupt(\"return\",null);case 12:case\"end\":return _context54.stop();}},_callee54,null,[[0,7]]);}));return _fetchContentData.apply(this,arguments);}function fetchAndInjectContent(_x6){return _fetchAndInjectContent.apply(this,arguments);}function _fetchAndInjectContent(){_fetchAndInjectContent=_asyncToGenerator(_regeneratorRuntime().mark(function _callee55(formatId){var formatContentElement,feedBackAreaId,url,contentData,savedContentId,forceGenerate,formatName,contentArea,formatContentWrapper,createFunction,formatData,formatContentReactElement,modalElement,root,ReactComponent,_formatContentWrapper,modalX,tweaksButton,regenerateButton,lessonIdInput,saveButton,deleteButton,_args55=arguments;return _regeneratorRuntime().wrap(function _callee55$(_context55){while(1)switch(_context55.prev=_context55.next){case 0:formatContentElement=_args55.length>1&&_args55[1]!==undefined?_args55[1]:null;feedBackAreaId=_args55.length>2&&_args55[2]!==undefined?_args55[2]:null;url=_args55.length>3&&_args55[3]!==undefined?_args55[3]:null;contentData=_args55.length>4&&_args55[4]!==undefined?_args55[4]:null;savedContentId=_args55.length>5&&_args55[5]!==undefined?_args55[5]:null;forceGenerate=_args55.length>6&&_args55[6]!==undefined?_args55[6]:false;formatName=\"\";console.log(\"formatId\",formatId);console.log(\"formatContentElement\",formatContentElement);console.log(\"feedBackAreaId\",feedBackAreaId);\n_context55.prev=10;showLoading();\nconsole.log(\"force-Generate\",forceGenerate);console.log(\"content-Data\",contentData);if(!(contentData===null||forceGenerate)){_context55.next=18;break;}_context55.next=17;return generateContent(formatId,url,contentData);case 17:contentData=_context55.sent;case 18:if(!(contentData===null)){_context55.next=21;break;}hideLoading();return _context55.abrupt(\"return\",\"No Content Data found.\");case 21:console.log(\"content-Data 2\",contentData);if(!(contentData.type in formatFunctions||contentData.type in reactComponents)){_context55.next=67;break;}formatName=contentData.type;_context55.next=26;return generateTweaks(formatId);case 26:formatData=_context55.sent;if(!(contentData.type in reactComponents)){_context55.next=50;break;}if(!(formatContentElement!=\"content-area\")){_context55.next=32;break;}formatContentReactElement=document.getElementById(formatContentElement);_context55.next=40;break;case 32:formatContentReactElement=document.getElementById(\"content-area5\");\nmodalElement=document.getElementById('games-modal');if(!modalElement){_context55.next=38;break;}modalElement.style.display='block';_context55.next=40;break;case 38:console.error('Modal element with id \"games-modal\" not found.');return _context55.abrupt(\"return\");case 40:if(formatContentReactElement){_context55.next=43;break;}console.error(\"Element with id \\\"\".concat(formatContentElement,\"\\\" not found.\"));return _context55.abrupt(\"return\");case 43:\nif(formatContentReactElement.__root){formatContentReactElement.__root.unmount();delete formatContentReactElement.__root;}\nroot=_client[\"default\"].createRoot(formatContentReactElement);formatContentReactElement.__root=root;\nReactComponent=reactComponents[contentData.type];if(ReactComponent){root.render(_react[\"default\"].createElement(ReactComponent,{contentData:contentData,formatData:formatData,contentAreaId:formatContentElement,feedbackAreaId:feedBackAreaId,isFirstRender:1,savedContentId:savedContentId}));}else{console.error(\"React component for type \\\"\".concat(contentData.type,\"\\\" not found in reactComponents.\"));}_context55.next=51;break;case 50:if(contentData.type in formatFunctions){createFunction=formatFunctions[contentData.type];\n}case 51:if(!createFunction){_context55.next=65;break;}\nif(formatContentElement!=\"content-area\"){\ncreateFunction(contentData,formatContentElement,feedBackAreaId);contentArea=document.getElementById(formatContentElement);}else{\ncontentArea=document.getElementById(\"content-area\");contentArea.innerHTML=\"\";\n_formatContentWrapper=document.createElement(\"div\");_formatContentWrapper.classList.add(\"format-content\");_formatContentWrapper.id=\"formatContentWrapper\";contentArea.appendChild(_formatContentWrapper);\ncreateFunction(contentData,\"formatContentWrapper\",\"feedback-area\");modalX=document.getElementById(\"content-modalX\");modalX.style.display=\"block\";}\nupdateFormatCount(formatName);\ngetAndHighlightFormats();\nif(formatData){_context55.next=57;break;}throw new Error(\"No format data found for ID: \".concat(formatId));case 57:\nif(formatData.tweaks&&formatData.tweaks.length>0){tweaksButton=document.createElement(\"button\");tweaksButton.textContent=\"Tweaks\";tweaksButton.classList.add(\"btn\",\"btn-secondary\",\"tweaks-button\");tweaksButton.addEventListener(\"click\",function(){createTweaksModal();showTweaksModal(formatData,formatContentElement,feedBackAreaId,contentData);});contentArea.appendChild(tweaksButton);}\nregenerateButton=document.createElement(\"button\");regenerateButton.textContent=\"Regenerate\";regenerateButton.classList.add(\"btn\",\"btn-secondary\",\"regenerate-button\");regenerateButton.addEventListener(\"click\",function(){var url=lessonParameters!==null&&lessonParameters!==void 0?lessonParameters:getInputValues().parameters;fetchAndInjectContent(formatData.No,formatContentElement,feedBackAreaId,url);});contentArea.appendChild(regenerateButton);\nlessonIdInput=document.getElementById('lesson-id');if(lessonIdInput&&lessonIdInput.value&&Number(lessonIdInput.value)>0){saveButton=document.createElement(\"button\");saveButton.textContent=\"Save\";saveButton.classList.add(\"btn\",\"btn-secondary\",\"save-chatgpt-response\");\nsaveButton.addEventListener(\"click\",function(){BLL.saveChatGPTResponse(contentData);\nsaveButton.disabled=true;});contentArea.appendChild(saveButton);deleteButton=document.createElement(\"button\");deleteButton.textContent=\"Delete\";deleteButton.classList.add(\"btn\",\"btn-secondary\",\"delete-chatgpt-response\");\nif(savedContentId){saveButton.disabled=true;\ndeleteButton.disabled=false;\ndeleteButton.addEventListener(\"click\",function(){BLL.deleteContent(savedContentId);\n});}else{saveButton.disabled=false;\ndeleteButton.disabled=true;\n}contentArea.appendChild(deleteButton);}else{\nconsole.log(\"No lesson selected yet. Save/Delete buttons not added.\");}\ncase 65:_context55.next=69;break;case 67:console.error(\"No content data found for ID2: \".concat(formatId));displayErrorMessage(\"No content data found for ID: \".concat(formatId));case 69:_context55.next=76;break;case 71:_context55.prev=71;_context55.t0=_context55[\"catch\"](10);console.error(\"Error fetching or processing content:\",_context55.t0);displayErrorMessage(\"An error occurred while loading the content.\");hideLoading();case 76:hideLoading();return _context55.abrupt(\"return\",contentData);case 78:case\"end\":return _context55.stop();}},_callee55,null,[[10,71]]);}));return _fetchAndInjectContent.apply(this,arguments);}function updateFormatCount(formatName){var existingFormat=userFormats.find(function(f){return f.formatName===formatName;});if(existingFormat){existingFormat.count++;}else{userFormats.push({formatName:formatName,count:1});}localStorage.setItem(\"userFormats\",JSON.stringify(userFormats));}\nfunction displayErrorMessage(message){var contentArea=document.getElementById(\"messages-area\");\nif(contentArea)contentArea.innerHTML=\"<p class=\\\"error\\\">\".concat(message,\"</p>\");else console.error(\"Messages area not found! Make sure you have a div with the ID 'messages-area' in your HTML.\");}\nfunction createTweaksModal(){\nvar modal=document.createElement('div');modal.id='tweaks-modal';modal.classList.add('modal');\nmodal.innerHTML=\"\\n <div class=\\\"modal-content\\\">\\n <span class=\\\"close-button\\\" onclick=\\\"closeTweaksModal()\\\">×</span>\\n <h3>Tweak Settings</h3>\\n <div id=\\\"tweak-options\\\"></div>\\n <button id=\\\"applyTweaksButton\\\" class=\\\"btn btn-primary\\\">Apply Tweaks</button>\\n </div>\\n \";\ndocument.body.appendChild(modal);\nmodal.style.display=\"block\";\n}\nfunction showTweaksModal(formatData,formatContentElement,feedBackAreaId,contentData){var modal=document.getElementById(\"tweaks-modal\");var tweakOptionsContainer=document.getElementById(\"tweak-options\");tweakOptionsContainer.innerHTML=\"\";\nif(!formatData||!formatData.tweaks){console.error(\"Tweak options not found for this format.\");return;}formatData.tweaks.forEach(function(tweak){var _tweak$defaultValue;var tweakContainer=document.createElement(\"div\");tweakContainer.classList.add(\"tweak-option\");var label=document.createElement(\"label\");label.textContent=\"\".concat(tweak.name,\":\");tweakContainer.appendChild(label);\nvar removeIcon=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");removeIcon.setAttribute(\"viewBox\",\"0 0 24 24\");removeIcon.setAttribute(\"width\",\"20\");\nremoveIcon.setAttribute(\"height\",\"20\");removeIcon.classList.add(\"remove-tweak-icon\");\nvar path=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");path.setAttribute(\"d\",\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\");removeIcon.appendChild(path);removeIcon.addEventListener(\"click\",function(){tweakContainer.remove();});tweakContainer.appendChild(removeIcon);var inputElement=null;switch(tweak.type){case\"select\":inputElement=document.createElement(\"select\");tweak.options.forEach(function(option){var optionElement=document.createElement(\"option\");optionElement.value=option.toLowerCase();optionElement.textContent=option;inputElement.appendChild(optionElement);});inputElement.value=((_tweak$defaultValue=tweak.defaultValue)===null||_tweak$defaultValue===void 0?void 0:_tweak$defaultValue.toLowerCase())||\"\";\nbreak;case\"radio\":tweak.options.forEach(function(option){var _tweak$defaultValue2;var radioLabel=document.createElement(\"label\");var radioInput=document.createElement(\"input\");radioInput.type=\"radio\";radioInput.name=\"tweak-\".concat(tweak.name.replace(/\\s+/g,\"-\").toLowerCase());radioInput.value=option.toLowerCase();radioInput.checked=option.toLowerCase()===((_tweak$defaultValue2=tweak.defaultValue)===null||_tweak$defaultValue2===void 0?void 0:_tweak$defaultValue2.toLowerCase());radioLabel.appendChild(radioInput);radioLabel.appendChild(document.createTextNode(option));tweakContainer.appendChild(radioLabel);});break;case\"number\":inputElement=document.createElement(\"input\");inputElement.type=\"number\";inputElement.value=tweak.defaultValue||\"\";inputElement.placeholder=\"Enter a number\";\nbreak;case\"text\":inputElement=document.createElement(\"input\");inputElement.type=\"text\";inputElement.value=tweak.defaultValue||\"\";inputElement.placeholder=\"Enter text\";\nbreak;case\"multiselect\":inputElement=document.createElement(\"div\");inputElement.id=\"tweak-\".concat(tweak.name.replace(/\\s+/g,\"-\").toLowerCase());tweak.options.forEach(function(option){var _tweak$defaultValue3;var checkboxContainer=document.createElement(\"label\");var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.value=option.toLowerCase();checkbox.checked=(_tweak$defaultValue3=tweak.defaultValue)===null||_tweak$defaultValue3===void 0?void 0:_tweak$defaultValue3.toLowerCase().includes(option.toLowerCase());checkboxContainer.appendChild(checkbox);checkboxContainer.appendChild(document.createTextNode(option));inputElement.appendChild(checkboxContainer);});break;default:console.error(\"Unknown tweak type: \".concat(tweak.type));return;}if(inputElement){inputElement.id=\"tweak-\".concat(tweak.name.replace(/\\s+/g,\"-\").toLowerCase());inputElement.name=inputElement.id;\ntweakContainer.appendChild(inputElement);}tweakOptionsContainer.appendChild(tweakContainer);});\nvar additionalTweakContainer=document.createElement(\"div\");additionalTweakContainer.classList.add(\"tweak-option\");var additionalTweakLabel=document.createElement(\"label\");additionalTweakLabel.textContent=\"Additional Tweaks:\";additionalTweakContainer.appendChild(additionalTweakLabel);\nvar deleteIcon=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");deleteIcon.setAttribute(\"viewBox\",\"0 0 24 24\");deleteIcon.setAttribute(\"width\",\"20\");deleteIcon.setAttribute(\"height\",\"20\");deleteIcon.classList.add(\"remove-tweak-icon\");var deletePath=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");deletePath.setAttribute(\"d\",\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\");deleteIcon.appendChild(deletePath);deleteIcon.addEventListener(\"click\",function(){additionalTweakContainer.remove();});additionalTweakContainer.appendChild(deleteIcon);var additionalTweakInput=document.createElement(\"textarea\");additionalTweakInput.id=\"additional-tweaks\";additionalTweakInput.maxLength=500;\nadditionalTweakInput.placeholder=\"Enter any additional tweaks here...\";\nadditionalTweakInput.addEventListener(\"input\",function(event){var unsafeContentPattern=/<[^>]*script|<[^>]*>/gi;if(unsafeContentPattern.test(event.target.value)){event.target.value=event.target.value.replace(unsafeContentPattern,\"\");alert(\"Invalid content removed: HTML tags are not allowed.\");}});additionalTweakContainer.appendChild(additionalTweakInput);tweakOptionsContainer.appendChild(additionalTweakContainer);var applyButton=document.getElementById(\"applyTweaksButton\");applyButton.addEventListener(\"click\",function(){var tweakSettings={};formatData.tweaks.forEach(function(tweak){var inputElement=document.getElementById(\"tweak-\".concat(tweak.name.replace(/\\s+/g,\"-\").toLowerCase()));if(inputElement){switch(tweak.type){case\"select\":case\"text\":case\"number\":tweakSettings[tweak.name]=inputElement.value;break;case\"radio\":var selectedRadio=document.querySelector(\"input[name=\\\"tweak-\".concat(tweak.name.replace(/\\s+/g,\"-\").toLowerCase(),\"\\\"]:checked\"));tweakSettings[tweak.name]=selectedRadio?selectedRadio.value:null;break;case\"multiselect\":var selectedOptions=Array.from(inputElement.querySelectorAll(\"input[type='checkbox']:checked\")).map(function(checkbox){return checkbox.value;});tweakSettings[tweak.name]=selectedOptions.join(\", \");break;default:console.error(\"Unknown tweak type: \".concat(tweak.type));}}else{console.error(\"Input element not found for tweak: \".concat(tweak.name));}});\nif(document.getElementById(\"additional-tweaks\")){var additionalTweaksText=document.getElementById(\"additional-tweaks\").value||\"\";tweakSettings[\"Additional Tweaks\"]=additionalTweaksText;}var tweaksUrl=\"\";tweaksUrl=applyTweakSettings(tweakSettings);var url=getInputValues().parameters+\"|\"+tweaksUrl;fetchAndInjectContent(formatData.No,formatContentElement,feedBackAreaId,url,contentData,null,1);closeTweaksModal();});modal.style.display=\"block\";}\nfunction applyTweakSettings(tweakSettings){var tweaksUrl=\"\";try{\nfor(var name in tweakSettings){if(tweakSettings.hasOwnProperty(name)){\ntweaksUrl+=encodeURIComponent(name)+\"=\"+encodeURIComponent(tweakSettings[name])+\"|\";}}\ntweaksUrl=tweaksUrl.slice(0,-1);return tweaksUrl;}catch(error){console.error(\"Error applying tweaks:\",error);displayErrorMessage(\"An error occurred while applying tweaks.\");return\"\";}}\nfunction closeTweaksModal(){var modal=document.getElementById(\"tweaks-modal\");if(modal){modal.style.display=\"none\";modal.remove();\n}}function generateChatGPTPrompt(selectedFormat,tweakSelections){var format=_GlobalVariables.newTTableData.find(function(format){return format.type===selectedFormat;});if(!format){throw new Error(\"Invalid format type.\");}var prompt=\"Create a \".concat(format.Format,\" \\n \").concat(Object.entries(tweakSelections).map(function(_ref){var _ref2=_slicedToArray(_ref,2),tweakName=_ref2[0],option=_ref2[1];var tweak=format.tweaks.find(function(t){return t.name===tweakName;});if(!tweak||tweak.type!=='select'){\nreturn'';\n}return\"with \".concat(tweak.promptKeyword,\" set to \\\"\").concat(option,\"\\\"\");}).filter(Boolean).join(', '),\".\");\nreturn prompt;}\nfunction getInputValues(){var _document$getElementB,_document$getElementB2,_document$getElementB3,_document$getElementB4,_document$getElementB5,_document$getElementB6,_document$getElementB7,_document$getElementB8,_document$getElementB9,_document$getElementB10,_document$getElementB11,_Array$from$filter$ma,_document$getElementB12,_document$getElementB13,_document$getElementB14,_Array$from$filter$ma2,_Array$from$filter$ma3,_document$getElementB15,_document$getElementB16,_document$getElementB17,_document$getElementB18,_Array$from$filter$ma4,_Array$from$filter$ma5,_Array$from$filter$ma6;var urlAddress=((_document$getElementB=document.getElementById(\"content-url\"))===null||_document$getElementB===void 0?void 0:_document$getElementB.value)||\"\";var title=((_document$getElementB2=document.getElementById(\"content-title\"))===null||_document$getElementB2===void 0?void 0:_document$getElementB2.value)||\"\";var contentText=((_document$getElementB3=document.getElementById(\"content-text\"))===null||_document$getElementB3===void 0?void 0:_document$getElementB3.value)||\"\";var educationalGoals=((_document$getElementB4=document.getElementById(\"educational-goals\"))===null||_document$getElementB4===void 0?void 0:_document$getElementB4.value)||\"\";var additionalInstructions=((_document$getElementB5=document.getElementById(\"additional-instructions\"))===null||_document$getElementB5===void 0?void 0:_document$getElementB5.value)||\"\";var selectedOption=((_document$getElementB6=document.getElementById(\"country\"))===null||_document$getElementB6===void 0?void 0:_document$getElementB6.value)||\"\";var country=selectedOption?selectedOption.text:\"Ireland\";var age=((_document$getElementB7=document.getElementById(\"age\"))===null||_document$getElementB7===void 0?void 0:_document$getElementB7.value)||14;var language=((_document$getElementB8=document.getElementById(\"language\"))===null||_document$getElementB8===void 0?void 0:_document$getElementB8.value)||\"en\";var gradeLevel=((_document$getElementB9=document.getElementById(\"gradeLevel\"))===null||_document$getElementB9===void 0?void 0:_document$getElementB9.value)||\"\";var subjectArea=((_document$getElementB10=document.getElementById(\"subjectArea\"))===null||_document$getElementB10===void 0?void 0:_document$getElementB10.value)||\"\";var lessonId=((_document$getElementB11=document.getElementById(\"lesson-id\"))===null||_document$getElementB11===void 0?void 0:_document$getElementB11.value)||\"\";\nvar learningStyleCheckboxes=document.querySelectorAll('.learning-styles-multiselect input[type=\"checkbox\"]');var studentLearningStyles=(_Array$from$filter$ma=Array.from(learningStyleCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma!==void 0?_Array$from$filter$ma:\"\";var learningPace=((_document$getElementB12=document.getElementById(\"learningPace\"))===null||_document$getElementB12===void 0?void 0:_document$getElementB12.value)||\"\";var attentionSpan=((_document$getElementB13=document.getElementById(\"attentionSpan\"))===null||_document$getElementB13===void 0?void 0:_document$getElementB13.value)||\"\";var motivation=((_document$getElementB14=document.getElementById(\"motivation\"))===null||_document$getElementB14===void 0?void 0:_document$getElementB14.value)||\"\";\nvar learningDifficultyCheckboxes=document.querySelectorAll('.learning-difficulties-multiselect input[type=\"checkbox\"]');var learningDifficulties=(_Array$from$filter$ma2=Array.from(learningDifficultyCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma2!==void 0?_Array$from$filter$ma2:\"\";\nvar otherCharacteristicsCheckboxes=document.querySelectorAll('.other-characteristics-multiselect input[type=\"checkbox\"]');var otherCharacteristics=(_Array$from$filter$ma3=Array.from(otherCharacteristicsCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma3!==void 0?_Array$from$filter$ma3:\"\";\nvar techComfort=((_document$getElementB15=document.getElementById(\"techComfort\"))===null||_document$getElementB15===void 0?void 0:_document$getElementB15.value)||\"\";var includeAdditionalInfo=((_document$getElementB16=document.getElementById(\"includeAdditionalInfo\"))===null||_document$getElementB16===void 0?void 0:_document$getElementB16.value)||\"0\";var timeConstraints=((_document$getElementB17=document.getElementById(\"timeConstraints\"))===null||_document$getElementB17===void 0?void 0:_document$getElementB17.value)||45;var resources=((_document$getElementB18=document.getElementById(\"resources\"))===null||_document$getElementB18===void 0?void 0:_document$getElementB18.value)||\"\";\nvar activityPreferenceCheckboxes=document.querySelectorAll('.activity-preferences-multiselect input[type=\"checkbox\"]');var activityPreferences=(_Array$from$filter$ma4=Array.from(activityPreferenceCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma4!==void 0?_Array$from$filter$ma4:\"\";\nvar educationalStrategiesCheckboxes=document.querySelectorAll('.educational-strategies-multiselect input[type=\"checkbox\"]');var educationalStrategies=(_Array$from$filter$ma5=Array.from(educationalStrategiesCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma5!==void 0?_Array$from$filter$ma5:\"\";\nvar assessmentPreferenceCheckboxes=document.querySelectorAll('.assessment-preferences-multiselect input[type=\"checkbox\"]');var assessmentPreferences=(_Array$from$filter$ma6=Array.from(assessmentPreferenceCheckboxes).filter(function(cb){return cb.checked;}).map(function(cb){return cb.value;}).join(', '))!==null&&_Array$from$filter$ma6!==void 0?_Array$from$filter$ma6:\"\";var parameters=\"urlAddress=\".concat(encodeURIComponent(urlAddress),\"|title=\").concat(encodeURIComponent(title),\"|content=\").concat(encodeURIComponent(contentText),\"|age=\").concat(age,\"|country=\").concat(encodeURIComponent(country),\"|goals=\").concat(encodeURIComponent(educationalGoals),\"|instructions=\").concat(encodeURIComponent(additionalInstructions),\"|language=\").concat(encodeURIComponent(language),\"|studentLearningStyles=\").concat(encodeURIComponent(studentLearningStyles),\"|gradeLevel=\").concat(encodeURIComponent(gradeLevel),\"|subjectArea=\").concat(encodeURIComponent(subjectArea),\"|learningPace=\").concat(encodeURIComponent(learningPace),\"|attentionSpan=\").concat(encodeURIComponent(attentionSpan),\"|motivation=\").concat(encodeURIComponent(motivation),\"|learningDifficulties=\").concat(encodeURIComponent(learningDifficulties),\"|otherCharacteristics=\").concat(encodeURIComponent(otherCharacteristics),\"|techComfort=\").concat(encodeURIComponent(techComfort),\"|timeConstraints=\").concat(timeConstraints,\"|resources=\").concat(encodeURIComponent(resources),\"|activityPreferences=\").concat(encodeURIComponent(activityPreferences),\"|educationalStrategies=\").concat(encodeURIComponent(educationalStrategies),\"|assessmentPreferences=\").concat(encodeURIComponent(assessmentPreferences),\"|includeAdditionalInfo=\").concat(encodeURIComponent(includeAdditionalInfo));return{urlAddress:urlAddress,title:title,contentText:contentText,subjectArea:subjectArea,educationalGoals:educationalGoals,additionalInstructions:additionalInstructions,country:country,age:age,language:language,studentLearningStyles:studentLearningStyles,learningPace:learningPace,attentionSpan:attentionSpan,motivation:motivation,learningDifficulties:learningDifficulties,techComfort:techComfort,timeConstraints:timeConstraints,resources:resources,activityPreferences:activityPreferences,educationalStrategies:educationalStrategies,assessmentPreferences:assessmentPreferences,includeAdditionalInfo:includeAdditionalInfo,lessonId:lessonId,parameters:parameters};}function openInNewTab(content){var newWindow=window.open('','_blank');\nnewWindow.document.write(content);\n}function escapeSpecialChars(str){return str.replace(/\\\\/g,'\\\\\\\\').replace(/'/g,\"\\\\'\").replace(/\"/g,'\\\\\"').replace(/\\n/g,'\\\\n');}function addCoverAndRevealFunctionality(contentElement,coverContent){\nvar cover=document.createElement('div');cover.classList.add('content-cover');cover.textContent=\"Reveal \"+coverContent+\"!\";\nvar contentWrapper=document.createElement('div');contentWrapper.style.position='relative';contentElement.parentNode.insertBefore(contentWrapper,contentElement);contentWrapper.appendChild(contentElement);\ncontentWrapper.appendChild(cover);\ncover.style.position='absolute';cover.style.top='0';cover.style.left='0';cover.style.width='100%';cover.style.height='100%';\nvar observer=new MutationObserver(function(){cover.style.width=contentElement.offsetWidth+'px';cover.style.height=contentElement.offsetHeight+'px';});observer.observe(contentElement,{childList:true,subtree:true,characterData:true});\nsetTimeout(function(){cover.style.width=contentElement.offsetWidth+'px';cover.style.height=contentElement.offsetHeight+'px';},100);\nwindow.addEventListener('resize',function(){cover.style.width=contentElement.offsetWidth+'px';cover.style.height=contentElement.offsetHeight+'px';});\ncover.addEventListener('click',function(){cover.style.opacity=0;setTimeout(function(){cover.style.display='none';contentElement.style.visibility='visible';contentElement.classList.add('fade-in');\nobserver.disconnect();},300);});}\nfunction createTimeManagementTips(contentData){var ContentAreaId=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var feedbackAreaId=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var contentArea=createContentHeader(contentData,ContentAreaId);contentData.tips.forEach(function(tip){var section=document.createElement(\"section\");var tipHeading=document.createElement(\"h3\");tipHeading.textContent=tip.tip;section.appendChild(tipHeading);var explanation=document.createElement(\"p\");explanation.textContent=tip.explanation;explanation.classList.add(\"paragraph\");section.appendChild(explanation);if(tip.examples){var examplesList=document.createElement(\"ul\");examplesList.classList.add(\"list\");tip.examples.forEach(function(example){var listItem=document.createElement(\"li\");listItem.textContent=example;examplesList.appendChild(listItem);});section.appendChild(examplesList);}contentArea.appendChild(section);});}\nfunction createExamPreparationTips(contentData){var ContentAreaId=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var feedbackAreaId=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var contentArea=createContentHeader(contentData,ContentAreaId);contentData.tips.forEach(function(tip){var section=document.createElement(\"section\");var areaHeading=document.createElement(\"h3\");areaHeading.textContent=tip.area.charAt(0).toUpperCase()+tip.area.slice(1);\nsection.appendChild(areaHeading);var tipParagraph=document.createElement(\"p\");tipParagraph.textContent=tip.tip;tipParagraph.classList.add(\"paragraph\");section.appendChild(tipParagraph);var explanation=document.createElement(\"p\");explanation.textContent=tip.explanation;explanation.classList.add(\"paragraph\");section.appendChild(explanation);contentArea.appendChild(section);});}\nfunction createCriticalThinkingExercises(contentData){var ContentAreaId=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var feedbackAreaId=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var contentArea=createContentHeader(contentData,ContentAreaId);contentData.exercises.forEach(function(exercise,index){var section=document.createElement('section');section.classList.add('critical-thinking-exercise');var scenarioHeading=document.createElement('h3');section.appendChild(scenarioHeading);var scenarioParagraph=document.createElement('p');scenarioParagraph.textContent=exercise.scenario;scenarioParagraph.classList.add('paragraph');section.appendChild(scenarioParagraph);var questionsList=document.createElement('ol');questionsList.classList.add('list');exercise.questions.forEach(function(question){var listItem=document.createElement('li');listItem.textContent=question;questionsList.appendChild(listItem);});section.appendChild(questionsList);contentArea.appendChild(section);});}\nfunction createContentHeader(contentData,contentAreaId){var _newTTableData$find,_newTTableData$find2;var contentArea=document.getElementById(contentAreaId);contentArea.innerHTML=\"\";_toConsumableArray(document.querySelectorAll('.content-cover')).forEach(function(cover){return cover.remove();});\nvar typeDescription=(_newTTableData$find=_GlobalVariables.newTTableData.find(function(item){return item.type===contentData.type;}))===null||_newTTableData$find===void 0?void 0:_newTTableData$find.Description;\nvar formatType=document.createElement(\"h5\");formatType.classList.add(\"format-type\");formatType.textContent=contentData.type;if(typeDescription){formatType.title=typeDescription;\n}\nvar helpIcon=document.createElement(\"span\");helpIcon.classList.add(\"help-icon\");helpIcon.textContent=\"?\";\nvar FormatNo=(_newTTableData$find2=_GlobalVariables.newTTableData.find(function(item){return item.type===contentData.type;}))===null||_newTTableData$find2===void 0?void 0:_newTTableData$find2.No;helpIcon.onclick=function(){return getHelpContent(FormatNo);};formatType.appendChild(helpIcon);contentArea.appendChild(formatType);\nvar title=document.createElement(\"h2\");title.textContent=contentData.title;title.classList.add(\"title\");contentArea.appendChild(title);return contentArea;}function getHelpContent(_x7){return _getHelpContent.apply(this,arguments);}function _getHelpContent(){_getHelpContent=_asyncToGenerator(_regeneratorRuntime().mark(function _callee56(formatNo){var url,response,helpContent;return _regeneratorRuntime().wrap(function _callee56$(_context56){while(1)switch(_context56.prev=_context56.next){case 0:_context56.prev=0;url=\"\".concat(baseUrl,\"/Home/GetHelpContent?FormatNo=\").concat(formatNo);\n_context56.next=4;return fetch(url,{method:\"GET\"});case 4:response=_context56.sent;if(response.ok){_context56.next=7;break;}throw new Error(\"Error fetching help content: \".concat(response.statusText));case 7:_context56.next=9;return response.json();case 9:helpContent=_context56.sent;\ndisplayHelpContent(helpContent);console.log(\"Fetched help content:\",helpContent);return _context56.abrupt(\"return\",helpContent);case 15:_context56.prev=15;_context56.t0=_context56[\"catch\"](0);console.error(\"Error:\",_context56.t0);\nalert('An error occurred while fetching help content. Please try again later.');\nreturn _context56.abrupt(\"return\",null);case 20:case\"end\":return _context56.stop();}},_callee56,null,[[0,15]]);}));return _getHelpContent.apply(this,arguments);}function displayHelpContent(helpData){\nvar modal=document.createElement('div');modal.classList.add('help-modal');var modalContent=document.createElement('div');modalContent.classList.add('help-modal-content');var closeButton=document.createElement('span');closeButton.classList.add('close');closeButton.innerHTML='×';closeButton.onclick=closeHelpModal;\nvar searchResourcesHTML='';if(helpData.keyTerms){searchResourcesHTML=\"\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-search\\\"></i> Search Resources:</h3>\\n <ul class=\\\"search-links\\\">\\n <li><a href=\\\"https://www.youtube.com/search?q=\".concat(encodeURIComponent(helpData.keyTerms.youtube),\"\\\" target=\\\"_blank\\\">YouTube Videos</a></li>\\n <li><a href=\\\"https://www.facebook.com/search/videos?q=\").concat(encodeURIComponent(helpData.keyTerms.facebookVideos),\"\\\" target=\\\"_blank\\\">Facebook Videos</a></li>\\n <li><a href=\\\"https://www.facebook.com/search/posts?q=\").concat(encodeURIComponent(helpData.keyTerms.facebookPosts),\"\\\" target=\\\"_blank\\\">Facebook Posts</a></li>\\n <li><a href=\\\"https://www.google.com/search?q=\").concat(encodeURIComponent(helpData.keyTerms.googleArticles),\"\\\" target=\\\"_blank\\\">Google Articles</a></li>\\n <li><a href=\\\"https://scholar.google.com/scholar?q=\").concat(encodeURIComponent(helpData.keyTerms.googleScholar),\"\\\" target=\\\"_blank\\\">Google Scholar</a></li>\\n <li><a href=\\\"https://twitter.com/search?q=\").concat(encodeURIComponent(helpData.keyTerms.twitter),\"\\\" target=\\\"_blank\\\">Twitter</a></li>\\n </ul>\\n </div>\\n \");}\nvar contentHTML=\"\\n <div class=\\\"help-modal-header\\\">\\n <h2><i class=\\\"fa fa-info-circle\\\"></i> \".concat(helpData.formatName,\"</h2>\\n </div>\\n <div class=\\\"help-modal-body\\\">\\n <p class=\\\"description\\\">\").concat(helpData.longDescription,\"</p>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-list\\\"></i> Main Features:</h3>\\n <ul>\\n \").concat(helpData.mainFeatures.map(function(feature){return\"<li>\".concat(feature,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-thumbs-up\\\"></i> Benefits to Learning:</h3>\\n <ul>\\n \").concat(helpData.benefitsToLearning.map(function(benefit){return\"<li>\".concat(benefit,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-birthday-cake\\\"></i> Age Suitability:</h3>\\n <ul>\\n \").concat(helpData.ageSuitability.map(function(age){return\"<li>\".concat(age,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-book\\\"></i> Subject Suitability:</h3>\\n <ul>\\n \").concat(helpData.subjectSuitability.map(function(subject){return\"<li>\".concat(subject,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-paint-brush\\\"></i> Learning Style Suitability:</h3>\\n <ul>\\n \").concat(helpData.learningStyleSuitability.length>0?helpData.learningStyleSuitability.map(function(style){return\"<li>\".concat(style,\"</li>\");}).join(''):'<li>Information not available</li>',\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-cogs\\\"></i> How to Use:</h3>\\n <ol>\\n \").concat(helpData.howToUse.map(function(step,index){return\"<li><b>\".concat(index+1,\".</b> \").concat(step,\"</li>\");}).join(''),\"\\n </ol>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-graduation-cap\\\"></i> Educational Background:</h3>\\n <ul>\\n \").concat(helpData.educationalBackground.length>0?helpData.educationalBackground.map(function(background){return\"<li>\".concat(background,\"</li>\");}).join(''):'<li>Information not available</li>',\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-clock\\\"></i> Time Needed:</h3>\\n <p>\").concat(helpData.timeNeeded,\"</p>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-tasks\\\"></i> Prior Preparation:</h3>\\n <p>\").concat(helpData.priorPreparation,\"</p>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-magic\\\"></i> Skills Developed:</h3>\\n <ul>\\n \").concat(helpData.skillsDeveloped.map(function(skill){return\"<li>\".concat(skill,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-chart-line\\\"></i> Goal Levels Achieved:</h3>\\n <ul>\\n \").concat(helpData.goalLevelsAchieved.map(function(goal){return\"<li>\".concat(goal,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-clone\\\"></i> Similar or Complementary Formats:</h3>\\n <ul>\\n \").concat(helpData.similarOrComplementaryFormats.map(function(format){return\"<li>\".concat(format,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-fire\\\"></i> Popularity:</h3>\\n <p>\").concat(helpData.popularity,\"</p>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-users\\\"></i> Classroom Use Cases:</h3>\\n <ul>\\n \").concat(helpData.classroomUseCases.map(function(useCase){return\"<li>\".concat(useCase,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-user\\\"></i> Individualized Learning Use Cases:</h3>\\n <ul>\\n \").concat(helpData.individualizedLearningUseCases.map(function(useCase){return\"<li>\".concat(useCase,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-laptop\\\"></i> Technology Requirements:</h3>\\n <p>\").concat(helpData.technologyRequirements,\"</p>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-lightbulb\\\"></i> Differentiation Tips:</h3>\\n <ul>\\n \").concat(helpData.differentiationTips.map(function(tip){return\"<li>\".concat(tip,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-file-alt\\\"></i> Examples or Templates:</h3>\\n \").concat(helpData.examplesOrTemplates.length>0?helpData.examplesOrTemplates.map(function(example){return\"<div class=\\\"example\\\"><h4 class=\\\"example-title\\\">\".concat(example.title,\"</h4><p>\").concat(example.example,\"</p></div>\");}).join(''):'<p>Examples not available</p>',\"\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-sliders-h\\\"></i> Tweaks for Different Needs:</h3>\\n <ul>\\n \").concat(helpData.tweaksForDifferentNeeds.map(function(tweak){return\"<li>\".concat(tweak,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-signal\\\"></i> Difficulty Level:</h3>\\n <p>\").concat(helpData.difficultyLevel,\"</p>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-bullseye\\\"></i> Learning Goals:</h3>\\n <ul>\\n \").concat(helpData.learningGoals.map(function(goal){return\"<li>\".concat(goal,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-cogs\\\"></i> Key Skills:</h3>\\n <ul>\\n \").concat(helpData.keySkills.map(function(skill){return\"<li>\".concat(skill,\"</li>\");}).join(''),\"\\n </ul>\\n </div>\\n <hr>\\n <div class=\\\"feature-group\\\">\\n <h3><i class=\\\"fa fa-hourglass-half\\\"></i> Time Commitment:</h3>\\n <p>\").concat(helpData.timeCommitment,\"</p>\\n </div>\\n \").concat(searchResourcesHTML,\"\\n </div>\\n \");\nmodalContent.innerHTML=contentHTML;modal.appendChild(closeButton);modal.appendChild(modalContent);document.body.appendChild(modal);}function closeHelpModal(){var modal=document.querySelector('.help-modal');if(modal){modal.remove();}}\nfunction displayList(container,title,items){var listType=arguments.length>3&&arguments[3]!==undefined?arguments[3]:'ul';var styleIndex=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;if(items&&items.length>0){var listContainer=document.createElement('div');listContainer.classList.add('list-section');if(title){var listHeading=document.createElement('h3');listHeading.textContent=title;listContainer.appendChild(listHeading);}var list=document.createElement(listType);list.classList.add('list');\nvar useContainer,listItemContainerStyle,hoverEffect;if(styleIndex!==null&&styleIndex>=0){\nuseContainer=styleIndex%2===0;\nvar styles=[{\nlistItemContainerStyle:\"\\n padding: 15px;\\n margin-bottom: 10px;\\n border-left: 5px solid #4CAF50; /* Green for positive association */\\n transition: background-color 0.3s ease; \\n \",hoverEffect:\"background-color: #f0fff0;\"},{\nlistItemContainerStyle:'',hoverEffect:'text-decoration: underline;'},{\nlistItemContainerStyle:\"\\n padding: 12px 15px;\\n margin-bottom: 8px;\\n border-left: 4px solid #2196F3; /* Blue for focus */\\n display: flex;\\n align-items: center;\\n transition: background-color 0.3s ease; \\n \",hoverEffect:\"background-color: #e3f2fd;\"},{\nlistItemContainerStyle:'',hoverEffect:'font-family: \"Courier New\", monospace;'},{\nlistItemContainerStyle:\"\\n padding: 15px;\\n margin-bottom: 10px;\\n background-color: #f5f5f5;\\n color: #333; /* Dark text on light background */\\n border: 1px solid #ddd;\\n transition: background-color 0.3s ease; \\n \",hoverEffect:'background-color: #e0e0e0;'},{\nlistItemContainerStyle:'',hoverEffect:'font-weight: bold;'},{\nlistItemContainerStyle:\"\\n padding: 15px;\\n margin-bottom: 10px;\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n transition: box-shadow 0.3s ease; \\n \",hoverEffect:'box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);'},{\nlistItemContainerStyle:'',hoverEffect:'font-size: 1.2em;'},{\nlistItemContainerStyle:\"\\n padding: 15px;\\n margin-bottom: 10px;\\n border-radius: 8px;\\n border: 1px solid #ccc;\\n transition: background-color 0.3s ease; \\n \",hoverEffect:'background-color: #f5f5f5;'},{\nlistItemContainerStyle:\"\\n padding: 12px 15px;\\n margin-bottom: 8px;\\n display: flex;\\n align-items: center;\\n transition: background-color 0.3s ease; \\n \",hoverEffect:\"\\n background-color: #f0f0f0;\\n &::before { /* Assuming you add an icon with ::before */\\n transform: rotate(360deg); \\n }\\n \"},{\nlistItemContainerStyle:\"\\n padding: 10px;\\n margin-bottom: 5px;\\n border-bottom: 1px solid #eee;\\n transition: background-color 0.3s ease; \\n \",hoverEffect:'background-color: #f8f8f8;'},{\nlistItemContainerStyle:\"\\n padding: 15px;\\n margin-bottom: 10px;\\n background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),\\n url('C:\\\\Code\\\\GitHub\\\\LessonInnovationMVC\\\\LessonMVCweb\\\\wwwroot\\\\css\\\\bk1.jpeg');\\n color: #333;\\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);\\n transition: opacity 0.3s ease; \\n \",hoverEffect:'opacity: 0.8;'},{\nlistItemContainerStyle:\"\\n padding: 5px; /* Reduced padding */\\n margin-bottom: 6px; /* Reduced margin */\\n background-color: #f8f8f8; /* Slightly lighter background */\\n color: #333;\\n border: 1px solid #ddd;\\n transition: background-color 0.3s ease;\\n \",hoverEffect:'background-color: #e8e8e8;'\n}];var selectedStyle=styles[styleIndex];listItemContainerStyle=selectedStyle.listItemContainerStyle;hoverEffect=selectedStyle.hoverEffect;}else{\nvar darkerBackgroundColors=['#f0f0f0','#e8e8e8','#e0e0e0','#d8d8d8','#d0d0d0','#c8c8c8','#c0c0c0','#b8b8b8'];useContainer=items.length>1&&Math.random()<0.5;if(useContainer){var randomBorderStyle=['solid','dotted','dashed'][Math.floor(Math.random()*3)];var randomBorderWidth='1px';var randomBorderColor='#ddd';var randomBoxShadow='0 2px 3px rgba(0, 0, 0, 0.2)';var randomBorderRadius=Math.floor(Math.random()*10)+5+'px';listItemContainerStyle=\"\\n border: \".concat(randomBorderWidth,\" \").concat(randomBorderStyle,\" \").concat(randomBorderColor,\";\\n box-shadow: \").concat(randomBoxShadow,\";\\n border-radius: \").concat(randomBorderRadius,\";\\n transition: background-color 0.2s;\\xA0\\n margin-bottom: 10px;\\xA0\\n margin-top: 10px;\\xA0\\n padding: 10px;\\xA0\\n \");hoverEffect=\"background-color: \".concat(darkerBackgroundColors[Math.floor(Math.random()*darkerBackgroundColors.length)],\";\");}else{var subtleHoverEffects=['text-decoration: underline;','font-style: italic;','color: #333;','background-color: rgba(0, 0, 0, 0.05);','transform: translateY(-2px);','box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);','opacity: 0.9;','filter: brightness(95%);'];\nif(!subtleHoverEffects.includes('text-decoration: underline;')){subtleHoverEffects.push('text-decoration: underline;');}hoverEffect=subtleHoverEffects[Math.floor(Math.random()*subtleHoverEffects.length)];\nif(hoverEffect==='text-decoration: underline;'){useContainer=false;}}}items.forEach(function(item){var listItemContainer;if(useContainer){listItemContainer=document.createElement('div');listItemContainer.classList.add('list-item-container');listItemContainer.style.cssText=listItemContainerStyle;listItemContainer.addEventListener('mouseover',function(){listItemContainer.style.cssText+=hoverEffect;});listItemContainer.addEventListener('mouseout',function(){listItemContainer.style.backgroundColor='';});}var listItem=document.createElement('li');if(_typeof(item)==='object'&&item!==null){for(var key in item){if(item.hasOwnProperty(key)){var capitalizedKey=key.charAt(0).toUpperCase()+key.slice(1);listItem.innerHTML+=\"<strong>\".concat(capitalizedKey,\":</strong> \").concat(item[key],\"<br>\");}}}else{listItem.innerHTML=item;}if(!useContainer&&hoverEffect==='text-decoration: underline;'){listItem.style.transition='text-decoration 0.2s';listItem.addEventListener('mouseover',function(){listItem.classList.add('underline-hover');});listItem.addEventListener('mouseout',function(){listItem.classList.remove('underline-hover');});}else if(!useContainer){listItem.style.transition='0.2s';listItem.addEventListener('mouseover',function(){listItem.style.cssText+=hoverEffect;});listItem.addEventListener('mouseout',function(){listItem.style.cssText=listItem.style.cssText.replace(hoverEffect,'');});}if(useContainer){listItemContainer.appendChild(listItem);list.appendChild(listItemContainer);}else{list.appendChild(listItem);}});listContainer.appendChild(list);container.appendChild(listContainer);}}\nfunction displayKeyValueList(container,title,items){displayList(container,title,items,'ul');}\nfunction displayText(container,headingText,paragraphText){\nif(headingText){var heading=document.createElement('h3');heading.textContent=headingText;\ncontainer.appendChild(heading);}\nif(paragraphText){var paragraph=document.createElement('p');\nif(/<[a-z][\\s\\S]*>/i.test(paragraphText)){paragraph.innerHTML=paragraphText;\n}else{paragraph.textContent=paragraphText;\n}paragraph.classList.add('paragraph');container.appendChild(paragraph);}}\nfunction formatList(items){if(!items||!Array.isArray(items)||items.length===0){return[];\n}return items.map(function(item){if(Array.isArray(item)){\nreturn\"<strong>\".concat(item[0],\"</strong> - \").concat(item[1]);}else if(_typeof(item)==='object'&&item!==null){\nreturn\"<strong>\".concat(item.verse||'',\"</strong> - \").concat(item.explanation||'');}else{\nreturn item;}});}\nfunction showContentModalX(){var modalX=document.getElementById(\"content-modalX\");modalX.style.display=\"block\";}\nfunction hideContentModalX(){var modalX=document.getElementById(\"content-modalX\");modalX.style.display=\"none\";}\ndocument.addEventListener('DOMContentLoaded',function(){\nvar addCourseLink=document.createElement('a');addCourseLink.href='#';addCourseLink.className='new-course';addCourseLink.innerHTML='<i class=\"fas fa-plus\"></i> Course';addCourseLink.addEventListener('click',function(event){event.preventDefault();BLL.openAddCourseModal();\n});\nvar coursesTabContent=document.getElementById('courses');\nif(coursesTabContent){coursesTabContent.insertBefore(addCourseLink,coursesTabContent.firstChild);}else{console.log('Error: Courses tab content not found.');}\nvar newLessonLink=document.querySelector('.new-lesson');\nif(newLessonLink){var courseId=document.getElementById(\"course-id\");newLessonLink.addEventListener('click',function(event){event.preventDefault();\nBLL.openAddLessonModal(courseId.value);\n});}else{console.log('Error: Add lesson link not found.');}\nvar closeModalXButton=document.querySelector(\".close-modalX\");if(closeModalXButton){closeModalXButton.addEventListener(\"click\",hideContentModalX);}else{console.log('Error: closeModalXButton not found.');}});\nfunction generateUUID(){\nvar d=new Date().getTime();\nvar d2=typeof performance!=='undefined'&&performance.now&&performance.now()*1000||0;\nreturn'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16;\nif(d>0){\nr=(d+r)%16|0;d=Math.floor(d/16);}else{\nr=(d2+r)%16|0;d2=Math.floor(d2/16);}return(c==='x'?r:r&0x3|0x8).toString(16);});}\nvar BLL={loadCourses:function(){var _loadCourses=_asyncToGenerator(_regeneratorRuntime().mark(function _callee3(){return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee2(){var userId,schoolId,courseIdInput,lessonIdInput,noCourses,courses,coursesList;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;userId=sessionStorage.getItem('UserId');schoolId=sessionStorage.getItem('SchoolId');courseIdInput=document.getElementById('course-id');lessonIdInput=document.getElementById('lesson-id');noCourses=document.getElementById('no-courses');if(courseIdInput&&lessonIdInput){courseIdInput.value=0;lessonIdInput.value=0;}if(!(!userId||!schoolId)){_context2.next=11;break;}console.error('User is not authenticated');alert('Please log in to view your courses.');return _context2.abrupt(\"return\");case 11:_context2.next=13;return(0,_BLL.callApi)('read','Courses',{where:\"schoolId = \".concat(schoolId)});case 13:courses=_context2.sent;\ncoursesList=document.getElementById('courses-list');if(coursesList){_context2.next=18;break;}console.error('Element with id \"courses-list\" not found.');return _context2.abrupt(\"return\");case 18:coursesList.innerHTML='';if(courses.length>0){courses.forEach(function(course){BLL.displayCourse(course);});\nnew Sortable(coursesList,{animation:150,handle:'.course-card',onUpdate:function(){var _onUpdate=_asyncToGenerator(_regeneratorRuntime().mark(function _callee(evt){var courseId,newOrder;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:courseId=parseInt(evt.item.dataset.courseId,10);newOrder=Array.from(coursesList.children).indexOf(evt.item);_context.prev=2;_context.next=5;return(0,_BLL.callApi)('update','Courses',{id:courseId,courseOrder:newOrder},'PUT');case 5:console.log('Course order updated successfully.');_context.next=11;break;case 8:_context.prev=8;_context.t0=_context[\"catch\"](2);console.error('Error updating course order:',_context.t0);case 11:case\"end\":return _context.stop();}},_callee,null,[[2,8]]);}));function onUpdate(_x8){return _onUpdate.apply(this,arguments);}return onUpdate;}()});noCourses.style.display='none';}else{noCourses.style.display='block';}showFeedbackMessage('Courses fetched successfully!','success');_context2.next=27;break;case 23:_context2.prev=23;_context2.t0=_context2[\"catch\"](0);console.error('Error loading courses:',_context2.t0.message);showFeedbackMessage('Error loading courses','danger');\ncase 27:case\"end\":return _context2.stop();}},_callee2,null,[[0,23]]);})));case 2:case\"end\":return _context3.stop();}},_callee3);}));function loadCourses(){return _loadCourses.apply(this,arguments);}return loadCourses;}(),displayCourse:function displayCourse(course){var courseList=document.getElementById('courses-list');if(!courseList){console.error('Element with id \"courses-list\" not found.');return;}var courseItem=document.createElement('div');courseItem.className='course-card';\ncourseItem.dataset.courseId=course.courseId;course.imageUrl=\"../images/course.png\";var imageUrl=course.imageUrl||'https://dummyimage.com/600x400/000/fff';courseItem.innerHTML=\"\\n <div class=\\\"course-image-title-wrapper\\\">\\n <div class=\\\"course-image-wrapper\\\">\\n <img src=\\\"\".concat(imageUrl,\"\\\" alt=\\\"\").concat(course.courseName,\" Image\\\"> \\n </div>\\n <h3>\").concat(course.courseName||'Untitled Course',\"</h3> \\n </div>\\n <p class=\\\"course-description\\\">\").concat(course.description||'No description available.',\"</p> \\n <div class=\\\"controls\\\">\\n <div>\\n <a href=\\\"javascript:void(0)\\\" class=\\\"edit\\\" onclick=\\\"BLL.openEditCourseModal(\").concat(course.courseId,\", event)\\\"><i class=\\\"fas fa-edit\\\"></i></a>\\n <a href=\\\"#\\\" class=\\\"delete\\\" onclick=\\\"BLL.deleteCourse(\").concat(course.courseId,\", event)\\\"><i class=\\\"fas fa-trash-alt\\\"></i></a> \\n </div>\\n </div>\\n\");courseItem.addEventListener('click',function(event){\nif(event.target.closest('.edit')||event.target.closest('.delete')){return;}var courseIdInput=document.getElementById('course-id');var lessonIdInput=document.getElementById('lesson-id');if(courseIdInput){courseIdInput.value=course.courseId;lessonIdInput.value=0;}else{console.error('Error: Hidden input field for course ID not found.');}var lessonManagementSection=document.getElementById('lesson-management-section');lessonManagementSection.style.display='block';var selectedCourseDiv=document.getElementById('selected-course');selectedCourseDiv.innerHTML=\"<b>Course:</b> \"+course.courseName;\nconsole.log(\"Course ID being passed to loadLessons:\",course.courseId);setTimeout(function(){BLL.loadLessons(course.courseId);},100);var lessonsTab=document.getElementById('lessons-tab');if(lessonsTab){lessonsTab.click();}});courseList.appendChild(courseItem);},openEditCourseModal:function openEditCourseModal(courseId,event){event.stopPropagation();var modal=document.getElementById('course-modal');if(!modal){console.error('Element with id \"course-modal\" not found.');return;}\nvar courseNameInput=document.getElementById('modal-course-name');var courseDescriptionInput=document.getElementById('modal-course-description');\ncourseId=parseInt(courseId,10);\n(0,_BLL.callApi)('read','Courses',{where:\"courseId = \".concat(courseId)}).then(function(course){if(course){courseNameInput.value=course[0].courseName;courseDescriptionInput.value=course[0].description;modal.dataset.courseId=courseId;}else{console.error(\"Error fetching course with ID \".concat(courseId));}})[\"catch\"](function(error){console.error(':',error);showFeedbackMessage('Error loading course details','danger');});\nmodal.style.display='block';},openAddCourseModal:function openAddCourseModal(){var modal=document.getElementById('course-modal');if(!modal){console.error('Element with id \"course-modal\" not found.');return;}\nvar courseNameInput=document.getElementById('modal-course-name');var courseDescriptionInput=document.getElementById('modal-course-description');courseNameInput.value='';courseDescriptionInput.value='';modal.dataset.courseId='';\nmodal.style.display='block';},openAddLessonModal:function openAddLessonModal(courseId){var modal=document.getElementById('lesson-modal');if(!modal){console.error('Element with id \"lesson-modal\" not found.');return;}\nvar lessonNameInput=document.getElementById('modal-lesson-name');var lessonDescriptionInput=document.getElementById('modal-lesson-description');lessonNameInput.value='';lessonDescriptionInput.value='';modal.dataset.courseId=courseId;\nmodal.style.display='block';},clearLessonFields:function clearLessonFields(){document.getElementById('content-title').value='';document.getElementById('content-text').value='';document.getElementById('content-url').value='';document.getElementById('subjectArea').value='';document.getElementById('educational-goals').value='';document.getElementById('goal-category-filter').value='Educational Goals';document.getElementById('goals-formats').innerHTML='';document.getElementById('additional-instructions').value='';},openEditLessonModal:function openEditLessonModal(lessonId){var modal=document.getElementById('lesson-modal');if(!modal){console.error('Element with id \"lesson-modal\" not found.');return;}\nvar lessonNameInput=document.getElementById('modal-lesson-name');var lessonDescriptionInput=document.getElementById('modal-lesson-description');\n(0,_BLL.callApi)('read','Lessons',{where:\"lessonId = \".concat(lessonId)}).then(function(lesson){if(lesson&&lesson.length>0){lessonNameInput.value=lesson[0].lessonName||'';lessonDescriptionInput.value=lesson[0].description||'';modal.dataset.lessonId=lessonId;\n}else{console.error(\"Error fetching lesson with ID \".concat(lessonId));}})[\"catch\"](function(error){console.error('Error loading lesson details:',error);showFeedbackMessage('Error loading lesson details.','danger');});\nmodal.style.display='block';},saveLessonFromModal:function(){var _saveLessonFromModal=_asyncToGenerator(_regeneratorRuntime().mark(function _callee5(){return _regeneratorRuntime().wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:_context5.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee4(){var modal,lessonName,description,lessonId,courseId,lessonData;return _regeneratorRuntime().wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:modal=document.getElementById('lesson-modal');if(modal){_context4.next=4;break;}console.error('Element with id \"lesson-modal\" not found.');return _context4.abrupt(\"return\");case 4:lessonName=document.getElementById('modal-lesson-name').value;description=document.getElementById('modal-lesson-description').value;lessonId=modal.dataset.lessonId?parseInt(modal.dataset.lessonId,10):null;courseId=document.getElementById(\"course-id\").value;if(lessonName){_context4.next=11;break;}alert('Lesson name cannot be empty.');return _context4.abrupt(\"return\");case 11:lessonData={lessonName:lessonName,description:description,courseId:courseId};_context4.prev=12;if(!lessonId){_context4.next=20;break;}_context4.next=16;return(0,_BLL.callApi)('update','Lessons',_objectSpread({id:lessonId},lessonData),'PUT');case 16:console.log('Lesson updated successfully.');showFeedbackMessage('Lesson updated successfully!','success');_context4.next=25;break;case 20:_context4.next=22;return(0,_BLL.callApi)('create','Lessons',lessonData);case 22:console.log('Lesson added successfully.');showFeedbackMessage('Lesson added successfully!','success');BLL.clearLessonFields();case 25:modal.style.display='none';BLL.loadLessons(courseId);_context4.next=33;break;case 29:_context4.prev=29;_context4.t0=_context4[\"catch\"](12);console.error('Error saving lesson:',_context4.t0);showFeedbackMessage(\"Error saving lesson.\",'danger');case 33:case\"end\":return _context4.stop();}},_callee4,null,[[12,29]]);})));case 2:case\"end\":return _context5.stop();}},_callee5);}));function saveLessonFromModal(){return _saveLessonFromModal.apply(this,arguments);}return saveLessonFromModal;}(),saveCourseFromModal:function(){var _saveCourseFromModal=_asyncToGenerator(_regeneratorRuntime().mark(function _callee7(){return _regeneratorRuntime().wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:_context7.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee6(){var modal,courseName,description,courseId,schoolId,courseData;return _regeneratorRuntime().wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:modal=document.getElementById('course-modal');if(modal){_context6.next=4;break;}console.error('Element with id \"course-modal\" not found.');return _context6.abrupt(\"return\");case 4:courseName=document.getElementById('modal-course-name').value;description=document.getElementById('modal-course-description').value;courseId=modal.dataset.courseId?parseInt(modal.dataset.courseId,10):null;schoolId=sessionStorage.getItem(\"SchoolId\");if(courseName){_context6.next=11;break;}alert('Course name cannot be empty.');return _context6.abrupt(\"return\");case 11:courseData={courseName:courseName,description:description,schoolId:schoolId};_context6.prev=12;if(!courseId){_context6.next=19;break;}_context6.next=16;return(0,_BLL.callApi)('update','Courses',_objectSpread({id:courseId},courseData),'PUT');case 16:console.log('Course updated successfully.');_context6.next=23;break;case 19:_context6.next=21;return(0,_BLL.callApi)('create','Courses',courseData);case 21:BLL.clearLessonFields();console.log('Course added successfully.');case 23:modal.style.display='none';BLL.loadCourses();_context6.next=31;break;case 27:_context6.prev=27;_context6.t0=_context6[\"catch\"](12);console.error('Error saving course:',_context6.t0);showFeedbackMessage(\"Error saving course.\",'danger');case 31:case\"end\":return _context6.stop();}},_callee6,null,[[12,27]]);})));case 2:case\"end\":return _context7.stop();}},_callee7);}));function saveCourseFromModal(){return _saveCourseFromModal.apply(this,arguments);}return saveCourseFromModal;}(),GetLessons:function(){var _GetLessons=_asyncToGenerator(_regeneratorRuntime().mark(function _callee8(){var courseIdInput;return _regeneratorRuntime().wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:courseIdInput=document.getElementById('course-id');if(courseIdInput&&courseIdInput.value&&courseIdInput.value>0){BLL.loadLessons(courseIdInput.value);BLL.clearLessonFields();}else if(courseIdInput&&courseIdInput.value&&courseIdInput.value==0){(0,_SharedScript.enableDisableControl)(\"lesson-management-section\",\"hide\");(0,_SharedScript.enableDisableControl)(\"choose-course-first\",\"show\");}case 2:case\"end\":return _context8.stop();}},_callee8);}));function GetLessons(){return _GetLessons.apply(this,arguments);}return GetLessons;}(),loadLessons:function(){var _loadLessons=_asyncToGenerator(_regeneratorRuntime().mark(function _callee11(courseId){return _regeneratorRuntime().wrap(function _callee11$(_context11){while(1)switch(_context11.prev=_context11.next){case 0:_context11.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee10(){var lessons,lessonsList,noLessons,lessonIdInput;return _regeneratorRuntime().wrap(function _callee10$(_context10){while(1)switch(_context10.prev=_context10.next){case 0:_context10.prev=0;_context10.next=3;return(0,_BLL.callApi)('read','Lessons',{where:\"courseId = \".concat(courseId)});case 3:lessons=_context10.sent;\nlessonsList=document.getElementById('lessons-list');noLessons=document.getElementById('no-lessons');if(lessonsList){_context10.next=9;break;}console.error('Element with id \"lessons-list\" not found.');return _context10.abrupt(\"return\");case 9:lessonIdInput=document.getElementById('lesson-id');if(lessonIdInput){lessonIdInput.value=0;}lessonsList.innerHTML='';if(lessons.length>0){lessons.forEach(function(lesson){BLL.displayLesson(lesson);});noLessons.style.display='none';\nnew Sortable(lessonsList,{animation:150,handle:'.lesson-item',onUpdate:function(){var _onUpdate2=_asyncToGenerator(_regeneratorRuntime().mark(function _callee9(evt){var lessonId,newOrder;return _regeneratorRuntime().wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:lessonId=parseInt(evt.item.dataset.lessonId,10);newOrder=Array.from(lessonsList.children).indexOf(evt.item);_context9.prev=2;_context9.next=5;return(0,_BLL.callApi)('update','Lessons',{id:lessonId,lessonOrder:newOrder},'PUT');case 5:console.log('Lesson order updated successfully.');_context9.next=11;break;case 8:_context9.prev=8;_context9.t0=_context9[\"catch\"](2);console.error('Error updating lesson order:',_context9.t0);case 11:case\"end\":return _context9.stop();}},_callee9,null,[[2,8]]);}));function onUpdate(_x10){return _onUpdate2.apply(this,arguments);}return onUpdate;}()});}else{(0,_SharedScript.enableDisableControl)(\"choose-course-first\",\"hide\");\nnoLessons.style.display='block';}_context10.next=19;break;case 15:_context10.prev=15;_context10.t0=_context10[\"catch\"](0);console.error('Error loading lessons:',_context10.t0);showFeedbackMessage(\"Error loading lessons.\",'danger');case 19:case\"end\":return _context10.stop();}},_callee10,null,[[0,15]]);})));case 2:case\"end\":return _context11.stop();}},_callee11);}));function loadLessons(_x9){return _loadLessons.apply(this,arguments);}return loadLessons;}(),addNewCourse:function(){var _addNewCourse=_asyncToGenerator(_regeneratorRuntime().mark(function _callee13(){var courseName,description;return _regeneratorRuntime().wrap(function _callee13$(_context13){while(1)switch(_context13.prev=_context13.next){case 0:courseName=document.getElementById('new-course-title').value;description=document.getElementById('new-course-description').value;if(courseName){_context13.next=5;break;}alert('Course name cannot be empty.');return _context13.abrupt(\"return\");case 5:_context13.next=7;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee12(){var courseData;return _regeneratorRuntime().wrap(function _callee12$(_context12){while(1)switch(_context12.prev=_context12.next){case 0:_context12.prev=0;courseData={courseName:courseName,description:description\n};\ncourseData.schoolId=1;\n_context12.next=5;return(0,_BLL.callApi)('create','Courses',courseData);case 5:console.log('Course added successfully.');document.getElementById('new-course-title').value='';document.getElementById('new-course-description').value='';BLL.loadCourses();BLL.clearLessonFields();_context12.next=16;break;case 12:_context12.prev=12;_context12.t0=_context12[\"catch\"](0);console.error('Error adding course:',_context12.t0);showFeedbackMessage('Error adding course.','danger');case 16:case\"end\":return _context12.stop();}},_callee12,null,[[0,12]]);})));case 7:case\"end\":return _context13.stop();}},_callee13);}));function addNewCourse(){return _addNewCourse.apply(this,arguments);}return addNewCourse;}(),editCourse:function(){var _editCourse=_asyncToGenerator(_regeneratorRuntime().mark(function _callee15(courseId){var course,updateButton,coursesSection;return _regeneratorRuntime().wrap(function _callee15$(_context15){while(1)switch(_context15.prev=_context15.next){case 0:_context15.prev=0;_context15.next=3;return(0,_BLL.callApi)('read','Courses',{where:\"courseId = \".concat(courseId)});case 3:course=_context15.sent;if(course){document.getElementById(\"new-course-title\").value=course[0].courseName;document.getElementById(\"new-course-description\").value=course[0].description;\nupdateButton=document.createElement('button');updateButton.textContent='Update Course';updateButton.addEventListener('click',_asyncToGenerator(_regeneratorRuntime().mark(function _callee14(){var updatedCourseData;return _regeneratorRuntime().wrap(function _callee14$(_context14){while(1)switch(_context14.prev=_context14.next){case 0:updatedCourseData={courseName:document.getElementById(\"new-course-title\").value,description:document.getElementById(\"new-course-description\").value\n};_context14.prev=1;_context14.next=4;return(0,_BLL.callApi)('update','Courses',_objectSpread({id:courseId},updatedCourseData),'PUT');case 4:console.log('Course updated successfully.');BLL.loadCourses();_context14.next=12;break;case 8:_context14.prev=8;_context14.t0=_context14[\"catch\"](1);console.error('Error updating course:',_context14.t0);showFeedbackMessage('Error updating course.','danger');case 12:case\"end\":return _context14.stop();}},_callee14,null,[[1,8]]);})));\ncoursesSection=document.getElementById('courses-list');if(coursesSection){coursesSection.appendChild(updateButton);}else{console.error('Error: courses-section element not found.');}}else{console.error(\"Error fetching course with ID \".concat(courseId));}_context15.next=11;break;case 7:_context15.prev=7;_context15.t0=_context15[\"catch\"](0);console.error('Error editing course:',_context15.t0);showFeedbackMessage('Error editing course.','danger');case 11:case\"end\":return _context15.stop();}},_callee15,null,[[0,7]]);}));function editCourse(_x11){return _editCourse.apply(this,arguments);}return editCourse;}(),deleteCourse:function(){var _deleteCourse=_asyncToGenerator(_regeneratorRuntime().mark(function _callee17(courseId){return _regeneratorRuntime().wrap(function _callee17$(_context17){while(1)switch(_context17.prev=_context17.next){case 0:if(!confirm('Are you sure you want to delete this course and all its content?')){_context17.next=3;break;}_context17.next=3;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee16(){return _regeneratorRuntime().wrap(function _callee16$(_context16){while(1)switch(_context16.prev=_context16.next){case 0:_context16.prev=0;_context16.next=3;return(0,_BLL.callApi)('delete','Courses',{where:\"courseId = \".concat(courseId)},'DELETE');case 3:console.log('Course deleted successfully.');BLL.clearLessonFields();BLL.loadCourses();_context16.next=12;break;case 8:_context16.prev=8;_context16.t0=_context16[\"catch\"](0);console.error('Error deleting course:',_context16.t0);showFeedbackMessage('Error deleting course.','danger');case 12:case\"end\":return _context16.stop();}},_callee16,null,[[0,8]]);})));case 3:case\"end\":return _context17.stop();}},_callee17);}));function deleteCourse(_x12){return _deleteCourse.apply(this,arguments);}return deleteCourse;}(),addNewLesson:function(){var _addNewLesson=_asyncToGenerator(_regeneratorRuntime().mark(function _callee18(){var lessonName,courseId,lessonData,addLessonForm;return _regeneratorRuntime().wrap(function _callee18$(_context18){while(1)switch(_context18.prev=_context18.next){case 0:lessonName=document.getElementById('new-lesson-name').value;courseId=parseInt(document.getElementById('course-id').value,10);if(lessonName){_context18.next=5;break;}alert('Lesson name cannot be empty.');return _context18.abrupt(\"return\");case 5:if(courseId){_context18.next=8;break;}alert('Course ID cannot be empty.');return _context18.abrupt(\"return\");case 8:_context18.prev=8;lessonData={lessonName:lessonName,courseId:courseId\n};_context18.next=12;return(0,_BLL.callApi)('create','Lessons',lessonData);case 12:console.log('Lesson added successfully.');document.getElementById('new-lesson-name').value='';addLessonForm=document.getElementById('add-lesson-form');if(addLessonForm){addLessonForm.style.display='none';}BLL.clearLessonFields();BLL.loadLessons(courseId);_context18.next=24;break;case 20:_context18.prev=20;_context18.t0=_context18[\"catch\"](8);console.error('Error adding lesson:',_context18.t0);showFeedbackMessage('Error adding lesson.','danger');case 24:case\"end\":return _context18.stop();}},_callee18,null,[[8,20]]);}));function addNewLesson(){return _addNewLesson.apply(this,arguments);}return addNewLesson;}(),editLesson:function(){var _editLesson=_asyncToGenerator(_regeneratorRuntime().mark(function _callee19(lessonId){var lesson;return _regeneratorRuntime().wrap(function _callee19$(_context19){while(1)switch(_context19.prev=_context19.next){case 0:_context19.prev=0;_context19.next=3;return(0,_BLL.callApi)('read','Lessons',{id:lessonId});case 3:lesson=_context19.sent;if(lesson){BLL.openEditLessonModal(lessonId);\n}else{console.error(\"Error fetching lesson with ID \".concat(lessonId));}_context19.next=11;break;case 7:_context19.prev=7;_context19.t0=_context19[\"catch\"](0);console.error('Error editing lesson:',_context19.t0);showFeedbackMessage('Error loading courses','danger');case 11:case\"end\":return _context19.stop();}},_callee19,null,[[0,7]]);}));function editLesson(_x13){return _editLesson.apply(this,arguments);}return editLesson;}(),displayLesson:function displayLesson(lesson){var lessonsList=document.getElementById('lessons-list');if(!lessonsList){console.error('Element with id \"lessons-list\" not found.');return;}(0,_SharedScript.enableDisableControl)(\"choose-course-first\",\"hide\");(0,_SharedScript.enableDisableControl)(\"lesson-management-section\",\"show\");var lessonItem=document.createElement('li');lessonItem.className='lesson-item';\nlessonItem.dataset.lessonId=lesson.lessonId;lessonItem.imageUrl=\"../images/lesson.png\";var imageUrl=lessonItem.imageUrl||'https://dummyimage.com/600x400/000/fff';lessonItem.innerHTML=\"\\n <div class=\\\"lesson-name-button-wrapper\\\">\\n <div class=\\\"lesson-image-title-wrapper\\\">\\n <div class=\\\"lesson-image-wrapper\\\">\\n <img src=\\\"\".concat(imageUrl,\"\\\" alt=\\\"\").concat(lesson.lessonName,\" Image\\\"> \\n </div>\\n <div class=\\\"lesson-name\\\">\\n <a href=\\\"#\\\" onclick=\\\"BLL.showLessonDetails(\").concat(lesson.lessonId,\")\\\">\").concat(lesson.lessonName||'Untitled Lesson',\"</a> \\n </div>\\n </div>\\n <div class=\\\"edit-delete-button-wrapper\\\">\\n <button onclick=\\\"BLL.editLesson(\").concat(lesson.lessonId,\")\\\" class=\\\"edit-button\\\">Edit</button>\\n <button onclick=\\\"BLL.deleteLesson(\").concat(lesson.lessonId,\")\\\" class=\\\"delete-button\\\">Delete</button> \\n </div>\\n </div>\\n\\n \");lessonsList.appendChild(lessonItem);},deleteLesson:function(){var _deleteLesson=_asyncToGenerator(_regeneratorRuntime().mark(function _callee21(lessonId){return _regeneratorRuntime().wrap(function _callee21$(_context21){while(1)switch(_context21.prev=_context21.next){case 0:if(!confirm('Are you sure you want to delete this lesson and all its content?')){_context21.next=3;break;}_context21.next=3;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee20(){var lessonResponse,lesson,courseId,deleteResponse;return _regeneratorRuntime().wrap(function _callee20$(_context20){while(1)switch(_context20.prev=_context20.next){case 0:_context20.prev=0;_context20.next=3;return(0,_BLL.callApi)('read','Lessons',{id:lessonId});case 3:lessonResponse=_context20.sent;lesson=Array.isArray(lessonResponse)?lessonResponse[0]:lessonResponse;if(lesson){_context20.next=8;break;}console.error(\"Lesson with ID \".concat(lessonId,\" not found.\"));return _context20.abrupt(\"return\");case 8:courseId=lesson.courseId;\n_context20.next=11;return(0,_BLL.callApi)('delete','Lessons',{where:\"lessonId = \".concat(lessonId)},'DELETE');case 11:deleteResponse=_context20.sent;if(deleteResponse){console.log('Lesson deleted successfully.');BLL.clearLessonFields();BLL.loadLessons(courseId);\n}else{console.error(\"Failed to delete lesson with ID \".concat(lessonId));}_context20.next=19;break;case 15:_context20.prev=15;_context20.t0=_context20[\"catch\"](0);console.error('Error deleting lesson:',_context20.t0);showFeedbackMessage('Error loading courses','danger');case 19:case\"end\":return _context20.stop();}},_callee20,null,[[0,15]]);})));case 3:case\"end\":return _context21.stop();}},_callee21);}));function deleteLesson(_x14){return _deleteLesson.apply(this,arguments);}return deleteLesson;}(),showLessonsSection:function showLessonsSection(){var lessonsSection=document.getElementById('lessons-section');var lessonDetailsSection=document.getElementById('lesson-details-section');if(!lessonsSection||!lessonDetailsSection){console.error('Lessons or Lesson Details section not found.');return;}lessonsSection.style.display='block';lessonDetailsSection.style.display='none';},showCurrentLessonDetails:function showCurrentLessonDetails(){var lessonIdInput=document.getElementById('lesson-id');if(lessonIdInput&&lessonIdInput.value&&lessonIdInput.value>0){(0,_SharedScript.enableDisableControl)(\"choose-lesson-first\",\"hide\");BLL.showLessonDetails(lessonIdInput.value);}else if(lessonIdInput&&lessonIdInput.value&&lessonIdInput.value===0){(0,_SharedScript.enableDisableControl)(\"choose-lesson-first\",\"show\");(0,_SharedScript.enableDisableControl)(\"content-management-section\",\"hide\");}else if(!lessonIdInput){console.error('Error: Hidden input field for lesson ID not found.');}},showLessonDetails:function(){var _showLessonDetails=_asyncToGenerator(_regeneratorRuntime().mark(function _callee23(lessonId){return _regeneratorRuntime().wrap(function _callee23$(_context23){while(1)switch(_context23.prev=_context23.next){case 0:console.log(\"showLessonDetails lessonId\",lessonId);_context23.next=3;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee22(){var savedContentTab,noContent,savedContentDiv,lessonIdInput,saveLessonContextButton,saveButtons;return _regeneratorRuntime().wrap(function _callee22$(_context22){while(1)switch(_context22.prev=_context22.next){case 0:\nsavedContentTab=document.getElementById('saved-content-tab');noContent=document.getElementById('no-content');if(!(savedContentTab&&!savedContentTab.classList.contains('active'))){_context22.next=6;break;}savedContentTab.click();_context22.next=9;break;case 6:if(savedContentTab){_context22.next=9;break;}console.error('Error: \"Saved Content\" tab not found.');return _context22.abrupt(\"return\");case 9:\nsavedContentDiv=document.getElementById('content-management-section');if(savedContentDiv){lessonIdInput=document.getElementById('lesson-id');if(lessonIdInput){lessonIdInput.value=lessonId;}else{console.error('Error: Hidden input field for lesson ID not found.');}if(lessonId>0){\nsaveLessonContextButton=document.getElementById('save-lesson-context');if(saveLessonContextButton){saveLessonContextButton.disabled=false;}(0,_SharedScript.enableDisableControl)(\"choose-course-first\",\"hide\");}console.log(\"showLessonDetails before the read\",lessonId);\nPromise.all([(0,_BLL.callApi)('read','Contents',{where:\"lessonId = \".concat(lessonId)}),(0,_BLL.callApi)('read','LessonContexts',{where:\"lessonId = \".concat(lessonId)})]).then(function(_ref12){var _ref13=_slicedToArray(_ref12,2),content=_ref13[0],lessonContext=_ref13[1];if(content&&content.length>0){var roleName=sessionStorage.getItem(\"RoleName\");console.log(\"role-Name\",roleName);savedContentDiv.innerHTML=\"\";\n(0,_SharedScript.enableDisableControl)(\"choose-lesson-first\",\"hide\");(0,_SharedScript.enableDisableControl)(\"content-management-section\",\"show\");\ncreateContentTabs(content,savedContentDiv);noContent.style.display='none';}else{\n(0,_SharedScript.enableDisableControl)(\"choose-lesson-first\",\"hide\");noContent.style.display='block';}\nif(lessonContext&&lessonContext.length>0){var contextData=lessonContext[0];\ndocument.getElementById('content-title').value=contextData.title||'';document.getElementById('content-text').value=contextData.content||'';document.getElementById('content-url').value=contextData.urlAddress||'';document.getElementById('subjectArea').value=contextData.subjectArea||'';document.getElementById('educational-goals').value=contextData.educationalGoals||'';\n}})[\"catch\"](function(error){console.error('Error fetching content:',error);savedContentDiv.innerHTML=\"Error loading saved content.\";showFeedbackMessage('Error loading saved content.','danger');});}else{console.error('Error: \"saved-content\" div not found.');}\nsaveButtons=document.querySelectorAll('.save-chatgpt-response');saveButtons.forEach(function(button){button.disabled=false;});case 13:case\"end\":return _context22.stop();}},_callee22);})));case 3:console.log(\"showLessonDetails end\",\"end here\");case 4:case\"end\":return _context23.stop();}},_callee23);}));function showLessonDetails(_x15){return _showLessonDetails.apply(this,arguments);}return showLessonDetails;}(),\nsaveLessonContext:function(){var _saveLessonContext=_asyncToGenerator(_regeneratorRuntime().mark(function _callee25(){return _regeneratorRuntime().wrap(function _callee25$(_context25){while(1)switch(_context25.prev=_context25.next){case 0:_context25.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee24(){var lessonIdInput,lessonId,contextData,lessonContext,existingContext,contextId;return _regeneratorRuntime().wrap(function _callee24$(_context24){while(1)switch(_context24.prev=_context24.next){case 0:\nlessonIdInput=document.getElementById('lesson-id');if(!(!lessonIdInput||!lessonIdInput.value)){_context24.next=4;break;}alert('Please select a lesson first.');return _context24.abrupt(\"return\");case 4:lessonId=parseInt(lessonIdInput.value,10);_context24.prev=5;contextData=getInputValues();\nlessonContext={lessonId:lessonId,title:contextData.title,content:contextData.contentText,urlAddress:contextData.urlAddress,subjectArea:contextData.subjectArea,educationalGoals:contextData.educationalGoals,otherInstructions:contextData.additionalInstructions};\n_context24.next=10;return(0,_BLL.callApi)('read','LessonContexts',{where:\"lessonId = \".concat(lessonId)});case 10:existingContext=_context24.sent;if(!(existingContext&&existingContext.length>0)){_context24.next=18;break;}\ncontextId=existingContext[0].lessonContextId;_context24.next=15;return(0,_BLL.callApi)('update','LessonContexts',_objectSpread({id:contextId},lessonContext),'PUT');case 15:console.log('Lesson context updated successfully.');_context24.next=21;break;case 18:_context24.next=20;return(0,_BLL.callApi)('create','LessonContexts',lessonContext);case 20:console.log('Lesson context created successfully.');case 21:_context24.next=27;break;case 23:_context24.prev=23;_context24.t0=_context24[\"catch\"](5);console.error('Error saving lesson context:',_context24.t0);showFeedbackMessage('Error saving lesson context','danger');case 27:case\"end\":return _context24.stop();}},_callee24,null,[[5,23]]);})));case 2:case\"end\":return _context25.stop();}},_callee25);}));function saveLessonContext(){return _saveLessonContext.apply(this,arguments);}return saveLessonContext;}(),saveChatGPTResponse:function(){var _saveChatGPTResponse=_asyncToGenerator(_regeneratorRuntime().mark(function _callee26(chatgptResponse){var lessonIdInput,lessonId,classId,content;return _regeneratorRuntime().wrap(function _callee26$(_context26){while(1)switch(_context26.prev=_context26.next){case 0:console.log(\"saveChatGPTResponse\",chatgptResponse);lessonIdInput=document.getElementById('lesson-id');console.log(\"lessonId\",lessonIdInput.value);if(!(!lessonIdInput||!lessonIdInput.value)){_context26.next=6;break;}alert('Please select a lesson first.');return _context26.abrupt(\"return\");case 6:lessonId=parseInt(lessonIdInput.value,10);\nclassId=null;;content={lessonId:lessonId,contentOrder:0,contentData:JSON.stringify(chatgptResponse)};console.log(\"content\",content);\nif(classId!==null){content.classId=classId;}_context26.next=14;return(0,_BLL.callApi)('create','Contents',content).then(function(response){if(response.ok){console.log('ChatGPT response saved to lesson successfully.');\nBLL.showLessonDetails(lessonId);}else{console.error('Error saving ChatGPT response to lesson.');}})[\"catch\"](function(error){console.error('Error saving ChatGPT response to lesson:',error);showFeedbackMessage('Error saving ChatGPT response to lesson','danger');});case 14:case\"end\":return _context26.stop();}},_callee26);}));function saveChatGPTResponse(_x16){return _saveChatGPTResponse.apply(this,arguments);}return saveChatGPTResponse;}(),deleteContent:function(){var _deleteContent=_asyncToGenerator(_regeneratorRuntime().mark(function _callee27(contentId){var lessonIdInput;return _regeneratorRuntime().wrap(function _callee27$(_context27){while(1)switch(_context27.prev=_context27.next){case 0:if(!confirm('Are you sure you want to delete this content?')){_context27.next=13;break;}_context27.prev=1;_context27.next=4;return(0,_BLL.callApi)('delete','Contents',{where:\"contentId = \".concat(contentId)},'DELETE');case 4:console.log('Content deleted successfully.');\nlessonIdInput=document.getElementById('lesson-id');if(lessonIdInput&&lessonIdInput.value){BLL.showLessonDetails(parseInt(lessonIdInput.value,10));}_context27.next=13;break;case 9:_context27.prev=9;_context27.t0=_context27[\"catch\"](1);console.error('Error deleting content:',_context27.t0);showFeedbackMessage('Error deleting content','danger');case 13:case\"end\":return _context27.stop();}},_callee27,null,[[1,9]]);}));function deleteContent(_x17){return _deleteContent.apply(this,arguments);}return deleteContent;}(),loadTeacherPreferences:function(){var _loadTeacherPreferences=_asyncToGenerator(_regeneratorRuntime().mark(function _callee28(){var userId,preferences,activityPrefs,activityCheckboxes,eduStrategyPrefs,eduStrategyCheckboxes,assessmentPrefs,assessmentCheckboxes;return _regeneratorRuntime().wrap(function _callee28$(_context28){while(1)switch(_context28.prev=_context28.next){case 0:_context28.prev=0;userId=sessionStorage.getItem('UserId');if(userId){_context28.next=5;break;}console.error('User is not authenticated');return _context28.abrupt(\"return\");case 5:_context28.next=7;return(0,_BLL.callApi)('read','TeacherPreferences',{where:\"userId = \".concat(userId)});case 7:preferences=_context28.sent;if(preferences&&preferences.length>0){\ndocument.getElementById('techComfort').value=preferences[0].technologyComfortLevel||'';document.getElementById('timeConstraints').value=preferences[0].typicalLessonDuration||45;document.getElementById('resources').value=preferences[0].accessToResources||'';document.getElementById('includeAdditionalInfo').value=preferences[0].includeAdditionalInfo?\"1\":\"0\";\nactivityPrefs=preferences[0].activitiesPreferences?preferences[0].activitiesPreferences.split(', '):[];activityCheckboxes=document.querySelectorAll('.activity-preferences-multiselect input[type=\"checkbox\"]');activityCheckboxes.forEach(function(checkbox){if(activityPrefs.includes(checkbox.value)){checkbox.checked=true;}});\neduStrategyPrefs=preferences[0].educationalStrategiesPreferences?preferences[0].educationalStrategiesPreferences.split(', '):[];eduStrategyCheckboxes=document.querySelectorAll('.educational-strategies-multiselect input[type=\"checkbox\"]');eduStrategyCheckboxes.forEach(function(checkbox){if(eduStrategyPrefs.includes(checkbox.value)){checkbox.checked=true;}});\nassessmentPrefs=preferences[0].assessmentPreferences?preferences[0].assessmentPreferences.split(', '):[];assessmentCheckboxes=document.querySelectorAll('.assessment-preferences-multiselect input[type=\"checkbox\"]');assessmentCheckboxes.forEach(function(checkbox){if(assessmentPrefs.includes(checkbox.value)){checkbox.checked=true;}});}_context28.next=15;break;case 11:_context28.prev=11;_context28.t0=_context28[\"catch\"](0);console.error('Error loading teacher preferences:',_context28.t0);showFeedbackMessage('Error loading teacher preferences','danger');case 15:case\"end\":return _context28.stop();}},_callee28,null,[[0,11]]);}));function loadTeacherPreferences(){return _loadTeacherPreferences.apply(this,arguments);}return loadTeacherPreferences;}(),saveTeacherPreferences:function(){var _saveTeacherPreferences=_asyncToGenerator(_regeneratorRuntime().mark(function _callee30(){return _regeneratorRuntime().wrap(function _callee30$(_context30){while(1)switch(_context30.prev=_context30.next){case 0:_context30.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee29(){var userId,preferences,preferencesData,existingPrefs,prefId;return _regeneratorRuntime().wrap(function _callee29$(_context29){while(1)switch(_context29.prev=_context29.next){case 0:_context29.prev=0;userId=sessionStorage.getItem('UserId');if(userId){_context29.next=5;break;}console.error('User is not authenticated');return _context29.abrupt(\"return\");case 5:preferences=getInputValues();preferencesData={userId:userId,technologyComfortLevel:preferences.techComfort,typicalLessonDuration:preferences.timeConstraints,accessToResources:preferences.resources,activitiesPreferences:preferences.activityPreferences,educationalStrategiesPreferences:preferences.educationalStrategies,assessmentPreferences:preferences.assessmentPreferences,includeAdditionalInfo:preferences.includeAdditionalInfo===\"1\"\n};\n_context29.next=9;return(0,_BLL.callApi)('read','TeacherPreferences',{where:\"userId = \".concat(userId)});case 9:existingPrefs=_context29.sent;if(!(existingPrefs&&existingPrefs.length>0)){_context29.next=17;break;}\nprefId=existingPrefs[0].teacherPreferenceId;_context29.next=14;return(0,_BLL.callApi)('update','TeacherPreferences',_objectSpread({id:prefId},preferencesData),'PUT');case 14:console.log('Teacher preferences updated successfully.');_context29.next=20;break;case 17:_context29.next=19;return(0,_BLL.callApi)('create','TeacherPreferences',preferencesData);case 19:console.log('Teacher preferences created successfully.');case 20:_context29.next=26;break;case 22:_context29.prev=22;_context29.t0=_context29[\"catch\"](0);console.error('Error saving teacher preferences:',_context29.t0);showFeedbackMessage('Error saving teacher preferences','danger');case 26:case\"end\":return _context29.stop();}},_callee29,null,[[0,22]]);})));case 2:case\"end\":return _context30.stop();}},_callee30);}));function saveTeacherPreferences(){return _saveTeacherPreferences.apply(this,arguments);}return saveTeacherPreferences;}(),disableLessonContextSaveButton:function disableLessonContextSaveButton(){var saveLessonContextButton=document.getElementById('save-lesson-context');if(saveLessonContextButton){saveLessonContextButton.disabled=true;}},loadClasses:function(){var _loadClasses=_asyncToGenerator(_regeneratorRuntime().mark(function _callee32(){return _regeneratorRuntime().wrap(function _callee32$(_context32){while(1)switch(_context32.prev=_context32.next){case 0:_context32.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee31(){var schoolId,classes,classSelect,defaultOption;return _regeneratorRuntime().wrap(function _callee31$(_context31){while(1)switch(_context31.prev=_context31.next){case 0:_context31.prev=0;schoolId=sessionStorage.getItem('SchoolId');if(schoolId){_context31.next=5;break;}console.error('School ID not found.');return _context31.abrupt(\"return\");case 5:_context31.next=7;return(0,_BLL.callApi)('read','Classes',{where:\"schoolId = \".concat(schoolId)});case 7:classes=_context31.sent;classSelect=document.getElementById('class-select');if(classSelect){classSelect.innerHTML='';\ndefaultOption=document.createElement('option');defaultOption.value='';defaultOption.text='Select Class';defaultOption.disabled=true;defaultOption.selected=true;classSelect.appendChild(defaultOption);classes.forEach(function(cls){var option=document.createElement('option');option.value=cls.classId;option.text=cls.className;classSelect.appendChild(option);});\nBLL.updateClassButtonsState(false);BLL.clearClassSettings();}else{console.error('Error: \"class-select\" element not found.');}_context31.next=16;break;case 12:_context31.prev=12;_context31.t0=_context31[\"catch\"](0);console.error('Error loading classes:',_context31.t0);showFeedbackMessage('Error loading classes','danger');case 16:case\"end\":return _context31.stop();}},_callee31,null,[[0,12]]);})));case 2:case\"end\":return _context32.stop();}},_callee32);}));function loadClasses(){return _loadClasses.apply(this,arguments);}return loadClasses;}(),clearClassSettings:function clearClassSettings(){\ndocument.getElementById('age').value=14;\ndocument.getElementById('gradeLevel').value='';document.getElementById('language').value='English';document.getElementById('country').value='IE';document.getElementById('learningPace').value='';document.getElementById('attentionSpan').value='';document.getElementById('motivation').value='';\nvar allCheckboxes=document.querySelectorAll('.preferences-fieldset input[type=\"checkbox\"]');allCheckboxes.forEach(function(checkbox){checkbox.checked=false;});},loadClassSettings:function(){var _loadClassSettings=_asyncToGenerator(_regeneratorRuntime().mark(function _callee33(classId){var settings,classSettings,learningStyles,learningStyleCheckboxes,learningDifficulties,learningDifficultyCheckboxes,otherCharacteristics,otherCharacteristicsCheckboxes,_learningStyleCheckboxes,_learningDifficultyCheckboxes,_otherCharacteristicsCheckboxes;return _regeneratorRuntime().wrap(function _callee33$(_context33){while(1)switch(_context33.prev=_context33.next){case 0:_context33.prev=0;_context33.next=3;return(0,_BLL.callApi)('read','ClassSettings',{where:\"classId = \".concat(classId)});case 3:settings=_context33.sent;if(settings&&settings.length>0){classSettings=settings[0];document.getElementById('age').value=classSettings.studentAge||14;document.getElementById('gradeLevel').value=classSettings.gradeLevel||'';document.getElementById('language').value=classSettings.outputLanguage||'English';document.getElementById('country').value=classSettings.country||'IE';document.getElementById('learningPace').value=classSettings.learningPace||'';document.getElementById('attentionSpan').value=classSettings.attentionSpan||'';document.getElementById('motivation').value=classSettings.overallClassMotivation||'';\nlearningStyles=classSettings.learningStyles?classSettings.learningStyles.split(', '):[];learningStyleCheckboxes=document.querySelectorAll('.learning-styles-multiselect input[type=\"checkbox\"]');learningStyleCheckboxes.forEach(function(checkbox){checkbox.checked=learningStyles.includes(checkbox.value);});\nlearningDifficulties=classSettings.learningDifficulties?classSettings.learningDifficulties.split(', '):[];learningDifficultyCheckboxes=document.querySelectorAll('.learning-difficulties-multiselect input[type=\"checkbox\"]');learningDifficultyCheckboxes.forEach(function(checkbox){checkbox.checked=learningDifficulties.includes(checkbox.value);});\notherCharacteristics=classSettings.otherCharacteristics?classSettings.otherCharacteristics.split(', '):[];otherCharacteristicsCheckboxes=document.querySelectorAll('.other-characteristics-multiselect input[type=\"checkbox\"]');otherCharacteristicsCheckboxes.forEach(function(checkbox){checkbox.checked=otherCharacteristics.includes(checkbox.value);});}else{\ndocument.getElementById('age').value=14;\ndocument.getElementById('gradeLevel').value='';\ndocument.getElementById('language').value='English';\ndocument.getElementById('country').value='IE';\ndocument.getElementById('learningPace').value='';\ndocument.getElementById('attentionSpan').value='';\ndocument.getElementById('motivation').value='';\n_learningStyleCheckboxes=document.querySelectorAll('.learning-styles-multiselect input[type=\"checkbox\"]');_learningStyleCheckboxes.forEach(function(checkbox){checkbox.checked=false;});\n_learningDifficultyCheckboxes=document.querySelectorAll('.learning-difficulties-multiselect input[type=\"checkbox\"]');_learningDifficultyCheckboxes.forEach(function(checkbox){checkbox.checked=false;});\n_otherCharacteristicsCheckboxes=document.querySelectorAll('.other-characteristics-multiselect input[type=\"checkbox\"]');_otherCharacteristicsCheckboxes.forEach(function(checkbox){checkbox.checked=false;});}_context33.next=11;break;case 7:_context33.prev=7;_context33.t0=_context33[\"catch\"](0);console.error('Error loading class settings:',_context33.t0);showFeedbackMessage('Error loading class settings','danger');case 11:case\"end\":return _context33.stop();}},_callee33,null,[[0,7]]);}));function loadClassSettings(_x18){return _loadClassSettings.apply(this,arguments);}return loadClassSettings;}(),saveClassSettings:function(){var _saveClassSettings=_asyncToGenerator(_regeneratorRuntime().mark(function _callee35(){return _regeneratorRuntime().wrap(function _callee35$(_context35){while(1)switch(_context35.prev=_context35.next){case 0:_context35.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee34(){var classId,settingsData,existingSettings,settingId;return _regeneratorRuntime().wrap(function _callee34$(_context34){while(1)switch(_context34.prev=_context34.next){case 0:_context34.prev=0;classId=document.getElementById('class-select').value;if(classId){_context34.next=5;break;}alert('Please select a class.');return _context34.abrupt(\"return\");case 5:\nsettingsData={classId:classId,studentAge:document.getElementById('age').value||14,gradeLevel:document.getElementById('gradeLevel').value||'',outputLanguage:document.getElementById('language').value||'English',country:document.getElementById('country').value||'IE',learningPace:document.getElementById('learningPace').value||'',attentionSpan:document.getElementById('attentionSpan').value||'',overallClassMotivation:document.getElementById('motivation').value||'',learningStyles:Array.from(document.querySelectorAll('.learning-styles-multiselect input[type=\"checkbox\"]:checked')).map(function(checkbox){return checkbox.value;}).join(', '),learningDifficulties:Array.from(document.querySelectorAll('.learning-difficulties-multiselect input[type=\"checkbox\"]:checked')).map(function(checkbox){return checkbox.value;}).join(', '),otherCharacteristics:Array.from(document.querySelectorAll('.other-characteristics-multiselect input[type=\"checkbox\"]:checked')).map(function(checkbox){return checkbox.value;}).join(', ')};\n_context34.next=8;return(0,_BLL.callApi)('read','ClassSettings',{where:\"classId = \".concat(classId)});case 8:existingSettings=_context34.sent;if(!(existingSettings&&existingSettings.length>0)){_context34.next=16;break;}\nsettingId=existingSettings[0].classSettingId;\n_context34.next=13;return(0,_BLL.callApi)('update','ClassSettings',_objectSpread({id:settingId},settingsData),'PUT');case 13:console.log('Class settings updated successfully.');_context34.next=19;break;case 16:_context34.next=18;return(0,_BLL.callApi)('create','ClassSettings',settingsData);case 18:console.log('Class settings created successfully.');case 19:alert('Class settings saved successfully.');_context34.next=26;break;case 22:_context34.prev=22;_context34.t0=_context34[\"catch\"](0);console.error('Error saving class settings:',_context34.t0);showFeedbackMessage('Error saving class settings','danger');case 26:case\"end\":return _context34.stop();}},_callee34,null,[[0,22]]);})));case 2:case\"end\":return _context35.stop();}},_callee35);}));function saveClassSettings(){return _saveClassSettings.apply(this,arguments);}return saveClassSettings;}(),openAddClassModal:function openAddClassModal(){var modal=document.getElementById('class-modal');if(!modal){console.error('Element with id \"class-modal\" not found.');return;}\nvar classNameInput=document.getElementById('modal-class-name');var classDescriptionInput=document.getElementById('modal-class-description');classNameInput.value='';classDescriptionInput.value='';modal.dataset.classId='';\nmodal.style.display='block';},openEditClassModal:function openEditClassModal(classId){var modal=document.getElementById('class-modal');if(!modal){console.error('Element with id \"class-modal\" not found.');return;}\n(0,_BLL.callApi)('read','Classes',{where:\"classId = \".concat(classId)}).then(function(cls){if(cls&&cls.length>0){document.getElementById('modal-class-name').value=cls[0].className||'';document.getElementById('modal-class-description').value=cls[0].settings||'';modal.dataset.classId=classId;\n}else{console.error(\"Error fetching class with ID \".concat(classId));}})[\"catch\"](function(error){console.error('Error loading class details:',error);showFeedbackMessage('Error loading class details','danger');});\nmodal.style.display='block';},saveClassFromModal:function(){var _saveClassFromModal=_asyncToGenerator(_regeneratorRuntime().mark(function _callee36(){var modal,className,settings,classId,schoolId,classData;return _regeneratorRuntime().wrap(function _callee36$(_context36){while(1)switch(_context36.prev=_context36.next){case 0:modal=document.getElementById('class-modal');if(modal){_context36.next=4;break;}console.error('Element with id \"class-modal\" not found.');return _context36.abrupt(\"return\");case 4:className=document.getElementById('modal-class-name').value.trim();settings=document.getElementById('modal-class-description').value.trim();classId=modal.dataset.classId?parseInt(modal.dataset.classId,10):null;schoolId=sessionStorage.getItem('SchoolId');\nif(className){_context36.next=11;break;}alert('Class name cannot be empty.');return _context36.abrupt(\"return\");case 11:classData={className:className,settings:settings,schoolId:schoolId};_context36.prev=12;if(!classId){_context36.next=19;break;}_context36.next=16;return(0,_BLL.callApi)('update','Classes',_objectSpread({id:classId},classData),'PUT');case 16:console.log('Class updated successfully.');_context36.next=22;break;case 19:_context36.next=21;return(0,_BLL.callApi)('create','Classes',classData);case 21:console.log('Class created successfully.');case 22:modal.style.display='none';BLL.loadClasses();\n_context36.next=30;break;case 26:_context36.prev=26;_context36.t0=_context36[\"catch\"](12);console.error('Error saving class:',_context36.t0);showFeedbackMessage('Error saving class','danger');case 30:case\"end\":return _context36.stop();}},_callee36,null,[[12,26]]);}));function saveClassFromModal(){return _saveClassFromModal.apply(this,arguments);}return saveClassFromModal;}(),deleteClass:function(){var _deleteClass=_asyncToGenerator(_regeneratorRuntime().mark(function _callee37(classId){var confirmDelete,classSelect;return _regeneratorRuntime().wrap(function _callee37$(_context37){while(1)switch(_context37.prev=_context37.next){case 0:confirmDelete=confirm('Are you sure you want to delete this class? This action cannot be undone.');if(confirmDelete){_context37.next=3;break;}return _context37.abrupt(\"return\");case 3:_context37.prev=3;_context37.next=6;return(0,_BLL.callApi)('delete','Classes',{where:\"classId = \".concat(classId)});case 6:console.log('Class deleted successfully.');\n_context37.next=9;return BLL.loadClasses();case 9:\nclassSelect=document.getElementById('class-select');if(classSelect){classSelect.value='';}BLL.updateClassButtonsState(false);BLL.clearClassSettings();_context37.next=19;break;case 15:_context37.prev=15;_context37.t0=_context37[\"catch\"](3);console.error('Error deleting class:',_context37.t0);showFeedbackMessage('Error deleting class','danger');case 19:case\"end\":return _context37.stop();}},_callee37,null,[[3,15]]);}));function deleteClass(_x19){return _deleteClass.apply(this,arguments);}return deleteClass;}(),updateClassButtonsState:function updateClassButtonsState(isEnabled){var editButton=document.querySelector('#edit-class-button');var deleteButton=document.querySelector('#delete-class-button');if(editButton)editButton.disabled=!isEnabled;if(deleteButton)deleteButton.disabled=!isEnabled;},recordExists:function(){var _recordExists=_asyncToGenerator(_regeneratorRuntime().mark(function _callee38(tableName,combinedCriteria){var records;return _regeneratorRuntime().wrap(function _callee38$(_context38){while(1)switch(_context38.prev=_context38.next){case 0:_context38.prev=0;_context38.next=3;return(0,_BLL.callApi)('read',tableName,{where:combinedCriteria});case 3:records=_context38.sent;return _context38.abrupt(\"return\",records||[]);case 7:_context38.prev=7;_context38.t0=_context38[\"catch\"](0);console.error(\"Error checking existence in table \".concat(tableName,\" with criteria \").concat(combinedCriteria,\":\"),_context38.t0);throw new Error('Error checking record existence.');case 11:case\"end\":return _context38.stop();}},_callee38,null,[[0,7]]);}));function recordExists(_x20,_x21){return _recordExists.apply(this,arguments);}return recordExists;}(),addUser:function(){var _addUser=_asyncToGenerator(_regeneratorRuntime().mark(function _callee39(userData){var emailCriteria,emailRecords,usernameCriteria,usernameRecords,_modal;return _regeneratorRuntime().wrap(function _callee39$(_context39){while(1)switch(_context39.prev=_context39.next){case 0:_context39.prev=0;\nemailCriteria=\"email = '\".concat(userData.email,\"'\");_context39.next=4;return BLL.recordExists('Users',emailCriteria);case 4:emailRecords=_context39.sent;if(!(emailRecords.length>0)){_context39.next=8;break;}alert('The email address is already in use. Please use a different email.');return _context39.abrupt(\"return\");case 8:\nusernameCriteria=\"username = '\".concat(userData.username,\"'\");_context39.next=11;return BLL.recordExists('Users',usernameCriteria);case 11:usernameRecords=_context39.sent;if(!(usernameRecords.length>0)){_context39.next=15;break;}alert('The username is already in use. Please use a different username.');return _context39.abrupt(\"return\");case 15:_context39.next=17;return(0,_BLL.callApi)('create','Users',userData);case 17:console.log('User added successfully.');BLL.loadUsers();\n_modal=document.getElementById('user-modal');_modal.style.display='none';\n_context39.next=27;break;case 23:_context39.prev=23;_context39.t0=_context39[\"catch\"](0);console.error('Error adding user:',_context39.t0);showFeedbackMessage('Error adding user','danger');case 27:case\"end\":return _context39.stop();}},_callee39,null,[[0,23]]);}));function addUser(_x22){return _addUser.apply(this,arguments);}return addUser;}(),editUser:function(){var _editUser=_asyncToGenerator(_regeneratorRuntime().mark(function _callee40(userId,updatedData){var emailCriteria,emailRecords,usernameCriteria,usernameRecords,_modal2;return _regeneratorRuntime().wrap(function _callee40$(_context40){while(1)switch(_context40.prev=_context40.next){case 0:_context40.prev=0;\nemailCriteria=\"email = '\".concat(updatedData.email,\"' AND userId != \").concat(userId);_context40.next=4;return BLL.recordExists('Users',emailCriteria);case 4:emailRecords=_context40.sent;if(!(emailRecords.length>0)){_context40.next=8;break;}alert('The email address is already in use by another user. Please use a different email.');return _context40.abrupt(\"return\");case 8:\nusernameCriteria=\"username = '\".concat(updatedData.username,\"' AND userId != \").concat(userId);_context40.next=11;return BLL.recordExists('Users',usernameCriteria);case 11:usernameRecords=_context40.sent;if(!(usernameRecords.length>0)){_context40.next=15;break;}alert('The username is already in use by another user. Please use a different username.');return _context40.abrupt(\"return\");case 15:_context40.next=17;return(0,_BLL.callApi)('update','Users',_objectSpread({id:userId},updatedData),'PUT');case 17:console.log('User updated successfully.');BLL.loadUsers();\n_modal2=document.getElementById('user-modal');_modal2.style.display='none';\n_context40.next=27;break;case 23:_context40.prev=23;_context40.t0=_context40[\"catch\"](0);console.error('Error editing user:',_context40.t0);showFeedbackMessage('Error editing user','danger');case 27:case\"end\":return _context40.stop();}},_callee40,null,[[0,23]]);}));function editUser(_x23,_x24){return _editUser.apply(this,arguments);}return editUser;}(),loadUsers:function(){var _loadUsers=_asyncToGenerator(_regeneratorRuntime().mark(function _callee42(){return _regeneratorRuntime().wrap(function _callee42$(_context42){while(1)switch(_context42.prev=_context42.next){case 0:_context42.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee41(){var schoolId,users,usersList;return _regeneratorRuntime().wrap(function _callee41$(_context41){while(1)switch(_context41.prev=_context41.next){case 0:_context41.prev=0;schoolId=sessionStorage.getItem('SchoolId');if(schoolId){_context41.next=5;break;}console.error('School ID not found.');return _context41.abrupt(\"return\");case 5:_context41.next=7;return(0,_BLL.callApi)('read','Users',{where:\"schoolId = \".concat(schoolId)});case 7:users=_context41.sent;usersList=document.getElementById('users-list');if(usersList){usersList.innerHTML='<h2>Users:</h2>';\nusers.forEach(function(user){return BLL.displayUser(user);});}else{console.error('Element with id \"users-list\" not found.');}_context41.next=16;break;case 12:_context41.prev=12;_context41.t0=_context41[\"catch\"](0);console.error('Error loading users:',_context41.t0);showFeedbackMessage('Error loading users','danger');case 16:case\"end\":return _context41.stop();}},_callee41,null,[[0,12]]);})));case 2:case\"end\":return _context42.stop();}},_callee42);}));function loadUsers(){return _loadUsers.apply(this,arguments);}return loadUsers;}(),displayUser:function displayUser(user){var usersList=document.getElementById('users-list');if(!usersList){console.error('Element with id \"users-list\" not found.');return;}var userItem=document.createElement('div');userItem.className='user-card';userItem.dataset.userId=user.userId;var isActiveStatus=user.isActive?'Active':'Inactive';userItem.innerHTML=\"\\n <div class=\\\"user-icon-title-wrapper\\\">\\n\\t <span><i class=\\\"bi bi-person-fill\\\"></i></span>\\n\\t <h3>\".concat(user.username||'Unknown User',\"</h3>\\n </div>\\n <p>Name: \").concat(user.firstName||'',\" \").concat(user.lastName||'',\"</p>\\n <p>Email: \").concat(user.email||'N/A',\"</p>\\n <p>Status: \").concat(isActiveStatus,\"</p>\\n <p>Role: \").concat(_GlobalVariables.rolesData[user.roleId]||'N/A',\"</p>\\n <div class=\\\"controls\\\">\\n <a href=\\\"javascript:void(0)\\\" class=\\\"edit\\\" onclick=\\\"BLL.openEditUserModal(\").concat(user.userId,\")\\\"><i class=\\\"fas fa-edit\\\"></i></a>\\n <a href=\\\"#\\\" class=\\\"delete\\\" onclick=\\\"BLL.deleteUser(\").concat(user.userId,\")\\\"><i class=\\\"fas fa-trash-alt\\\"></i></a>\\n </div>\\n \");usersList.appendChild(userItem);},openAddUserModal:function openAddUserModal(){var modal=document.getElementById('user-modal');if(!modal){console.error('Element with id \"user-modal\" not found.');return;}\ndocument.getElementById('modal-username').value='';document.getElementById('modal-password').value='';document.getElementById('modal-email').value='';document.getElementById('modal-first-name').value='';document.getElementById('modal-last-name').value='';document.getElementById('modal-role-id').value='';\ndocument.getElementById('modal-active').checked=false;\nmodal.dataset.userId='';\nmodal.style.display='block';},openEditUserModal:function(){var _openEditUserModal=_asyncToGenerator(_regeneratorRuntime().mark(function _callee43(userId){var _modal3,user,userData;return _regeneratorRuntime().wrap(function _callee43$(_context43){while(1)switch(_context43.prev=_context43.next){case 0:_context43.prev=0;_modal3=document.getElementById('user-modal');if(_modal3){_context43.next=5;break;}console.error('Element with id \"user-modal\" not found.');return _context43.abrupt(\"return\");case 5:_context43.next=7;return(0,_BLL.callApi)('read','Users',{where:\"userId = \".concat(userId)});case 7:user=_context43.sent;if(user&&user.length>0){userData=user[0];document.getElementById('modal-username').value=userData.username||'';document.getElementById('modal-email').value=userData.email||'';document.getElementById('modal-first-name').value=userData.firstName||'';document.getElementById('modal-last-name').value=userData.lastName||'';document.getElementById('modal-role-id').value=userData.roleId||'';document.getElementById('modal-active').checked=userData.isActive||false;\n_modal3.dataset.userId=userId;\n_modal3.style.display='block';}else{console.error(\"User with ID \".concat(userId,\" not found.\"));}_context43.next=15;break;case 11:_context43.prev=11;_context43.t0=_context43[\"catch\"](0);console.error('Error loading user details:',_context43.t0);alert('An error occurred while trying to delete the user. Please try again.');case 15:case\"end\":return _context43.stop();}},_callee43,null,[[0,11]]);}));function openEditUserModal(_x25){return _openEditUserModal.apply(this,arguments);}return openEditUserModal;}(),saveUserFromModal:function(){var _saveUserFromModal=_asyncToGenerator(_regeneratorRuntime().mark(function _callee45(){return _regeneratorRuntime().wrap(function _callee45$(_context45){while(1)switch(_context45.prev=_context45.next){case 0:_context45.next=2;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee44(){var modal,userId,username,password,firstName,lastName,email,isActive,roleId,userData;return _regeneratorRuntime().wrap(function _callee44$(_context44){while(1)switch(_context44.prev=_context44.next){case 0:modal=document.getElementById('user-modal');if(modal){_context44.next=4;break;}console.error('Element with id \"user-modal\" not found.');return _context44.abrupt(\"return\");case 4:userId=modal.dataset.userId?parseInt(modal.dataset.userId,10):null;username=document.getElementById('modal-username').value;password=document.getElementById('modal-password').value;firstName=document.getElementById('modal-first-name').value;lastName=document.getElementById('modal-last-name').value;email=document.getElementById('modal-email').value;isActive=document.getElementById('modal-active').checked;roleId=parseInt(document.getElementById('modal-role-id').value,10);if(!(!username||!email)){_context44.next=15;break;}alert('Username and email are required.');return _context44.abrupt(\"return\");case 15:userData={username:username,userPasswordHash:password||undefined,\nfirstName:firstName,lastName:lastName,email:email,isActive:isActive,roleId:roleId,schoolId:sessionStorage.getItem('SchoolId')\n};_context44.prev=16;if(!userId){_context44.next=22;break;}_context44.next=20;return BLL.editUser(userId,userData);case 20:_context44.next=24;break;case 22:_context44.next=24;return BLL.addUser(userData);case 24:_context44.next=30;break;case 26:_context44.prev=26;_context44.t0=_context44[\"catch\"](16);console.error('Error saving user:',_context44.t0);alert('An error occurred while trying to save the user. Please try again.');case 30:case\"end\":return _context44.stop();}},_callee44,null,[[16,26]]);})));case 2:case\"end\":return _context45.stop();}},_callee45);}));function saveUserFromModal(){return _saveUserFromModal.apply(this,arguments);}return saveUserFromModal;}(),deleteUser:function(){var _deleteUser=_asyncToGenerator(_regeneratorRuntime().mark(function _callee47(userId){return _regeneratorRuntime().wrap(function _callee47$(_context47){while(1)switch(_context47.prev=_context47.next){case 0:if(!confirm('Are you sure you want to delete this user?')){_context47.next=3;break;}_context47.next=3;return executeWithLoading(_asyncToGenerator(_regeneratorRuntime().mark(function _callee46(){var confirmDelete;return _regeneratorRuntime().wrap(function _callee46$(_context46){while(1)switch(_context46.prev=_context46.next){case 0:_context46.prev=0;confirmDelete=confirm('Are you sure you want to delete this user? This action cannot be undone.');if(confirmDelete){_context46.next=4;break;}return _context46.abrupt(\"return\");case 4:_context46.next=6;return(0,_BLL.callApi)('delete','Users',{where:\"userId = \".concat(userId)});case 6:console.log(\"User with ID \".concat(userId,\" deleted successfully.\"));BLL.loadUsers();_context46.next=14;break;case 10:_context46.prev=10;_context46.t0=_context46[\"catch\"](0);console.error('Error deleting user:',_context46.t0);showFeedbackMessage('Error deleting user','danger');case 14:case\"end\":return _context46.stop();}},_callee46,null,[[0,10]]);})));case 3:case\"end\":return _context47.stop();}},_callee47);}));function deleteUser(_x26){return _deleteUser.apply(this,arguments);}return deleteUser;}(),\nsaveContactUsMessage:function(){var _saveContactUsMessage=_asyncToGenerator(_regeneratorRuntime().mark(function _callee48(){var name,email,phone,organization,message,contactData,response;return _regeneratorRuntime().wrap(function _callee48$(_context48){while(1)switch(_context48.prev=_context48.next){case 0:_context48.prev=0;name=document.getElementById('name').value.trim();email=document.getElementById('email').value.trim();phone=document.getElementById('phone').value.trim();organization=document.getElementById('organization').value.trim();message=document.getElementById('message').value.trim();\nif(!(!name||!email||!organization)){_context48.next=9;break;}alert('Please fill in all required fields.');return _context48.abrupt(\"return\");case 9:\ncontactData={name:name,email:email,phone:phone||null,\norganization:organization,message:message||null,\ncreatedOn:new Date().toISOString()\n};console.log(\"contactData\",contactData);\n_context48.next=13;return(0,_BLL.callApi)('create','ContactUs',contactData);case 13:response=_context48.sent;if(response.ok){alert('Message sent successfully! We will get back to you soon.');document.getElementById('name').value='';document.getElementById('email').value='';document.getElementById('phone').value='';document.getElementById('organization').value='';document.getElementById('message').value='';}else{console.error('Error sending message:',response);alert('There was an issue submitting your message. Please try again.');}_context48.next=22;break;case 17:_context48.prev=17;_context48.t0=_context48[\"catch\"](0);console.error('Unexpected error:',_context48.t0);alert('Something went wrong. Please try again.');alert(_context48.t0);case 22:case\"end\":return _context48.stop();}},_callee48,null,[[0,17]]);}));function saveContactUsMessage(){return _saveContactUsMessage.apply(this,arguments);}return saveContactUsMessage;}()};document.addEventListener('DOMContentLoaded',_asyncToGenerator(_regeneratorRuntime().mark(function _callee49(){var userId,courseViewDiv,classSelect;return _regeneratorRuntime().wrap(function _callee49$(_context49){while(1)switch(_context49.prev=_context49.next){case 0:userId=sessionStorage.getItem('UserId');courseViewDiv=document.getElementById('course-view');if(!userId){_context49.next=23;break;}_context49.prev=3;if(!courseViewDiv){_context49.next=15;break;}courseViewDiv.style.display='block';_context49.next=8;return BLL.loadCourses();case 8:_context49.next=10;return BLL.loadTeacherPreferences();case 10:_context49.next=12;return BLL.disableLessonContextSaveButton();case 12:BLL.clearLessonFields();\n_context49.next=16;break;case 15:console.log('Error: \"course-view\" div not found.');case 16:_context49.next=21;break;case 18:_context49.prev=18;_context49.t0=_context49[\"catch\"](3);console.error('Error loading data:',_context49.t0);case 21:_context49.next=24;break;case 23:\n(0,_SharedScript.hideAlltabs)(courseViewDiv);\ncase 24:\nclassSelect=document.getElementById('class-select');if(classSelect){classSelect.addEventListener('change',function(){var classId=classSelect.value;BLL.loadClassSettings(classId);});}\nif(classSelect){classSelect.addEventListener('change',function(){var selectedClassId=this.value;if(selectedClassId){BLL.updateClassButtonsState(true);BLL.loadClassSettings(selectedClassId);}else{BLL.updateClassButtonsState(false);BLL.clearClassSettings();}});}case 27:case\"end\":return _context49.stop();}},_callee49,null,[[3,18]]);})));\nfunction openCustomizeTabsModal(){document.getElementById(\"customizeTabsModal\").style.display=\"block\";}function closeCustomizeTabsModal(){document.getElementById(\"customizeTabsModal\").style.display=\"none\";}function saveTabPreferences(){var preferences={classSettings:document.getElementById(\"classSettingsTab\").checked,teacherPreferences:document.getElementById(\"teacherPreferencesTab\").checked,teachersCorner:document.getElementById(\"teachersCornerTab\").checked,spiritualFormation:document.getElementById(\"spiritualFormationTab\").checked,sel:document.getElementById(\"selTab\").checked,lifeSkills:document.getElementById(\"lifeSkillsTab\").checked,predefinedContainers:document.getElementById(\"predefinedContainersTab\").checked};localStorage.setItem(\"tabPreferences\",JSON.stringify(preferences));closeCustomizeTabsModal();applyTabPreferences();}function applyTabPreferences(){var preferences=JSON.parse(localStorage.getItem(\"tabPreferences\"))||{};var tabs=[{id:\"class-settings-tab\",key:\"classSettings\"},{id:\"teacher-preferences-tab\",key:\"teacherPreferences\"},{id:\"teachers-corner-tab\",key:\"teachersCorner\"},\n{id:\"spiritual-formation-tab\",key:\"spiritualFormation\"},{id:\"sel-tab\",key:\"sel\"},{id:\"life-skills-tab\",key:\"lifeSkills\"},{id:\"predefined-containers-tab\",key:\"predefinedContainers\"}];tabs.forEach(function(tab){var element=document.getElementById(tab.id);if(element){element.style.display=preferences[tab.key]?\"block\":\"none\";}});}\nwindow.onload=function(){applyTabPreferences();};function resetTabPreferences(){localStorage.removeItem(\"tabPreferences\");applyTabPreferences();}document.addEventListener('DOMContentLoaded',function(){var tooltipTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle=\"tooltip\"]'));tooltipTriggerList.map(function(tooltipTriggerEl){return new bootstrap.Tooltip(tooltipTriggerEl);});});function createContentTabs(content,savedContentDiv){var roleName=sessionStorage.getItem(\"RoleName\");console.log(\"RoleName:\",roleName);console.log(\"context\",sessionStorage);var activeTabName=roleName&&roleName.toLowerCase()===\"student\"?\"Student Content\":\"Teacher Content\";\nvar tabNav=document.createElement('ul');tabNav.classList.add('nav','nav-tabs');tabNav.id='contentTabs';tabNav.setAttribute('role','tablist');\nvar tabContent=document.createElement('div');tabContent.classList.add('tab-content');tabContent.id='contentTabContent';\nvar tabCategories={\"Teacher Content\":teacherCategories,\"Student Content\":contentCategories,\"Parenting Content\":parentingCategories,\"Spiritual Content\":spiritualCategories};\nvar firstTab=true;var _loop=function _loop(){var categoryList=tabCategories[tabName];var isActive=tabName===activeTabName;\nvar tabItem=document.createElement('li');tabItem.classList.add('nav-item');tabItem.setAttribute('role','presentation');\nvar tabLink=document.createElement('button');tabLink.classList.add('nav-link');tabLink.classList.add('content-nav-link');if(isActive){tabLink.classList.add('active');}tabLink.id=\"\".concat(tabName.replace(/\\s+/g,'-').toLowerCase(),\"-tab\");tabLink.setAttribute('data-bs-toggle','tab');tabLink.setAttribute('data-bs-target',\"#\".concat(tabName.replace(/\\s+/g,'-').toLowerCase()));tabLink.setAttribute('type','button');tabLink.setAttribute('role','tab');tabLink.setAttribute('aria-controls',tabName.replace(/\\s+/g,'-').toLowerCase());tabLink.setAttribute('aria-selected',isActive?'true':'false');tabLink.textContent=tabName;\nvar tabPanel=document.createElement('div');tabPanel.classList.add('tab-pane','fade');if(isActive){tabPanel.classList.add('show','active');}tabPanel.id=tabName.replace(/\\s+/g,'-').toLowerCase();tabPanel.setAttribute('role','tabpanel');tabPanel.setAttribute('aria-labelledby',\"\".concat(tabName.replace(/\\s+/g,'-').toLowerCase(),\"-tab\"));\ntabContent.appendChild(tabPanel);\nvar filteredContent=content.filter(function(contentItem){var contentBody=JSON.parse(contentItem.contentData);var contentType=contentBody.type;var formatData=_GlobalVariables.newTTableData.find(function(item){return item.type===contentType;});var formatCategory=formatData?formatData.Category:null;return categoryList.includes(formatCategory);});\nsavedContentDiv.appendChild(tabNav);savedContentDiv.appendChild(tabContent);\nfilteredContent.forEach(function(contentItem){var contentDiv=document.createElement('div');contentDiv.classList.add('saved-content-item');contentDiv.id=\"content-\".concat(contentItem.contentId);var transformedContentDiv=document.createElement('div');var transformedContentId=\"transformed-content-\".concat(contentItem.contentId);transformedContentDiv.id=transformedContentId;transformedContentDiv.classList.add('transformed-content');contentDiv.appendChild(transformedContentDiv);var feedbackDiv=document.createElement('div');var feedbackAreaId=\"feedback-area-\".concat(contentItem.contentId);feedbackDiv.id=feedbackAreaId;feedbackDiv.classList.add('feedback-area');contentDiv.appendChild(feedbackDiv);\ntabPanel.appendChild(contentDiv);var contentBody=JSON.parse(contentItem.contentData);var contentType=contentBody.type;var formatData=_GlobalVariables.newTTableData.find(function(item){return item.type===contentType;});var formatId=formatData?formatData.No:null;\nconsole.log(\"transformedContentId element:\",document.getElementById(transformedContentId));console.log(\"feedbackAreaId element:\",document.getElementById(feedbackAreaId));\nif(document.getElementById(transformedContentId)&&document.getElementById(feedbackAreaId)){fetchAndInjectContent(formatId,transformedContentId,feedbackAreaId,null,contentBody,contentItem.contentId,0);}else{console.error(\"One or both target elements not found:\",transformedContentId,feedbackAreaId);}});\ntabItem.appendChild(tabLink);tabNav.appendChild(tabItem);firstTab=false;};for(var tabName in tabCategories){_loop();}\n}\nwindow.baseUrl=baseUrl;window.BLL=BLL;window.initializeFormatMenu=initializeFormatMenu;window.renderPersonalizedFormatLists=renderPersonalizedFormatLists;window.createFormatListElement=createFormatListElement;window.addFormatToPersonalizedListUI=addFormatToPersonalizedListUI;window.addFormatToPersonalizedList=addFormatToPersonalizedList;window.toggleEditList=toggleEditList;window.getDateTime=getDateTime;\nwindow.showEditListModal=showEditListModal;window.deleteFormatList=deleteFormatList;window.removeFormatFromList=removeFormatFromList;window.savePersonalizedFormats=savePersonalizedFormats;window.showFormatSelectionModal=showFormatSelectionModal;window.closeModal=closeModal;window.populateAvailableFormatsModal=populateAvailableFormatsModal;window.showCreateNewListModal=showCreateNewListModal;window.getAndHighlightFormats=getAndHighlightFormats;window.setCountry=setCountry;window.searchBrFunctionality=searchBrFunctionality;window.populatcategorFilter=populatcategorFilter;window.initializeAdvancedFilters=initializeAdvancedFilters;window.createContentGenerationTabs=createContentGenerationTabs;window.displayContentGenerationArea=displayContentGenerationArea;window.updateActiveTab=updateActiveTab;window.showLoading=showLoading;window.hideLoading=hideLoading;window.showFeedbackMessage=showFeedbackMessage;window.closeLessonModal=closeLessonModal;window.showLessonModal=showLessonModal;window.displayErrorMessage=displayErrorMessage;window.createTweaksModal=createTweaksModal;window.showTweaksModal=showTweaksModal;window.applyTweakSettings=applyTweakSettings;window.closeTweaksModal=closeTweaksModal;window.generateChatGPTPrompt=generateChatGPTPrompt;window.getInputValues=getInputValues;window.openInNewTab=openInNewTab;window.escapeSpecialChars=escapeSpecialChars;window.addCoverAndRevealFunctionality=addCoverAndRevealFunctionality;window.createTimeManagementTips=createTimeManagementTips;window.createExamPreparationTips=createExamPreparationTips;window.createCriticalThinkingExercises=createCriticalThinkingExercises;window.createContentHeader=createContentHeader;window.closeHelpModal=closeHelpModal;window.displayList=displayList;window.displayKeyValueList=displayKeyValueList;window.displayText=displayText;window.formatList=formatList;window.showContentModalX=showContentModalX;window.hideContentModalX=hideContentModalX;window.openCustomizeTabsModal=openCustomizeTabsModal;window.closeCustomizeTabsModal=closeCustomizeTabsModal;window.saveTabPreferences=saveTabPreferences;window.applyTabPreferences=applyTabPreferences;window.resetTabPreferences=resetTabPreferences;window.topSchoolFormats=_GlobalVariables.topSchoolFormats;window.rolesData=_GlobalVariables.rolesData;window.newTTableData=_GlobalVariables.newTTableData;window.newTTableData2=_GlobalVariables.newTTableData2;window.x=_GlobalVariables.x;window.createRecommendations=_SharedScript.createRecommendations;window.createInstructionalTechniques=_SharedScript.createInstructionalTechniques;window.displayLoggedUsername=_SharedScript.displayLoggedUsername;window.addEventListener=addEventListener;window.enableDisableControl=_SharedScript.enableDisableControl;window.showLoginModal=_SharedScript.showLoginModal;window.closeLoginModal=_SharedScript.closeLoginModal;window.submitLogin=_SharedScript.submitLogin;window.logout=_SharedScript.logout;window.showAllTabs=_SharedScript.showAllTabs;window.hideAlltabs=_SharedScript.hideAlltabs;window.fetchAndInjectContent=fetchAndInjectContent;\nwindow.createClozePassage=_Formats1To.createClozePassage;window.createWorksheet=_Formats1To.createWorksheet;window.createFlashcards=_Formats1To.createFlashcards;window.createSelfAssessmentQuiz=_Formats1To.createSelfAssessmentQuiz;window.createErrorCorrectionExercise=_Formats1To.createErrorCorrectionExercise;window.createTimeManagementTips=createTimeManagementTips;window.createExamPreparationTips=createExamPreparationTips;window.createCriticalThinkingExercises=createCriticalThinkingExercises;window.createVocabularyClozeSentences=_Formats1To.createVocabularyClozeSentences;window.createDefinitions=_Formats1To.createDefinitions;window.createDefinitionsWithEtymology=_Formats1To.createDefinitionsWithEtymology;window.createKeyTermsList=_Formats1To.createKeyTermsList;window.createInteractiveGlossary=_Formats1To.createInteractiveGlossary;window.createInteractiveVocabularyQuiz=_Formats1To.createInteractiveVocabularyQuiz;window.createDragAndDropTextSequencing=_Formats1To.createDragAndDropTextSequencing;window.createAdaptiveLearning=_Formats1To.createAdaptiveLearning;window.createInteractiveDiagram=_Formats1To.createInteractiveDiagram;window.createTimedReading=_Formats1To.createTimedReading;window.createConceptSummary=_Formats100To.createConceptSummary;window.createConceptDefinitionTable=_Formats100To.createConceptDefinitionTable;window.createMathConceptExplanation=_Formats100To.createMathConceptExplanation;window.createSpotTheBiasScience=_Formats100To.createSpotTheBiasScience;window.createNeurologicalDisorderExplanation=_Formats100To.createNeurologicalDisorderExplanation;window.createDigitalWorksheet=_Formats100To.createDigitalWorksheet;window.createStudyPlanBuilder=_Formats100To.createStudyPlanBuilder;window.createVocabularyDefinitions=_Formats100To.createVocabularyDefinitions;window.createProblemSolvingScenario=_Formats100To.createProblemSolvingScenario;window.createPersonalizedLearningGoals=_Formats100To.createPersonalizedLearningGoals;window.createPersonalizedVocabularyBuilder=_Formats100To.createPersonalizedVocabularyBuilder;\nwindow.createCustomizableInterface=_Formats100To.createCustomizableInterface;\nwindow.createDifficultyLevels=_Formats100To.createDifficultyLevels;window.createProgressBookmarks=_Formats100To.createProgressBookmarks;window.createPersonalizedRecommendations=_Formats100To.createPersonalizedRecommendations;window.createInteractiveQuestionnaire=_Formats100To.createInteractiveQuestionnaire;window.createTextToSpeech=_Formats100To.createTextToSpeech;window.createMultimodalLearning=_Formats100To.createMultimodalLearning;window.createPersonalizedStudyPath=_Formats100To.createPersonalizedStudyPath;window.createPracticeExercisesWithFeedback=_Formats100To.createPracticeExercisesWithFeedback;window.createAdaptableContent=_Formats100To.createAdaptableContent;window.createContentCuration=_Formats100To.createContentCuration;window.createStudySmarterTips=_Formats200To.createStudySmarterTips;window.createGrammarExercises=_Formats200To.createGrammarExercises;window.createInteractiveConversationSimulations=_Formats200To.createInteractiveConversationSimulations;window.createFlashcardApp=_Formats200To.createFlashcardApp;window.createNoteTakingTemplates=_Formats200To.createNoteTakingTemplates;window.createDifferentiatedVocabularyExercises=_Formats200To.createDifferentiatedVocabularyExercises;window.createVocabularyBuildingExercises=_NewCode.createVocabularyBuildingExercises;window.createFormulaFlashcards=_Formats200To.createFormulaFlashcards;window.createGrammarDrills=_Formats200To.createGrammarDrills;window.createInteractiveNumberLine=_Formats200To.createInteractiveNumberLine;window.createSentenceCompletion=_Formats200To.createSentenceCompletion;window.createSentenceTransformationExercises=_Formats200To.createSentenceTransformationExercises;window.createVerbConjugationPractice=_Formats200To.createVerbConjugationPractice;window.createVocabularySentenceCreation=_Formats200To.createVocabularySentenceCreation;window.createInteractiveTextbook=_Formats300To.createInteractiveTextbook;window.createConceptSortingActivity=_Formats300To.createConceptSortingActivity;window.createGraphicOrganizerCreator=_Formats300To.createGraphicOrganizerCreator;window.createInteractiveNoteTakingTemplates=_Formats300To.createInteractiveNoteTakingTemplates;window.createOutline=_Formats300To.createOutline;window.createScientificVocabularyBuilder=_Formats300To.createScientificVocabularyBuilder;window.createSummarizationTool=_Formats300To.createSummarizationTool;window.createInteractiveGeometryTools=_Formats300To.createInteractiveGeometryTools;window.createInteractiveGraph=_Formats300To.createInteractiveGraph;window.createInteractiveVocabularyBuilder=_Formats300To.createInteractiveVocabularyBuilder;window.createELI5=_Formats400To.createELI5;window.createAccessibleSummary=_Formats400To.createAccessibleSummary;window.createKeyTakeawaysInfographic=_Formats400To.createKeyTakeawaysInfographic;window.createMathFormulas=_Formats400To.createMathFormulas;window.createSimplifiedExplanation=_Formats400To.createSimplifiedExplanation;window.createTextSummaryWithKeyPoints=_Formats400To.createTextSummaryWithKeyPoints;window.createAnnotations=_Formats1To.createAnnotations;window.createReverseOutlining=_Formats1To.createReverseOutlining;window.createChunkedText=_Formats1To.createChunkedText;window.createTextHighlighting=_Formats1To.createTextHighlighting;window.createHeadingsAndSubheadings=_Formats1To.createHeadingsAndSubheadings;window.createTableOrChart=_Formats1To.createTableOrChart;window.createLists=_Formats1To.createLists;window.createHierarchicalStructure=_Formats1To.createHierarchicalStructure;window.createSequentialSteps=_Formats1To.createSequentialSteps;window.createInvertedPyramid=_Formats1To.createInvertedPyramid;window.createCauseAndEffect=_Formats1To.createCauseAndEffect;window.createProblemAndSolution=_Formats1To.createProblemAndSolution;window.createFactVsOpinion=_Formats1To.createFactVsOpinion;window.createShortSummary=_Formats1To.createShortSummary;window.createDetailedSummary=_Formats1To.createDetailedSummary;window.createBulletPoints=_Formats1To.createBulletPoints;window.createKeywords=_Formats1To.createKeywords;window.createSimplifiedText=_Formats1To.createSimplifiedText;window.createStoryFormat=_Formats1To.createStoryFormat;window.createExamplesAndAnalogies=_Formats1To.createExamplesAndAnalogies;window.createQuestionsAndAnswers=_Formats1To.createQuestionsAndAnswers;window.createInteractiveEbook=_Formats1To.createInteractiveEbook;window.createProsAndCons=_Formats1To.createProsAndCons;window.createPersuasiveArguments=_Formats1To.createPersuasiveArguments;window.createThematicOverviews=_Formats1To.createThematicOverviews;window.createAudioNarration=_Formats1To.createAudioNarration;window.createVideoSummary=_Formats1To.createVideoSummary;window.createInteractiveSimulation=_Formats1To.createInteractiveSimulation;window.createFillInTheBlanks=_Formats1To.createFillInTheBlanks;window.createTrueFalseStatements=_Formats1To.createTrueFalseStatements;window.createDragAndDropActivity=_Formats1To.createDragAndDropActivity;window.createCaseStudy=_Formats1To.createCaseStudy;window.createMnemonicDevices=_Formats1To.createMnemonicDevices;window.createRealWorldApplications=_Formats1To.createRealWorldApplications;window.createProjectBasedLearning=_Formats1To.createProjectBasedLearning;window.createAIChatbot=_Formats1To.createAIChatbot;window.createConceptMap=_Formats1To.createConceptMap;window.createAdaptiveQuiz=_Formats1To.createAdaptiveQuiz;window.createInteractiveTimeline=_Formats1To.createInteractiveTimeline;window.createNestedBulletPoints=_Formats100To.createNestedBulletPoints;\nwindow.createConceptHierarchy=_Formats100To.createConceptHierarchy;window.createAdaptiveBranchingStory=_Formats100To.createAdaptiveBranchingStory;window.createPersonalizedConceptMaps=_Formats100To.createPersonalizedConceptMaps;window.createExpositoryWriting=_Formats100To.createExpositoryWriting;window.createNarrativeDescriptions=_Formats100To.createNarrativeDescriptions;window.createAnalogiesAndMetaphors=_Formats100To.createAnalogiesAndMetaphors;window.createStructuralMarkers=_Formats100To.createStructuralMarkers;window.createLogicalProgression=_Formats100To.createLogicalProgression;window.createFaq=_Formats100To.createFaq;window.createScenarioBasedExplanation=_Formats100To.createScenarioBasedExplanation;window.applyVisualTextFormatting=_Formats100To.applyVisualTextFormatting;window.createConceptualOverview=_Formats100To.createConceptualOverview;window.createIncrementalComplexity=_Formats100To.createIncrementalComplexity;window.createSocraticQuestions=_Formats100To.createSocraticQuestions;window.createComparativeTable=_Formats100To.createComparativeTable;window.createContrastingCases=_Formats100To.createContrastingCases;window.createComparativeAnalysis=_Formats100To.createComparativeAnalysis;window.createPersonalizedFeedback=_Formats100To.createPersonalizedFeedback;window.createSpacedRepetition=_Formats200To.createSpacedRepetition;window.createGamifiedQuiz=_Formats200To.createGamifiedQuiz;window.createRhetoricalStructure=_Formats200To.createRhetoricalStructure;window.createTemporalStructuring=_Formats200To.createTemporalStructuring;window.createExemplification=_Formats200To.createExemplification;window.createStreamlinedContent=_Formats200To.createStreamlinedContent;window.createIntegratedAnnotations=_Formats200To.createIntegratedAnnotations;window.createDistributedSummaries=_Formats200To.createDistributedSummaries;window.createGlossary=_Formats200To.createGlossary;window.createDescriptiveImagery=_Formats200To.createDescriptiveImagery;window.applyCognitiveLoadManagement=_Formats200To.applyCognitiveLoadManagement;window.createSimilesAndMetaphors=_Formats200To.createSimilesAndMetaphors;window.applyDynamicHighlighting=_Formats200To.applyDynamicHighlighting;window.createPedagogicalScaffolding=_Formats200To.createPedagogicalScaffolding;window.createIterativeExplanations=_Formats200To.createIterativeExplanations;window.createPacingTechniques=_Formats200To.createPacingTechniques;window.createDynamicTextAdjustment=_Formats200To.createDynamicTextAdjustment;window.createEmbeddedCaseStudies=_Formats200To.createEmbeddedCaseStudies;window.createLogicalStructuring=_Formats200To.createLogicalStructuring;window.createContentLayering=_Formats200To.createContentLayering;window.createScaffoldedLearningPath=_Formats200To.createScaffoldedLearningPath;window.createContextualEmbedding=_Formats200To.createContextualEmbedding;window.createIterativeRefinement=_Formats200To.createIterativeRefinement;window.createEpisodicStructure=_Formats300To.createEpisodicStructure;window.createHypotheticalScenarios=_Formats300To.createHypotheticalScenarios;window.createParaphrasing=_Formats500To.createParaphrasing;window.createMicrolearningModules=_Formats500To.createMicrolearningModules;window.createThematicClusters=_Formats500To.createThematicClusters;window.createLayeredExplanations=_Formats500To.createLayeredExplanations;window.createRecursiveSummaries=_Formats500To.createRecursiveSummaries;window.createInteractiveGrammarLesson=_Formats1To.createInteractiveGrammarLesson;window.createVocabularyQuizzes=_Formats1To.createVocabularyQuizzes;window.createPictureDescriptionGames=_Formats1To.createPictureDescriptionGames;window.createInteractiveAudiobooks=_Formats1To.createInteractiveAudiobooks;window.createInteractiveReadingQuizzes=_Formats1To.createInteractiveReadingQuizzes;window.createAIPoweredWritingAssistant=_Formats1To.createAIPoweredWritingAssistant;window.createVocabularyChallengeGames=_Formats1To.createVocabularyChallengeGames;window.createPronunciationDrillsWithFeedback=_Formats1To.createPronunciationDrillsWithFeedback;window.createInteractiveCulturalActivities=_Formats1To.createInteractiveCulturalActivities;window.createMatchingGame=_Formats1To.createMatchingGame;window.createCrosswordOrWordSearch=_Formats1To.createCrosswordOrWordSearch;window.createArithmeticPracticeGames=_Formats500To.createArithmeticPracticeGames;window.createInteractiveQuiz=_Formats500To.createInteractiveQuiz;window.createMathFactsGenerator=_Formats500To.createMathFactsGenerator;window.createShapeIdentification=_Formats500To.createShapeIdentification;window.createFractionVisualizer=_Formats500To.createFractionVisualizer;window.createGraphingActivities=_Formats500To.createGraphingActivities;window.createGeometryPuzzles=_Formats500To.createGeometryPuzzles;window.createMoneyMathGames=_Formats500To.createMoneyMathGames;window.createMathWordProblems=_Formats500To.createMathWordProblems;window.createMathVocabularyBuilder=_Formats500To.createMathVocabularyBuilder;window.createMathConceptExplainer=_Formats500To.createMathConceptExplainer;window.createTextSimulation=_Formats500To.createTextSimulation;window.createVirtualLab=_Formats500To.createVirtualLab;window.createTextGames=_Formats500To.createTextGames;window.createDebate=_Formats500To.createDebate;window.createStructuredProject=_Formats500To.createStructuredProject;window.createMysteryGame=_Formats500To.createMysteryGame;window.createRolePlayingGame=_Formats500To.createRolePlayingGame;window.createEscapeRoom=_Formats500To.createEscapeRoom;window.createProblemSolvingChallenge=_Formats500To.createProblemSolvingChallenge;window.createScavengerHunt=_Formats500To.createScavengerHunt;window.createDataAnalysisChallenge=_Formats500To.createDataAnalysisChallenge;window.createHypothesisTesting=_Formats500To.createHypothesisTesting;window.createEnhancedQuestionGenerator=_Formats500To.createEnhancedQuestionGenerator;window.createLesson=_LessonPlans.createLesson;window.createActivity=_EducationalActivities.createActivity;window.createBloomsTaxonomy=_EducationalGoals.createBloomsTaxonomy;window.createRevisedBloomsTaxonomy=_EducationalGoals.createRevisedBloomsTaxonomy;window.createDOKTaxonomy=_EducationalGoals.createDOKTaxonomy;window.createWebbsDOKTaxonomy=_EducationalGoals.createWebbsDOKTaxonomy;window.createSOLOTaxonomy=_EducationalGoals.createSOLOTaxonomy;window.createMarzanosTaxonomy=_EducationalGoals.createMarzanosTaxonomy;window.createFinksTaxonomy=_EducationalGoals.createFinksTaxonomy;window.createISTEStandardsTaxonomy=_EducationalGoals.createISTEStandardsTaxonomy;window.createP21Taxonomy=_EducationalGoals.createP21Taxonomy;window.createBackwardDesignTaxonomy=_EducationalGoals.createBackwardDesignTaxonomy;window.createKrathwohlsAffectiveTaxonomy=_EducationalGoals.createKrathwohlsAffectiveTaxonomy;window.createHarrowsPsychomotorTaxonomy=_EducationalGoals.createHarrowsPsychomotorTaxonomy;window.createGagnesNineEventsTaxonomy=_EducationalGoals.createGagnesNineEventsTaxonomy;window.createKnowledgeTaxonomy=_EducationalGoals.createKnowledgeTaxonomy;window.createDigitalBloomsTaxonomy=_EducationalGoals.createDigitalBloomsTaxonomy;window.createStorytelling=_BibleStudy.createStorytelling;window.createDiscussion=_BibleStudy.createDiscussion;window.createInteractiveActivity=_BibleStudy.createInteractiveActivity;window.createTechnologyEnhanced=_BibleStudy.createTechnologyEnhanced;window.createPersonalStudy=_BibleStudy.createPersonalStudy;window.createGroupStudy=_BibleStudy.createGroupStudy;window.createCreativeExpression=_BibleStudy.createCreativeExpression;window.createServiceAndOutreach=_BibleStudy.createServiceAndOutreach;window.createTheologicalReading=_BibleStudy.createTheologicalReading;window.createHistoricalReading=_BibleStudy.createHistoricalReading;window.createLiteraryReading=_BibleStudy.createLiteraryReading;window.createApplicativeReading=_BibleStudy.createApplicativeReading;window.createSilentReading=_BibleStudy.createSilentReading;window.createTopicalReading=_BibleStudy.createTopicalReading;window.createNarrativeReading=_BibleStudy.createNarrativeReading;window.createSymbolicReading=_BibleStudy.createSymbolicReading;window.createMeditativeReadingWithMusic=_BibleStudy.createMeditativeReadingWithMusic;window.createReadingWithPrayer=_BibleStudy.createReadingWithPrayer;window.createMultilingualReading=_BibleStudy.createMultilingualReading;window.createReadingWithArt=_BibleStudy.createReadingWithArt;window.createReadingInNature=_BibleStudy.createReadingInNature;window.createCharacterFocusedReading=_BibleStudy.createCharacterFocusedReading;window.createTimePeriodFocusedReading=_BibleStudy.createTimePeriodFocusedReading;window.createGenreFocusedReading=_BibleStudy.createGenreFocusedReading;window.createLocationFocusedReading=_BibleStudy.createLocationFocusedReading;window.createWordFocusedReading=_BibleStudy.createWordFocusedReading;window.createDictionaryAidedReading=_BibleStudy.createDictionaryAidedReading;window.createMapAidedReading=_BibleStudy.createMapAidedReading;window.createCommentaryAidedReading=_BibleStudy.createCommentaryAidedReading;window.createGuidedReading=_BibleStudy.createGuidedReading;window.createHistoricalCriticism=_BibleStudy.createHistoricalCriticism;window.createLiteraryCriticism=_BibleStudy.createLiteraryCriticism;window.createSocialCriticism=_BibleStudy.createSocialCriticism;window.createPromiseFocusedReading=_BibleStudy.createPromiseFocusedReading;window.createInvitationFocusedReading=_BibleStudy.createInvitationFocusedReading;window.createEncouragementFocusedReading=_BibleStudy.createEncouragementFocusedReading;window.createLoveFocusedReading=_BibleStudy.createLoveFocusedReading;window.createHopeFocusedReading=_BibleStudy.createHopeFocusedReading;window.createInteractiveReading=_BibleStudy.createInteractiveReading;window.createAudioReading=_BibleStudy.createAudioReading;window.createReadingWithInstantTranslation=_BibleStudy.createReadingWithInstantTranslation;window.createImageGenerationReading=_BibleStudy.createImageGenerationReading;window.createOnlineGroupReading=_BibleStudy.createOnlineGroupReading;window.createReadingWithAudioCommentary=_BibleStudy.createReadingWithAudioCommentary;window.createCreativeContentReading=_BibleStudy.createCreativeContentReading;window.createPresentationBasedReading=_BibleStudy.createPresentationBasedReading;window.createQuestionDrivenReading=_BibleStudy.createQuestionDrivenReading;window.createComparativeTranslationReading=_BibleStudy.createComparativeTranslationReading;window.createCulturalSocialReading=_BibleStudy.createCulturalSocialReading;window.createGeographicalReading=_BibleStudy.createGeographicalReading;window.createLinguisticReading=_BibleStudy.createLinguisticReading;window.createVerseMapping=_BibleStudy.createVerseMapping;window.createTopicalStudy=_BibleStudy.createTopicalStudy;window.createCharacterStudy=_BibleStudy.createCharacterStudy;window.createInductiveStudy=_BibleStudy.createInductiveStudy;window.createSOAPMethod=_BibleStudy.createSOAPMethod;window.createLectioDivina=_BibleStudy.createLectioDivina;window.createChronologicalReading=_BibleStudy.createChronologicalReading;window.createParallelReading=_BibleStudy.createParallelReading;window.createBookByBookStudy=_BibleStudy.createBookByBookStudy;window.createWordStudy=_BibleStudy.createWordStudy;window.createPrayerJournaling=_BibleStudy.createPrayerJournaling;window.createMemoryVersePractice=_BibleStudy.createMemoryVersePractice;window.createBibleArtJournaling=_BibleStudy.createBibleArtJournaling;window.createBibleStudyGames=_BibleStudy.createBibleStudyGames;window.createGroupBibleProjects=_BibleStudy.createGroupBibleProjects;window.createDevotionalReading=_BibleStudy.createDevotionalReading;window.createBibleStoryFormat=_BibleStudy.createBibleStoryFormat;window.createPilgrimageAndTravel=_BibleStudy.createPilgrimageAndTravel;window.createAIGeneratedSummaries=_BibleStudy.createAIGeneratedSummaries;window.createAIGeneratedDiscussionQuestions=_BibleStudy.createAIGeneratedDiscussionQuestions;window.createAIGeneratedPersonalization=_BibleStudy.createAIGeneratedPersonalization;window.createVerseByVerseStudy=_BibleStudy.createVerseByVerseStudy;window.createBookOverview=_BibleStudy.createBookOverview;window.createConcordanceStudy=_BibleStudy.createConcordanceStudy;window.createBiographicalStudy=_BibleStudy.createBiographicalStudy;window.createHistoricalContextStudy=_BibleStudy.createHistoricalContextStudy;window.createFigurativeLanguageStudy=_BibleStudy.createFigurativeLanguageStudy;window.createTypologyStudy=_BibleStudy.createTypologyStudy;window.createThematicStudy=_BibleStudy.createThematicStudy;window.createExegeticalStudy=_BibleStudy.createExegeticalStudy;window.createHermeneuticsStudy=_BibleStudy.createHermeneuticsStudy;window.createGroupDiscussionGuides=_BibleStudy.createGroupDiscussionGuides;window.createPersonalizedStudyPlans=_BibleStudy.createPersonalizedStudyPlans;window.createGamifiedBibleQuizzes=_BibleStudy.createGamifiedBibleQuizzes;window.createBibleBasedCreativeWriting=_BibleStudy.createBibleBasedCreativeWriting;window.createPrayerMeditationPrompts=_BibleStudy.createPrayerMeditationPrompts;window.createSocialSharingCommunityBuilding=_BibleStudy.createSocialSharingCommunityBuilding;window.createScriptureMemorySystems=_BibleStudy.createScriptureMemorySystems;window.createScriptureWriting=_BibleStudy.createScriptureWriting;window.createBibleJournalingPrompts=_BibleStudy.createBibleJournalingPrompts;window.createBibleBasedMusicPlaylists=_BibleStudy.createBibleBasedMusicPlaylists;window.createBibleBasedPodcastsSermons=_BibleStudy.createBibleBasedPodcastsSermons;window.createBibleBasedBookClubs=_BibleStudy.createBibleBasedBookClubs;window.createApocryphaPseudepigraphaStudy=_BibleStudy.createApocryphaPseudepigraphaStudy;window.createBiblicalArchaeologyStudy=_BibleStudy.createBiblicalArchaeologyStudy;window.createBiblicalLanguagesStudy=_BibleStudy.createBiblicalLanguagesStudy;window.createSocialJusticeAdvocacyStudy=_BibleStudy.createSocialJusticeAdvocacyStudy;window.createEnvironmentalStewardshipStudy=_BibleStudy.createEnvironmentalStewardshipStudy;window.createInterfaithDialogueStudy=_BibleStudy.createInterfaithDialogueStudy;window.createBibleBasedLeadershipDevelopment=_BibleStudy.createBibleBasedLeadershipDevelopment;window.createBibleBasedFinancialStewardship=_BibleStudy.createBibleBasedFinancialStewardship;window.createBibleBasedParentingFamilyLife=_BibleStudy.createBibleBasedParentingFamilyLife;window.createBibleBasedMarriageEnrichment=_BibleStudy.createBibleBasedMarriageEnrichment;window.createExpositorySermon=_Sermons.createExpositorySermon;window.createDoctrinalSermon=_Sermons.createDoctrinalSermon;window.createRedemptiveHistoricalSermon=_Sermons.createRedemptiveHistoricalSermon;window.createExpositoryCharacterStudy=_Sermons.createExpositoryCharacterStudy;window.createExpositoryBiographicalSermon=_Sermons.createExpositoryBiographicalSermon;window.createBibleReadingSermon=_Sermons.createBibleReadingSermon;window.createTopicalSermon=_Sermons.createTopicalSermon;window.createPracticalSermon=_Sermons.createPracticalSermon;window.createVocationalSermon=_Sermons.createVocationalSermon;window.createCounselingSermon=_Sermons.createCounselingSermon;window.createSocialIssuesSermon=_Sermons.createSocialIssuesSermon;window.createTeachingSermon=_Sermons.createTeachingSermon;window.createEducationalSermon=_Sermons.createEducationalSermon;window.createCatecheticalSermon=_Sermons.createCatecheticalSermon;window.createInstructionalSermon=_Sermons.createInstructionalSermon;window.createNarrativeSermon=_Sermons.createNarrativeSermon;window.createImaginativeSermon=_Sermons.createImaginativeSermon;window.createBiblicalStorytellingSermon=_Sermons.createBiblicalStorytellingSermon;window.createParableSermon=_Sermons.createParableSermon;window.createBiographicalSermon=_Sermons.createBiographicalSermon;window.createNarrativeTopicalHybrid=_Sermons.createNarrativeTopicalHybrid;window.createNarrativeCallToActionHybrid=_Sermons.createNarrativeCallToActionHybrid;window.createDevotionalSermon=_Sermons.createDevotionalSermon;window.createMeditationSermon=_Sermons.createMeditationSermon;window.createPoeticSermon=_Sermons.createPoeticSermon;window.createEncouragementSermon=_Sermons.createEncouragementSermon;window.createComfortingSermon=_Sermons.createComfortingSermon;window.createEthicalSermon=_Sermons.createEthicalSermon;window.createHolinessSermon=_Sermons.createHolinessSermon;window.createConsecrationSermon=_Sermons.createConsecrationSermon;window.createObedienceSermon=_Sermons.createObedienceSermon;window.createDiscipleshipSermon=_Sermons.createDiscipleshipSermon;window.createTransformationalSermon=_Sermons.createTransformationalSermon;window.createPropheticSermon=_Sermons.createPropheticSermon;window.createCallToRepentanceSermon=_Sermons.createCallToRepentanceSermon;window.createCallToActionSermon=_Sermons.createCallToActionSermon;window.createSpiritualWarfareSermon=_Sermons.createSpiritualWarfareSermon;window.createMissionarySermon=_Sermons.createMissionarySermon;window.createWeddingSermon=_Sermons.createWeddingSermon;window.createFuneralSermon=_Sermons.createFuneralSermon;window.createBaptismSermon=_Sermons.createBaptismSermon;window.createGraduationSermon=_Sermons.createGraduationSermon;window.createAnniversarySermon=_Sermons.createAnniversarySermon;window.createCrisisSermon=_Sermons.createCrisisSermon;window.createIntercessorySermon=_Sermons.createIntercessorySermon;window.createPrayerSermon=_Sermons.createPrayerSermon;window.createDoxologicalSermon=_Sermons.createDoxologicalSermon;window.createWorshipSermon=_Sermons.createWorshipSermon;window.createRevivalSermon=_Sermons.createRevivalSermon;window.createHealingSermon=_Sermons.createHealingSermon;window.createReconciliationSermon=_Sermons.createReconciliationSermon;window.createRestorationSermon=_Sermons.createRestorationSermon;window.createForgivenessSermon=_Sermons.createForgivenessSermon;window.createDeliveranceSermon=_Sermons.createDeliveranceSermon;window.createCommunitySermon=_Sermons.createCommunitySermon;window.createUnitySermon=_Sermons.createUnitySermon;window.createServiceSermon=_Sermons.createServiceSermon;window.createStewardshipSermon=_Sermons.createStewardshipSermon;window.createExpositoryPracticalHybrid=_Sermons.createExpositoryPracticalHybrid;window.createExpositoryTopicalHybrid=_Sermons.createExpositoryTopicalHybrid;window.createDoctrinalPracticalHybrid=_Sermons.createDoctrinalPracticalHybrid;window.createNarrativeDoctrinalHybrid=_Sermons.createNarrativeDoctrinalHybrid;window.createPropheticNarrativeHybrid=_Sermons.createPropheticNarrativeHybrid;window.createCulturalIssuesSermon=_Sermons.createCulturalIssuesSermon;window.createCurrentEventsSermon=_Sermons.createCurrentEventsSermon;window.createContextualizedSermon=_Sermons.createContextualizedSermon;window.createGlobalContextSermon=_Sermons.createGlobalContextSermon;window.createJusticeSermon=_Sermons.createJusticeSermon;window.createTechnologySermon=_Sermons.createTechnologySermon;window.createEnvironmentalStewardshipSermon=_Sermons.createEnvironmentalStewardshipSermon;window.createYouthSermon=_Sermons.createYouthSermon;window.createChildrensSermon=_Sermons.createChildrensSermon;window.createMensSermon=_Sermons.createMensSermon;window.createWomensSermon=_Sermons.createWomensSermon;window.createProfessionalSermon=_Sermons.createProfessionalSermon;window.createFamilySermon=_Sermons.createFamilySermon;window.createSeniorCitizenSermon=_Sermons.createSeniorCitizenSermon;window.createTeenSermon=_Sermons.createTeenSermon;window.createSingleAdultSermon=_Sermons.createSingleAdultSermon;window.createNewBelieverSermon=_Sermons.createNewBelieverSermon;window.createMarriedCouplesSermon=_Sermons.createMarriedCouplesSermon;window.createPatrioticSermon=_Sermons.createPatrioticSermon;window.createSeasonalSermon=_Sermons.createSeasonalSermon;window.createOccasionalSermon=_Sermons.createOccasionalSermon;window.createNewYearSermon=_Sermons.createNewYearSermon;window.createIndependenceDaySermon=_Sermons.createIndependenceDaySermon;window.createMothersDaySermon=_Sermons.createMothersDaySermon;window.createFathersDaySermon=_Sermons.createFathersDaySermon;window.createThanksgivingDaySermon=_Sermons.createThanksgivingDaySermon;window.createChurchDedicationSermon=_Sermons.createChurchDedicationSermon;window.createInstructionalTechniques=_SharedScript.createInstructionalTechniques;window.createAssistiveTechnologyTools=_InstructionalStrategies.createAssistiveTechnologyTools;window.createHandsOnActivities=_InstructionalStrategies.createHandsOnActivities;window.createGraphicOrganizers=_InstructionalStrategies.createGraphicOrganizers;window.createRolePlayingSimulations=_InstructionalStrategies.createRolePlayingSimulations;window.createOralLanguageBasedActivities=_InstructionalStrategies.createOralLanguageBasedActivities;window.createProfessionalDevelopmentResources=_InstructionalStrategies.createProfessionalDevelopmentResources;window.createSocialStories=_InstructionalStrategies.createSocialStories;window.createRecommendations=_SharedScript.createRecommendations;window.createInformativeArticle=_NewCode.createInformativeArticle;window.createBookChapter=_NewCode.createBookChapter;window.createLectureTranscript=_NewCode.createLectureTranscript;window.createHistoricalDocument=_NewCode.createHistoricalDocument;window.createScientificResearchSummary=_NewCode.createScientificResearchSummary;window.createLiteraryCritique=_NewCode.createLiteraryCritique;window.createNewspaperArticle=_NewCode.createNewspaperArticle;window.createDebateScript=_NewCode.createDebateScript;window.createLabReportTemplate=_NewCode.createLabReportTemplate;window.createScientificInvestigation=_NewCode.createScientificInvestigation;window.createScienceNewsArticles=_NewCode.createScienceNewsArticles;window.createScientificDiagram=_NewCode.createScientificDiagram;window.createScientificMethodPractice=_NewCode.createScientificMethodPractice;window.createSocialScienceExperiment=_NewCode.createSocialScienceExperiment;window.createCulturalComparison=_NewCode.createCulturalComparison;window.createEthicalDilemma=_NewCode.createEthicalDilemma;window.createHistoricalWhatIf=_NewCode.createHistoricalWhatIf;window.createMapBasedActivity=_NewCode.createMapBasedActivity;window.createScientificIllustration=_NewCode.createScientificIllustration;window.createScienceVocabularyGame=_NewCode.createScienceVocabularyGame;window.createMultiSensoryVocabularyBuilder=_NewCode.createMultiSensoryVocabularyBuilder;window.createAdjustableText=_NewCode.createAdjustableText;window.createReadAloudFunctionality=_NewCode.createReadAloudFunctionality;window.createPhonicsGame=_NewCode.createPhonicsGame;window.createInteractivePhonicsGames=_NewCode.createInteractivePhonicsGames;window.createSpellingPractice=_NewCode.createSpellingPractice;window.createInteractiveVocabularyMaps=_NewCode.createInteractiveVocabularyMaps;window.createStorySequencing=_NewCode.createStorySequencing;window.createInteractiveReadingComprehension=_NewCode.createInteractiveReadingComprehension;window.createInteractiveMathGames=_NewCode.createInteractiveMathGames;window.createGuidedWritingPrompts=_NewCode.createGuidedWritingPrompts;window.createVisualStorytelling=_NewCode.createVisualStorytelling;window.createMultiSensoryReadingActivities=_NewCode.createMultiSensoryReadingActivities;window.createVisualMathProblemSolving=_NewCode.createVisualMathProblemSolving;window.createGuidedReadingExercises=_NewCode.createGuidedReadingExercises;window.createChooseYourOwnAdventure=_NewCode.createChooseYourOwnAdventure;window.createEducationalShortStory=_NewCode.createEducationalShortStory;window.createMathWordProblemExplanation=_NewCode.createMathWordProblemExplanation;window.createPoetryAnalysis=_NewCode.createPoetryAnalysis;window.teacherCategories=teacherCategories;window.spiritualCategories=spiritualCategories;window.contentCategories=contentCategories;window.categories=categories;window.createEducationalGoal=_EducationalGoals.createEducationalGoal;window.CreateWordSearchGame=_EducationalGames.CreateWordSearchGame;window.CreateJigsawPuzzleGame=_EducationalGames.CreateJigsawPuzzleGame;window.CreateHangmanGame=_EducationalGames.CreateHangmanGame;window.CreateWordleGame=_EducationalGames.CreateWordleGame;window.CreateAnagramsGame=_EducationalGames.CreateAnagramsGame;window.CreateCrosswordGame=_EducationalGames.CreateCrosswordGame;window.CreateSudokuGame=_EducationalGames.CreateSudokuGame;window.CreateBoggleGame=_EducationalGames.CreateBoggleGame;window.Create7LittleWordsGame=_EducationalGames.Create7LittleWordsGame;window.CreateKenKenGame=_EducationalGames.CreateKenKenGame;window.CreateCryptogramGame=_EducationalGames.CreateCryptogramGame;window.CreateSpellTowerGame=_EducationalGames.CreateSpellTowerGame;window.CreateTypeshiftGame=_EducationalGames.CreateTypeshiftGame;window.CreateCrypticCrosswordGame=_EducationalGames.CreateCrypticCrosswordGame;window.CreateBookwormAdventuresGame=_EducationalGames.CreateBookwormAdventuresGame;window.CreateBabbleRoyaleGame=_EducationalGames.CreateBabbleRoyaleGame;window.CreateKittyLetterGame=_EducationalGames.CreateKittyLetterGame;window.CreateLetterpressGame=_EducationalGames.CreateLetterpressGame;window.CreateSentenceUnscrambleGame=_EducationalGames.CreateSentenceUnscrambleGame;window.CreateOddOneOutGame=_EducationalGames.CreateOddOneOutGame;window.CreateCodingChallenge=_EducationalGames.CreateCodingChallenge;window.CreateDebateGame=_EducationalGames.CreateDebateGame;window.CreateClassificationGame=_EducationalGames.CreateClassificationGame;window.CreateSimulationGame=_EducationalGames.CreateSimulationGame;window.CreateStrategyGame=_EducationalGames.CreateStrategyGame;window.CreateCreativeWritingPrompt=_EducationalGames.CreateCreativeWritingPrompt;window.CreateInteractiveStorytelling=_EducationalGames.CreateInteractiveStorytelling;window.CreateTangramPuzzle=_EducationalGames.CreateTangramPuzzle;window.CreateTowerOfHanoiPuzzle=_EducationalGames.CreateTowerOfHanoiPuzzle;window.CreateWhatIfScenario=_EducationalGames.CreateWhatIfScenario;window.showAllFormatsContent=showAllFormatsContent;window.initializeUnifiedGoalMenu=initializeUnifiedGoalMenu;window.renderEducationalComponent=_Formats5000To.renderEducationalComponent;\n\n},{\"./BLL.js\":13,\"./BibleStudy.js\":14,\"./EducationalActivities.js\":15,\"./EducationalGames.js\":16,\"./EducationalGoals.js\":17,\"./Formats100To199.js\":18,\"./Formats1To99.js\":19,\"./Formats200To299.js\":20,\"./Formats300To399.js\":21,\"./Formats400To499.js\":22,\"./Formats5000To5100.js\":23,\"./Formats500To599.js\":24,\"./GlobalVariables.js\":25,\"./InstructionalStrategies.js\":26,\"./LessonPlans.js\":27,\"./NewCode.js\":28,\"./Sermons.js\":29,\"./SharedScript.js\":30,\"react\":8,\"react-dom/client\":4}]},{},[31])(31)\n});\n\n"],"file":"bundle.min.js"}