{ "version": 3, "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/tui-color-picker/dist/tui-color-picker.js", "../../../node_modules/@toast-ui/editor-plugin-color-syntax/dist/toastui-editor-plugin-color-syntax.js", "../../../node_modules/@toast-ui/editor-plugin-code-syntax-highlight/dist/toastui-editor-plugin-code-syntax-highlight-all.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/admin_controller.js", "../../javascript/controllers/dropdown_filter_controller.js", "../../javascript/controllers/dropdown_filter_form_controller.js", "../../javascript/controllers/form_controller.js", "../../../node_modules/@popperjs/core/lib/index.js", "../../../node_modules/@popperjs/core/lib/enums.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/math.js", "../../../node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../node_modules/@popperjs/core/lib/utils/within.js", "../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../node_modules/@popperjs/core/lib/utils/debounce.js", "../../../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../node_modules/@popperjs/core/lib/createPopper.js", "../../../node_modules/@popperjs/core/lib/popper-lite.js", "../../../node_modules/@popperjs/core/lib/popper.js", "../../../node_modules/bootstrap/js/src/dom/data.js", "../../../node_modules/bootstrap/js/src/util/index.js", "../../../node_modules/bootstrap/js/src/dom/event-handler.js", "../../../node_modules/bootstrap/js/src/dom/manipulator.js", "../../../node_modules/bootstrap/js/src/util/config.js", "../../../node_modules/bootstrap/js/src/base-component.js", "../../../node_modules/bootstrap/js/src/dom/selector-engine.js", "../../../node_modules/bootstrap/js/src/util/component-functions.js", "../../../node_modules/bootstrap/js/src/alert.js", "../../../node_modules/bootstrap/js/src/button.js", "../../../node_modules/bootstrap/js/src/util/swipe.js", "../../../node_modules/bootstrap/js/src/carousel.js", "../../../node_modules/bootstrap/js/src/collapse.js", "../../../node_modules/bootstrap/js/src/dropdown.js", "../../../node_modules/bootstrap/js/src/util/backdrop.js", "../../../node_modules/bootstrap/js/src/util/focustrap.js", "../../../node_modules/bootstrap/js/src/util/scrollbar.js", "../../../node_modules/bootstrap/js/src/modal.js", "../../../node_modules/bootstrap/js/src/offcanvas.js", "../../../node_modules/bootstrap/js/src/util/sanitizer.js", "../../../node_modules/bootstrap/js/src/util/template-factory.js", "../../../node_modules/bootstrap/js/src/tooltip.js", "../../../node_modules/bootstrap/js/src/popover.js", "../../../node_modules/bootstrap/js/src/scrollspy.js", "../../../node_modules/bootstrap/js/src/tab.js", "../../../node_modules/bootstrap/js/src/toast.js", "../../javascript/controllers/modal_controller.js", "../../javascript/controllers/new_category_modal_controller.js", "../../javascript/controllers/notification_controller.js", "../../../node_modules/orderedmap/dist/index.js", "../../../node_modules/prosemirror-model/dist/index.js", "../../../node_modules/prosemirror-transform/dist/index.js", "../../../node_modules/prosemirror-state/dist/index.js", "../../../node_modules/prosemirror-view/dist/index.js", "../../../node_modules/w3c-keyname/index.js", "../../../node_modules/prosemirror-keymap/dist/index.js", "../../../node_modules/prosemirror-commands/dist/index.js", "../../../node_modules/prosemirror-inputrules/dist/index.js", "../../../node_modules/rope-sequence/dist/index.js", "../../../node_modules/prosemirror-history/dist/index.js", "../../../node_modules/@toast-ui/editor/dist/esm/index.js", "../../javascript/controllers/post_form_controller.js", "../../javascript/lib/is_mobile.js", "../../javascript/controllers/post_preview_controller.js", "../../javascript/controllers/post_publish_widget_controller.js", "../../javascript/controllers/scroll_to_top_controller.js", "../../javascript/controllers/slide_animation_controller.js", "../../javascript/controllers/index.js", "../../javascript/custom_events/dispatch_event.js", "../../../node_modules/medium-zoom/dist/medium-zoom.esm.js", "../../javascript/lib/medium_zoom.js", "../../javascript/application.js"], "sourcesContent": ["export default {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordPing() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n this.recordPing()\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\",\n \"remote\": \"remote\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n if (this.isOpen()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true\n }\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return this.monitor.recordPing()\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n }\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n this.subprotocols = []\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n\n addSubProtocol(subprotocol) {\n this.subprotocols = [...this.subprotocols, subprotocol]\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n", "/*!\n * TOAST UI Color Picker\n * @version 2.2.8\n * @author NHN Cloud FE Development Team \n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"colorPicker\"] = factory();\n\telse\n\t\troot[\"tui\"] = root[\"tui\"] || {}, root[\"tui\"][\"colorPicker\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"dist\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 33);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Extend the target object from other objects.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * @module object\n */\n\n/**\n * Extend the target object from other objects.\n * @param {object} target - Object that will be extended\n * @param {...object} objects - Objects as sources\n * @returns {object} Extended object\n * @memberof module:object\n */\nfunction extend(target, objects) { // eslint-disable-line no-unused-vars\n var hasOwnProp = Object.prototype.hasOwnProperty;\n var source, prop, i, len;\n\n for (i = 1, len = arguments.length; i < len; i += 1) {\n source = arguments[i];\n for (prop in source) {\n if (hasOwnProp.call(source, prop)) {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = extend;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is an instance of Array or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is an instance of Array or not.\n * If the given variable is an instance of Array, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is array instance?\n * @memberof module:type\n */\nfunction isArray(obj) {\n return obj instanceof Array;\n}\n\nmodule.exports = isArray;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object(or element of array) which actually exist.\n * @author NHN FE Development Lab \n */\n\n\n\nvar isArray = __webpack_require__(1);\nvar forEachArray = __webpack_require__(6);\nvar forEachOwnProperties = __webpack_require__(7);\n\n/**\n * @module collection\n */\n\n/**\n * Execute the provided callback once for each property of object(or element of array) which actually exist.\n * If the object is Array-like object(ex-arguments object), It needs to transform to Array.(see 'ex2' of example).\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property(or The value of the element)\n * 2) The name of the property(or The index of the element)\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * var forEach = require('tui-code-snippet/collection/forEach'); // node, commonjs\n *\n * var sum = 0;\n *\n * forEach([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n *\n * // In case of Array-like object\n * var array = Array.prototype.slice.call(arrayLike); // change to array\n * forEach(array, function(value){\n * sum += value;\n * });\n */\nfunction forEach(obj, iteratee, context) {\n if (isArray(obj)) {\n forEachArray(obj, iteratee, context);\n } else {\n forEachOwnProperties(obj, iteratee, context);\n }\n}\n\nmodule.exports = forEach;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is undefined or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is undefined or not.\n * If the given variable is undefined, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is undefined?\n * @memberof module:type\n */\nfunction isUndefined(obj) {\n return obj === undefined; // eslint-disable-line no-undefined\n}\n\nmodule.exports = isUndefined;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Utils for ColorPicker component\n */\n\n\nvar browser = __webpack_require__(22);\n\nvar forEach = __webpack_require__(2);\n\nvar forEachArray = __webpack_require__(6);\n\nvar forEachOwnProperties = __webpack_require__(7);\n\nvar sendHostname = __webpack_require__(37);\n\nvar currentId = 0;\n/**\n * Utils\n * @namespace util\n * @ignore\n */\n\nvar utils = {\n /**\n * Get the number of properties in the object.\n * @param {Object} obj - object\n * @returns {number}\n */\n getLength: function (obj) {\n var length = 0;\n forEachOwnProperties(obj, function () {\n length += 1;\n });\n return length;\n },\n\n /**\n * Constructs a new array by executing the provided callback function.\n * @param {Object|Array} obj - object or array to be traversed\n * @param {function} iteratee - callback function\n * @param {Object} context - context of callback function\n * @returns {Array}\n */\n map: function (obj, iteratee, context) {\n var result = [];\n forEach(obj, function () {\n result.push(iteratee.apply(context || null, arguments));\n });\n return result;\n },\n\n /**\n * Construct a new array with elements that pass the test by the provided callback function.\n * @param {Array|NodeList|Arguments} arr - array to be traversed\n * @param {function} iteratee - callback function\n * @param {Object} context - context of callback function\n * @returns {Array}\n */\n filter: function (arr, iteratee, context) {\n var result = [];\n forEachArray(arr, function (elem) {\n if (iteratee.apply(context || null, arguments)) {\n result.push(elem);\n }\n });\n return result;\n },\n\n /**\n * Create an unique id for a color-picker instance.\n * @returns {number}\n */\n generateId: function () {\n currentId += 1;\n return currentId;\n },\n\n /**\n * True when browser is below IE8.\n */\n isOldBrowser: function () {\n return browser.msie && browser.version < 9;\n }(),\n\n /**\n * send host name\n * @ignore\n */\n sendHostName: function () {\n sendHostname('color-picker', 'UA-129987462-1');\n }\n};\nmodule.exports = utils;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable complexity */\n/**\n * @fileoverview Returns the first index at which a given element can be found in the array.\n * @author NHN FE Development Lab \n */\n\n\n\nvar isArray = __webpack_require__(1);\n\n/**\n * @module array\n */\n\n/**\n * Returns the first index at which a given element can be found in the array\n * from start index(default 0), or -1 if it is not present.\n * It compares searchElement to elements of the Array using strict equality\n * (the same method used by the ===, or triple-equals, operator).\n * @param {*} searchElement Element to locate in the array\n * @param {Array} array Array that will be traversed.\n * @param {number} startIndex Start index in array for searching (default 0)\n * @returns {number} the First index at which a given element, or -1 if it is not present\n * @memberof module:array\n * @example\n * var inArray = require('tui-code-snippet/array/inArray'); // node, commonjs\n *\n * var arr = ['one', 'two', 'three', 'four'];\n * var idx1 = inArray('one', arr, 3); // -1\n * var idx2 = inArray('one', arr); // 0\n */\nfunction inArray(searchElement, array, startIndex) {\n var i;\n var length;\n startIndex = startIndex || 0;\n\n if (!isArray(array)) {\n return -1;\n }\n\n if (Array.prototype.indexOf) {\n return Array.prototype.indexOf.call(array, searchElement, startIndex);\n }\n\n length = array.length;\n for (i = startIndex; startIndex >= 0 && i < length; i += 1) {\n if (array[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n}\n\nmodule.exports = inArray;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each element present in the array(or Array-like object) in ascending order.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Execute the provided callback once for each element present\n * in the array(or Array-like object) in ascending order.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the element\n * 2) The index of the element\n * 3) The array(or Array-like object) being traversed\n * @param {Array|Arguments|NodeList} arr The array(or Array-like object) that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * var forEachArray = require('tui-code-snippet/collection/forEachArray'); // node, commonjs\n *\n * var sum = 0;\n *\n * forEachArray([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachArray(arr, iteratee, context) {\n var index = 0;\n var len = arr.length;\n\n context = context || null;\n\n for (; index < len; index += 1) {\n if (iteratee.call(context, arr[index], index, arr) === false) {\n break;\n }\n }\n}\n\nmodule.exports = forEachArray;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object which actually exist.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Execute the provided callback once for each property of object which actually exist.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property\n * 2) The name of the property\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * var forEachOwnProperties = require('tui-code-snippet/collection/forEachOwnProperties'); // node, commonjs\n *\n * var sum = 0;\n *\n * forEachOwnProperties({a:1,b:2,c:3}, function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachOwnProperties(obj, iteratee, context) {\n var key;\n\n context = context || null;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (iteratee.call(context, obj[key], key, obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = forEachOwnProperties;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview The base class of views.\n */\n\n\nvar addClass = __webpack_require__(39);\n\nvar isFunction = __webpack_require__(13);\n\nvar isNumber = __webpack_require__(41);\n\nvar isUndefined = __webpack_require__(3);\n\nvar domUtil = __webpack_require__(9);\n\nvar Collection = __webpack_require__(19);\n\nvar util = __webpack_require__(4);\n/**\n * Base class of views.\n *\n * All views create own container element inside supplied container element.\n * @constructor\n * @param {options} options The object for describe view's specs.\n * @param {HTMLElement} container Default container element for view. you can use this element for this.container syntax.\n * @ignore\n */\n\n\nfunction View(options, container) {\n var id = util.generateId();\n options = options || {};\n\n if (isUndefined(container)) {\n container = domUtil.appendHTMLElement('div');\n }\n\n addClass(container, 'tui-view-' + id);\n /**\n * unique id\n * @type {number}\n */\n\n this.id = id;\n /**\n * base element of view.\n * @type {HTMLDIVElement}\n */\n\n this.container = container;\n /**\n * child views.\n * @type {Collection}\n */\n\n this.childs = new Collection(function (view) {\n return view.id;\n });\n /**\n * parent view instance.\n * @type {View}\n */\n\n this.parent = null;\n}\n/**\n * Add child views.\n * @param {View} view The view instance to add.\n * @param {function} [fn] Function for invoke before add. parent view class is supplied first arguments.\n */\n\n\nView.prototype.addChild = function (view, fn) {\n if (fn) {\n fn.call(view, this);\n } // add parent view\n\n\n view.parent = this;\n this.childs.add(view);\n};\n/**\n * Remove added child view.\n * @param {(number|View)} id View id or instance itself to remove.\n * @param {function} [fn] Function for invoke before remove. parent view class is supplied first arguments.\n */\n\n\nView.prototype.removeChild = function (id, fn) {\n var view = isNumber(id) ? this.childs.items[id] : id;\n\n if (fn) {\n fn.call(view, this);\n }\n\n this.childs.remove(view.id);\n};\n/**\n * Render view recursively.\n */\n\n\nView.prototype.render = function () {\n this.childs.each(function (childView) {\n childView.render();\n });\n};\n/**\n * Invoke function recursively.\n * @param {function} fn - function to invoke child view recursively\n * @param {boolean} [skipThis=false] - set true then skip invoke with this(root) view.\n */\n\n\nView.prototype.recursive = function (fn, skipThis) {\n if (!isFunction(fn)) {\n return;\n }\n\n if (!skipThis) {\n fn(this);\n }\n\n this.childs.each(function (childView) {\n childView.recursive(fn);\n });\n};\n/**\n * Resize view recursively to parent.\n */\n\n\nView.prototype.resize = function () {\n var args = Array.prototype.slice.call(arguments);\n var parent = this.parent;\n\n while (parent) {\n if (isFunction(parent._onResize)) {\n parent._onResize.apply(parent, args);\n }\n\n parent = parent.parent;\n }\n};\n/**\n * Invoking method before destroying.\n */\n\n\nView.prototype._beforeDestroy = function () {};\n/**\n * Clear properties\n */\n\n\nView.prototype._destroy = function () {\n this._beforeDestroy();\n\n this.container.innerHTML = '';\n this.id = this.parent = this.childs = this.container = null;\n};\n/**\n * Destroy child view recursively.\n * @param {boolean} isChildView - Whether it is the child view or not\n */\n\n\nView.prototype.destroy = function (isChildView) {\n if (this.childs) {\n this.childs.each(function (childView) {\n childView.destroy(true);\n\n childView._destroy();\n });\n this.childs.clear();\n }\n\n if (isChildView) {\n return;\n }\n\n this._destroy();\n};\n/**\n * Calculate view's container element bound.\n * @returns {object} The bound of container element.\n */\n\n\nView.prototype.getViewBound = function () {\n var bound = this.container.getBoundingClientRect();\n return {\n x: bound.left,\n y: bound.top,\n width: bound.right - bound.left,\n height: bound.bottom - bound.top\n };\n};\n\nmodule.exports = View;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Utility modules for manipulate DOM elements.\n */\n\n\nvar domUtil = {\n /**\n * Create DOM element and return it.\n * @param {string} tagName Tag name to append.\n * @param {HTMLElement} [container] HTML element will be parent to created element.\n * if not supplied, will use **document.body**\n * @param {string} [className] Design class names to appling created element.\n * @returns {HTMLElement} HTML element created.\n */\n appendHTMLElement: function (tagName, container, className) {\n var el = document.createElement(tagName);\n el.className = className || '';\n\n if (container) {\n container.appendChild(el);\n } else {\n document.body.appendChild(el);\n }\n\n return el;\n }\n};\nmodule.exports = domUtil;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview This module provides some functions for custom events. And it is implemented in the observer design pattern.\n * @author NHN FE Development Lab \n */\n\n\n\nvar extend = __webpack_require__(0);\nvar isExisty = __webpack_require__(20);\nvar isString = __webpack_require__(11);\nvar isObject = __webpack_require__(21);\nvar isArray = __webpack_require__(1);\nvar isFunction = __webpack_require__(13);\nvar forEach = __webpack_require__(2);\n\nvar R_EVENTNAME_SPLIT = /\\s+/g;\n\n/**\n * @class\n * @example\n * // node, commonjs\n * var CustomEvents = require('tui-code-snippet/customEvents/customEvents');\n */\nfunction CustomEvents() {\n /**\n * @type {HandlerItem[]}\n */\n this.events = null;\n\n /**\n * only for checking specific context event was binded\n * @type {object[]}\n */\n this.contexts = null;\n}\n\n/**\n * Mixin custom events feature to specific constructor\n * @param {function} func - constructor\n * @example\n * var CustomEvents = require('tui-code-snippet/customEvents/customEvents'); // node, commonjs\n *\n * var model;\n * function Model() {\n * this.name = '';\n * }\n * CustomEvents.mixin(Model);\n *\n * model = new Model();\n * model.on('change', function() { this.name = 'model'; }, this);\n * model.fire('change');\n * alert(model.name); // 'model';\n */\nCustomEvents.mixin = function(func) {\n extend(func.prototype, CustomEvents.prototype);\n};\n\n/**\n * Get HandlerItem object\n * @param {function} handler - handler function\n * @param {object} [context] - context for handler\n * @returns {HandlerItem} HandlerItem object\n * @private\n */\nCustomEvents.prototype._getHandlerItem = function(handler, context) {\n var item = {handler: handler};\n\n if (context) {\n item.context = context;\n }\n\n return item;\n};\n\n/**\n * Get event object safely\n * @param {string} [eventName] - create sub event map if not exist.\n * @returns {(object|array)} event object. if you supplied `eventName`\n * parameter then make new array and return it\n * @private\n */\nCustomEvents.prototype._safeEvent = function(eventName) {\n var events = this.events;\n var byName;\n\n if (!events) {\n events = this.events = {};\n }\n\n if (eventName) {\n byName = events[eventName];\n\n if (!byName) {\n byName = [];\n events[eventName] = byName;\n }\n\n events = byName;\n }\n\n return events;\n};\n\n/**\n * Get context array safely\n * @returns {array} context array\n * @private\n */\nCustomEvents.prototype._safeContext = function() {\n var context = this.contexts;\n\n if (!context) {\n context = this.contexts = [];\n }\n\n return context;\n};\n\n/**\n * Get index of context\n * @param {object} ctx - context that used for bind custom event\n * @returns {number} index of context\n * @private\n */\nCustomEvents.prototype._indexOfContext = function(ctx) {\n var context = this._safeContext();\n var index = 0;\n\n while (context[index]) {\n if (ctx === context[index][0]) {\n return index;\n }\n\n index += 1;\n }\n\n return -1;\n};\n\n/**\n * Memorize supplied context for recognize supplied object is context or\n * name: handler pair object when off()\n * @param {object} ctx - context object to memorize\n * @private\n */\nCustomEvents.prototype._memorizeContext = function(ctx) {\n var context, index;\n\n if (!isExisty(ctx)) {\n return;\n }\n\n context = this._safeContext();\n index = this._indexOfContext(ctx);\n\n if (index > -1) {\n context[index][1] += 1;\n } else {\n context.push([ctx, 1]);\n }\n};\n\n/**\n * Forget supplied context object\n * @param {object} ctx - context object to forget\n * @private\n */\nCustomEvents.prototype._forgetContext = function(ctx) {\n var context, contextIndex;\n\n if (!isExisty(ctx)) {\n return;\n }\n\n context = this._safeContext();\n contextIndex = this._indexOfContext(ctx);\n\n if (contextIndex > -1) {\n context[contextIndex][1] -= 1;\n\n if (context[contextIndex][1] <= 0) {\n context.splice(contextIndex, 1);\n }\n }\n};\n\n/**\n * Bind event handler\n * @param {(string|{name:string, handler:function})} eventName - custom\n * event name or an object {eventName: handler}\n * @param {(function|object)} [handler] - handler function or context\n * @param {object} [context] - context for binding\n * @private\n */\nCustomEvents.prototype._bindEvent = function(eventName, handler, context) {\n var events = this._safeEvent(eventName);\n this._memorizeContext(context);\n events.push(this._getHandlerItem(handler, context));\n};\n\n/**\n * Bind event handlers\n * @param {(string|{name:string, handler:function})} eventName - custom\n * event name or an object {eventName: handler}\n * @param {(function|object)} [handler] - handler function or context\n * @param {object} [context] - context for binding\n * //-- #1. Get Module --//\n * var CustomEvents = require('tui-code-snippet/customEvents/customEvents'); // node, commonjs\n *\n * //-- #2. Use method --//\n * // # 2.1 Basic Usage\n * CustomEvents.on('onload', handler);\n *\n * // # 2.2 With context\n * CustomEvents.on('onload', handler, myObj);\n *\n * // # 2.3 Bind by object that name, handler pairs\n * CustomEvents.on({\n * 'play': handler,\n * 'pause': handler2\n * });\n *\n * // # 2.4 Bind by object that name, handler pairs with context object\n * CustomEvents.on({\n * 'play': handler\n * }, myObj);\n */\nCustomEvents.prototype.on = function(eventName, handler, context) {\n var self = this;\n\n if (isString(eventName)) {\n // [syntax 1, 2]\n eventName = eventName.split(R_EVENTNAME_SPLIT);\n forEach(eventName, function(name) {\n self._bindEvent(name, handler, context);\n });\n } else if (isObject(eventName)) {\n // [syntax 3, 4]\n context = handler;\n forEach(eventName, function(func, name) {\n self.on(name, func, context);\n });\n }\n};\n\n/**\n * Bind one-shot event handlers\n * @param {(string|{name:string,handler:function})} eventName - custom\n * event name or an object {eventName: handler}\n * @param {function|object} [handler] - handler function or context\n * @param {object} [context] - context for binding\n */\nCustomEvents.prototype.once = function(eventName, handler, context) {\n var self = this;\n\n if (isObject(eventName)) {\n context = handler;\n forEach(eventName, function(func, name) {\n self.once(name, func, context);\n });\n\n return;\n }\n\n function onceHandler() { // eslint-disable-line require-jsdoc\n handler.apply(context, arguments);\n self.off(eventName, onceHandler, context);\n }\n\n this.on(eventName, onceHandler, context);\n};\n\n/**\n * Splice supplied array by callback result\n * @param {array} arr - array to splice\n * @param {function} predicate - function return boolean\n * @private\n */\nCustomEvents.prototype._spliceMatches = function(arr, predicate) {\n var i = 0;\n var len;\n\n if (!isArray(arr)) {\n return;\n }\n\n for (len = arr.length; i < len; i += 1) {\n if (predicate(arr[i]) === true) {\n arr.splice(i, 1);\n len -= 1;\n i -= 1;\n }\n }\n};\n\n/**\n * Get matcher for unbind specific handler events\n * @param {function} handler - handler function\n * @returns {function} handler matcher\n * @private\n */\nCustomEvents.prototype._matchHandler = function(handler) {\n var self = this;\n\n return function(item) {\n var needRemove = handler === item.handler;\n\n if (needRemove) {\n self._forgetContext(item.context);\n }\n\n return needRemove;\n };\n};\n\n/**\n * Get matcher for unbind specific context events\n * @param {object} context - context\n * @returns {function} object matcher\n * @private\n */\nCustomEvents.prototype._matchContext = function(context) {\n var self = this;\n\n return function(item) {\n var needRemove = context === item.context;\n\n if (needRemove) {\n self._forgetContext(item.context);\n }\n\n return needRemove;\n };\n};\n\n/**\n * Get matcher for unbind specific hander, context pair events\n * @param {function} handler - handler function\n * @param {object} context - context\n * @returns {function} handler, context matcher\n * @private\n */\nCustomEvents.prototype._matchHandlerAndContext = function(handler, context) {\n var self = this;\n\n return function(item) {\n var matchHandler = (handler === item.handler);\n var matchContext = (context === item.context);\n var needRemove = (matchHandler && matchContext);\n\n if (needRemove) {\n self._forgetContext(item.context);\n }\n\n return needRemove;\n };\n};\n\n/**\n * Unbind event by event name\n * @param {string} eventName - custom event name to unbind\n * @param {function} [handler] - handler function\n * @private\n */\nCustomEvents.prototype._offByEventName = function(eventName, handler) {\n var self = this;\n var andByHandler = isFunction(handler);\n var matchHandler = self._matchHandler(handler);\n\n eventName = eventName.split(R_EVENTNAME_SPLIT);\n\n forEach(eventName, function(name) {\n var handlerItems = self._safeEvent(name);\n\n if (andByHandler) {\n self._spliceMatches(handlerItems, matchHandler);\n } else {\n forEach(handlerItems, function(item) {\n self._forgetContext(item.context);\n });\n\n self.events[name] = [];\n }\n });\n};\n\n/**\n * Unbind event by handler function\n * @param {function} handler - handler function\n * @private\n */\nCustomEvents.prototype._offByHandler = function(handler) {\n var self = this;\n var matchHandler = this._matchHandler(handler);\n\n forEach(this._safeEvent(), function(handlerItems) {\n self._spliceMatches(handlerItems, matchHandler);\n });\n};\n\n/**\n * Unbind event by object(name: handler pair object or context object)\n * @param {object} obj - context or {name: handler} pair object\n * @param {function} handler - handler function\n * @private\n */\nCustomEvents.prototype._offByObject = function(obj, handler) {\n var self = this;\n var matchFunc;\n\n if (this._indexOfContext(obj) < 0) {\n forEach(obj, function(func, name) {\n self.off(name, func);\n });\n } else if (isString(handler)) {\n matchFunc = this._matchContext(obj);\n\n self._spliceMatches(this._safeEvent(handler), matchFunc);\n } else if (isFunction(handler)) {\n matchFunc = this._matchHandlerAndContext(handler, obj);\n\n forEach(this._safeEvent(), function(handlerItems) {\n self._spliceMatches(handlerItems, matchFunc);\n });\n } else {\n matchFunc = this._matchContext(obj);\n\n forEach(this._safeEvent(), function(handlerItems) {\n self._spliceMatches(handlerItems, matchFunc);\n });\n }\n};\n\n/**\n * Unbind custom events\n * @param {(string|object|function)} eventName - event name or context or\n * {name: handler} pair object or handler function\n * @param {(function)} handler - handler function\n * @example\n * //-- #1. Get Module --//\n * var CustomEvents = require('tui-code-snippet/customEvents/customEvents'); // node, commonjs\n *\n * //-- #2. Use method --//\n * // # 2.1 off by event name\n * CustomEvents.off('onload');\n *\n * // # 2.2 off by event name and handler\n * CustomEvents.off('play', handler);\n *\n * // # 2.3 off by handler\n * CustomEvents.off(handler);\n *\n * // # 2.4 off by context\n * CustomEvents.off(myObj);\n *\n * // # 2.5 off by context and handler\n * CustomEvents.off(myObj, handler);\n *\n * // # 2.6 off by context and event name\n * CustomEvents.off(myObj, 'onload');\n *\n * // # 2.7 off by an Object. that is {eventName: handler}\n * CustomEvents.off({\n * 'play': handler,\n * 'pause': handler2\n * });\n *\n * // # 2.8 off the all events\n * CustomEvents.off();\n */\nCustomEvents.prototype.off = function(eventName, handler) {\n if (isString(eventName)) {\n // [syntax 1, 2]\n this._offByEventName(eventName, handler);\n } else if (!arguments.length) {\n // [syntax 8]\n this.events = {};\n this.contexts = [];\n } else if (isFunction(eventName)) {\n // [syntax 3]\n this._offByHandler(eventName);\n } else if (isObject(eventName)) {\n // [syntax 4, 5, 6]\n this._offByObject(eventName, handler);\n }\n};\n\n/**\n * Fire custom event\n * @param {string} eventName - name of custom event\n */\nCustomEvents.prototype.fire = function(eventName) { // eslint-disable-line\n this.invoke.apply(this, arguments);\n};\n\n/**\n * Fire a event and returns the result of operation 'boolean AND' with all\n * listener's results.\n *\n * So, It is different from {@link CustomEvents#fire}.\n *\n * In service code, use this as a before event in component level usually\n * for notifying that the event is cancelable.\n * @param {string} eventName - Custom event name\n * @param {...*} data - Data for event\n * @returns {boolean} The result of operation 'boolean AND'\n * @example\n * var map = new Map();\n * map.on({\n * 'beforeZoom': function() {\n * // It should cancel the 'zoom' event by some conditions.\n * if (that.disabled && this.getState()) {\n * return false;\n * }\n * return true;\n * }\n * });\n *\n * if (this.invoke('beforeZoom')) { // check the result of 'beforeZoom'\n * // if true,\n * // doSomething\n * }\n */\nCustomEvents.prototype.invoke = function(eventName) {\n var events, args, index, item;\n\n if (!this.hasListener(eventName)) {\n return true;\n }\n\n events = this._safeEvent(eventName);\n args = Array.prototype.slice.call(arguments, 1);\n index = 0;\n\n while (events[index]) {\n item = events[index];\n\n if (item.handler.apply(item.context, args) === false) {\n return false;\n }\n\n index += 1;\n }\n\n return true;\n};\n\n/**\n * Return whether at least one of the handlers is registered in the given\n * event name.\n * @param {string} eventName - Custom event name\n * @returns {boolean} Is there at least one handler in event name?\n */\nCustomEvents.prototype.hasListener = function(eventName) {\n return this.getListenerLength(eventName) > 0;\n};\n\n/**\n * Return a count of events registered.\n * @param {string} eventName - Custom event name\n * @returns {number} number of event\n */\nCustomEvents.prototype.getListenerLength = function(eventName) {\n var events = this._safeEvent(eventName);\n\n return events.length;\n};\n\nmodule.exports = CustomEvents;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a string or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is a string or not.\n * If the given variable is a string, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is string?\n * @memberof module:type\n */\nfunction isString(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nmodule.exports = isString;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Utility methods to manipulate colors\n */\n\n\nvar hexRX = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i;\nvar colorUtil = {\n /**\n * pad left zero characters.\n * @param {number} number number value to pad zero.\n * @param {number} length pad length to want.\n * @returns {string} padded string.\n */\n leadingZero: function (number, length) {\n var zero = '';\n var i = 0;\n\n if ((number + '').length > length) {\n return number + '';\n }\n\n for (; i < length - 1; i += 1) {\n zero += '0';\n }\n\n return (zero + number).slice(length * -1);\n },\n\n /**\n * Check validate of hex string value is RGB\n * @param {string} str - rgb hex string\n * @returns {boolean} return true when supplied str is valid RGB hex string\n */\n isValidRGB: function (str) {\n return hexRX.test(str);\n },\n // @license RGB <-> HSV conversion utilities based off of http://www.cs.rit.edu/~ncs/color/t_convert.html\n\n /**\n * Convert color hex string to rgb number array\n * @param {string} hexStr - hex string\n * @returns {number[]} rgb numbers\n */\n hexToRGB: function (hexStr) {\n var r, g, b;\n\n if (!colorUtil.isValidRGB(hexStr)) {\n return false;\n }\n\n hexStr = hexStr.substring(1);\n r = parseInt(hexStr.substr(0, 2), 16);\n g = parseInt(hexStr.substr(2, 2), 16);\n b = parseInt(hexStr.substr(4, 2), 16);\n return [r, g, b];\n },\n\n /**\n * Convert rgb number to hex string\n * @param {number} r - red\n * @param {number} g - green\n * @param {number} b - blue\n * @returns {string|boolean} return false when supplied rgb number is not valid. otherwise, converted hex string\n */\n rgbToHEX: function (r, g, b) {\n var hexStr = '#' + colorUtil.leadingZero(r.toString(16), 2) + colorUtil.leadingZero(g.toString(16), 2) + colorUtil.leadingZero(b.toString(16), 2);\n\n if (colorUtil.isValidRGB(hexStr)) {\n return hexStr;\n }\n\n return false;\n },\n\n /**\n * Convert rgb number to HSV value\n * @param {number} r - red\n * @param {number} g - green\n * @param {number} b - blue\n * @returns {number[]} hsv value\n */\n rgbToHSV: function (r, g, b) {\n var max, min, h, s, v, d;\n r /= 255;\n g /= 255;\n b /= 255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n v = max;\n d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n // no default\n }\n\n h /= 6;\n }\n\n return [Math.round(h * 360), Math.round(s * 100), Math.round(v * 100)];\n },\n\n /**\n * Convert HSV number to RGB\n * @param {number} h - hue\n * @param {number} s - saturation\n * @param {number} v - value\n * @returns {number[]} rgb value\n */\n hsvToRGB: function (h, s, v) {\n var r, g, b;\n var i;\n var f, p, q, t;\n h = Math.max(0, Math.min(360, h));\n s = Math.max(0, Math.min(100, s));\n v = Math.max(0, Math.min(100, v));\n s /= 100;\n v /= 100;\n\n if (s === 0) {\n // Achromatic (grey)\n r = g = b = v;\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n }\n\n h /= 60; // sector 0 to 5\n\n i = Math.floor(h);\n f = h - i; // factorial part of h\n\n p = v * (1 - s);\n q = v * (1 - s * f);\n t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n default:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n }\n};\nmodule.exports = colorUtil;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a function or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is a function or not.\n * If the given variable is a function, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is function?\n * @memberof module:type\n */\nfunction isFunction(obj) {\n return obj instanceof Function;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Bind DOM events\n * @author NHN FE Development Lab \n */\n\n\n\nvar isString = __webpack_require__(11);\nvar forEach = __webpack_require__(2);\n\nvar safeEvent = __webpack_require__(26);\n\n/**\n * Bind DOM events.\n * @param {HTMLElement} element - element to bind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {(function|object)} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @memberof module:domEvent\n * @example\n * var div = document.querySelector('div');\n * \n * // Bind one event to an element.\n * on(div, 'click', toggle);\n * \n * // Bind multiple events with a same handler to multiple elements at once.\n * // Use event names splitted by a space.\n * on(div, 'mouseenter mouseleave', changeColor);\n * \n * // Bind multiple events with different handlers to an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * on(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Set a context for handler method.\n * var name = 'global';\n * var repository = {name: 'CodeSnippet'};\n * on(div, 'drag', function() {\n * console.log(this.name);\n * }, repository);\n * // Result when you drag a div: \"CodeSnippet\"\n */\nfunction on(element, types, handler, context) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n bindEvent(element, type, handler, context);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n bindEvent(element, type, func, handler);\n });\n}\n\n/**\n * Bind DOM events\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @private\n */\nfunction bindEvent(element, type, handler, context) {\n /**\n * Event handler\n * @param {Event} e - event object\n */\n function eventHandler(e) {\n handler.call(context || element, e || window.event);\n }\n\n if ('addEventListener' in element) {\n element.addEventListener(type, eventHandler);\n } else if ('attachEvent' in element) {\n element.attachEvent('on' + type, eventHandler);\n }\n memorizeHandler(element, type, handler, eventHandler);\n}\n\n/**\n * Memorize DOM event handler for unbinding.\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function that user passed at on() use\n * @param {function} wrappedHandler - handler function that wrapped by domevent for implementing some features\n * @private\n */\nfunction memorizeHandler(element, type, handler, wrappedHandler) {\n var events = safeEvent(element, type);\n var existInEvents = false;\n\n forEach(events, function(obj) {\n if (obj.handler === handler) {\n existInEvents = true;\n\n return false;\n }\n\n return true;\n });\n\n if (!existInEvents) {\n events.push({\n handler: handler,\n wrappedHandler: wrappedHandler\n });\n }\n}\n\nmodule.exports = on;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Prevent default action\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Prevent default action\n * @param {Event} e - event object\n * @memberof module:domEvent\n */\nfunction preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n\n return;\n }\n\n e.returnValue = false;\n}\n\nmodule.exports = preventDefault;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Convert kebab-case\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Convert kebab-case\n * @param {string} key - string to be converted to Kebab-case\n * @private\n */\nfunction convertToKebabCase(key) {\n return key.replace(/([A-Z])/g, function(match) {\n return '-' + match.toLowerCase();\n });\n}\n\nmodule.exports = convertToKebabCase;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Unbind DOM events\n * @author NHN FE Development Lab \n */\n\n\n\nvar isString = __webpack_require__(11);\nvar forEach = __webpack_require__(2);\n\nvar safeEvent = __webpack_require__(26);\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {function} [handler] - handler function\n * @memberof module:domEvent\n * @example\n * // Following the example of domEvent#on\n * \n * // Unbind one event from an element.\n * off(div, 'click', toggle);\n * \n * // Unbind multiple events with a same handler from multiple elements at once.\n * // Use event names splitted by a space.\n * off(element, 'mouseenter mouseleave', changeColor);\n * \n * // Unbind multiple events with different handlers from an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * off(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Unbind events without handlers.\n * off(div, 'drag');\n */\nfunction off(element, types, handler) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n unbindEvent(element, type, handler);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n unbindEvent(element, type, func);\n });\n}\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {string} type - events name\n * @param {function} [handler] - handler function\n * @private\n */\nfunction unbindEvent(element, type, handler) {\n var events = safeEvent(element, type);\n var index;\n\n if (!handler) {\n forEach(events, function(item) {\n removeHandler(element, type, item.wrappedHandler);\n });\n events.splice(0, events.length);\n } else {\n forEach(events, function(item, idx) {\n if (handler === item.handler) {\n removeHandler(element, type, item.wrappedHandler);\n index = idx;\n\n return false;\n }\n\n return true;\n });\n events.splice(index, 1);\n }\n}\n\n/**\n * Remove an event handler\n * @param {HTMLElement} element - An element to remove an event\n * @param {string} type - event type\n * @param {function} handler - event handler\n * @private\n */\nfunction removeHandler(element, type, handler) {\n if ('removeEventListener' in element) {\n element.removeEventListener(type, handler);\n } else if ('detachEvent' in element) {\n element.detachEvent('on' + type, handler);\n }\n}\n\nmodule.exports = off;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Provide a simple inheritance in prototype-oriented.\n * @author NHN FE Development Lab \n */\n\n\n\nvar createObject = __webpack_require__(50);\n\n/**\n * Provide a simple inheritance in prototype-oriented.\n * Caution :\n * Don't overwrite the prototype of child constructor.\n *\n * @param {function} subType Child constructor\n * @param {function} superType Parent constructor\n * @memberof module:inheritance\n * @example\n * var inherit = require('tui-code-snippet/inheritance/inherit'); // node, commonjs\n *\n * // Parent constructor\n * function Animal(leg) {\n * this.leg = leg;\n * }\n * Animal.prototype.growl = function() {\n * // ...\n * };\n *\n * // Child constructor\n * function Person(name) {\n * this.name = name;\n * }\n *\n * // Inheritance\n * inherit(Person, Animal);\n *\n * // After this inheritance, please use only the extending of property.\n * // Do not overwrite prototype.\n * Person.prototype.walk = function(direction) {\n * // ...\n * };\n */\nfunction inherit(subType, superType) {\n var prototype = createObject(superType.prototype);\n prototype.constructor = subType;\n subType.prototype = prototype;\n}\n\nmodule.exports = inherit;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Common collections.\n */\n\n\nvar forEachArray = __webpack_require__(6);\n\nvar forEachOwnProperties = __webpack_require__(7);\n\nvar extend = __webpack_require__(0);\n\nvar isArray = __webpack_require__(1);\n\nvar isExisty = __webpack_require__(20);\n\nvar isFunction = __webpack_require__(13);\n\nvar isObject = __webpack_require__(21);\n\nvar util = __webpack_require__(4);\n\nvar slice = Array.prototype.slice;\n/**\n * Common collection.\n *\n * It need function for get model's unique id.\n *\n * if the function is not supplied then it use default function {@link Collection#getItemID}\n * @constructor\n * @param {function} [getItemIDFn] function for get model's id.\n * @ignore\n */\n\nfunction Collection(getItemIDFn) {\n /**\n * @type {object.}\n */\n this.items = {};\n /**\n * @type {number}\n */\n\n this.length = 0;\n\n if (isFunction(getItemIDFn)) {\n /**\n * @type {function}\n */\n this.getItemID = getItemIDFn;\n }\n}\n/**********\n * static props\n **********/\n\n/**\n * Combind supplied function filters and condition.\n * @param {...function} filters - function filters\n * @returns {function} combined filter\n */\n\n\nCollection.and = function (filters) {\n var cnt;\n filters = slice.call(arguments);\n cnt = filters.length;\n return function (item) {\n var i = 0;\n\n for (; i < cnt; i += 1) {\n if (!filters[i].call(null, item)) {\n return false;\n }\n }\n\n return true;\n };\n};\n/**\n * Combine multiple function filters with OR clause.\n * @param {...function} filters - function filters\n * @returns {function} combined filter\n */\n\n\nCollection.or = function (filters) {\n var cnt;\n filters = slice.call(arguments);\n cnt = filters.length;\n return function (item) {\n var i = 1;\n var result = filters[0].call(null, item);\n\n for (; i < cnt; i += 1) {\n result = result || filters[i].call(null, item);\n }\n\n return result;\n };\n};\n/**\n * Merge several collections.\n *\n * You can\\'t merge collections different _getEventID functions. Take case of use.\n * @param {...Collection} collections collection arguments to merge\n * @returns {Collection} merged collection.\n */\n\n\nCollection.merge = function (firstCollection) {\n var newItems = {};\n var merged = new Collection(firstCollection.getItemID);\n forEachArray(arguments, function (col) {\n extend(newItems, col.items);\n });\n merged.items = newItems;\n merged.length = util.getLength(merged.items);\n return merged;\n};\n/**********\n * prototype props\n **********/\n\n/**\n * get model's unique id.\n * @param {object} item model instance.\n * @returns {number} model unique id.\n */\n\n\nCollection.prototype.getItemID = function (item) {\n return item._id + '';\n};\n/**\n * add models.\n * @param {...*} item models to add this collection.\n */\n\n\nCollection.prototype.add = function (item) {\n var id, ownItems;\n\n if (arguments.length > 1) {\n forEachArray(slice.call(arguments), function (o) {\n this.add(o);\n }, this);\n return;\n }\n\n id = this.getItemID(item);\n ownItems = this.items;\n\n if (!ownItems[id]) {\n this.length += 1;\n }\n\n ownItems[id] = item;\n};\n/**\n * remove models.\n * @param {...(object|string|number)} id model instance or unique id to delete.\n * @returns {array} deleted model list.\n */\n\n\nCollection.prototype.remove = function (id) {\n var removed = [];\n var ownItems, itemToRemove;\n\n if (!this.length) {\n return removed;\n }\n\n if (arguments.length > 1) {\n removed = util.map(slice.call(arguments), function (id) {\n return this.remove(id);\n }, this);\n return removed;\n }\n\n ownItems = this.items;\n\n if (isObject(id)) {\n id = this.getItemID(id);\n }\n\n if (!ownItems[id]) {\n return removed;\n }\n\n this.length -= 1;\n itemToRemove = ownItems[id];\n delete ownItems[id];\n return itemToRemove;\n};\n/**\n * remove all models in collection.\n */\n\n\nCollection.prototype.clear = function () {\n this.items = {};\n this.length = 0;\n};\n/**\n * check collection has specific model.\n * @param {(object|string|number|function)} id model instance or id or filter function to check\n * @returns {boolean} is has model?\n */\n\n\nCollection.prototype.has = function (id) {\n var isFilter, has;\n\n if (!this.length) {\n return false;\n }\n\n isFilter = isFunction(id);\n has = false;\n\n if (isFilter) {\n this.each(function (item) {\n if (id(item) === true) {\n has = true;\n return false;\n }\n\n return true;\n });\n } else {\n id = isObject(id) ? this.getItemID(id) : id;\n has = isExisty(this.items[id]);\n }\n\n return has;\n};\n/**\n * invoke callback when model exist in collection.\n * @param {(string|number)} id model unique id.\n * @param {function} fn the callback.\n * @param {*} [context] callback context.\n */\n\n\nCollection.prototype.doWhenHas = function (id, fn, context) {\n var item = this.items[id];\n\n if (!isExisty(item)) {\n return;\n }\n\n fn.call(context || this, item);\n};\n/**\n * Search model. and return new collection.\n * @param {function} filter filter function.\n * @returns {Collection} new collection with filtered models.\n * @example\n * collection.find(function(item) {\n * return item.edited === true;\n * });\n *\n * function filter1(item) {\n * return item.edited === false;\n * }\n *\n * function filter2(item) {\n * return item.disabled === false;\n * }\n *\n * collection.find(Collection.and(filter1, filter2));\n *\n * collection.find(Collection.or(filter1, filter2));\n */\n\n\nCollection.prototype.find = function (filter) {\n var result = new Collection();\n\n if (this.hasOwnProperty('getItemID')) {\n result.getItemID = this.getItemID;\n }\n\n this.each(function (item) {\n if (filter(item) === true) {\n result.add(item);\n }\n });\n return result;\n};\n/**\n * Group element by specific key values.\n *\n * if key parameter is function then invoke it and use returned value.\n * @param {(string|number|function|array)} key key property or getter function. if string[] supplied, create each collection before grouping.\n * @param {function} [groupFunc] - function that return each group's key\n * @returns {object.} grouped object\n * @example\n *\n * // pass `string`, `number`, `boolean` type value then group by property value.\n * collection.groupBy('gender'); // group by 'gender' property value.\n * collection.groupBy(50); // group by '50' property value.\n *\n * // pass `function` then group by return value. each invocation `function` is called with `(item)`.\n * collection.groupBy(function(item) {\n * if (item.score > 60) {\n * return 'pass';\n * }\n * return 'fail';\n * });\n *\n * // pass `array` with first arguments then create each collection before grouping.\n * collection.groupBy(['go', 'ruby', 'javascript']);\n * // result: { 'go': empty Collection, 'ruby': empty Collection, 'javascript': empty Collection }\n *\n * // can pass `function` with `array` then group each elements.\n * collection.groupBy(['go', 'ruby', 'javascript'], function(item) {\n * if (item.isFast) {\n * return 'go';\n * }\n *\n * return item.name;\n * });\n */\n\n\nCollection.prototype.groupBy = function (key, groupFunc) {\n var result = {};\n var keyIsFunc = isFunction(key);\n var getItemIDFn = this.getItemID;\n var collection, baseValue;\n\n if (isArray(key)) {\n forEachArray(key, function (k) {\n result[k + ''] = new Collection(getItemIDFn);\n });\n\n if (!groupFunc) {\n return result;\n }\n\n key = groupFunc;\n keyIsFunc = true;\n }\n\n this.each(function (item) {\n if (keyIsFunc) {\n baseValue = key(item);\n } else {\n baseValue = item[key];\n\n if (isFunction(baseValue)) {\n baseValue = baseValue.apply(item);\n }\n }\n\n collection = result[baseValue];\n\n if (!collection) {\n collection = result[baseValue] = new Collection(getItemIDFn);\n }\n\n collection.add(item);\n });\n return result;\n};\n/**\n * Return single item in collection.\n *\n * Returned item is inserted in this collection firstly.\n * @returns {object} item.\n */\n\n\nCollection.prototype.single = function () {\n var result;\n this.each(function (item) {\n result = item;\n return false;\n }, this);\n return result;\n};\n/**\n * sort a basis of supplied compare function.\n * @param {function} compareFunction compareFunction\n * @returns {array} sorted array.\n */\n\n\nCollection.prototype.sort = function (compareFunction) {\n var arr = [];\n this.each(function (item) {\n arr.push(item);\n });\n\n if (isFunction(compareFunction)) {\n arr = arr.sort(compareFunction);\n }\n\n return arr;\n};\n/**\n * iterate each model element.\n *\n * when iteratee return false then break the loop.\n * @param {function} iteratee iteratee(item, index, items)\n * @param {*} [context] context\n */\n\n\nCollection.prototype.each = function (iteratee, context) {\n forEachOwnProperties(this.items, iteratee, context || this);\n};\n/**\n * return new array with collection items.\n * @returns {array} new array.\n */\n\n\nCollection.prototype.toArray = function () {\n if (!this.length) {\n return [];\n }\n\n return util.map(this.items, function (item) {\n return item;\n });\n};\n\nmodule.exports = Collection;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is existing or not.\n * @author NHN FE Development Lab \n */\n\n\n\nvar isUndefined = __webpack_require__(3);\nvar isNull = __webpack_require__(36);\n\n/**\n * Check whether the given variable is existing or not.\n * If the given variable is not null and not undefined, returns true.\n * @param {*} param - Target for checking\n * @returns {boolean} Is existy?\n * @memberof module:type\n * @example\n * var isExisty = require('tui-code-snippet/type/isExisty'); // node, commonjs\n *\n * isExisty(''); //true\n * isExisty(0); //true\n * isExisty([]); //true\n * isExisty({}); //true\n * isExisty(null); //false\n * isExisty(undefined); //false\n*/\nfunction isExisty(param) {\n return !isUndefined(param) && !isNull(param);\n}\n\nmodule.exports = isExisty;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is an object or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is an object or not.\n * If the given variable is an object, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is object?\n * @memberof module:type\n */\nfunction isObject(obj) {\n return obj === Object(obj);\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview This module detects the kind of well-known browser and version.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Browser module\n * @module browser\n */\n\n/**\n * This object has an information that indicate the kind of browser. It can detect IE8 ~ IE11, Chrome, Firefox, Safari, and Edge.\n * @memberof module:browser\n * @example\n * var browser = require('tui-code-snippet/browser/browser'); // node, commonjs\n *\n * browser.chrome === true; // chrome\n * browser.firefox === true; // firefox\n * browser.safari === true; // safari\n * browser.msie === true; // IE\n * browser.edge === true; // edge\n * browser.others === true; // other browser\n * browser.version; // browser version\n */\nvar browser = {\n chrome: false,\n firefox: false,\n safari: false,\n msie: false,\n edge: false,\n others: false,\n version: 0\n};\n\nif (typeof window !== 'undefined' && window.navigator) {\n detectBrowser();\n}\n\n/**\n * Detect the browser.\n * @private\n */\nfunction detectBrowser() {\n var nav = window.navigator;\n var appName = nav.appName.replace(/\\s/g, '_');\n var userAgent = nav.userAgent;\n\n var rIE = /MSIE\\s([0-9]+[.0-9]*)/;\n var rIE11 = /Trident.*rv:11\\./;\n var rEdge = /Edge\\/(\\d+)\\./;\n var versionRegex = {\n firefox: /Firefox\\/(\\d+)\\./,\n chrome: /Chrome\\/(\\d+)\\./,\n safari: /Version\\/([\\d.]+).*Safari\\/(\\d+)/\n };\n\n var key, tmp;\n\n var detector = {\n Microsoft_Internet_Explorer: function() { // eslint-disable-line camelcase\n var detectedVersion = userAgent.match(rIE);\n\n if (detectedVersion) { // ie8 ~ ie10\n browser.msie = true;\n browser.version = parseFloat(detectedVersion[1]);\n } else { // no version information\n browser.others = true;\n }\n },\n Netscape: function() { // eslint-disable-line complexity\n var detected = false;\n\n if (rIE11.exec(userAgent)) {\n browser.msie = true;\n browser.version = 11;\n detected = true;\n } else if (rEdge.exec(userAgent)) {\n browser.edge = true;\n browser.version = userAgent.match(rEdge)[1];\n detected = true;\n } else {\n for (key in versionRegex) {\n if (versionRegex.hasOwnProperty(key)) {\n tmp = userAgent.match(versionRegex[key]);\n if (tmp && tmp.length > 1) { // eslint-disable-line max-depth\n browser[key] = detected = true;\n browser.version = parseFloat(tmp[1] || 0);\n break;\n }\n }\n }\n }\n if (!detected) {\n browser.others = true;\n }\n }\n };\n\n var fn = detector[appName];\n\n if (fn) {\n detector[appName]();\n }\n}\n\nmodule.exports = browser;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get HTML element's design classes.\n * @author NHN FE Development Lab \n */\n\n\n\nvar isUndefined = __webpack_require__(3);\n\n/**\n * Get HTML element's design classes.\n * @param {(HTMLElement|SVGElement)} element target element\n * @returns {string} element css class name\n * @memberof module:domUtil\n */\nfunction getClass(element) {\n if (!element || !element.className) {\n return '';\n }\n\n if (isUndefined(element.className.baseVal)) {\n return element.className;\n }\n\n return element.className.baseVal;\n}\n\nmodule.exports = getClass;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * @fileoverview General drag handler\n */\n\n\nvar CustomEvents = __webpack_require__(10);\n\nvar disableTextSelection = __webpack_require__(42);\n\nvar enableTextSelection = __webpack_require__(44);\n\nvar getMouseButton = __webpack_require__(47);\n\nvar getTarget = __webpack_require__(28);\n\nvar off = __webpack_require__(17);\n\nvar on = __webpack_require__(14);\n\nvar preventDefault = __webpack_require__(15);\n\nvar extend = __webpack_require__(0);\n/**\n * @constructor\n * @mixes CustomEvents\n * @param {object} options - options for drag handler\n * @param {number} [options.distance=10] - distance in pixels after mouse must move before dragging should start\n * @param {HTMLElement} container - container element to bind drag events\n * @ignore\n */\n\n\nfunction Drag(options, container) {\n on(container, 'mousedown', this._onMouseDown, this);\n this.options = extend({\n distance: 10\n }, options);\n /**\n * @type {HTMLElement}\n */\n\n this.container = container;\n /**\n * @type {boolean}\n */\n\n this._isMoved = false;\n /**\n * dragging distance in pixel between mousedown and firing dragStart events\n * @type {number}\n */\n\n this._distance = 0;\n /**\n * @type {boolean}\n */\n\n this._dragStartFired = false;\n /**\n * @type {object}\n */\n\n this._dragStartEventData = null;\n}\n/**\n * Destroy method.\n */\n\n\nDrag.prototype.destroy = function () {\n off(this.container, 'mousedown', this._onMouseDown);\n this.options = this.container = this._isMoved = this._distance = this._dragStartFired = this._dragStartEventData = null;\n};\n/**\n * Toggle events for mouse dragging.\n * @param {boolean} toBind - bind events related with dragging when supplied \"true\"\n */\n\n\nDrag.prototype._toggleDragEvent = function (toBind) {\n var container = this.container;\n\n if (toBind) {\n disableTextSelection(container);\n on(window, 'dragstart', preventDefault);\n on(global.document, {\n mousemove: this._onMouseMove,\n mouseup: this._onMouseUp\n }, this);\n } else {\n enableTextSelection(container);\n off(window, 'dragstart', preventDefault);\n off(global.document, {\n mousemove: this._onMouseMove,\n mouseup: this._onMouseUp\n });\n }\n};\n/**\n * Normalize mouse event object.\n * @param {MouseEvent} mouseEvent - mouse event object.\n * @returns {object} normalized mouse event data.\n */\n\n\nDrag.prototype._getEventData = function (mouseEvent) {\n return {\n target: getTarget(mouseEvent),\n originEvent: mouseEvent\n };\n};\n/**\n * MouseDown DOM event handler.\n * @param {MouseEvent} mouseDownEvent MouseDown event object.\n */\n\n\nDrag.prototype._onMouseDown = function (mouseDownEvent) {\n // only primary button can start drag.\n if (getMouseButton(mouseDownEvent) !== 0) {\n return;\n }\n\n this._distance = 0;\n this._dragStartFired = false;\n this._dragStartEventData = this._getEventData(mouseDownEvent);\n\n this._toggleDragEvent(true);\n};\n/**\n * MouseMove DOM event handler.\n * @emits Drag#drag\n * @emits Drag#dragStart\n * @param {MouseEvent} mouseMoveEvent MouseMove event object.\n */\n\n\nDrag.prototype._onMouseMove = function (mouseMoveEvent) {\n var distance = this.options.distance; // prevent automatic scrolling.\n\n preventDefault(mouseMoveEvent);\n this._isMoved = true;\n\n if (this._distance < distance) {\n this._distance += 1;\n return;\n }\n\n if (!this._dragStartFired) {\n this._dragStartFired = true;\n /**\n * Drag starts events. cancelable.\n * @event Drag#dragStart\n * @type {object}\n * @property {HTMLElement} target - target element in this event.\n * @property {MouseEvent} originEvent - original mouse event object.\n */\n\n if (!this.invoke('dragStart', this._dragStartEventData)) {\n this._toggleDragEvent(false);\n\n return;\n }\n }\n /**\n * Events while dragging.\n * @event Drag#drag\n * @type {object}\n * @property {HTMLElement} target - target element in this event.\n * @property {MouseEvent} originEvent - original mouse event object.\n */\n\n\n this.fire('drag', this._getEventData(mouseMoveEvent));\n};\n/**\n * MouseUp DOM event handler.\n * @param {MouseEvent} mouseUpEvent MouseUp event object.\n * @emits Drag#dragEnd\n * @emits Drag#click\n */\n\n\nDrag.prototype._onMouseUp = function (mouseUpEvent) {\n this._toggleDragEvent(false); // emit \"click\" event when not emitted drag event between mousedown and mouseup.\n\n\n if (this._isMoved) {\n this._isMoved = false;\n /**\n * Drag end events.\n * @event Drag#dragEnd\n * @type {MouseEvent}\n * @property {HTMLElement} target - target element in this event.\n * @property {MouseEvent} originEvent - original mouse event object.\n */\n\n this.fire('dragEnd', this._getEventData(mouseUpEvent));\n return;\n }\n /**\n * Click events.\n * @event Drag#click\n * @type {MouseEvent}\n * @property {HTMLElement} target - target element in this event.\n * @property {MouseEvent} originEvent - original mouse event object.\n */\n\n\n this.fire('click', this._getEventData(mouseUpEvent));\n};\n\nCustomEvents.mixin(Drag);\nmodule.exports = Drag;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get event collection for specific HTML element\n * @author NHN FE Development Lab \n */\n\n\n\nvar EVENT_KEY = '_feEventKey';\n\n/**\n * Get event collection for specific HTML element\n * @param {HTMLElement} element - HTML element\n * @param {string} type - event type\n * @returns {array}\n * @private\n */\nfunction safeEvent(element, type) {\n var events = element[EVENT_KEY];\n var handlers;\n\n if (!events) {\n events = element[EVENT_KEY] = {};\n }\n\n handlers = events[type];\n if (!handlers) {\n handlers = events[type] = [];\n }\n\n return handlers;\n}\n\nmodule.exports = safeEvent;\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check specific CSS style is available.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check specific CSS style is available.\n * @param {array} props property name to testing\n * @returns {(string|boolean)} return true when property is available\n * @private\n */\nfunction testCSSProp(props) {\n var style = document.documentElement.style;\n var i, len;\n\n for (i = 0, len = props.length; i < len; i += 1) {\n if (props[i] in style) {\n return props[i];\n }\n }\n\n return false;\n}\n\nmodule.exports = testCSSProp;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get a target element from an event object.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Get a target element from an event object.\n * @param {Event} e - event object\n * @returns {HTMLElement} - target element\n * @memberof module:domEvent\n */\nfunction getTarget(e) {\n return e.target || e.srcElement;\n}\n\nmodule.exports = getTarget;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Color palette view\n */\n\n\nvar CustomEvents = __webpack_require__(10);\n\nvar getTarget = __webpack_require__(28);\n\nvar off = __webpack_require__(17);\n\nvar on = __webpack_require__(14);\n\nvar hasClass = __webpack_require__(30);\n\nvar extend = __webpack_require__(0);\n\nvar inherit = __webpack_require__(18);\n\nvar domUtil = __webpack_require__(9);\n\nvar colorUtil = __webpack_require__(12);\n\nvar View = __webpack_require__(8);\n\nvar tmpl = __webpack_require__(51);\n/**\n * @constructor\n * @extends {View}\n * @mixes CustomEvents\n * @param {object} options - options for color palette view\n * @param {string[]} options.preset - color list\n * @param {HTMLDivElement} container - container element\n * @ignore\n */\n\n\nfunction Palette(options, container) {\n /**\n * option object\n * @type {object}\n */\n this.options = extend({\n cssPrefix: 'tui-colorpicker-',\n preset: ['#181818', '#282828', '#383838', '#585858', '#B8B8B8', '#D8D8D8', '#E8E8E8', '#F8F8F8', '#AB4642', '#DC9656', '#F7CA88', '#A1B56C', '#86C1B9', '#7CAFC2', '#BA8BAF', '#A16946'],\n detailTxt: 'Detail'\n }, options);\n container = domUtil.appendHTMLElement('div', container, this.options.cssPrefix + 'palette-container');\n View.call(this, options, container);\n}\n\ninherit(Palette, View);\n/**\n * Mouse click event handler\n * @fires Palette#_selectColor\n * @fires Palette#_toggleSlider\n * @param {MouseEvent} clickEvent - mouse event object\n */\n\nPalette.prototype._onClick = function (clickEvent) {\n var options = this.options;\n var target = getTarget(clickEvent);\n var eventData = {};\n\n if (hasClass(target, options.cssPrefix + 'palette-button')) {\n eventData.color = target.value;\n /**\n * @event Palette#_selectColor\n * @type {object}\n * @property {string} color - selected color value\n */\n\n this.fire('_selectColor', eventData);\n return;\n }\n\n if (hasClass(target, options.cssPrefix + 'palette-toggle-slider')) {\n /**\n * @event Palette#_toggleSlider\n */\n this.fire('_toggleSlider');\n }\n};\n/**\n * Textbox change event handler\n * @fires Palette#_selectColor\n * @param {Event} changeEvent - change event object\n */\n\n\nPalette.prototype._onChange = function (changeEvent) {\n var options = this.options;\n var target = getTarget(changeEvent);\n var eventData = {};\n\n if (hasClass(target, options.cssPrefix + 'palette-hex')) {\n eventData.color = target.value;\n /**\n * @event Palette#_selectColor\n * @type {object}\n * @property {string} color - selected color value\n */\n\n this.fire('_selectColor', eventData);\n }\n};\n/**\n * Invoke before destory\n * @override\n */\n\n\nPalette.prototype._beforeDestroy = function () {\n this._toggleEvent(false);\n};\n/**\n * Toggle view DOM events\n * @param {boolean} [toBind=false] - true to bind event.\n */\n\n\nPalette.prototype._toggleEvent = function (toBind) {\n var options = this.options;\n var container = this.container;\n var handleEvent = toBind ? on : off;\n var hexTextBox;\n handleEvent(container, 'click', this._onClick, this);\n hexTextBox = container.querySelector('.' + options.cssPrefix + 'palette-hex', container);\n\n if (hexTextBox) {\n handleEvent(hexTextBox, 'change', this._onChange, this);\n }\n};\n/**\n * Render palette\n * @override\n */\n\n\nPalette.prototype.render = function (color) {\n var options = this.options;\n var html = '';\n\n this._toggleEvent(false);\n\n html = tmpl({\n cssPrefix: options.cssPrefix,\n preset: options.preset,\n detailTxt: options.detailTxt,\n color: color,\n isValidRGB: colorUtil.isValidRGB,\n getItemClass: function (itemColor) {\n return !itemColor ? ' ' + options.cssPrefix + 'color-transparent' : '';\n },\n isSelected: function (itemColor) {\n return itemColor === color ? ' ' + options.cssPrefix + 'selected' : '';\n }\n });\n this.container.innerHTML = html;\n\n this._toggleEvent(true);\n};\n\nCustomEvents.mixin(Palette);\nmodule.exports = Palette;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element has specific css class\n * @author NHN FE Development Lab \n */\n\n\n\nvar inArray = __webpack_require__(5);\nvar getClass = __webpack_require__(23);\n\n/**\n * Check element has specific css class\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {string} cssClass - css class\n * @returns {boolean}\n * @memberof module:domUtil\n */\nfunction hasClass(element, cssClass) {\n var origin;\n\n if (element.classList) {\n return element.classList.contains(cssClass);\n }\n\n origin = getClass(element).split(/\\s+/);\n\n return inArray(cssClass, origin) > -1;\n}\n\nmodule.exports = hasClass;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Slider view\n */\n\n\nvar CustomEvents = __webpack_require__(10);\n\nvar getMousePosition = __webpack_require__(53);\n\nvar closest = __webpack_require__(54);\n\nvar hasClass = __webpack_require__(30);\n\nvar extend = __webpack_require__(0);\n\nvar inherit = __webpack_require__(18);\n\nvar domUtil = __webpack_require__(9);\n\nvar svgvml = __webpack_require__(32);\n\nvar colorUtil = __webpack_require__(12);\n\nvar View = __webpack_require__(8);\n\nvar Drag = __webpack_require__(24);\n\nvar tmpl = __webpack_require__(57); // Limitation position of point element inside of colorslider and hue bar\n// Minimum value can to be negative because that using color point of handle element is center point. not left, top point.\n\n\nvar DEFAULT_COLORSLIDER_POS_LIMIT_MIN = -7;\nvar DEFAULT_COLORSLIDER_POS_LIMIT_MAX = 112;\nvar DEFAULT_HUEBAR_POS_LIMIT_MIN = -3;\nvar DEFAULT_HUEBAR_POS_LIMIT_MAX = 115;\nvar HUE_WHEEL_MAX = 359.99;\n/**\n * @constructor\n * @extends {View}\n * @mixes CustomEvents\n * @param {object} options - options for view\n * @param {string} options.cssPrefix - design css prefix\n * @param {HTMLElement} container - container element\n * @ignore\n */\n\nfunction Slider(options, container) {\n container = domUtil.appendHTMLElement('div', container, options.cssPrefix + 'slider-container');\n container.style.display = 'none';\n View.call(this, options, container);\n /**\n * @type {object}\n */\n\n this.options = extend({\n color: '#f8f8f8',\n cssPrefix: 'tui-colorpicker-'\n }, options);\n /**\n * Cache immutable data in click, drag events.\n *\n * (i.e. is event related with colorslider? or huebar?)\n * @type {object}\n * @property {boolean} isColorSlider\n * @property {number[]} containerSize\n */\n\n this._dragDataCache = {};\n /**\n * Color slider handle element\n * @type {SVG|VML}\n */\n\n this.sliderHandleElement = null;\n /**\n * hue bar handle element\n * @type {SVG|VML}\n */\n\n this.huebarHandleElement = null;\n /**\n * Element that render base color in colorslider part\n * @type {SVG|VML}\n */\n\n this.baseColorElement = null;\n /**\n * @type {Drag}\n */\n\n this.drag = new Drag({\n distance: 0\n }, container);\n this.colorSliderPosLimitRange = [DEFAULT_COLORSLIDER_POS_LIMIT_MIN, DEFAULT_COLORSLIDER_POS_LIMIT_MAX];\n this.huebarPosLimitRange = [DEFAULT_HUEBAR_POS_LIMIT_MIN, DEFAULT_HUEBAR_POS_LIMIT_MAX]; // bind drag events\n\n this.drag.on({\n dragStart: this._onDragStart,\n drag: this._onDrag,\n dragEnd: this._onDragEnd,\n click: this._onClick\n }, this);\n}\n\ninherit(Slider, View);\n/**\n * @override\n */\n\nSlider.prototype._beforeDestroy = function () {\n this.drag.off();\n this.drag = this.options = this._dragDataCache = this.sliderHandleElement = this.huebarHandleElement = this.baseColorElement = null;\n};\n/**\n * Toggle slider view\n * @param {boolean} onOff - set true then reveal slider view\n */\n\n\nSlider.prototype.toggle = function (onOff) {\n this.container.style.display = !!onOff ? 'block' : 'none';\n};\n/**\n * Get slider display status\n * @returns {boolean} return true when slider is visible\n */\n\n\nSlider.prototype.isVisible = function () {\n return this.container.style.display === 'block';\n};\n/**\n * Render slider view\n * @override\n * @param {string} colorStr - hex string color from parent view (Layout)\n */\n\n\nSlider.prototype.render = function (colorStr) {\n var container = this.container;\n var options = this.options;\n var html = tmpl.layout;\n var rgb, hsv;\n\n if (!colorUtil.isValidRGB(colorStr)) {\n return;\n }\n\n html = html.replace(/{{slider}}/, tmpl.slider);\n html = html.replace(/{{huebar}}/, tmpl.huebar);\n html = html.replace(/{{cssPrefix}}/g, options.cssPrefix);\n html = html.replace(/{{id}}/g, options.id);\n this.container.innerHTML = html;\n this.sliderSvgElement = container.querySelector('.' + options.cssPrefix + 'svg-slider');\n this.huebarSvgElement = container.querySelector('.' + options.cssPrefix + 'svg-huebar');\n this.sliderHandleElement = container.querySelector('.' + options.cssPrefix + 'slider-handle');\n this.huebarHandleElement = container.querySelector('.' + options.cssPrefix + 'huebar-handle');\n this.baseColorElement = container.querySelector('.' + options.cssPrefix + 'slider-basecolor');\n rgb = colorUtil.hexToRGB(colorStr);\n hsv = colorUtil.rgbToHSV.apply(null, rgb);\n this.moveHue(hsv[0], true);\n this.moveSaturationAndValue(hsv[1], hsv[2], true);\n};\n\nSlider.prototype._setColorSliderPosMax = function () {\n var sliderRects = this.sliderSvgElement.getClientRects()[0];\n\n if (sliderRects) {\n this.colorSliderPosLimitRange[1] = sliderRects.height - 10;\n }\n};\n/**\n * Move colorslider by newLeft(X), newTop(Y) value\n * @private\n * @param {number} newLeft - left pixel value to move handle\n * @param {number} newTop - top pixel value to move handle\n * @param {boolean} [silent=false] - set true then not fire custom event\n */\n\n\nSlider.prototype._moveColorSliderHandle = function (newLeft, newTop, silent) {\n var handle = this.sliderHandleElement;\n var handleColor; // Check position limitation.\n\n newTop = Math.max(this.colorSliderPosLimitRange[0], newTop);\n newTop = Math.min(this.colorSliderPosLimitRange[1], newTop);\n newLeft = Math.max(this.colorSliderPosLimitRange[0], newLeft);\n newLeft = Math.min(this.colorSliderPosLimitRange[1], newLeft);\n svgvml.setTranslateXY(handle, newLeft, newTop);\n handleColor = newTop > 50 ? 'white' : 'black';\n svgvml.setStrokeColor(handle, handleColor);\n\n if (!silent) {\n this.fire('_selectColor', {\n color: colorUtil.rgbToHEX.apply(null, this.getRGB())\n });\n }\n};\n/**\n * Move colorslider by supplied saturation and values.\n *\n * The movement of color slider handle follow HSV cylinder model. {@link https://en.wikipedia.org/wiki/HSL_and_HSV}\n * @param {number} saturation - the percent of saturation (0% ~ 100%)\n * @param {number} value - the percent of saturation (0% ~ 100%)\n * @param {boolean} [silent=false] - set true then not fire custom event\n */\n\n\nSlider.prototype.moveSaturationAndValue = function (saturation, value, silent) {\n var absMin, maxValue, newLeft, newTop;\n saturation = saturation || 0;\n value = value || 0;\n absMin = Math.abs(this.colorSliderPosLimitRange[0]);\n maxValue = this.colorSliderPosLimitRange[1]; // subtract absMin value because current color position is not left, top of handle element.\n // The saturation. from left 0 to right 100\n\n newLeft = saturation * maxValue / 100 - absMin; // The Value. from top 100 to bottom 0. that why newTop subtract by maxValue.\n\n newTop = maxValue - value * maxValue / 100 - absMin;\n\n this._moveColorSliderHandle(newLeft, newTop, silent);\n};\n/**\n * Move color slider handle to supplied position\n *\n * The number of X, Y must be related value from color slider container\n * @private\n * @param {number} x - the pixel value to move handle\n * @param {number} y - the pixel value to move handle\n */\n\n\nSlider.prototype._moveColorSliderByPosition = function (x, y) {\n var offset = this.colorSliderPosLimitRange[0];\n\n this._moveColorSliderHandle(x + offset, y + offset);\n};\n/**\n * Get saturation and value value.\n * @returns {number[]} saturation and value\n */\n\n\nSlider.prototype.getSaturationAndValue = function () {\n var absMin = Math.abs(this.colorSliderPosLimitRange[0]);\n var maxValue = absMin + this.colorSliderPosLimitRange[1];\n var position = svgvml.getTranslateXY(this.sliderHandleElement);\n var saturation, value;\n saturation = (position[1] + absMin) / maxValue * 100; // The value of HSV color model is inverted. top 100 ~ bottom 0. so subtract by 100\n\n value = 100 - (position[0] + absMin) / maxValue * 100;\n return [saturation, value];\n};\n\nSlider.prototype._setHueBarPosMax = function () {\n var huebarRects = this.huebarSvgElement.getClientRects()[0];\n\n if (huebarRects) {\n this.huebarPosLimitRange[1] = huebarRects.height - 7;\n }\n};\n/**\n * Move hue handle supplied pixel value\n * @private\n * @param {number} newTop - pixel to move hue handle\n * @param {boolean} [silent=false] - set true then not fire custom event\n */\n\n\nSlider.prototype._moveHueHandle = function (newTop, silent) {\n var hueHandleElement = this.huebarHandleElement;\n var baseColorElement = this.baseColorElement;\n var newGradientColor, hexStr;\n newTop = Math.max(this.huebarPosLimitRange[0], newTop);\n newTop = Math.min(this.huebarPosLimitRange[1], newTop);\n svgvml.setTranslateY(hueHandleElement, newTop);\n newGradientColor = colorUtil.hsvToRGB(this.getHue(), 100, 100);\n hexStr = colorUtil.rgbToHEX.apply(null, newGradientColor);\n svgvml.setGradientColorStop(baseColorElement, hexStr);\n\n if (!silent) {\n this.fire('_selectColor', {\n color: colorUtil.rgbToHEX.apply(null, this.getRGB())\n });\n }\n};\n/**\n * Move hue bar handle by supplied degree\n * @param {number} degree - (0 ~ 359.9 degree)\n * @param {boolean} [silent=false] - set true then not fire custom event\n */\n\n\nSlider.prototype.moveHue = function (degree, silent) {\n var newTop = 0;\n var absMin, maxValue;\n absMin = Math.abs(this.huebarPosLimitRange[0]);\n maxValue = absMin + this.huebarPosLimitRange[1];\n degree = degree || 0;\n newTop = maxValue * degree / HUE_WHEEL_MAX - absMin;\n\n this._moveHueHandle(newTop, silent);\n};\n/**\n * Move hue bar handle by supplied percent\n * @private\n * @param {number} y - pixel value to move hue handle\n */\n\n\nSlider.prototype._moveHueByPosition = function (y) {\n var offset = this.huebarPosLimitRange[0];\n\n this._moveHueHandle(y + offset);\n};\n/**\n * Get huebar handle position by color degree\n * @returns {number} degree (0 ~ 359.9 degree)\n */\n\n\nSlider.prototype.getHue = function () {\n var handle = this.huebarHandleElement;\n var position = svgvml.getTranslateXY(handle);\n var absMin, maxValue;\n absMin = Math.abs(this.huebarPosLimitRange[0]);\n maxValue = absMin + this.huebarPosLimitRange[1]; // maxValue : 359.99 = pos.y : x\n\n return (position[0] + absMin) * HUE_WHEEL_MAX / maxValue;\n};\n/**\n * Get HSV value from slider\n * @returns {number[]} hsv values\n */\n\n\nSlider.prototype.getHSV = function () {\n var sv = this.getSaturationAndValue();\n var h = this.getHue();\n return [h].concat(sv);\n};\n/**\n * Get RGB value from slider\n * @returns {number[]} RGB value\n */\n\n\nSlider.prototype.getRGB = function () {\n return colorUtil.hsvToRGB.apply(null, this.getHSV());\n};\n/**********\n * Drag event handler\n **********/\n\n/**\n * Cache immutable data when dragging or click view\n * @param {object} event - Click, DragStart event.\n * @returns {object} cached data.\n */\n\n\nSlider.prototype._prepareColorSliderForMouseEvent = function (event) {\n var options = this.options;\n var sliderPart = closest(event.target, '.' + options.cssPrefix + 'slider-part');\n var cache;\n cache = this._dragDataCache = {\n isColorSlider: hasClass(sliderPart, options.cssPrefix + 'slider-left'),\n parentElement: sliderPart\n };\n return cache;\n};\n/**\n * Click event handler\n * @param {object} clickEvent - Click event from Drag module\n */\n\n\nSlider.prototype._onClick = function (clickEvent) {\n var cache = this._prepareColorSliderForMouseEvent(clickEvent);\n\n var mousePos = getMousePosition(clickEvent.originEvent, cache.parentElement);\n\n if (cache.isColorSlider) {\n this._moveColorSliderByPosition(mousePos[0], mousePos[1]);\n } else {\n this._moveHueByPosition(mousePos[1]);\n }\n\n this._dragDataCache = null;\n};\n/**\n * DragStart event handler\n * @param {object} dragStartEvent - dragStart event data from Drag#dragStart\n */\n\n\nSlider.prototype._onDragStart = function (dragStartEvent) {\n this._setColorSliderPosMax();\n\n this._setHueBarPosMax();\n\n this._prepareColorSliderForMouseEvent(dragStartEvent);\n};\n/**\n * Drag event handler\n * @param {Drag#drag} dragEvent - drag event data\n */\n\n\nSlider.prototype._onDrag = function (dragEvent) {\n var cache = this._dragDataCache;\n var mousePos = getMousePosition(dragEvent.originEvent, cache.parentElement);\n\n if (cache.isColorSlider) {\n this._moveColorSliderByPosition(mousePos[0], mousePos[1]);\n } else {\n this._moveHueByPosition(mousePos[1]);\n }\n};\n/**\n * Drag#dragEnd event handler\n */\n\n\nSlider.prototype._onDragEnd = function () {\n this._dragDataCache = null;\n};\n\nCustomEvents.mixin(Slider);\nmodule.exports = Slider;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview module for manipulate SVG or VML object\n */\n\n\nvar isOldBrowser = __webpack_require__(4).isOldBrowser;\n\nvar PARSE_TRANSLATE_NUM_REGEX = /[\\.\\-0-9]+/g;\nvar SVG_HUE_HANDLE_RIGHT_POS = -6;\n/* istanbul ignore next */\n\nvar svgvml = {\n /**\n * Get translate transform value\n * @param {SVG|VML} obj - svg or vml object that want to know translate x, y\n * @returns {number[]} translated coordinates [x, y]\n */\n getTranslateXY: function (obj) {\n var temp;\n\n if (isOldBrowser) {\n temp = obj.style;\n return [parseFloat(temp.top), parseFloat(temp.left)];\n }\n\n temp = obj.getAttribute('transform');\n\n if (!temp) {\n return [0, 0];\n }\n\n temp = temp.match(PARSE_TRANSLATE_NUM_REGEX); // need caution for difference of VML, SVG coordinates system.\n // translate command need X coords in first parameter. but VML is use CSS coordinate system(top, left)\n\n return [parseFloat(temp[1]), parseFloat(temp[0])];\n },\n\n /**\n * Set translate transform value\n * @param {SVG|VML} obj - SVG or VML object to setting translate transform.\n * @param {number} x - translate X value\n * @param {number} y - translate Y value\n */\n setTranslateXY: function (obj, x, y) {\n if (isOldBrowser) {\n obj.style.left = x + 'px';\n obj.style.top = y + 'px';\n } else {\n obj.setAttribute('transform', 'translate(' + x + ',' + y + ')');\n }\n },\n\n /**\n * Set translate only Y value\n * @param {SVG|VML} obj - SVG or VML object to setting translate transform.\n * @param {number} y - translate Y value\n */\n setTranslateY: function (obj, y) {\n if (isOldBrowser) {\n obj.style.top = y + 'px';\n } else {\n obj.setAttribute('transform', 'translate(' + SVG_HUE_HANDLE_RIGHT_POS + ',' + y + ')');\n }\n },\n\n /**\n * Set stroke color to SVG or VML object\n * @param {SVG|VML} obj - SVG or VML object to setting stroke color\n * @param {string} colorStr - color string\n */\n setStrokeColor: function (obj, colorStr) {\n if (isOldBrowser) {\n obj.strokecolor = colorStr;\n } else {\n obj.setAttribute('stroke', colorStr);\n }\n },\n\n /**\n * Set gradient stop color to SVG, VML object.\n * @param {SVG|VML} obj - SVG, VML object to applying gradient stop color\n * @param {string} colorStr - color string\n */\n setGradientColorStop: function (obj, colorStr) {\n if (isOldBrowser) {\n obj.color = colorStr;\n } else {\n obj.setAttribute('stop-color', colorStr);\n }\n }\n};\nmodule.exports = svgvml;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(34);\nmodule.exports = __webpack_require__(35);\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Collection = __webpack_require__(19);\n\nvar View = __webpack_require__(8);\n\nvar Drag = __webpack_require__(24);\n\nvar create = __webpack_require__(48);\n\nvar Palette = __webpack_require__(29);\n\nvar Slider = __webpack_require__(31);\n\nvar colorUtil = __webpack_require__(12);\n\nvar svgvml = __webpack_require__(32);\n\nvar colorPicker = {\n Collection: Collection,\n View: View,\n Drag: Drag,\n create: create,\n Palette: Palette,\n Slider: Slider,\n colorutil: colorUtil,\n svgvml: svgvml\n};\nmodule.exports = colorPicker;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is null or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is null or not.\n * If the given variable(arguments[0]) is null, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is null?\n * @memberof module:type\n */\nfunction isNull(obj) {\n return obj === null;\n}\n\nmodule.exports = isNull;\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Send hostname on DOMContentLoaded.\n * @author NHN FE Development Lab \n */\n\n\n\nvar isUndefined = __webpack_require__(3);\nvar imagePing = __webpack_require__(38);\n\nvar ms7days = 7 * 24 * 60 * 60 * 1000;\n\n/**\n * Check if the date has passed 7 days\n * @param {number} date - milliseconds\n * @returns {boolean}\n * @private\n */\nfunction isExpired(date) {\n var now = new Date().getTime();\n\n return now - date > ms7days;\n}\n\n/**\n * Send hostname on DOMContentLoaded.\n * To prevent hostname set tui.usageStatistics to false.\n * @param {string} appName - application name\n * @param {string} trackingId - GA tracking ID\n * @ignore\n */\nfunction sendHostname(appName, trackingId) {\n var url = 'https://www.google-analytics.com/collect';\n var hostname = location.hostname;\n var hitType = 'event';\n var eventCategory = 'use';\n var applicationKeyForStorage = 'TOAST UI ' + appName + ' for ' + hostname + ': Statistics';\n var date = window.localStorage.getItem(applicationKeyForStorage);\n\n // skip if the flag is defined and is set to false explicitly\n if (!isUndefined(window.tui) && window.tui.usageStatistics === false) {\n return;\n }\n\n // skip if not pass seven days old\n if (date && !isExpired(date)) {\n return;\n }\n\n window.localStorage.setItem(applicationKeyForStorage, new Date().getTime());\n\n setTimeout(function() {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n imagePing(url, {\n v: 1,\n t: hitType,\n tid: trackingId,\n cid: hostname,\n dp: hostname,\n dh: appName,\n el: appName,\n ec: eventCategory\n });\n }\n }, 1000);\n}\n\nmodule.exports = sendHostname;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Request image ping.\n * @author NHN FE Development Lab \n */\n\n\n\nvar forEachOwnProperties = __webpack_require__(7);\n\n/**\n * @module request\n */\n\n/**\n * Request image ping.\n * @param {String} url url for ping request\n * @param {Object} trackingInfo infos for make query string\n * @returns {HTMLElement}\n * @memberof module:request\n * @example\n * var imagePing = require('tui-code-snippet/request/imagePing'); // node, commonjs\n *\n * imagePing('https://www.google-analytics.com/collect', {\n * v: 1,\n * t: 'event',\n * tid: 'trackingid',\n * cid: 'cid',\n * dp: 'dp',\n * dh: 'dh'\n * });\n */\nfunction imagePing(url, trackingInfo) {\n var trackingElement = document.createElement('img');\n var queryString = '';\n forEachOwnProperties(trackingInfo, function(value, key) {\n queryString += '&' + key + '=' + value;\n });\n queryString = queryString.substring(1);\n\n trackingElement.src = url + '?' + queryString;\n\n trackingElement.style.display = 'none';\n document.body.appendChild(trackingElement);\n document.body.removeChild(trackingElement);\n\n return trackingElement;\n}\n\nmodule.exports = imagePing;\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Add css class to element\n * @author NHN FE Development Lab \n */\n\n\n\nvar forEach = __webpack_require__(2);\nvar inArray = __webpack_require__(5);\nvar getClass = __webpack_require__(23);\nvar setClassName = __webpack_require__(40);\n\n/**\n * domUtil module\n * @module domUtil\n */\n\n/**\n * Add css class to element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to add\n * @memberof module:domUtil\n */\nfunction addClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var newClass = [];\n var origin;\n\n if (classList) {\n forEach(cssClass, function(name) {\n element.classList.add(name);\n });\n\n return;\n }\n\n origin = getClass(element);\n\n if (origin) {\n cssClass = [].concat(origin.split(/\\s+/), cssClass);\n }\n\n forEach(cssClass, function(cls) {\n if (inArray(cls, newClass) < 0) {\n newClass.push(cls);\n }\n });\n\n setClassName(element, newClass);\n}\n\nmodule.exports = addClass;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Set className value\n * @author NHN FE Development Lab \n */\n\n\n\nvar isArray = __webpack_require__(1);\nvar isUndefined = __webpack_require__(3);\n\n/**\n * Set className value\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {(string|string[])} cssClass - class names\n * @private\n */\nfunction setClassName(element, cssClass) {\n cssClass = isArray(cssClass) ? cssClass.join(' ') : cssClass;\n\n cssClass = cssClass.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n if (isUndefined(element.className.baseVal)) {\n element.className = cssClass;\n\n return;\n }\n\n element.className.baseVal = cssClass;\n}\n\nmodule.exports = setClassName;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a number or not.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * Check whether the given variable is a number or not.\n * If the given variable is a number, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is number?\n * @memberof module:type\n */\nfunction isNumber(obj) {\n return typeof obj === 'number' || obj instanceof Number;\n}\n\nmodule.exports = isNumber;\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Disable browser's text selection behaviors.\n * @author NHN FE Development Lab \n */\n\n\n\nvar on = __webpack_require__(14);\nvar preventDefault = __webpack_require__(15);\nvar setData = __webpack_require__(43);\nvar testCSSProp = __webpack_require__(27);\n\nvar SUPPORT_SELECTSTART = 'onselectstart' in document;\nvar KEY_PREVIOUS_USER_SELECT = 'prevUserSelect';\nvar userSelectProperty = testCSSProp([\n 'userSelect',\n 'WebkitUserSelect',\n 'OUserSelect',\n 'MozUserSelect',\n 'msUserSelect'\n]);\n\n/**\n * Disable browser's text selection behaviors.\n * @param {HTMLElement} [el] - target element. if not supplied, use `document`\n * @memberof module:domUtil\n */\nfunction disableTextSelection(el) {\n if (!el) {\n el = document;\n }\n\n if (SUPPORT_SELECTSTART) {\n on(el, 'selectstart', preventDefault);\n } else {\n el = (el === document) ? document.documentElement : el;\n setData(el, KEY_PREVIOUS_USER_SELECT, el.style[userSelectProperty]);\n el.style[userSelectProperty] = 'none';\n }\n}\n\nmodule.exports = disableTextSelection;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Set data attribute to target element\n * @author NHN FE Development Lab \n */\n\n\n\nvar convertToKebabCase = __webpack_require__(16);\n\n/**\n * Set data attribute to target element\n * @param {HTMLElement} element - element to set data attribute\n * @param {string} key - key\n * @param {string} value - value\n * @memberof module:domUtil\n */\nfunction setData(element, key, value) {\n if (element.dataset) {\n element.dataset[key] = value;\n\n return;\n }\n\n element.setAttribute('data-' + convertToKebabCase(key), value);\n}\n\nmodule.exports = setData;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Transform the Array-like object to Array.\n * @author NHN FE Development Lab \n */\n\n\n\nvar off = __webpack_require__(17);\nvar preventDefault = __webpack_require__(15);\nvar getData = __webpack_require__(45);\nvar removeData = __webpack_require__(46);\nvar testCSSProp = __webpack_require__(27);\n\nvar SUPPORT_SELECTSTART = 'onselectstart' in document;\nvar KEY_PREVIOUS_USER_SELECT = 'prevUserSelect';\nvar userSelectProperty = testCSSProp([\n 'userSelect',\n 'WebkitUserSelect',\n 'OUserSelect',\n 'MozUserSelect',\n 'msUserSelect'\n]);\n\n/**\n * Enable browser's text selection behaviors.\n * @param {HTMLElement} [el] - target element. if not supplied, use `document`\n * @memberof module:domUtil\n */\nfunction enableTextSelection(el) {\n if (!el) {\n el = document;\n }\n\n if (SUPPORT_SELECTSTART) {\n off(el, 'selectstart', preventDefault);\n } else {\n el = (el === document) ? document.documentElement : el;\n el.style[userSelectProperty] = getData(el, KEY_PREVIOUS_USER_SELECT) || 'auto';\n removeData(el, KEY_PREVIOUS_USER_SELECT);\n }\n}\n\nmodule.exports = enableTextSelection;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get data value from data-attribute\n * @author NHN FE Development Lab \n */\n\n\n\nvar convertToKebabCase = __webpack_require__(16);\n\n/**\n * Get data value from data-attribute\n * @param {HTMLElement} element - target element\n * @param {string} key - key\n * @returns {string} value\n * @memberof module:domUtil\n */\nfunction getData(element, key) {\n if (element.dataset) {\n return element.dataset[key];\n }\n\n return element.getAttribute('data-' + convertToKebabCase(key));\n}\n\nmodule.exports = getData;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Remove data property\n * @author NHN FE Development Lab \n */\n\n\n\nvar convertToKebabCase = __webpack_require__(16);\n\n/**\n * Remove data property\n * @param {HTMLElement} element - target element\n * @param {string} key - key\n * @memberof module:domUtil\n */\nfunction removeData(element, key) {\n if (element.dataset) {\n delete element.dataset[key];\n\n return;\n }\n\n element.removeAttribute('data-' + convertToKebabCase(key));\n}\n\nmodule.exports = removeData;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Normalize mouse event's button attributes.\n * @author NHN FE Development Lab \n */\n\n\n\nvar browser = __webpack_require__(22);\nvar inArray = __webpack_require__(5);\n\nvar primaryButton = ['0', '1', '3', '5', '7'];\nvar secondaryButton = ['2', '6'];\nvar wheelButton = ['4'];\n\n/**\n * @module domEvent\n */\n\n/**\n * Normalize mouse event's button attributes.\n *\n * Can detect which button is clicked by this method.\n *\n * Meaning of return numbers\n *\n * - 0: primary mouse button\n * - 1: wheel button or center button\n * - 2: secondary mouse button\n * @param {MouseEvent} mouseEvent - The mouse event object want to know.\n * @returns {number} - The value of meaning which button is clicked?\n * @memberof module:domEvent\n */\nfunction getMouseButton(mouseEvent) {\n if (browser.msie && browser.version <= 8) {\n return getMouseButtonIE8AndEarlier(mouseEvent);\n }\n\n return mouseEvent.button;\n}\n\n/**\n * Normalize return value of mouseEvent.button\n * Make same to standard MouseEvent's button value\n * @param {DispCEventObj} mouseEvent - mouse event object\n * @returns {number|null} - id indicating which mouse button is clicked\n * @private\n */\nfunction getMouseButtonIE8AndEarlier(mouseEvent) {\n var button = String(mouseEvent.button);\n\n if (inArray(button, primaryButton) > -1) {\n return 0;\n }\n\n if (inArray(button, secondaryButton) > -1) {\n return 2;\n }\n\n if (inArray(button, wheelButton) > -1) {\n return 1;\n }\n\n return null;\n}\n\nmodule.exports = getMouseButton;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview ColorPicker factory module\n */\n\n\nvar CustomEvents = __webpack_require__(10);\n\nvar extend = __webpack_require__(0);\n\nvar util = __webpack_require__(4);\n\nvar colorUtil = __webpack_require__(12);\n\nvar Layout = __webpack_require__(49);\n\nvar Palette = __webpack_require__(29);\n\nvar Slider = __webpack_require__(31);\n/**\n * Create an unique id for a color-picker instance.\n * @private\n */\n\n\nvar currentId = 0;\n\nfunction generateId() {\n currentId += 1;\n return currentId;\n}\n/**\n * @constructor\n * @param {object} options - options for colorpicker component\n * @param {HTMLDivElement} options.container - container element\n * @param {string} [options.color='#ffffff'] - default selected color\n * @param {string[]} [options.preset] - color preset for palette (use base16 palette if not supplied)\n * @param {string} [options.cssPrefix='tui-colorpicker-'] - css prefix text for each child elements\n * @param {string} [options.detailTxt='Detail'] - text for detail button.\n * @param {boolean} [options.usageStatistics=true] - Let us know the hostname. If you don't want to send the hostname, please set to false.\n * @example\n * // ES6\n * import colorPicker from 'tui-color-picker';\n *\n * // CommonJS\n * const colorPicker = require('tui-color-picker');\n *\n * // Browser\n * const colorPicker = tui.colorPicker;\n *\n * const instance = colorPicker.create({\n * container: document.getElementById('color-picker')\n * });\n */\n\n\nfunction ColorPicker(options) {\n var layout;\n\n if (!(this instanceof ColorPicker)) {\n return new ColorPicker(options);\n }\n /**\n * Option object\n * @type {object}\n * @private\n */\n\n\n options = this.options = extend({\n container: null,\n color: '#f8f8f8',\n preset: ['#181818', '#282828', '#383838', '#585858', '#b8b8b8', '#d8d8d8', '#e8e8e8', '#f8f8f8', '#ab4642', '#dc9656', '#f7ca88', '#a1b56c', '#86c1b9', '#7cafc2', '#ba8baf', '#a16946'],\n cssPrefix: 'tui-colorpicker-',\n detailTxt: 'Detail',\n id: generateId(),\n usageStatistics: true\n }, options);\n\n if (!options.container) {\n throw new Error('ColorPicker(): need container option.');\n }\n /**********\n * Create layout view\n **********/\n\n /**\n * @type {Layout}\n * @private\n */\n\n\n layout = this.layout = new Layout(options, options.container);\n /**********\n * Create palette view\n **********/\n\n this.palette = new Palette(options, layout.container);\n this.palette.on({\n _selectColor: this._onSelectColorInPalette,\n _toggleSlider: this._onToggleSlider\n }, this);\n /**********\n * Create slider view\n **********/\n\n this.slider = new Slider(options, layout.container);\n this.slider.on('_selectColor', this._onSelectColorInSlider, this);\n /**********\n * Add child views\n **********/\n\n layout.addChild(this.palette);\n layout.addChild(this.slider);\n this.render(options.color);\n\n if (options.usageStatistics) {\n util.sendHostName();\n }\n}\n/**\n * Handler method for Palette#_selectColor event\n * @private\n * @fires ColorPicker#selectColor\n * @param {object} selectColorEventData - event data\n */\n\n\nColorPicker.prototype._onSelectColorInPalette = function (selectColorEventData) {\n var color = selectColorEventData.color;\n var opt = this.options;\n\n if (!colorUtil.isValidRGB(color) && color !== '') {\n this.render();\n return;\n }\n /**\n * @event ColorPicker#selectColor\n * @type {object}\n * @property {string} color - selected color (hex string)\n * @property {string} origin - flags for represent the source of event fires.\n */\n\n\n this.fire('selectColor', {\n color: color,\n origin: 'palette'\n });\n\n if (opt.color === color) {\n return;\n }\n\n opt.color = color;\n this.render(color);\n};\n/**\n * Handler method for Palette#_toggleSlider event\n * @private\n */\n\n\nColorPicker.prototype._onToggleSlider = function () {\n this.slider.toggle(!this.slider.isVisible());\n};\n/**\n * Handler method for Slider#_selectColor event\n * @private\n * @fires ColorPicker#selectColor\n * @param {object} selectColorEventData - event data\n */\n\n\nColorPicker.prototype._onSelectColorInSlider = function (selectColorEventData) {\n var color = selectColorEventData.color;\n var opt = this.options;\n /**\n * @event ColorPicker#selectColor\n * @type {object}\n * @property {string} color - selected color (hex string)\n * @property {string} origin - flags for represent the source of event fires.\n * @ignore\n */\n\n this.fire('selectColor', {\n color: color,\n origin: 'slider'\n });\n\n if (opt.color === color) {\n return;\n }\n\n opt.color = color;\n this.palette.render(color);\n};\n/**********\n * PUBLIC API\n **********/\n\n/**\n * Set color to colorpicker instance.
\n * The string parameter must be hex color value\n * @param {string} hexStr - hex formatted color string\n * @example\n * instance.setColor('#ffff00');\n */\n\n\nColorPicker.prototype.setColor = function (hexStr) {\n if (!colorUtil.isValidRGB(hexStr)) {\n throw new Error('ColorPicker#setColor(): need valid hex string color value');\n }\n\n this.options.color = hexStr;\n this.render(hexStr);\n};\n/**\n * Get hex color string of current selected color in colorpicker instance.\n * @returns {string} hex string formatted color\n * @example\n * instance.setColor('#ffff00');\n * instance.getColor(); // '#ffff00';\n */\n\n\nColorPicker.prototype.getColor = function () {\n return this.options.color;\n};\n/**\n * Toggle colorpicker element. set true then reveal colorpicker view.\n * @param {boolean} [isShow=false] - A flag to show\n * @example\n * instance.toggle(false); // hide\n * instance.toggle(); // hide\n * instance.toggle(true); // show\n */\n\n\nColorPicker.prototype.toggle = function (isShow) {\n this.layout.container.style.display = !!isShow ? 'block' : 'none';\n};\n/**\n * Render colorpicker\n * @param {string} [color] - selected color\n * @ignore\n */\n\n\nColorPicker.prototype.render = function (color) {\n this.layout.render(color || this.options.color);\n};\n/**\n * Destroy colorpicker instance.\n * @example\n * instance.destroy(); // DOM-element is removed\n */\n\n\nColorPicker.prototype.destroy = function () {\n this.layout.destroy();\n this.options.container.innerHTML = '';\n this.layout = this.slider = this.palette = this.options = null;\n};\n\nCustomEvents.mixin(ColorPicker);\nmodule.exports = ColorPicker;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview ColorPicker layout module\n */\n\n\nvar extend = __webpack_require__(0);\n\nvar inherit = __webpack_require__(18);\n\nvar domUtil = __webpack_require__(9);\n\nvar View = __webpack_require__(8);\n/**\n * @constructor\n * @extends {View}\n * @param {object} options - option object\n * @param {string} options.cssPrefix - css prefix for each child elements\n * @param {HTMLDivElement} container - container\n * @ignore\n */\n\n\nfunction Layout(options, container) {\n /**\n * option object\n * @type {object}\n */\n this.options = extend({\n cssPrefix: 'tui-colorpicker-'\n }, options);\n container = domUtil.appendHTMLElement('div', container, this.options.cssPrefix + 'container');\n View.call(this, options, container);\n this.render();\n}\n\ninherit(Layout, View);\n/**\n * @override\n * @param {string} [color] - selected color\n */\n\nLayout.prototype.render = function (color) {\n this.recursive(function (view) {\n view.render(color);\n }, true);\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Create a new object with the specified prototype object and properties.\n * @author NHN FE Development Lab \n */\n\n\n\n/**\n * @module inheritance\n */\n\n/**\n * Create a new object with the specified prototype object and properties.\n * @param {Object} obj This object will be a prototype of the newly-created object.\n * @returns {Object}\n * @memberof module:inheritance\n */\nfunction createObject(obj) {\n function F() {} // eslint-disable-line require-jsdoc\n F.prototype = obj;\n\n return new F();\n}\n\nmodule.exports = createObject;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Palette view template\n */\n\n\nvar template = __webpack_require__(52);\n\nmodule.exports = function (context) {\n var item = ['
  • '].join('');\n var layout = ['
      ', '{{each preset}}', item, '{{/each}}', '
    ', '
    ', '', '', '{{color}}', '
    '].join('\\n');\n return template(layout, context);\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Convert text by binding expressions with context.\n * @author NHN FE Development Lab \n */\n\n\n\nvar inArray = __webpack_require__(5);\nvar forEach = __webpack_require__(2);\nvar isArray = __webpack_require__(1);\nvar isString = __webpack_require__(11);\nvar extend = __webpack_require__(0);\n\n// IE8 does not support capture groups.\nvar EXPRESSION_REGEXP = /{{\\s?|\\s?}}/g;\nvar BRACKET_NOTATION_REGEXP = /^[a-zA-Z0-9_@]+\\[[a-zA-Z0-9_@\"']+\\]$/;\nvar BRACKET_REGEXP = /\\[\\s?|\\s?\\]/;\nvar DOT_NOTATION_REGEXP = /^[a-zA-Z_]+\\.[a-zA-Z_]+$/;\nvar DOT_REGEXP = /\\./;\nvar STRING_NOTATION_REGEXP = /^[\"']\\w+[\"']$/;\nvar STRING_REGEXP = /\"|'/g;\nvar NUMBER_REGEXP = /^-?\\d+\\.?\\d*$/;\n\nvar EXPRESSION_INTERVAL = 2;\n\nvar BLOCK_HELPERS = {\n 'if': handleIf,\n 'each': handleEach,\n 'with': handleWith\n};\n\nvar isValidSplit = 'a'.split(/a/).length === 3;\n\n/**\n * Split by RegExp. (Polyfill for IE8)\n * @param {string} text - text to be splitted\\\n * @param {RegExp} regexp - regular expression\n * @returns {Array.}\n */\nvar splitByRegExp = (function() {\n if (isValidSplit) {\n return function(text, regexp) {\n return text.split(regexp);\n };\n }\n\n return function(text, regexp) {\n var result = [];\n var prevIndex = 0;\n var match, index;\n\n if (!regexp.global) {\n regexp = new RegExp(regexp, 'g');\n }\n\n match = regexp.exec(text);\n while (match !== null) {\n index = match.index;\n result.push(text.slice(prevIndex, index));\n\n prevIndex = index + match[0].length;\n match = regexp.exec(text);\n }\n result.push(text.slice(prevIndex));\n\n return result;\n };\n})();\n\n/**\n * Find value in the context by an expression.\n * @param {string} exp - an expression\n * @param {object} context - context\n * @returns {*}\n * @private\n */\n// eslint-disable-next-line complexity\nfunction getValueFromContext(exp, context) {\n var splitedExps;\n var value = context[exp];\n\n if (exp === 'true') {\n value = true;\n } else if (exp === 'false') {\n value = false;\n } else if (STRING_NOTATION_REGEXP.test(exp)) {\n value = exp.replace(STRING_REGEXP, '');\n } else if (BRACKET_NOTATION_REGEXP.test(exp)) {\n splitedExps = exp.split(BRACKET_REGEXP);\n value = getValueFromContext(splitedExps[0], context)[getValueFromContext(splitedExps[1], context)];\n } else if (DOT_NOTATION_REGEXP.test(exp)) {\n splitedExps = exp.split(DOT_REGEXP);\n value = getValueFromContext(splitedExps[0], context)[splitedExps[1]];\n } else if (NUMBER_REGEXP.test(exp)) {\n value = parseFloat(exp);\n }\n\n return value;\n}\n\n/**\n * Extract elseif and else expressions.\n * @param {Array.} ifExps - args of if expression\n * @param {Array.} sourcesInsideBlock - sources inside if block\n * @returns {object} - exps: expressions of if, elseif, and else / sourcesInsideIf: sources inside if, elseif, and else block.\n * @private\n */\nfunction extractElseif(ifExps, sourcesInsideBlock) {\n var exps = [ifExps];\n var sourcesInsideIf = [];\n var otherIfCount = 0;\n var start = 0;\n\n // eslint-disable-next-line complexity\n forEach(sourcesInsideBlock, function(source, index) {\n if (source.indexOf('if') === 0) {\n otherIfCount += 1;\n } else if (source === '/if') {\n otherIfCount -= 1;\n } else if (!otherIfCount && (source.indexOf('elseif') === 0 || source === 'else')) {\n exps.push(source === 'else' ? ['true'] : source.split(' ').slice(1));\n sourcesInsideIf.push(sourcesInsideBlock.slice(start, index));\n start = index + 1;\n }\n });\n\n sourcesInsideIf.push(sourcesInsideBlock.slice(start));\n\n return {\n exps: exps,\n sourcesInsideIf: sourcesInsideIf\n };\n}\n\n/**\n * Helper function for \"if\". \n * @param {Array.} exps - array of expressions split by spaces\n * @param {Array.} sourcesInsideBlock - array of sources inside the if block\n * @param {object} context - context\n * @returns {string}\n * @private\n */\nfunction handleIf(exps, sourcesInsideBlock, context) {\n var analyzed = extractElseif(exps, sourcesInsideBlock);\n var result = false;\n var compiledSource = '';\n\n forEach(analyzed.exps, function(exp, index) {\n result = handleExpression(exp, context);\n if (result) {\n compiledSource = compile(analyzed.sourcesInsideIf[index], context);\n }\n\n return !result;\n });\n\n return compiledSource;\n}\n\n/**\n * Helper function for \"each\".\n * @param {Array.} exps - array of expressions split by spaces\n * @param {Array.} sourcesInsideBlock - array of sources inside the each block\n * @param {object} context - context\n * @returns {string}\n * @private\n */\nfunction handleEach(exps, sourcesInsideBlock, context) {\n var collection = handleExpression(exps, context);\n var additionalKey = isArray(collection) ? '@index' : '@key';\n var additionalContext = {};\n var result = '';\n\n forEach(collection, function(item, key) {\n additionalContext[additionalKey] = key;\n additionalContext['@this'] = item;\n extend(context, additionalContext);\n\n result += compile(sourcesInsideBlock.slice(), context);\n });\n\n return result;\n}\n\n/**\n * Helper function for \"with ... as\"\n * @param {Array.} exps - array of expressions split by spaces\n * @param {Array.} sourcesInsideBlock - array of sources inside the with block\n * @param {object} context - context\n * @returns {string}\n * @private\n */\nfunction handleWith(exps, sourcesInsideBlock, context) {\n var asIndex = inArray('as', exps);\n var alias = exps[asIndex + 1];\n var result = handleExpression(exps.slice(0, asIndex), context);\n\n var additionalContext = {};\n additionalContext[alias] = result;\n\n return compile(sourcesInsideBlock, extend(context, additionalContext)) || '';\n}\n\n/**\n * Extract sources inside block in place.\n * @param {Array.} sources - array of sources\n * @param {number} start - index of start block\n * @param {number} end - index of end block\n * @returns {Array.}\n * @private\n */\nfunction extractSourcesInsideBlock(sources, start, end) {\n var sourcesInsideBlock = sources.splice(start + 1, end - start);\n sourcesInsideBlock.pop();\n\n return sourcesInsideBlock;\n}\n\n/**\n * Handle block helper function\n * @param {string} helperKeyword - helper keyword (ex. if, each, with)\n * @param {Array.} sourcesToEnd - array of sources after the starting block\n * @param {object} context - context\n * @returns {Array.}\n * @private\n */\nfunction handleBlockHelper(helperKeyword, sourcesToEnd, context) {\n var executeBlockHelper = BLOCK_HELPERS[helperKeyword];\n var helperCount = 1;\n var startBlockIndex = 0;\n var endBlockIndex;\n var index = startBlockIndex + EXPRESSION_INTERVAL;\n var expression = sourcesToEnd[index];\n\n while (helperCount && isString(expression)) {\n if (expression.indexOf(helperKeyword) === 0) {\n helperCount += 1;\n } else if (expression.indexOf('/' + helperKeyword) === 0) {\n helperCount -= 1;\n endBlockIndex = index;\n }\n\n index += EXPRESSION_INTERVAL;\n expression = sourcesToEnd[index];\n }\n\n if (helperCount) {\n throw Error(helperKeyword + ' needs {{/' + helperKeyword + '}} expression.');\n }\n\n sourcesToEnd[startBlockIndex] = executeBlockHelper(\n sourcesToEnd[startBlockIndex].split(' ').slice(1),\n extractSourcesInsideBlock(sourcesToEnd, startBlockIndex, endBlockIndex),\n context\n );\n\n return sourcesToEnd;\n}\n\n/**\n * Helper function for \"custom helper\".\n * If helper is not a function, return helper itself.\n * @param {Array.} exps - array of expressions split by spaces (first element: helper)\n * @param {object} context - context\n * @returns {string}\n * @private\n */\nfunction handleExpression(exps, context) {\n var result = getValueFromContext(exps[0], context);\n\n if (result instanceof Function) {\n return executeFunction(result, exps.slice(1), context);\n }\n\n return result;\n}\n\n/**\n * Execute a helper function.\n * @param {Function} helper - helper function\n * @param {Array.} argExps - expressions of arguments\n * @param {object} context - context\n * @returns {string} - result of executing the function with arguments\n * @private\n */\nfunction executeFunction(helper, argExps, context) {\n var args = [];\n forEach(argExps, function(exp) {\n args.push(getValueFromContext(exp, context));\n });\n\n return helper.apply(null, args);\n}\n\n/**\n * Get a result of compiling an expression with the context.\n * @param {Array.} sources - array of sources split by regexp of expression.\n * @param {object} context - context\n * @returns {Array.} - array of sources that bind with its context\n * @private\n */\nfunction compile(sources, context) {\n var index = 1;\n var expression = sources[index];\n var exps, firstExp, result;\n\n while (isString(expression)) {\n exps = expression.split(' ');\n firstExp = exps[0];\n\n if (BLOCK_HELPERS[firstExp]) {\n result = handleBlockHelper(firstExp, sources.splice(index, sources.length - index), context);\n sources = sources.concat(result);\n } else {\n sources[index] = handleExpression(exps, context);\n }\n\n index += EXPRESSION_INTERVAL;\n expression = sources[index];\n }\n\n return sources.join('');\n}\n\n/**\n * Convert text by binding expressions with context.\n *
    \n * If expression exists in the context, it will be replaced.\n * ex) '{{title}}' with context {title: 'Hello!'} is converted to 'Hello!'.\n * An array or object can be accessed using bracket and dot notation.\n * ex) '{{odds\\[2\\]}}' with context {odds: \\[1, 3, 5\\]} is converted to '5'.\n * ex) '{{evens\\[first\\]}}' with context {evens: \\[2, 4\\], first: 0} is converted to '2'.\n * ex) '{{project\\[\"name\"\\]}}' and '{{project.name}}' with context {project: {name: 'CodeSnippet'}} is converted to 'CodeSnippet'.\n *
    \n * If replaced expression is a function, next expressions will be arguments of the function.\n * ex) '{{add 1 2}}' with context {add: function(a, b) {return a + b;}} is converted to '3'.\n *
    \n * It has 3 predefined block helpers '{{helper ...}} ... {{/helper}}': 'if', 'each', 'with ... as ...'.\n * 1) 'if' evaluates conditional statements. It can use with 'elseif' and 'else'.\n * 2) 'each' iterates an array or object. It provides '@index'(array), '@key'(object), and '@this'(current element).\n * 3) 'with ... as ...' provides an alias.\n * @param {string} text - text with expressions\n * @param {object} context - context\n * @returns {string} - text that bind with its context\n * @memberof module:domUtil\n * @example\n * var template = require('tui-code-snippet/domUtil/template');\n * \n * var source = \n * '

    '\n * + '{{if isValidNumber title}}'\n * + '{{title}}th'\n * + '{{elseif isValidDate title}}'\n * + 'Date: {{title}}'\n * + '{{/if}}'\n * + '

    '\n * + '{{each list}}'\n * + '{{with addOne @index as idx}}'\n * + '

    {{idx}}: {{@this}}

    '\n * + '{{/with}}'\n * + '{{/each}}';\n * \n * var context = {\n * isValidDate: function(text) {\n * return /^\\d{4}-(0|1)\\d-(0|1|2|3)\\d$/.test(text);\n * },\n * isValidNumber: function(text) {\n * return /^\\d+$/.test(text);\n * }\n * title: '2019-11-25',\n * list: ['Clean the room', 'Wash the dishes'],\n * addOne: function(num) {\n * return num + 1;\n * }\n * };\n * \n * var result = template(source, context);\n * console.log(result); //

    Date: 2019-11-25

    1: Clean the room

    2: Wash the dishes

    \n */\nfunction template(text, context) {\n return compile(splitByRegExp(text, EXPRESSION_REGEXP), context);\n}\n\nmodule.exports = template;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get mouse position from mouse event\n * @author NHN FE Development Lab \n */\n\n\n\nvar isArray = __webpack_require__(1);\n\n/**\n * Get mouse position from mouse event\n *\n * If supplied relatveElement parameter then return relative position based on\n * element\n * @param {(MouseEvent|object|number[])} position - mouse position object\n * @param {HTMLElement} relativeElement HTML element that calculate relative\n * position\n * @returns {number[]} mouse position\n * @memberof module:domEvent\n */\nfunction getMousePosition(position, relativeElement) {\n var positionArray = isArray(position);\n var clientX = positionArray ? position[0] : position.clientX;\n var clientY = positionArray ? position[1] : position.clientY;\n var rect;\n\n if (!relativeElement) {\n return [clientX, clientY];\n }\n\n rect = relativeElement.getBoundingClientRect();\n\n return [\n clientX - rect.left - relativeElement.clientLeft,\n clientY - rect.top - relativeElement.clientTop\n ];\n}\n\nmodule.exports = getMousePosition;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Find parent element recursively\n * @author NHN FE Development Lab \n */\n\n\n\nvar matches = __webpack_require__(55);\n\n/**\n * Find parent element recursively\n * @param {HTMLElement} element - base element to start find\n * @param {string} selector - selector string for find\n * @returns {HTMLElement} - element finded or null\n * @memberof module:domUtil\n */\nfunction closest(element, selector) {\n var parent = element.parentNode;\n\n if (matches(element, selector)) {\n return element;\n }\n\n while (parent && parent !== document) {\n if (matches(parent, selector)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return null;\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element match selector\n * @author NHN FE Development Lab \n */\n\n\n\nvar inArray = __webpack_require__(5);\nvar toArray = __webpack_require__(56);\n\nvar elProto = Element.prototype;\nvar matchSelector = elProto.matches ||\n elProto.webkitMatchesSelector ||\n elProto.mozMatchesSelector ||\n elProto.msMatchesSelector ||\n function(selector) {\n var doc = this.document || this.ownerDocument;\n\n return inArray(this, toArray(doc.querySelectorAll(selector))) > -1;\n };\n\n/**\n * Check element match selector\n * @param {HTMLElement} element - element to check\n * @param {string} selector - selector to check\n * @returns {boolean} is selector matched to element?\n * @memberof module:domUtil\n */\nfunction matches(element, selector) {\n return matchSelector.call(element, selector);\n}\n\nmodule.exports = matches;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Transform the Array-like object to Array.\n * @author NHN FE Development Lab \n */\n\n\n\nvar forEachArray = __webpack_require__(6);\n\n/**\n * Transform the Array-like object to Array.\n * In low IE (below 8), Array.prototype.slice.call is not perfect. So, try-catch statement is used.\n * @param {*} arrayLike Array-like object\n * @returns {Array} Array\n * @memberof module:collection\n * @example\n * var toArray = require('tui-code-snippet/collection/toArray'); // node, commonjs\n *\n * var arrayLike = {\n * 0: 'one',\n * 1: 'two',\n * 2: 'three',\n * 3: 'four',\n * length: 4\n * };\n * var result = toArray(arrayLike);\n *\n * alert(result instanceof Array); // true\n * alert(result); // one,two,three,four\n */\nfunction toArray(arrayLike) {\n var arr;\n try {\n arr = Array.prototype.slice.call(arrayLike);\n } catch (e) {\n arr = [];\n forEachArray(arrayLike, function(value) {\n arr.push(value);\n });\n }\n\n return arr;\n}\n\nmodule.exports = toArray;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * @fileoverview Slider template\n */\n\n\nvar isOldBrowser = __webpack_require__(4).isOldBrowser;\n\nvar layout = ['
    {{slider}}
    ', '
    {{huebar}}
    '].join('\\n');\nvar SVGSlider = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', ''].join('\\n');\nvar VMLSlider = ['
    ', '', '', '', '', '', '', '', '
    '].join('\\n');\nvar SVGHuebar = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', ''].join('\\n');\nvar VMLHuebar = ['
    ', '', '', '', '', '
    '].join('\\n');\n\nif (isOldBrowser) {\n global.document.namespaces.add('v', 'urn:schemas-microsoft-com:vml');\n}\n\nmodule.exports = {\n layout: layout,\n slider: isOldBrowser ? VMLSlider : SVGSlider,\n huebar: isOldBrowser ? VMLHuebar : SVGHuebar\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))\n\n/***/ })\n/******/ ]);\n});", "/*!\n * TOAST UI Editor : Color Syntax Plugin\n * @version 3.1.0 | Fri Aug 05 2022\n * @author NHN Cloud FE Development Lab \n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"tui-color-picker\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"tui-color-picker\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"toastui\"] = factory(require(\"tui-color-picker\"));\n\telse\n\t\troot[\"toastui\"] = root[\"toastui\"] || {}, root[\"toastui\"][\"Editor\"] = root[\"toastui\"][\"Editor\"] || {}, root[\"toastui\"][\"Editor\"][\"plugin\"] = root[\"toastui\"][\"Editor\"][\"plugin\"] || {}, root[\"toastui\"][\"Editor\"][\"plugin\"][\"uml\"] = factory(root[\"tui\"][\"colorPicker\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__858__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 858:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__858__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ colorSyntaxPlugin; }\n});\n\n// EXTERNAL MODULE: external {\"commonjs\":\"tui-color-picker\",\"commonjs2\":\"tui-color-picker\",\"amd\":\"tui-color-picker\",\"root\":[\"tui\",\"colorPicker\"]}\nvar external_commonjs_tui_color_picker_commonjs2_tui_color_picker_amd_tui_color_picker_root_tui_colorPicker_ = __webpack_require__(858);\nvar external_commonjs_tui_color_picker_commonjs2_tui_color_picker_amd_tui_color_picker_root_tui_colorPicker_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_tui_color_picker_commonjs2_tui_color_picker_amd_tui_color_picker_root_tui_colorPicker_);\n;// CONCATENATED MODULE: ./src/i18n/langs.ts\nfunction addLangs(i18n) {\n i18n.setLanguage('ar', {\n 'Text color': '\u0644\u0648\u0646 \u0627\u0644\u0646\u0635',\n });\n i18n.setLanguage(['cs', 'cs-CZ'], {\n 'Text color': 'Barva textu',\n });\n i18n.setLanguage(['de', 'de-DE'], {\n 'Text color': 'Textfarbe',\n });\n i18n.setLanguage(['en', 'en-US'], {\n 'Text color': 'Text color',\n });\n i18n.setLanguage(['es', 'es-ES'], {\n 'Text color': 'Color del texto',\n });\n i18n.setLanguage(['fi', 'fi-FI'], {\n 'Text color': 'Tekstin v\u00E4ri',\n });\n i18n.setLanguage(['fr', 'fr-FR'], {\n 'Text color': 'Couleur du texte',\n });\n i18n.setLanguage(['gl', 'gl-ES'], {\n 'Text color': 'Cor do texto',\n });\n i18n.setLanguage(['hr', 'hr-HR'], {\n 'Text color': 'Boja teksta',\n });\n i18n.setLanguage(['it', 'it-IT'], {\n 'Text color': 'Colore del testo',\n });\n i18n.setLanguage(['ja', 'ja-JP'], {\n 'Text color': '\u6587\u5B57\u8272\u76F8',\n });\n i18n.setLanguage(['ko', 'ko-KR'], {\n 'Text color': '\uAE00\uC790 \uC0C9\uC0C1',\n });\n i18n.setLanguage(['nb', 'nb-NO'], {\n 'Text color': 'Tekstfarge',\n });\n i18n.setLanguage(['nl', 'nl-NL'], {\n 'Text color': 'Tekstkleur',\n });\n i18n.setLanguage(['pl', 'pl-PL'], {\n 'Text color': 'Kolor tekstu',\n });\n i18n.setLanguage(['pt', 'pt-BR'], {\n 'Text color': 'Cor do texto',\n });\n i18n.setLanguage(['ru', 'ru-RU'], {\n 'Text color': '\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430',\n });\n i18n.setLanguage(['sv', 'sv-SE'], {\n 'Text color': 'Textf\u00E4rg',\n });\n i18n.setLanguage(['tr', 'tr-TR'], {\n 'Text color': 'Metin rengi',\n });\n i18n.setLanguage(['uk', 'uk-UA'], {\n 'Text color': '\u041A\u043E\u043B\u0456\u0440 \u0442\u0435\u043A\u0441\u0442\u0443',\n });\n i18n.setLanguage('zh-CN', {\n 'Text color': '\u6587\u5B57\u989C\u8272',\n });\n i18n.setLanguage('zh-TW', {\n 'Text color': '\u6587\u5B57\u984F\u8272',\n });\n}\n\n;// CONCATENATED MODULE: ./src/utils/dom.ts\nfunction hasClass(element, className) {\n return element.classList.contains(className);\n}\nfunction findParentByClassName(el, className) {\n var currentEl = el;\n while (currentEl && !hasClass(currentEl, className)) {\n currentEl = currentEl.parentElement;\n }\n return currentEl;\n}\nfunction removeProseMirrorHackNodes(html) {\n var reProseMirrorImage = /\"\"/g;\n var reProseMirrorTrailingBreak = / class=\"ProseMirror-trailingBreak\"/g;\n var resultHTML = html;\n resultHTML = resultHTML.replace(reProseMirrorImage, '');\n resultHTML = resultHTML.replace(reProseMirrorTrailingBreak, '');\n return resultHTML;\n}\n\n;// CONCATENATED MODULE: ./src/index.ts\n\n\n\n\nvar PREFIX = 'toastui-editor-';\nfunction createApplyButton(text) {\n var button = document.createElement('button');\n button.setAttribute('type', 'button');\n button.textContent = text;\n return button;\n}\nfunction createToolbarItemOption(colorPickerContainer, i18n) {\n return {\n name: 'color',\n tooltip: i18n.get('Text color'),\n className: PREFIX + \"toolbar-icons color\",\n popup: {\n className: PREFIX + \"popup-color\",\n body: colorPickerContainer,\n style: { width: 'auto' },\n },\n };\n}\nfunction createSelection(tr, selection, SelectionClass, openTag, closeTag) {\n var mapping = tr.mapping, doc = tr.doc;\n var from = selection.from, to = selection.to, empty = selection.empty;\n var mappedFrom = mapping.map(from) + openTag.length;\n var mappedTo = mapping.map(to) - closeTag.length;\n return empty\n ? SelectionClass.create(doc, mappedTo, mappedTo)\n : SelectionClass.create(doc, mappedFrom, mappedTo);\n}\nfunction getCurrentEditorEl(colorPickerEl, containerClassName) {\n var editorDefaultEl = findParentByClassName(colorPickerEl, PREFIX + \"defaultUI\");\n return editorDefaultEl.querySelector(\".\" + containerClassName + \" .ProseMirror\");\n}\nvar containerClassName;\nvar currentEditorEl;\n// @TODO: add custom syntax for plugin\n/**\n * Color syntax plugin\n * @param {Object} context - plugin context for communicating with editor\n * @param {Object} options - options for plugin\n * @param {Array.} [options.preset] - preset for color palette (ex: ['#181818', '#292929'])\n * @param {boolean} [options.useCustomSyntax=false] - whether use custom syntax or not\n */\nfunction colorSyntaxPlugin(context, options) {\n if (options === void 0) { options = {}; }\n var eventEmitter = context.eventEmitter, i18n = context.i18n, _a = context.usageStatistics, usageStatistics = _a === void 0 ? true : _a, pmState = context.pmState;\n var preset = options.preset;\n var container = document.createElement('div');\n var colorPickerOption = { container: container, usageStatistics: usageStatistics };\n addLangs(i18n);\n if (preset) {\n colorPickerOption.preset = preset;\n }\n var colorPicker = external_commonjs_tui_color_picker_commonjs2_tui_color_picker_amd_tui_color_picker_root_tui_colorPicker_default().create(colorPickerOption);\n var button = createApplyButton(i18n.get('OK'));\n eventEmitter.listen('focus', function (editType) {\n containerClassName = \"\" + PREFIX + (editType === 'markdown' ? 'md' : 'ww') + \"-container\";\n });\n container.addEventListener('click', function (ev) {\n if (ev.target.getAttribute('type') === 'button') {\n var selectedColor = colorPicker.getColor();\n currentEditorEl = getCurrentEditorEl(container, containerClassName);\n eventEmitter.emit('command', 'color', { selectedColor: selectedColor });\n eventEmitter.emit('closePopup');\n // force the current editor to focus for preventing to lose focus\n currentEditorEl.focus();\n }\n });\n colorPicker.slider.toggle(true);\n container.appendChild(button);\n var toolbarItem = createToolbarItemOption(container, i18n);\n return {\n markdownCommands: {\n color: function (_a, _b, dispatch) {\n var selectedColor = _a.selectedColor;\n var tr = _b.tr, selection = _b.selection, schema = _b.schema;\n if (selectedColor) {\n var slice = selection.content();\n var textContent = slice.content.textBetween(0, slice.content.size, '\\n');\n var openTag = \"\";\n var closeTag = \"\";\n var colored = \"\" + openTag + textContent + closeTag;\n tr.replaceSelectionWith(schema.text(colored)).setSelection(createSelection(tr, selection, pmState.TextSelection, openTag, closeTag));\n dispatch(tr);\n return true;\n }\n return false;\n },\n },\n wysiwygCommands: {\n color: function (_a, _b, dispatch) {\n var selectedColor = _a.selectedColor;\n var tr = _b.tr, selection = _b.selection, schema = _b.schema;\n if (selectedColor) {\n var from = selection.from, to = selection.to;\n var attrs = { htmlAttrs: { style: \"color: \" + selectedColor } };\n var mark = schema.marks.span.create(attrs);\n tr.addMark(from, to, mark);\n dispatch(tr);\n return true;\n }\n return false;\n },\n },\n toolbarItems: [\n {\n groupIndex: 0,\n itemIndex: 3,\n item: toolbarItem,\n },\n ],\n toHTMLRenderers: {\n htmlInline: {\n span: function (node, _a) {\n var entering = _a.entering;\n return entering\n ? { type: 'openTag', tagName: 'span', attributes: node.attrs }\n : { type: 'closeTag', tagName: 'span' };\n },\n },\n },\n };\n}\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});", "/*!\n * TOAST UI Editor : Code Syntax Highlight Plugin\n * @version 3.1.0 | Fri Aug 05 2022\n * @author NHN Cloud FE Development Lab \n * @license MIT\n */\n/******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 7246:\n/***/ (function() {\n\nPrism.languages.abap = {\n\t'comment': /^\\*.*/m,\n\t'string' : /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\n\t'string-template': {\n\t\tpattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n\t\tlookbehind: true,\n\t\talias: 'string'\n\t},\n\t/* End Of Line comments should not interfere with strings when the \n\tquote character occurs within them. We assume a string being highlighted\n\tinside an EOL comment is more acceptable than the opposite.\n\t*/\n\t'eol-comment': {\n\t\tpattern: /(^|\\s)\".*/m,\n\t\tlookbehind: true,\n\t\talias: 'comment'\n\t},\n\t'keyword' : {\n\t\tpattern: /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n\t\tlookbehind: true\n\t},\n\t/* Numbers can be only integers. Decimal or Hex appear only as strings */\n\t'number' : /\\b\\d+\\b/,\n\t/* Operators must always be surrounded by whitespace, they cannot be put \n\tadjacent to operands. \n\t*/\n\t'operator' : {\n\t\tpattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n\t\tlookbehind: true\n\t},\n\t'string-operator' : {\n\t\tpattern: /(\\s)&&?(?=\\s)/,\n\t\tlookbehind: true,\n\t\t/* The official editor highlights */\n\t\talias: \"keyword\"\n\t},\n\t'token-operator' : [{\n\t\t/* Special operators used to access structure components, class methods/attributes, etc. */\n\t\tpattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n\t\tlookbehind: true,\n\t\talias: \"punctuation\"\n\t}, {\n\t /* Special tokens used do delimit string templates */\n\t pattern: /[|{}]/,\n\t\talias: \"punctuation\"\n\t}],\n\t'punctuation' : /[,.:()]/\n};\n\n/***/ }),\n\n/***/ 2255:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar coreRules = '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)';\n\n\tPrism.languages.abnf = {\n\t\t'comment': /;.*/,\n\t\t'string': {\n\t\t\tpattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^%[is]/\n\t\t\t}\n\t\t},\n\t\t'range': {\n\t\t\tpattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n\t\t\talias: 'number'\n\t\t},\n\t\t'terminal': {\n\t\t\tpattern: /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n\t\t\talias: 'number'\n\t\t},\n\t\t'repetition': {\n\t\t\tpattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'operator'\n\t\t},\n\t\t'definition': {\n\t\t\tpattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^>\\r\\n]*>)(?=\\s*=)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword',\n\t\t\tinside: {\n\t\t\t\t'punctuation': /<|>/\n\t\t\t}\n\t\t},\n\t\t'core-rule': {\n\t\t\tpattern: RegExp('(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])', 'i'),\n\t\t\tlookbehind: true,\n\t\t\talias: ['rule', 'constant'],\n\t\t\tinside: {\n\t\t\t\t'punctuation': /<|>/\n\t\t\t}\n\t\t},\n\t\t'rule': {\n\t\t\tpattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^>\\r\\n]*>/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /<|>/\n\t\t\t}\n\t\t},\n\t\t'operator': /=\\/?|\\//,\n\t\t'punctuation': /[()\\[\\]]/\n\t};\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 6394:\n/***/ (function() {\n\nPrism.languages.actionscript = Prism.languages.extend('javascript', {\n\t'keyword': /\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\\b/,\n\t'operator': /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<>?>?|[!=]=?)=?|[~?@]/\n});\nPrism.languages.actionscript['class-name'].alias = 'function';\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('actionscript', 'string', {\n\t\t'xml': {\n\t\t\tpattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.markup\n\t\t}\n\t});\n}\n\n\n/***/ }),\n\n/***/ 5143:\n/***/ (function() {\n\nPrism.languages.ada = {\n\t'comment': /--.*/,\n\t'string': /\"(?:\"\"|[^\"\\r\\f\\n])*\"/i,\n\t'number': [\n\t\t{\n\t\t\tpattern: /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n\t\t}\n\t],\n\t'attr-name': /\\b'\\w+/i,\n\t'keyword': /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n\t'boolean': /\\b(?:true|false)\\b/i,\n\t'operator': /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n\t'punctuation': /\\.\\.?|[,;():]/,\n\t'char': /'.'/,\n\t'variable': /\\b[a-z](?:[_a-z\\d])*\\b/i\n};\n\n/***/ }),\n\n/***/ 3426:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.agda = {\n\t\t'comment': /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n\t\t'string': {\n\t\t\tpattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n\t\t\tgreedy: true,\n\t\t},\n\t\t'punctuation': /[(){}\u2983\u2984.;@]/,\n\t\t'class-name': {\n\t\t\tpattern: /((?:data|record) +)\\S+/,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t'function': {\n\t\t\tpattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t'operator': {\n\t\t\tpattern: /(^\\s*|\\s)(?:[=|:\u2200\u2192\u03BB\\\\?_]|->)(?=\\s)/,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t'keyword': /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/,\n\t};\n}(Prism));\n\n\n/***/ }),\n\n/***/ 5625:\n/***/ (function() {\n\n// based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n\nPrism.languages.al = {\n\t'comment': /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n\t'string': {\n\t\tpattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n\t\tlookbehind: true\n\t},\n\t'keyword': [\n\t\t// keywords\n\t\t/\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i,\n\t\t// objects and metadata that are used like keywords\n\t\t/\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n\t],\n\t'number': /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|U(?:LL?)?|LL?)?\\b/i,\n\t'boolean': /\\b(?:false|true)\\b/i,\n\t'variable': /\\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\\b/,\n\t'class-name': /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n\t'operator': /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n\t'punctuation': /[()\\[\\]{}:.;,]/\n};\n\n\n/***/ }),\n\n/***/ 2259:\n/***/ (function() {\n\nPrism.languages.antlr4 = {\n\t'comment': /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t'string': {\n\t\tpattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n\t\tgreedy: true\n\t},\n\t'character-class': {\n\t\tpattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n\t\tgreedy: true,\n\t\talias: 'regex',\n\t\tinside: {\n\t\t\t'range': {\n\t\t\t\tpattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'punctuation'\n\t\t\t},\n\t\t\t'escape': /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n\t\t\t'punctuation': /[\\[\\]]/\n\t\t}\n\t},\n\t'action': {\n\t\tpattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'content': {\n\t\t\t\t// this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n\t\t\t\tpattern: /(\\{)[\\s\\S]+(?=\\})/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'punctuation': /[{}]/\n\t\t}\n\t},\n\t'command': {\n\t\tpattern: /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'function': /\\b\\w+(?=\\s*(?:[,(]|$))/,\n\t\t\t'punctuation': /[,()]/\n\t\t}\n\t},\n\t'annotation': {\n\t\tpattern: /@\\w+(?:::\\w+)*/,\n\t\talias: 'keyword'\n\t},\n\t'label': {\n\t\tpattern: /#[ \\t]*\\w+/,\n\t\talias: 'punctuation'\n\t},\n\t'keyword': /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n\t'definition': [\n\t\t{\n\t\t\tpattern: /\\b[a-z]\\w*(?=\\s*:)/,\n\t\t\talias: ['rule', 'class-name']\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n\t\t\talias: ['token', 'constant']\n\t\t},\n\t],\n\t'constant': /\\b[A-Z][A-Z_]*\\b/,\n\t'operator': /\\.\\.|->|[|~]|[*+?]\\??/,\n\t'punctuation': /[;:()=]/\n};\n\nPrism.languages.g4 = Prism.languages.antlr4;\n\n\n/***/ }),\n\n/***/ 253:\n/***/ (function() {\n\nPrism.languages.apacheconf = {\n\t'comment': /#.*/,\n\t'directive-inline': {\n\t\tpattern: /(^\\s*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n\t'directive-block': {\n\t\tpattern: /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n\t\tinside: {\n\t\t\t'directive-block': {\n\t\t\t\tpattern: /^<\\/?\\w+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/\n\t\t\t\t},\n\t\t\t\talias: 'tag'\n\t\t\t},\n\t\t\t'directive-block-parameter': {\n\t\t\t\tpattern: /.*[^>]/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /:/,\n\t\t\t\t\t'string': {\n\t\t\t\t\t\tpattern: /(\"|').*\\1/,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'variable': /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\talias: 'attr-value'\n\t\t\t},\n\t\t\t'punctuation': />/\n\t\t},\n\t\talias: 'tag'\n\t},\n\t'directive-flags': {\n\t\tpattern: /\\[(?:[\\w=],?)+\\]/,\n\t\talias: 'keyword'\n\t},\n\t'string': {\n\t\tpattern: /(\"|').*\\1/,\n\t\tinside: {\n\t\t\t'variable': /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n\t\t}\n\t},\n\t'variable': /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n\t'regex': /\\^?.*\\$|\\^.*\\$?/\n};\n\n\n/***/ }),\n\n/***/ 1841:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\\s*[{};])|(?:after|before)(?=\\s+[a-z])|(?:inherited|with|without)\\s+sharing)\\b/i;\n\n\tvar className = /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source\n\t\t.replace(//g, function () { return keywords.source; });\n\t/** @param {string} pattern */\n\tfunction insertClassName(pattern) {\n\t\treturn RegExp(pattern.replace(//g, function () { return className; }), 'i');\n\t}\n\n\tvar classNameInside = {\n\t\t'keyword': keywords,\n\t\t'punctuation': /[()\\[\\]{};,:.<>]/\n\t};\n\n\tPrism.languages.apex = {\n\t\t'comment': Prism.languages.clike.comment,\n\t\t'string': Prism.languages.clike.string,\n\t\t'sql': {\n\t\t\tpattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: 'language-sql',\n\t\t\tinside: Prism.languages.sql\n\t\t},\n\n\t\t'annotation': {\n\t\t\tpattern: /@\\w+\\b/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: insertClassName(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: classNameInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// cast\n\t\t\t\tpattern: insertClassName(/(\\(\\s*)(?=\\s*\\)\\s*[\\w(])/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: classNameInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// variable/parameter declaration and return types\n\t\t\t\tpattern: insertClassName(/(?=\\s*\\w+\\s*[;=,(){:])/.source),\n\t\t\t\tinside: classNameInside\n\t\t\t}\n\t\t],\n\t\t'trigger': {\n\t\t\tpattern: /(\\btrigger\\s+)\\w+\\b/i,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'keyword': keywords,\n\t\t'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\n\t\t'boolean': /\\b(?:false|true)\\b/i,\n\n\t\t'number': /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n\t\t'operator': /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<{1,3}=?/,\n\t\t'punctuation': /[()\\[\\]{};,.]/\n\t};\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 8444:\n/***/ (function() {\n\nPrism.languages.apl = {\n\t'comment': /(?:\u235D|#[! ]).*$/m,\n\t'string': {\n\t\tpattern: /'(?:[^'\\r\\n]|'')*'/,\n\t\tgreedy: true\n\t},\n\t'number': /\u00AF?(?:\\d*\\.?\\b\\d+(?:e[+\u00AF]?\\d+)?|\u00AF|\u221E)(?:j\u00AF?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+\u00AF]?\\d+)?|\u00AF|\u221E))?/i,\n\t'statement': /:[A-Z][a-z][A-Za-z]*\\b/,\n\t'system-function': {\n\t\tpattern: /\u2395[A-Z]+/i,\n\t\talias: 'function'\n\t},\n\t'constant': /[\u236C\u233E#\u2395\u235E]/,\n\t'function': /[-+\u00D7\u00F7\u2308\u230A\u2223|\u2373\u2378?*\u235F\u25CB!\u2339<\u2264=>\u2265\u2260\u2261\u2262\u220A\u2377\u222A\u2229~\u2228\u2227\u2371\u2372\u2374,\u236A\u233D\u2296\u2349\u2191\u2193\u2282\u2283\u2286\u2287\u2337\u234B\u2352\u22A4\u22A5\u2355\u234E\u22A3\u22A2\u2341\u2342\u2248\u236F\u2197\u00A4\u2192]/,\n\t'monadic-operator': {\n\t\tpattern: /[\\\\\\/\u233F\u2340\u00A8\u2368\u2336&\u2225]/,\n\t\talias: 'operator'\n\t},\n\t'dyadic-operator': {\n\t\tpattern: /[.\u2363\u2360\u2364\u2218\u2338@\u233A\u2365]/,\n\t\talias: 'operator'\n\t},\n\t'assignment': {\n\t\tpattern: /\u2190/,\n\t\talias: 'keyword'\n\t},\n\t'punctuation': /[\\[;\\]()\u25C7\u22C4]/,\n\t'dfn': {\n\t\tpattern: /[{}\u237A\u2375\u2376\u2379\u2207\u236B:]/,\n\t\talias: 'builtin'\n\t}\n};\n\n\n/***/ }),\n\n/***/ 8287:\n/***/ (function() {\n\nPrism.languages.applescript = {\n\t'comment': [\n\t\t// Allow one level of nesting\n\t\t/\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n\t\t/--.+/,\n\t\t/#.+/\n\t],\n\t'string': /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n\t'operator': [\n\t\t/[&=\u2260\u2264\u2265*+\\-\\/\u00F7^]|[<>]=?/,\n\t\t/\\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\\b/\n\t],\n\t'keyword': /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n\t'class': {\n\t\tpattern: /\\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\\b/,\n\t\talias: 'builtin'\n\t},\n\t'punctuation': /[{}():,\u00AC\u00AB\u00BB\u300A\u300B]/\n};\n\n\n/***/ }),\n\n/***/ 469:\n/***/ (function() {\n\nPrism.languages.aql = {\n\t'comment': /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n\t'property': {\n\t\tpattern: /([{,]\\s*)(?:(?!\\d)\\w+|([\"'\u00B4`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /([\"'\u00B4`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n\t\tgreedy: true\n\t},\n\t'variable': /@@?\\w+/,\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t/\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WITH)\\b/i,\n\t\t// pseudo keywords get a lookbehind to avoid false positives\n\t\t{\n\t\t\tpattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\\bOPTIONS(?=\\s*{)/i\n\t\t}\n\t],\n\t'function': /(?!\\d)\\w+(?=\\s*\\()/,\n\t'boolean': /(?:true|false)/i,\n\t'range': {\n\t\tpattern: /\\.\\./,\n\t\talias: 'operator'\n\t},\n\t'number': /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i,\n\t'operator': /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n\t'punctuation': /::|[?.:,;()[\\]{}]/\n};\n\n\n/***/ }),\n\n/***/ 4542:\n/***/ (function() {\n\nPrism.languages.arduino = Prism.languages.extend('cpp', {\n\t'constant': /\\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\\b/,\n\t'keyword': /\\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\\b/,\n\t'builtin': /\\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\\b/\n});\n\n\n/***/ }),\n\n/***/ 7625:\n/***/ (function() {\n\nPrism.languages.arff = {\n\t'comment': /%.*/,\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': /@(?:attribute|data|end|relation)\\b/i,\n\t'number': /\\b\\d+(?:\\.\\d+)?\\b/,\n\t'punctuation': /[{},]/\n};\n\n/***/ }),\n\n/***/ 3190:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar attributes = {\n\t\tpattern: /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'quoted': {\n\t\t\t\tpattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^[$`]|[$`]$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'interpreted': {\n\t\t\t\tpattern: /'(?:[^'\\\\]|\\\\.)*'/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^'|'$/\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /\"(?:[^\"\\\\]|\\\\.)*\"/,\n\t\t\t'variable': /\\w+(?==)/,\n\t\t\t'punctuation': /^\\[|\\]$|,/,\n\t\t\t'operator': /=/,\n\t\t\t// The negative look-ahead prevents blank matches\n\t\t\t'attr-value': /(?!^\\s+$).+/\n\t\t}\n\t};\n\n\tvar asciidoc = Prism.languages.asciidoc = {\n\t\t'comment-block': {\n\t\t\tpattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n\t\t\talias: 'comment'\n\t\t},\n\t\t'table': {\n\t\t\tpattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n\t\t\tinside: {\n\t\t\t\t'specifiers': {\n\t\t\t\t\tpattern: /(?!\\|)(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*])?(?:[<^>](?:\\.[<^>])?|\\.[<^>])?[a-z]*)(?=\\|)/,\n\t\t\t\t\talias: 'attr-value'\n\t\t\t\t},\n\t\t\t\t'punctuation': {\n\t\t\t\t\tpattern: /(^|[^\\\\])[|!]=*/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\n\t\t'passthrough-block': {\n\t\t\tpattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^\\++|\\++$/\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t// Literal blocks and listing blocks\n\t\t'literal-block': {\n\t\t\tpattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^(?:-+|\\.+)|(?:-+|\\.+)$/\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t// Sidebar blocks, quote blocks, example blocks and open blocks\n\t\t'other-block': {\n\t\t\tpattern: /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\n\t\t// list-punctuation and list-label must appear before indented-block\n\t\t'list-punctuation': {\n\t\t\tpattern: /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'list-label': {\n\t\t\tpattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n\t\t\tlookbehind: true,\n\t\t\talias: 'symbol'\n\t\t},\n\t\t'indented-block': {\n\t\t\tpattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\n\t\t'comment': /^\\/\\/.*/m,\n\t\t'title': {\n\t\t\tpattern: /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n\t\t\talias: 'important',\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'attribute-entry': {\n\t\t\tpattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n\t\t\talias: 'tag'\n\t\t},\n\t\t'attributes': attributes,\n\t\t'hr': {\n\t\t\tpattern: /^'{3,}$/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'page-break': {\n\t\t\tpattern: /^<{3,}$/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'admonition': {\n\t\t\tpattern: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t'callout': [\n\t\t\t{\n\t\t\t\tpattern: /(^[ \\t]*)/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'symbol'\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /<\\d+>/,\n\t\t\t\talias: 'symbol'\n\t\t\t}\n\t\t],\n\t\t'macro': {\n\t\t\tpattern: /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n\t\t\tinside: {\n\t\t\t\t'function': /^[a-z\\d-]+(?=:)/,\n\t\t\t\t'punctuation': /^::?/,\n\t\t\t\t'attributes': {\n\t\t\t\t\tpattern: /(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n\t\t\t\t\tinside: attributes.inside\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'inline': {\n\t\t\t/*\n\t\t\tThe initial look-behind prevents the highlighting of escaped quoted text.\n\n\t\t\tQuoted text can be multi-line but cannot span an empty line.\n\t\t\tAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\n\n\t\t\tFirst, we handle the constrained quotes.\n\t\t\tThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\n\t\t\tThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\n\n\t\t\tThen we handle the unconstrained quotes.\n\t\t\tThose do not have the restrictions of the constrained quotes.\n\t\t\tThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <>, (((indexes))) and ((indexes))\n\t\t\t */\n\t\t\tpattern: /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attributes': attributes,\n\t\t\t\t'url': {\n\t\t\t\t\tpattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'attribute-ref': {\n\t\t\t\t\tpattern: /^\\{.+\\}$/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'variable': {\n\t\t\t\t\t\t\tpattern: /(^\\{)[a-z\\d,+_-]+/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'operator': /^[=?!#%@$]|!(?=[:}])/,\n\t\t\t\t\t\t'punctuation': /^\\{|\\}$|::?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'italic': {\n\t\t\t\t\tpattern: /^(['_])[\\s\\S]+\\1$/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^(?:''?|__?)|(?:''?|__?)$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'bold': {\n\t\t\t\t\tpattern: /^\\*[\\s\\S]+\\*$/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\tpunctuation: /^\\*\\*?|\\*\\*?$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'punctuation': /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n\t\t\t}\n\t\t},\n\t\t'replacement': {\n\t\t\tpattern: /\\((?:C|TM|R)\\)/,\n\t\t\talias: 'builtin'\n\t\t},\n\t\t'entity': /&#?[\\da-z]{1,8};/i,\n\t\t'line-continuation': {\n\t\t\tpattern: /(^| )\\+$/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t}\n\t};\n\n\n\t// Allow some nesting. There is no recursion though, so cloning should not be needed.\n\n\tfunction copyFromAsciiDoc(keys) {\n\t\tkeys = keys.split(' ');\n\n\t\tvar o = {};\n\t\tfor (var i = 0, l = keys.length; i < l; i++) {\n\t\t\to[keys[i]] = asciidoc[keys[i]];\n\t\t}\n\t\treturn o;\n\t}\n\n\tattributes.inside['interpreted'].inside.rest = copyFromAsciiDoc('macro inline replacement entity');\n\n\tasciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro');\n\n\tasciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout');\n\n\tasciidoc['table'].inside.rest = copyFromAsciiDoc('comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation');\n\n\tasciidoc['other-block'].inside.rest = copyFromAsciiDoc('table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation');\n\n\tasciidoc['title'].inside.rest = copyFromAsciiDoc('macro inline replacement entity');\n\n\n\t// Plugin to make entity title show the real entity, idea by Roman Komarov\n\tPrism.hooks.add('wrap', function (env) {\n\t\tif (env.type === 'entity') {\n\t\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t\t}\n\t});\n\n\tPrism.languages.adoc = Prism.languages.asciidoc;\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9594:\n/***/ (function() {\n\nPrism.languages.asm6502 = {\n\t'comment': /;.*/,\n\t'directive': {\n\t\tpattern: /\\.\\w+(?= )/,\n\t\talias: 'keyword'\n\t},\n\t'string': /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t'opcode': {\n\t\tpattern: /\\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\\b/,\n\t\talias: 'property'\n\t},\n\t'hexnumber': {\n\t\tpattern: /#?\\$[\\da-f]{2,4}\\b/i,\n\t\talias: 'string'\n\t},\n\t'binarynumber': {\n\t\tpattern: /#?%[01]+\\b/,\n\t\talias: 'string'\n\t},\n\t'decimalnumber': {\n\t\tpattern: /#?\\b\\d+\\b/,\n\t\talias: 'string'\n\t},\n\t'register': {\n\t\tpattern: /\\b[xya]\\b/i,\n\t\talias: 'variable'\n\t}\n};\n\n\n/***/ }),\n\n/***/ 1218:\n/***/ (function() {\n\nPrism.languages.aspnet = Prism.languages.extend('markup', {\n\t'page-directive': {\n\t\tpattern: /<%\\s*@.*%>/i,\n\t\talias: 'tag',\n\t\tinside: {\n\t\t\t'page-directive': {\n\t\t\t\tpattern: /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n\t\t\t\talias: 'tag'\n\t\t\t},\n\t\t\trest: Prism.languages.markup.tag.inside\n\t\t}\n\t},\n\t'directive': {\n\t\tpattern: /<%.*%>/i,\n\t\talias: 'tag',\n\t\tinside: {\n\t\t\t'directive': {\n\t\t\t\tpattern: /<%\\s*?[$=%#:]{0,2}|%>/i,\n\t\t\t\talias: 'tag'\n\t\t\t},\n\t\t\trest: Prism.languages.csharp\n\t\t}\n\t}\n});\n// Regexp copied from prism-markup, with a negative look-ahead added\nPrism.languages.aspnet.tag.pattern = /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i;\n\n// match directives of attribute value foo=\"<% Bar %>\"\nPrism.languages.insertBefore('inside', 'punctuation', {\n\t'directive': Prism.languages.aspnet['directive']\n}, Prism.languages.aspnet.tag.inside[\"attr-value\"]);\n\nPrism.languages.insertBefore('aspnet', 'comment', {\n\t'asp-comment': {\n\t\tpattern: /<%--[\\s\\S]*?--%>/,\n\t\talias: ['asp', 'comment']\n\t}\n});\n\n// script runat=\"server\" contains csharp, not javascript\nPrism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', {\n\t'asp-script': {\n\t\tpattern: /(]*>)[\\s\\S]*?(?=<\\/script>)/i,\n\t\tlookbehind: true,\n\t\talias: ['asp', 'script'],\n\t\tinside: Prism.languages.csharp || {}\n\t}\n});\n\n\n/***/ }),\n\n/***/ 193:\n/***/ (function() {\n\n// NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\nPrism.languages.autohotkey = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|\\s);.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^\\s*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': /\"(?:[^\"\\n\\r]|\"\")*\"/m,\n\t'tag': /^[ \\t]*[^\\s:]+?(?=:(?:[^:]|$))/m, //labels\n\t'variable': /%\\w+%/,\n\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t'operator': /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\n\t'selector': /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n\n\t'constant': /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\b/i,\n\n\t'builtin': /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\\b/i,\n\n\t'symbol': /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n\n\t'important': /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n\n\t'keyword': /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n\t'function': /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+?(?=\\()/m,\n\t'punctuation': /[{}[\\]():,]/\n};\n\n\n/***/ }),\n\n/***/ 2146:\n/***/ (function() {\n\nPrism.languages.autoit = {\n\t\"comment\": [\n\t\t/;.*/,\n\t\t{\n\t\t\t// The multi-line comments delimiters can actually be commented out with \";\"\n\t\t\tpattern: /(^\\s*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:comments-end|ce)/m,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t\"url\": {\n\t\tpattern: /(^\\s*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n\t\tlookbehind: true\n\t},\n\t\"string\": {\n\t\tpattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t\"variable\": /([%$@])\\w+\\1/\n\t\t}\n\t},\n\t\"directive\": {\n\t\tpattern: /(^\\s*)#\\w+/m,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t\"function\": /\\b\\w+(?=\\()/,\n\t// Variables and macros\n\t\"variable\": /[$@]\\w+/,\n\t\"keyword\": /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n\t\"number\": /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n\t\"boolean\": /\\b(?:True|False)\\b/i,\n\t\"operator\": /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Or|Not)\\b/i,\n\t\"punctuation\": /[\\[\\]().,:]/\n};\n\n\n/***/ }),\n\n/***/ 8650:\n/***/ (function() {\n\n(function(Prism) {\n\t// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n\t// + LC_ALL, RANDOM, REPLY, SECONDS.\n\t// + make sure PS1..4 are here as they are not always set,\n\t// - some useless things.\n\tvar envVars = '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b';\n\n\tvar commandAfterHeredoc = {\n\t\tpattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation', // this looks reasonably well in all themes\n\t\tinside: null // see below\n\t};\n\n\tvar insideString = {\n\t\t'bash': commandAfterHeredoc,\n\t\t'environment': {\n\t\t\tpattern: RegExp(\"\\\\$\" + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': [\n\t\t\t// [0]: Arithmetic Environment\n\t\t\t{\n\t\t\t\tpattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t\t'variable': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/^\\$\\(\\(/\n\t\t\t\t\t],\n\t\t\t\t\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t\t'operator': /--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,\n\t\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t\t'punctuation': /\\(\\(?|\\)\\)?|,|;/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [1]: Command Substitution\n\t\t\t{\n\t\t\t\tpattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'variable': /^\\$\\(|^`|\\)$|`$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [2]: Brace expansion\n\t\t\t{\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'operator': /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n\t\t\t\t\t'punctuation': /[\\[\\]]/,\n\t\t\t\t\t'environment': {\n\t\t\t\t\t\tpattern: RegExp(\"(\\\\{)\" + envVars),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'constant'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/\\$(?:\\w+|[#?*!@$])/\n\t\t],\n\t\t// Escape sequences from echo and printf's manuals, and escaped quotes.\n\t\t'entity': /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/\n\t};\n\n\tPrism.languages.bash = {\n\t\t'shebang': {\n\t\t\tpattern: /^#!\\s*\\/.*/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\"{\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function-name': [\n\t\t\t// a) function foo {\n\t\t\t// b) foo() {\n\t\t\t// c) function foo() {\n\t\t\t// but not \u201Cfoo {\u201D\n\t\t\t{\n\t\t\t\t// a) and c)\n\t\t\t\tpattern: /(\\bfunction\\s+)\\w+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// b)\n\t\t\t\tpattern: /\\b\\w+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n\t\t\t\talias: 'function'\n\t\t\t}\n\t\t],\n\t\t// Highlight variable names as variables in for and select beginnings.\n\t\t'for-or-select': {\n\t\t\tpattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight variable names as variables in the left-hand part\n\t\t// of assignments (\u201C=\u201D and \u201C+=\u201D).\n\t\t'assign-left': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n\t\t\tinside: {\n\t\t\t\t'environment': {\n\t\t\t\t\tpattern: RegExp(\"(^|[\\\\s;|&]|[<>]\\\\()\" + envVars),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'constant'\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': [\n\t\t\t// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)(\\w+?)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t// Here-document with quotes around the tag\n\t\t\t// \u2192 No expansion (so no \u201Cinside\u201D).\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'bash': commandAfterHeredoc\n\t\t\t\t}\n\t\t\t},\n\t\t\t// \u201CNormal\u201D string\n\t\t\t{\n\t\t\t\tpattern: /(^|[^\\\\](?:\\\\\\\\)*)([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|(?!\\2)[^\\\\`$])*\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t}\n\t\t],\n\t\t'environment': {\n\t\t\tpattern: RegExp(\"\\\\$?\" + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': insideString.variable,\n\t\t'function': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n\t\t'builtin': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:\\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true,\n\t\t\t// Alias added to make those easier to distinguish from strings.\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:true|false)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'file-descriptor': {\n\t\t\tpattern: /\\B&\\d\\b/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'operator': {\n\t\t\t// Lots of redirections here, but not just that.\n\t\t\tpattern: /\\d?<>|>\\||\\+=|==?|!=?|=~|<<[<-]?|[&\\d]?>>|\\d?[<>]&?|&[>&]?|\\|[&|]?|<=?|>=?/,\n\t\t\tinside: {\n\t\t\t\t'file-descriptor': {\n\t\t\t\t\tpattern: /^\\d/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n\t\t'number': {\n\t\t\tpattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t};\n\n\tcommandAfterHeredoc.inside = Prism.languages.bash;\n\n\t/* Patterns in command substitution. */\n\tvar toBeCopied = [\n\t\t'comment',\n\t\t'function-name',\n\t\t'for-or-select',\n\t\t'assign-left',\n\t\t'string',\n\t\t'environment',\n\t\t'function',\n\t\t'keyword',\n\t\t'builtin',\n\t\t'boolean',\n\t\t'file-descriptor',\n\t\t'operator',\n\t\t'punctuation',\n\t\t'number'\n\t];\n\tvar inside = insideString.variable[1].inside;\n\tfor(var i = 0; i < toBeCopied.length; i++) {\n\t\tinside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n\t}\n\n\tPrism.languages.shell = Prism.languages.bash;\n})(Prism);\n\n\n/***/ }),\n\n/***/ 3855:\n/***/ (function() {\n\nPrism.languages.basic = {\n\t'comment': {\n\t\tpattern: /(?:!|REM\\b).+/i,\n\t\tinside: {\n\t\t\t'keyword': /^REM/i\n\t\t}\n\t},\n\t'string': {\n\t\tpattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,\n\t\tgreedy: true\n\t},\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n\t'keyword': /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n\t'function': /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n\t'operator': /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n\t'punctuation': /[,;:()]/\n};\n\n\n/***/ }),\n\n/***/ 9774:\n/***/ (function() {\n\n(function (Prism) {\n\tvar variable = /%%?[~:\\w]+%?|!\\S+!/;\n\tvar parameter = {\n\t\tpattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n\t\talias: 'attr-name',\n\t\tinside: {\n\t\t\t'punctuation': /:/\n\t\t}\n\t};\n\tvar string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/;\n\tvar number = /(?:\\b|-)\\d+\\b/;\n\n\tPrism.languages.batch = {\n\t\t'comment': [\n\t\t\t/^::.*/m,\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'label': {\n\t\t\tpattern: /^:.*/m,\n\t\t\talias: 'property'\n\t\t},\n\t\t'command': [\n\t\t\t{\n\t\t\t\t// FOR command\n\t\t\t\tpattern: /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /^for\\b|\\b(?:in|do)\\b/i,\n\t\t\t\t\t'string': string,\n\t\t\t\t\t'parameter': parameter,\n\t\t\t\t\t'variable': variable,\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'punctuation': /[()',]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// IF command\n\t\t\t\tpattern: /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /^if\\b|\\b(?:not|cmdextversion|defined|errorlevel|exist)\\b/i,\n\t\t\t\t\t'string': string,\n\t\t\t\t\t'parameter': parameter,\n\t\t\t\t\t'variable': variable,\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'operator': /\\^|==|\\b(?:equ|neq|lss|leq|gtr|geq)\\b/i\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ELSE command\n\t\t\t\tpattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /^else\\b/i\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// SET command\n\t\t\t\tpattern: /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /^set\\b/i,\n\t\t\t\t\t'string': string,\n\t\t\t\t\t'parameter': parameter,\n\t\t\t\t\t'variable': [\n\t\t\t\t\t\tvariable,\n\t\t\t\t\t\t/\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/\n\t\t\t\t\t],\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'operator': /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n\t\t\t\t\t'punctuation': /[()',]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Other commands\n\t\t\t\tpattern: /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /^\\w+\\b/i,\n\t\t\t\t\t'string': string,\n\t\t\t\t\t'parameter': parameter,\n\t\t\t\t\t'label': {\n\t\t\t\t\t\tpattern: /(^\\s*):\\S+/m,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'property'\n\t\t\t\t\t},\n\t\t\t\t\t'variable': variable,\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'operator': /\\^/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'operator': /[&@]/,\n\t\t'punctuation': /[()']/\n\t};\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9379:\n/***/ (function() {\n\nPrism.languages.bbcode = {\n\t'tag': {\n\t\tpattern: /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^\\[\\/?[^\\s=\\]]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\\[\\/?/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\]/,\n\t\t\t'attr-name': /[^\\s=\\]]+/\n\t\t}\n\t}\n};\n\nPrism.languages.shortcode = Prism.languages.bbcode;\n\n/***/ }),\n\n/***/ 1782:\n/***/ (function() {\n\nPrism.languages.birb = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': [\n\t\t/\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/,\n\n\t\t// matches variable and function return types (parameters as well).\n\t\t/\\b[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/\n\t],\n\t'keyword': /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n\t'operator': /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n\t'variable': /\\b[a-z_]\\w*\\b/,\n});\n\nPrism.languages.insertBefore('birb', 'function', {\n\t'metadata': {\n\t\tpattern: /<\\w+>/,\n\t\tgreedy: true,\n\t\talias: 'symbol'\n\t}\n});\n\n\n/***/ }),\n\n/***/ 1600:\n/***/ (function() {\n\nPrism.languages.bison = Prism.languages.extend('c', {});\n\nPrism.languages.insertBefore('bison', 'comment', {\n\t'bison': {\n\t\t// This should match all the beginning of the file\n\t\t// including the prologue(s), the bison declarations and\n\t\t// the grammar rules.\n\t\tpattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n\t\tinside: {\n\t\t\t'c': {\n\t\t\t\t// Allow for one level of nested braces\n\t\t\t\tpattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'delimiter': {\n\t\t\t\t\t\tpattern: /^%?\\{|%?\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\t'bison-variable': {\n\t\t\t\t\t\tpattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n\t\t\t\t\t\talias: 'variable',\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'punctuation': /<|>/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.c\n\t\t\t\t}\n\t\t\t},\n\t\t\t'comment': Prism.languages.c.comment,\n\t\t\t'string': Prism.languages.c.string,\n\t\t\t'property': /\\S+(?=:)/,\n\t\t\t'keyword': /%\\w+/,\n\t\t\t'number': {\n\t\t\t\tpattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'punctuation': /%[%?]|[|:;\\[\\]<>]/\n\t\t}\n\t}\n});\n\n\n/***/ }),\n\n/***/ 3182:\n/***/ (function() {\n\nPrism.languages.bnf = {\n\t'string': {\n\t\tpattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n\t},\n\t'definition': {\n\t\tpattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n\t\talias: ['rule', 'keyword'],\n\t\tinside: {\n\t\t\t'punctuation': /^<|>$/\n\t\t}\n\t},\n\t'rule': {\n\t\tpattern: /<[^<>\\r\\n\\t]+>/,\n\t\tinside: {\n\t\t\t'punctuation': /^<|>$/\n\t\t}\n\t},\n\t'operator': /::=|[|()[\\]{}*+?]|\\.{3}/\n};\n\nPrism.languages.rbnf = Prism.languages.bnf;\n\n\n/***/ }),\n\n/***/ 9426:\n/***/ (function() {\n\nPrism.languages.brainfuck = {\n\t'pointer': {\n\t\tpattern: /<|>/,\n\t\talias: 'keyword'\n\t},\n\t'increment': {\n\t\tpattern: /\\+/,\n\t\talias: 'inserted'\n\t},\n\t'decrement': {\n\t\tpattern: /-/,\n\t\talias: 'deleted'\n\t},\n\t'branching': {\n\t\tpattern: /\\[|\\]/,\n\t\talias: 'important'\n\t},\n\t'operator': /[.,]/,\n\t'comment': /\\S+/\n};\n\n/***/ }),\n\n/***/ 7037:\n/***/ (function() {\n\nPrism.languages.brightscript = {\n\t'comment': /(?:\\brem|').*/i,\n\t'directive-statement': {\n\t\tpattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n\t\tlookbehind: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'error-message': {\n\t\t\t\tpattern: /(^#error).+/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'directive': {\n\t\t\t\tpattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'expression': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\tinside: null // see below\n\t\t\t}\n\t\t}\n\t},\n\t'property': {\n\t\tpattern: /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bAs[\\t ]+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n\t'boolean': /\\b(?:true|false)\\b/i,\n\t'function': /\\b(?!\\d)\\w+(?=[\\t ]*\\()/i,\n\t'number': /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n\t'operator': /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n\t'punctuation': /[.,;()[\\]{}]/,\n\t'constant': /\\b(?:LINE_NUM)\\b/i\n};\n\nPrism.languages.brightscript['directive-statement'].inside.expression.inside = Prism.languages.brightscript;\n\n\n/***/ }),\n\n/***/ 6857:\n/***/ (function() {\n\nPrism.languages.bro = {\n\n\t'comment': {\n\t\tpattern: /(^|[^\\\\$])#.*/,\n\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'italic': /\\b(?:TODO|FIXME|XXX)\\b/\n\t\t}\n\t},\n\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\n\t'boolean': /\\b[TF]\\b/,\n\n\t'function': {\n\t\tpattern: /(?:function|hook|event) \\w+(?:::\\w+)?/,\n\t\tinside: {\n\t\t\tkeyword: /^(?:function|hook|event)/\n\t\t}\n\t},\n\n\t'variable':\t{\n\t\tpattern: /(?:global|local) \\w+/i,\n\t\tinside: {\n\t\t\tkeyword: /(?:global|local)/\n\t\t}\n\t},\n\n\t'builtin': /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,\n\n\t'constant': {\n\t\tpattern: /const \\w+/i,\n\t\tinside: {\n\t\t\tkeyword: /const/\n\t\t}\n\t},\n\n\t'keyword': /\\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\\b/,\n\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/***/ }),\n\n/***/ 6742:\n/***/ (function() {\n\n// 1C:Enterprise\n// https://github.com/Diversus23/\n//\nPrism.languages.bsl = {\n\t'comment': /\\/\\/.*/,\n\t'string': [\n\t\t// \u0421\u0442\u0440\u043E\u043A\u0438\n\t\t// Strings\n\t\t{\n\t\t\tpattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n\t\t\tgreedy: true\n\t\t},\n\t\t// \u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F\n\t\t// Date & time\n\t\t{\n\t\t\tpattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\t// RU\n\t\t\tpattern: /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\u043F\u043E\u043A\u0430|\u0434\u043B\u044F|\u043D\u043E\u0432\u044B\u0439|\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C|\u043F\u043E\u043F\u044B\u0442\u043A\u0430|\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435|\u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435|\u0438\u043D\u0430\u0447\u0435|\u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438|\u043D\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E|\u0444\u0443\u043D\u043A\u0446\u0438\u044F|\u043F\u0435\u0440\u0435\u043C|\u0432\u043E\u0437\u0432\u0440\u0430\u0442|\u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438|\u0435\u0441\u043B\u0438|\u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438|\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430|\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B|\u0442\u043E\u0433\u0434\u0430|\u0437\u043D\u0430\u0447|\u044D\u043A\u0441\u043F\u043E\u0440\u0442|\u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438|\u0438\u0437|\u043A\u0430\u0436\u0434\u043E\u0433\u043E|\u0438\u0441\u0442\u0438\u043D\u0430|\u043B\u043E\u0436\u044C|\u043F\u043E|\u0446\u0438\u043A\u043B|\u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430|\u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// EN\n\t\t\tpattern: /\\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\\b/i\n\t\t}\n\t],\n\t'number': {\n\t\tpattern: /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n\t\tlookbehind: true\n\t},\n\t'operator': [\n\t\t/[<>+\\-*/]=?|[%=]/,\n\t\t// RU\n\t\t{\n\t\t\tpattern: /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\u0438|\u0438\u043B\u0438|\u043D\u0435)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// EN\n\t\t{\n\t\t\tpattern: /\\b(?:and|or|not)\\b/i\n\t\t}\n\n\t],\n\t'punctuation': /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n\t'directive': [\n\t\t// \u0422\u0435\u0433\u0438 \u043F\u0440\u0435\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0430 \u0432\u0438\u0434\u0430 &\u041A\u043B\u0438\u0435\u043D\u0442, &\u0421\u0435\u0440\u0432\u0435\u0440, ...\n\t\t// Preprocessor tags of the type &Client, &Server, ...\n\t\t{\n\t\t\tpattern: /^(\\s*)&.*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'important'\n\t\t},\n\t\t// \u0418\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438 \u043F\u0440\u0435\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0430 \u0432\u0438\u0434\u0430:\n\t\t// #\u0415\u0441\u043B\u0438 \u0421\u0435\u0440\u0432\u0435\u0440 \u0422\u043E\u0433\u0434\u0430\n\t\t// ...\n\t\t// #\u041A\u043E\u043D\u0435\u0446\u0415\u0441\u043B\u0438\n\t\t// Preprocessor instructions of the form:\n\t\t// #If Server Then\n\t\t// ...\n\t\t// #EndIf\n\t\t{\n\t\t\tpattern: /^\\s*#.*/gm,\n\t\t\talias: 'important'\n\t\t}\n\t]\n};\n\nPrism.languages.oscript = Prism.languages['bsl'];\n\n\n/***/ }),\n\n/***/ 4089:\n/***/ (function() {\n\nPrism.languages.c = Prism.languages.extend('clike', {\n\t'comment': {\n\t\tpattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,\n\t'function': /[a-z_]\\w*(?=\\s*\\()/i,\n\t'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n\t'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'macro': {\n\t\t// allow for multiline macro definitions\n\t\t// spaces after the # character compile fine with gcc\n\t\tpattern: /(^\\s*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'string': [\n\t\t\t\t{\n\t\t\t\t\t// highlight the path of the include statement as a string\n\t\t\t\t\tpattern: /^(#\\s*include\\s*)<[^>]+>/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\tPrism.languages.c['string']\n\t\t\t],\n\t\t\t'comment': Prism.languages.c['comment'],\n\t\t\t'macro-name': [\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'function'\n\t\t\t\t}\n\t\t\t],\n\t\t\t// highlight macro directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /^(#\\s*)[a-z]+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'directive-hash': /^#/,\n\t\t\t'punctuation': /##|\\\\(?=[\\r\\n])/,\n\t\t\t'expression': {\n\t\t\t\tpattern: /\\S[\\s\\S]*/,\n\t\t\t\tinside: Prism.languages.c\n\t\t\t}\n\t\t}\n\t},\n\t// highlight predefined macros as constants\n\t'constant': /\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/\n});\n\ndelete Prism.languages.c['boolean'];\n\n\n/***/ }),\n\n/***/ 5934:\n/***/ (function() {\n\nPrism.languages.cil = {\n\t'comment': /\\/\\/.*/,\n\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\n\t'directive': {\n\t\tpattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n\t\tlookbehind: true,\n\t\talias: 'class-name'\n\t},\n\n\t// Actually an assembly reference\n\t'variable': /\\[[\\w\\.]+\\]/,\n\n\n\t'keyword': /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n\n\t'function': /\\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.[0-9]+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.[0-9]+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|ldvirtftn|castclass|beq(?:\\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'number': /\\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\\.[0-9a-fA-F]+)?\\b/i,\n\n\t'punctuation': /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n}\n\n\n/***/ }),\n\n/***/ 1057:\n/***/ (function() {\n\n// Copied from https://github.com/jeluard/prism-clojure\nPrism.languages.clojure = {\n\t'comment': /;.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n\t\tgreedy: true\n\t},\n\t'operator': /(?:::|[:|'])\\b[a-z][\\w*+!?-]*\\b/i, //used for symbols and keywords\n\t'keyword': {\n\t\tpattern: /([^\\w+*'?-])(?:def|if|do|let|\\.\\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\\.|new|set!|def\\-|defn|defn\\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\\*|\\+|\\-|\\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\\?|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\\?|union|up|update-proxy|val|vals|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[^\\w+*'?-])/,\n\t\tlookbehind: true\n\t},\n\t'boolean': /\\b(?:true|false|nil)\\b/,\n\t'number': /\\b[\\da-f]+\\b/i,\n\t'punctuation': /[{}\\[\\](),]/\n};\n\n\n/***/ }),\n\n/***/ 1735:\n/***/ (function() {\n\nPrism.languages.cmake = {\n\t'comment': /#.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\${(?:[^{}$]|\\${[^{}$]*})*}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\${|}/,\n\t\t\t\t\t'variable': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'variable': /\\b(?:CMAKE_\\w+|\\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:CTEST_CUSTOM_(?:MAXIMUM_(?:(?:FAIL|PASS)ED_TEST_OUTPUT_SIZE|NUMBER_OF_(?:ERROR|WARNING)S)|ERROR_(?:P(?:OST|RE)_CONTEXT|EXCEPTION|MATCH)|P(?:OST|RE)_MEMCHECK|WARNING_(?:EXCEPTION|MATCH)|(?:MEMCHECK|TESTS)_IGNORE|P(?:OST|RE)_TEST|COVERAGE_EXCLUDE)|ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n\t'property': /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ARCHIVE_OUTPUT_NAME|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEBUG_POSTFIX|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n\t'keyword': /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n\t'boolean': /\\b(?:ON|OFF|TRUE|FALSE)\\b/,\n\t'namespace': /\\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\\b/,\n\t'operator': /\\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\\b/,\n\t'inserted': {\n\t\tpattern: /\\b\\w+::\\w+\\b/,\n\t\talias: 'class-name'\n\t},\n\t'number': /\\b\\d+(?:\\.\\d+)*\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n\t'punctuation': /[()>}]|\\$[<{]/\n};\n\n\n/***/ }),\n\n/***/ 1075:\n/***/ (function() {\n\n(function(Prism) {\n\n// Ignore comments starting with { to privilege string interpolation highlighting\nvar comment = /#(?!\\{).+/,\n interpolation = {\n \tpattern: /#\\{[^}]+\\}/,\n \talias: 'variable'\n };\n\nPrism.languages.coffeescript = Prism.languages.extend('javascript', {\n\t'comment': comment,\n\t'string': [\n\n\t\t// Strings are multiline\n\t\t{\n\t\t\tpattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t{\n\t\t\t// Strings are multiline\n\t\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t}\n\t],\n\t'keyword': /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n\t'class-member': {\n\t\tpattern: /@(?!\\d)\\w+/,\n\t\talias: 'variable'\n\t}\n});\n\nPrism.languages.insertBefore('coffeescript', 'comment', {\n\t'multiline-comment': {\n\t\tpattern: /###[\\s\\S]+?###/,\n\t\talias: 'comment'\n\t},\n\n\t// Block regexp can contain comments and interpolation\n\t'block-regex': {\n\t\tpattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n\t\talias: 'regex',\n\t\tinside: {\n\t\t\t'comment': comment,\n\t\t\t'interpolation': interpolation\n\t\t}\n\t}\n});\n\nPrism.languages.insertBefore('coffeescript', 'string', {\n\t'inline-javascript': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\tinside: {\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'punctuation'\n\t\t\t},\n\t\t\t'script': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\talias: 'language-javascript',\n\t\t\t\tinside: Prism.languages.javascript\n\t\t\t}\n\t\t}\n\t},\n\n\t// Block strings\n\t'multiline-string': [\n\t\t{\n\t\t\tpattern: /'''[\\s\\S]*?'''/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t{\n\t\t\tpattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\tinterpolation: interpolation\n\t\t\t}\n\t\t}\n\t]\n\n});\n\nPrism.languages.insertBefore('coffeescript', 'keyword', {\n\t// Object property\n\t'property': /(?!\\d)\\w+(?=\\s*:(?!:))/\n});\n\ndelete Prism.languages.coffeescript['template-string'];\n\nPrism.languages.coffee = Prism.languages.coffeescript;\n}(Prism));\n\n\n/***/ }),\n\n/***/ 7941:\n/***/ (function() {\n\nPrism.languages.concurnas = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'langext': {\n\t\tpattern: /\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n\t'punctuation': /[{}[\\];(),.:]/,\n\t'operator': /<==|>==|=>|->|<-|<>|\\^|&==|&<>|!|\\?|\\?:|\\.\\?|\\+\\+|--|[-+*/=<>]=?|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n\t'annotation': {\n\t\tpattern: /@(?:\\w+:)?(?:\\w*|\\[[^\\]]+\\])/,\n\t\talias: 'builtin'\n\t}\n};\n\nPrism.languages.insertBefore('concurnas', 'langext', {\n\t'string': {\n\t\tpattern: /[rs]?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*){(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.concurnas\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\nPrism.languages.conc = Prism.languages.concurnas;\n\n\n/***/ }),\n\n/***/ 6869:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/;\n\n\tPrism.languages.cpp = Prism.languages.extend('c', {\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!)\\w+/.source\n\t\t\t\t\t.replace(//g, function () { return keyword.source; })),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t// This is intended to capture the class name of method implementations like:\n\t\t\t// void foo::bar() const {}\n\t\t\t// However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n\t\t\t// it starts with an uppercase letter. This approximation should give decent results.\n\t\t\t/\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n\t\t\t// This will capture the class name before destructors like:\n\t\t\t// Foo::~Foo() {}\n\t\t\t/\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n\t\t\t// This also intends to capture the class name of method implementations but here the class has template\n\t\t\t// parameters, so it can't be a namespace (until C++ adds generic namespaces).\n\t\t\t/\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n\t\t],\n\t\t'keyword': keyword,\n\t\t'number': {\n\t\t\tpattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n\t\t\tgreedy: true\n\t\t},\n\t\t'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n\t\t'boolean': /\\b(?:true|false)\\b/\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'string', {\n\t\t'raw-string': {\n\t\t\tpattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n\t\t\talias: 'string',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'class-name', {\n\t\t// the base clause is an optional list of parent classes\n\t\t// https://en.cppreference.com/w/cpp/language/class\n\t\t'base-clause': {\n\t\t\tpattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: Prism.languages.extend('cpp', {})\n\t\t}\n\t});\n\tPrism.languages.insertBefore('inside', 'operator', {\n\t\t// All untokenized words that are not namespaces should be class names\n\t\t'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n\t}, Prism.languages.cpp['base-clause']);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6895:\n/***/ (function() {\n\n(function(Prism) {\n\tPrism.languages.crystal = Prism.languages.extend('ruby', {\n\t\tkeyword: [\n\t\t\t/\\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\\b/,\n\t\t\t{\n\t\t\t\tpattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\n\t\tnumber: /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/\n\t});\n\n\tPrism.languages.insertBefore('crystal', 'string', {\n\t\tattribute: {\n\t\t\tpattern: /@\\[.+?\\]/,\n\t\t\talias: 'attr-name',\n\t\t\tinside: {\n\t\t\t\tdelimiter: {\n\t\t\t\t\tpattern: /^@\\[|\\]$/,\n\t\t\t\t\talias: 'tag'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.crystal\n\t\t\t}\n\t\t},\n\n\t\texpansion: [\n\t\t{\n\t\t\tpattern: /\\{\\{.+?\\}\\}/,\n\t\t\tinside: {\n\t\t\t\tdelimiter: {\n\t\t\t\t\tpattern: /^\\{\\{|\\}\\}$/,\n\t\t\t\t\talias: 'tag'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.crystal\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\\{%.+?%\\}/,\n\t\t\tinside: {\n\t\t\t\tdelimiter: {\n\t\t\t\t\tpattern: /^\\{%|%\\}$/,\n\t\t\t\t\talias: 'tag'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.crystal\n\t\t\t}\n\t\t}\n\t\t]\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 8423:\n/***/ (function() {\n\n(function (Prism) {\n\n\t/**\n\t * Replaces all placeholders \"<>\" of given pattern with the n-th replacement (zero based).\n\t *\n\t * Note: This is a simple text based replacement. Be careful when using backreferences!\n\t *\n\t * @param {string} pattern the given pattern.\n\t * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n\t * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n\t * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n\t */\n\tfunction replace(pattern, replacements) {\n\t\treturn pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n\t\t\treturn '(?:' + replacements[+index] + ')';\n\t\t});\n\t}\n\t/**\n\t * @param {string} pattern\n\t * @param {string[]} replacements\n\t * @param {string} [flags]\n\t * @returns {RegExp}\n\t */\n\tfunction re(pattern, replacements, flags) {\n\t\treturn RegExp(replace(pattern, replacements), flags || '');\n\t}\n\n\t/**\n\t * Creates a nested pattern where all occurrences of the string `<>` are replaced with the pattern itself.\n\t *\n\t * @param {string} pattern\n\t * @param {number} depthLog2\n\t * @returns {string}\n\t */\n\tfunction nested(pattern, depthLog2) {\n\t\tfor (var i = 0; i < depthLog2; i++) {\n\t\t\tpattern = pattern.replace(/<>/g, function () { return '(?:' + pattern + ')'; });\n\t\t}\n\t\treturn pattern.replace(/<>/g, '[^\\\\s\\\\S]');\n\t}\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n\tvar keywordKinds = {\n\t\t// keywords which represent a return or variable type\n\t\ttype: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n\t\t// keywords which are used to declare a type\n\t\ttypeDeclaration: 'class enum interface struct',\n\t\t// contextual keywords\n\t\t// (\"var\" and \"dynamic\" are missing because they are used like types)\n\t\tcontextual: 'add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where',\n\t\t// all other keywords\n\t\tother: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n\t};\n\n\t// keywords\n\tfunction keywordsToPattern(words) {\n\t\treturn '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b';\n\t}\n\tvar typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration);\n\tvar keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other));\n\tvar nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other);\n\tvar nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other);\n\n\t// types\n\tvar generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<>)*>/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n\tvar nestedRound = nested(/\\((?:[^()]|<>)*\\)/.source, 2);\n\tvar name = /@?\\b[A-Za-z_]\\w*\\b/.source;\n\tvar genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic]);\n\tvar identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [nonTypeKeywords, genericName]);\n\tvar array = /\\[\\s*(?:,\\s*)*\\]/.source;\n\tvar typeExpressionWithoutTuple = replace(/<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source, [identifier, array]);\n\tvar tupleElement = replace(/[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [generic, nestedRound, array])\n\tvar tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement]);\n\tvar typeExpression = replace(/(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source, [tuple, identifier, array]);\n\n\tvar typeInside = {\n\t\t'keyword': keywords,\n\t\t'punctuation': /[<>()?,.:[\\]]/\n\t};\n\n\t// strings & characters\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n\tvar character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source; // simplified pattern\n\tvar regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source;\n\tvar verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source;\n\n\n\tPrism.languages.csharp = Prism.languages.extend('clike', {\n\t\t'string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(character),\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'character'\n\t\t\t}\n\t\t],\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\t// Using static\n\t\t\t\t// using static System.Math;\n\t\t\t\tpattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (type)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [name, typeExpression]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (alias)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Type declarations\n\t\t\t\t// class Foo\n\t\t\t\t// interface Foo\n\t\t\t\tpattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [typeDeclarationKeywords, genericName]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Single catch exception declaration\n\t\t\t\t// catch(Foo)\n\t\t\t\t// (things like catch(Foo e) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Name of the type parameter of generic constraints\n\t\t\t\t// where Foo : class\n\t\t\t\tpattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Casts and checks via as and is.\n\t\t\t\t// as Foo, is Bar\n\t\t\t\t// (things like if(a is Foo b) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [typeExpressionWithoutTuple]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Variable, field and parameter declaration\n\t\t\t\t// (Foo bar, Bar baz, Foo[,,] bay, Foo> bax)\n\t\t\t\tpattern: re(/\\b<<0>>(?=\\s+(?!<<1>>)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/.source, [typeExpression, nonContextualKeywords, name]),\n\t\t\t\tinside: typeInside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n\t\t'number': /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:ul|lu|[dflmu])?\\b/i,\n\t\t'operator': />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n\t\t'punctuation': /\\?\\.?|::|[{}[\\];(),.:]/\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'number', {\n\t\t'range': {\n\t\t\tpattern: /\\.\\./,\n\t\t\talias: 'operator'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'punctuation', {\n\t\t'named-parameter': {\n\t\t\tpattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'namespace': {\n\t\t\t// namespace Foo.Bar {}\n\t\t\t// using Foo.Bar;\n\t\t\tpattern: re(/(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t},\n\t\t'type-expression': {\n\t\t\t// default(Foo), typeof(Foo), sizeof(int)\n\t\t\tpattern: re(/(\\b(?:default|typeof|sizeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/.source, [nestedRound]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name',\n\t\t\tinside: typeInside\n\t\t},\n\t\t'return-type': {\n\t\t\t// Foo ForBar(); Foo IFoo.Bar() => 0\n\t\t\t// int this[int index] => 0; T IReadOnlyList.this[int index] => this[index];\n\t\t\t// int Foo => 0; int Foo { get; set } = 0;\n\t\t\tpattern: re(/<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source, [typeExpression, identifier]),\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'constructor-invocation': {\n\t\t\t// new List> { }\n\t\t\tpattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t/*'explicit-implementation': {\n\t\t\t// int IFoo.Bar => 0; void IFoo>.Foo();\n\t\t\tpattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\n\t\t\tinside: classNameInside,\n\t\t\talias: 'class-name'\n\t\t},*/\n\t\t'generic-method': {\n\t\t\t// foo()\n\t\t\tpattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n\t\t\tinside: {\n\t\t\t\t'function': re(/^<<0>>/.source, [name]),\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: RegExp(generic),\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'type-list': {\n\t\t\t// The list of types inherited or of generic constraints\n\t\t\t// class Foo : Bar, IList\n\t\t\t// where F : Bar, IList\n\t\t\tpattern: re(\n\t\t\t\t/\\b((?:<<0>>\\s+<<1>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))/.source,\n\t\t\t\t[typeDeclarationKeywords, genericName, name, typeExpression, keywords.source]\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(typeExpression),\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\tinside: typeInside\n\t\t\t\t},\n\t\t\t\t'punctuation': /,/\n\t\t\t}\n\t\t},\n\t\t'preprocessor': {\n\t\t\tpattern: /(^\\s*)#.*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'property',\n\t\t\tinside: {\n\t\t\t\t// highlight preprocessor directives as keywords\n\t\t\t\t'directive': {\n\t\t\t\t\tpattern: /(\\s*#)\\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// attributes\n\tvar regularStringOrCharacter = regularString + '|' + character;\n\tvar regularStringCharacterOrComment = replace(/\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source, [regularStringOrCharacter]);\n\tvar roundExpression = nested(replace(/[^\"'/()]|<<0>>|\\(<>*\\)/.source, [regularStringCharacterOrComment]), 2);\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n\tvar attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/.source;\n\tvar attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [identifier, roundExpression]);\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'attribute': {\n\t\t\t// Attributes\n\t\t\t// [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n\t\t\tpattern: re(/((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/.source, [attrTarget, attr]),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'target': {\n\t\t\t\t\tpattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t},\n\t\t\t\t'attribute-arguments': {\n\t\t\t\t\tpattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t},\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(identifier),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'punctuation': /[:,]/\n\t\t\t}\n\t\t}\n\t});\n\n\n\t// string interpolation\n\tvar formatString = /:[^}\\r\\n]+/.source;\n\t// multi line\n\tvar mInterpolationRound = nested(replace(/[^\"'/()]|<<0>>|\\(<>*\\)/.source, [regularStringCharacterOrComment]), 2)\n\tvar mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [mInterpolationRound, formatString]);\n\t// single line\n\tvar sInterpolationRound = nested(replace(/[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<>*\\)/.source, [regularStringOrCharacter]), 2)\n\tvar sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [sInterpolationRound, formatString]);\n\n\tfunction createInterpolationInside(interpolation, interpolationRound) {\n\t\treturn {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-string': {\n\t\t\t\t\t\tpattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [interpolationRound, formatString]),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'punctuation': /^:/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /^\\{|\\}$/,\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\talias: 'language-csharp',\n\t\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t};\n\t}\n\n\tPrism.languages.insertBefore('csharp', 'string', {\n\t\t'interpolation-string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source, [mInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(mInterpolation, mInterpolationRound),\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [sInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(sInterpolation, sInterpolationRound),\n\t\t\t}\n\t\t]\n\t});\n\n}(Prism));\n\nPrism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;\n\n\n/***/ }),\n\n/***/ 5415:\n/***/ (function() {\n\n/**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - CSP Level 1\n * - CSP Level 2\n * - CSP Level 3\n */\n\nPrism.languages.csp = {\n\t'directive': {\n\t\tpattern: /(^|[^-\\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\\da-z]|$)/i,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t'safe': {\n\t\t// CSP2 hashes and nonces are base64 values. CSP3 accepts both base64 and base64url values.\n\t\t// See https://tools.ietf.org/html/rfc4648#section-4\n\t\t// See https://tools.ietf.org/html/rfc4648#section-5\n\t\tpattern: /'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\\d=_a-z]+)'/i,\n\t\talias: 'selector'\n\t},\n\t'unsafe': {\n\t\tpattern: /(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\\*)/i,\n\t\talias: 'function'\n\t}\n};\n\n/***/ }),\n\n/***/ 7608:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/;\n\tvar selectorInside;\n\n\tPrism.languages.css.selector = {\n\t\tpattern: Prism.languages.css.selector,\n\t\tinside: selectorInside = {\n\t\t\t'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n\t\t\t'pseudo-class': /:[-\\w]+/,\n\t\t\t'class': /\\.[-\\w]+/,\n\t\t\t'id': /#[-\\w]+/,\n\t\t\t'attribute': {\n\t\t\t\tpattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\\[|\\]$/,\n\t\t\t\t\t'case-sensitivity': {\n\t\t\t\t\t\tpattern: /(\\s)[si]$/i,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'keyword'\n\t\t\t\t\t},\n\t\t\t\t\t'namespace': {\n\t\t\t\t\t\tpattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'punctuation': /\\|$/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'attr-name': {\n\t\t\t\t\t\tpattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'attr-value': [\n\t\t\t\t\t\tstring,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t'operator': /[|~*^$]?=/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'n-th': [\n\t\t\t\t{\n\t\t\t\t\tpattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'number': /[\\dn]+/,\n\t\t\t\t\t\t'operator': /[+-]/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t],\n\t\t\t'combinator': />|\\+|~|\\|\\|/,\n\n\t\t\t// the `tag` token has been existed and removed.\n\t\t\t// because we can't find a perfect tokenize to match it.\n\t\t\t// if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n\n\t\t\t'punctuation': /[(),]/,\n\t\t}\n\t};\n\n\tPrism.languages.css['atrule'].inside['selector-function-argument'].inside = selectorInside;\n\n\tPrism.languages.insertBefore('css', 'property', {\n\t\t'variable': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tvar unit = {\n\t\tpattern: /(\\b\\d+)(?:%|[a-z]+\\b)/,\n\t\tlookbehind: true\n\t};\n\t// 123 -123 .123 -.123 12.3 -12.3\n\tvar number = {\n\t\tpattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n\t\tlookbehind: true\n\t};\n\n\tPrism.languages.insertBefore('css', 'function', {\n\t\t'operator': {\n\t\t\tpattern: /(\\s)[+\\-*\\/](?=\\s)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// CAREFUL!\n\t\t// Previewers and Inline color use hexcode and color.\n\t\t'hexcode': {\n\t\t\tpattern: /\\B#(?:[\\da-f]{1,2}){3,4}\\b/i,\n\t\t\talias: 'color'\n\t\t},\n\t\t'color': [\n\t\t\t/\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:rgb|hsl)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:rgb|hsl)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'unit': unit,\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'function': /[\\w-]+(?=\\()/,\n\t\t\t\t\t'punctuation': /[(),]/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t// it's important that there is no boundary assertion after the hex digits\n\t\t'entity': /\\\\[\\da-f]{1,8}/i,\n\t\t'unit': unit,\n\t\t'number': number\n\t});\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 403:\n/***/ (function() {\n\nPrism.languages.cypher = {\n\t// https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n\t'comment': /\\/\\/.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'relationship': {\n\t\tpattern: /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t},\n\t'identifier': {\n\t\tpattern: /`(?:[^`\\\\\\r\\n])*`/,\n\t\tgreedy: true,\n\t\talias: 'symbol'\n\t},\n\n\t'variable': /\\$\\w+/,\n\n\t// https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n\t'keyword': /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n\n\t'function': /\\b\\w+\\b(?=\\s*\\()/,\n\n\t'boolean': /\\b(?:true|false|null)\\b/i,\n\t'number': /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n\t// https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n\t'operator': /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n\t'punctuation': /[()[\\]{},;.]/\n};\n\n\n/***/ }),\n\n/***/ 1876:\n/***/ (function() {\n\nPrism.languages.d = Prism.languages.extend('clike', {\n\t'comment': [\n\t\t{\n\t\t\t// Shebang\n\t\t\tpattern: /^\\s*#!.+/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: RegExp(/(^|[^\\\\])/.source + '(?:' + [\n\t\t\t\t// /+ comment +/\n\t\t\t\t// Allow one level of nesting\n\t\t\t\t/\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source,\n\t\t\t\t// // comment\n\t\t\t\t/\\/\\/.*/.source,\n\t\t\t\t// /* comment */\n\t\t\t\t/\\/\\*[\\s\\S]*?\\*\\//.source\n\t\t\t].join('|') + ')'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': [\n\t\t{\n\t\t\tpattern: RegExp([\n\t\t\t\t// r\"\", x\"\"\n\t\t\t\t/\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source,\n\n\t\t\t\t// q\"[]\", q\"()\", q\"<>\", q\"{}\"\n\t\t\t\t/\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source,\n\n\t\t\t\t// q\"IDENT\n\t\t\t\t// ...\n\t\t\t\t// IDENT\"\n\t\t\t\t/\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source,\n\n\t\t\t\t// q\"//\", q\"||\", etc.\n\t\t\t\t/\\bq\"(.)[\\s\\S]*?\\2\"/.source,\n\n\t\t\t\t// Characters\n\t\t\t\t// 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n\t\t\t\t/'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/.source,\n\n\t\t\t\t/([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n\t\t\t].join('|'), 'm'),\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n\t\t\tgreedy: true,\n\t\t\talias: 'token-string'\n\t\t}\n\t],\n\n\t// In order: $, keywords and special tokens, globally defined symbols\n\t'keyword': /\\$|\\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\\b/,\n\n\t'number': [\n\t\t// The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n\t\t// Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n\t\t/\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n\t\t{\n\t\t\tpattern: /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\n\t'operator': /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n});\n\nPrism.languages.insertBefore('d', 'keyword', {\n\t'property': /\\B@\\w*/\n});\n\nPrism.languages.insertBefore('d', 'function', {\n\t'register': {\n\t\t// Iasm registers\n\t\tpattern: /\\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n\t\talias: 'variable'\n\t}\n});\n\n\n/***/ }),\n\n/***/ 2458:\n/***/ (function() {\n\nPrism.languages.dart = Prism.languages.extend('clike', {\n\t'string': [\n\t\t{\n\t\t\tpattern: /r?(\"\"\"|''')[\\s\\S]*?\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t/\\b(?:async|sync|yield)\\*/,\n\t\t/\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n\t],\n\t'operator': /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n});\n\nPrism.languages.insertBefore('dart','function',{\n\t'metadata': {\n\t\tpattern: /@\\w+/,\n\t\talias: 'symbol'\n\t}\n});\n\n\n/***/ }),\n\n/***/ 5737:\n/***/ (function() {\n\n(function (Prism) { \n Prism.languages.dataweave = {\t\n 'url': /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n 'property': {\n pattern: /(?:\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n 'string': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type': /\\b(?:text|audio|video|application|multipart|image)\\/[\\w+-]+/, \n 'date': {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n 'comment': [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'regex': {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n 'function': /\\b[A-Za-z_]\\w*(?=\\s*\\()/i,\n 'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n 'punctuation': /[{}[\\];(),.:@]/, \n 'operator': /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|\\!|\\?/,\n 'boolean': /\\b(?:true|false)\\b/,\n 'keyword': /\\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\\b/\n };\n \n}(Prism));\n\n\n/***/ }),\n\n/***/ 3419:\n/***/ (function() {\n\nPrism.languages.dax = {\n 'comment': {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern: /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n 'measure': {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n 'string': {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'function': /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n 'keyword': /\\b(?:DEFINE|MEASURE|EVALUATE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n 'boolean': {\n pattern: /\\b(?:TRUE|FALSE|NULL)\\b/i,\n alias: 'constant'\n },\n 'number': /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n 'operator': /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n 'punctuation': /[;\\[\\](){}`,.]/\n};\n\n\n/***/ }),\n\n/***/ 2657:\n/***/ (function() {\n\n// ABNF grammar:\n// https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n\nPrism.languages.dhall = {\n\t// Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n\t// The multi-line pattern is essentially this:\n\t// \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|)*-\\}\n\t'comment': /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$\\{[^{}]*\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'language-dhall',\n\t\t\t\t\t\tinside: null // see blow\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /\\$\\{|\\}/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'label': {\n\t\tpattern: /`[^`]*`/,\n\t\tgreedy: true\n\t},\n\t'url': {\n\t\t// https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n\t\tpattern: /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n\t\tgreedy: true\n\t},\n\t'env': {\n\t\t// https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n\t\tpattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'function': /^env/,\n\t\t\t'operator': /^:/,\n\t\t\t'variable': /[\\s\\S]+/\n\t\t}\n\t},\n\t'hash': {\n\t\t// https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n\t\tpattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n\t\tinside: {\n\t\t\t'function': /sha256/,\n\t\t\t'operator': /:/,\n\t\t\t'number': /[\\da-fA-F]{64}/\n\t\t}\n\t},\n\n\t// https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n\t'keyword': /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n\t'builtin': /\\b(?:Some|None)\\b/,\n\n\t'boolean': /\\b(?:False|True)\\b/,\n\t'number': /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n\t'operator': /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||[!=]=|===|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n\t'punctuation': /\\.\\.|[{}\\[\\](),./]/,\n\n\t// we'll just assume that every capital word left is a type name\n\t'class-name': /\\b[A-Z]\\w*\\b/\n};\n\nPrism.languages.dhall.string.inside.interpolation.inside.expression.inside = Prism.languages.dhall;\n\n\n/***/ }),\n\n/***/ 7973:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.diff = {\n\t\t'coord': [\n\t\t\t// Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n\t\t\t/^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n\t\t\t// Match \"@@ ... @@\" coord lines in unified diff.\n\t\t\t/^@@.*@@$/m,\n\t\t\t// Match coord lines in normal diff (starts with a number).\n\t\t\t/^\\d.*$/m\n\t\t]\n\n\t\t// deleted, inserted, unchanged, diff\n\t};\n\n\t/**\n\t * A map from the name of a block to its line prefix.\n\t *\n\t * @type {Object}\n\t */\n\tvar PREFIXES = {\n\t\t'deleted-sign': '-',\n\t\t'deleted-arrow': '<',\n\t\t'inserted-sign': '+',\n\t\t'inserted-arrow': '>',\n\t\t'unchanged': ' ',\n\t\t'diff': '!',\n\t};\n\n\t// add a token for each prefix\n\tObject.keys(PREFIXES).forEach(function (name) {\n\t\tvar prefix = PREFIXES[name];\n\n\t\tvar alias = [];\n\t\tif (!/^\\w+$/.test(name)) { // \"deleted-sign\" -> \"deleted\"\n\t\t\talias.push(/\\w+/.exec(name)[0]);\n\t\t}\n\t\tif (name === \"diff\") {\n\t\t\talias.push(\"bold\");\n\t\t}\n\n\t\tPrism.languages.diff[name] = {\n\t\t\tpattern: RegExp('^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+', 'm'),\n\t\t\talias: alias,\n\t\t\tinside: {\n\t\t\t\t'line': {\n\t\t\t\t\tpattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'prefix': {\n\t\t\t\t\tpattern: /[\\s\\S]/,\n\t\t\t\t\talias: /\\w+/.exec(name)[0]\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t});\n\n\t// make prefixes available to Diff plugin\n\tObject.defineProperty(Prism.languages.diff, 'PREFIXES', {\n\t\tvalue: PREFIXES\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6044:\n/***/ (function() {\n\n// Django/Jinja2 syntax definition for Prism.js syntax highlighter.\n// Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n\n(function (Prism) {\n\n\tPrism.languages.django = {\n\t\t'comment': /^{#[\\s\\S]*?#}$/,\n\t\t'tag': {\n\t\t\tpattern: /(^{%[+-]?\\s*)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t'delimiter': {\n\t\t\tpattern: /^{[{%][+-]?|[+-]?[}%]}$/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'string': {\n\t\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t'filter': {\n\t\t\tpattern: /(\\|)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t'test': {\n\t\t\tpattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t'function': /\\b[a-z_]\\w+(?=\\s*\\()/i,\n\t\t'keyword': /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n\t\t'operator': /[-+*/%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t\t'number': /\\b\\d+(?:\\.\\d+)?\\b/,\n\t\t'boolean': /[Tt]rue|[Ff]alse|[Nn]one/,\n\t\t'variable': /\\b\\w+?\\b/,\n\t\t'punctuation': /[{}[\\](),.:;]/\n\t};\n\n\n\tvar pattern = /{{[\\s\\S]*?}}|{%[\\s\\S]*?%}|{#[\\s\\S]*?#}/g;\n\tvar markupTemplating = Prism.languages['markup-templating'];\n\n\tPrism.hooks.add('before-tokenize', function (env) {\n\t\tmarkupTemplating.buildPlaceholders(env, 'django', pattern);\n\t});\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tmarkupTemplating.tokenizePlaceholders(env, 'django');\n\t});\n\n\t// Add an Jinja2 alias\n\tPrism.languages.jinja2 = Prism.languages.django;\n\tPrism.hooks.add('before-tokenize', function (env) {\n\t\tmarkupTemplating.buildPlaceholders(env, 'jinja2', pattern);\n\t});\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tmarkupTemplating.tokenizePlaceholders(env, 'jinja2');\n\t});\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 2803:\n/***/ (function() {\n\nPrism.languages['dns-zone-file'] = {\n\t'comment': /;.*/,\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'variable': [\n\t\t{\n\t\t\tpattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|\\s)@(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t}\n\t],\n\t'keyword': /^\\$(?:ORIGIN|INCLUDE|TTL)(?=\\s|$)/m,\n\t'class': {\n\t\t// https://tools.ietf.org/html/rfc1035#page-13\n\t\tpattern: /(^|\\s)(?:IN|CH|CS|HS)(?=\\s|$)/,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t'type': {\n\t\t// https://en.wikipedia.org/wiki/List_of_DNS_record_types\n\t\tpattern: /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t'punctuation': /[()]/\n};\n\nPrism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n\n\n/***/ }),\n\n/***/ 4019:\n/***/ (function() {\n\nPrism.languages.docker = {\n\t'keyword': {\n\t\tpattern: /(^\\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)/mi,\n\t\tlookbehind: true\n\t},\n\t'string': /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n\t'comment': {\n\t\tpattern: /#.*/,\n\t\tgreedy: true\n\t},\n\t'punctuation': /---|\\.\\.\\.|[:[\\]{}\\-,|>?]/\n};\n\nPrism.languages.dockerfile = Prism.languages.docker;\n\n\n/***/ }),\n\n/***/ 8912:\n/***/ (function() {\n\nPrism.languages.ebnf = {\n\t'comment': /\\(\\*[\\s\\S]*?\\*\\)/,\n\t'string': {\n\t\tpattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n\t\tgreedy: true\n\t},\n\t'special': {\n\t\tpattern: /\\?[^?\\r\\n]*\\?/,\n\t\tgreedy: true,\n\t\talias: 'class-name'\n\t},\n\n\t'definition': {\n\t\tpattern: /^(\\s*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n\t\tlookbehind: true,\n\t\talias: ['rule', 'keyword']\n\t},\n\t'rule': /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n\n\t'punctuation': /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n\t'operator': /[-=|*/!]/\n};\n\n\n/***/ }),\n\n/***/ 2489:\n/***/ (function() {\n\nPrism.languages.editorconfig = {\n\t// https://editorconfig-specification.readthedocs.io/en/latest/\n\t'comment': /[;#].*/,\n\t'section': {\n\t\tpattern: /(^[ \\t]*)\\[.+]/m,\n\t\tlookbehind: true,\n\t\talias: 'keyword',\n\t\tinside: {\n\t\t\t'regex': /\\\\\\\\[\\[\\]{},!?.*]/, // Escape special characters with '\\\\'\n\t\t\t'operator': /[!?]|\\.\\.|\\*{1,2}/,\n\t\t\t'punctuation': /[\\[\\]{},]/\n\t\t}\n\t},\n\t'property': {\n\t\tpattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n\t\tlookbehind: true\n\t},\n\t'value': {\n\t\tpattern: /=.*/,\n\t\talias: 'string',\n\t\tinside: {\n\t\t\t'punctuation': /^=/\n\t\t}\n\t}\n};\n\n\n/***/ }),\n\n/***/ 6084:\n/***/ (function() {\n\nPrism.languages.eiffel = {\n\t'comment': /--.*/,\n\t'string': [\n\t\t// Aligned-verbatim-strings\n\t\t{\n\t\t\tpattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n\t\t\tgreedy: true\n\t\t},\n\t\t// Non-aligned-verbatim-strings\n\t\t{\n\t\t\tpattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n\t\t\tgreedy: true\n\t\t},\n\t\t// Single-line string\n\t\t{\n\t\t\tpattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t// normal char | special char | char code\n\t'char': /'(?:%.|[^%'\\r\\n])+'/,\n\t'keyword': /\\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n\t'boolean': /\\b(?:True|False)\\b/i,\n\t// Convention: class-names are always all upper-case characters\n\t'class-name': {\n\t\t'pattern': /\\b[A-Z][\\dA-Z_]*\\b/,\n\t\t'alias': 'builtin'\n\t},\n\t'number': [\n\t\t// hexa | octal | bin\n\t\t/\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i,\n\t\t// Decimal\n\t\t/(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n\t],\n\t'punctuation': /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n\t'operator': /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n};\n\n\n/***/ }),\n\n/***/ 32:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.ejs = {\n\t\t'delimiter': {\n\t\t\tpattern: /^<%[-_=]?|[-_]?%>$/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'comment': /^#[\\s\\S]*/,\n\t\t'language-javascript': {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t};\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tvar ejsPattern = /<%(?!%)[\\s\\S]+?%>/g;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'ejs', ejsPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs');\n\t});\n\n\tPrism.languages.eta = Prism.languages.ejs;\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9375:\n/***/ (function() {\n\nPrism.languages.elixir = {\n\t'comment': /#.*/m,\n\t// ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r\n\t'regex': {\n\t\tpattern: /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n\t\tgreedy: true\n\t},\n\t'string': [\n\t\t{\n\t\t\t// ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s\n\t\t\tpattern: /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t// See interpolation below\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t// See interpolation below\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// Multi-line strings are allowed\n\t\t\tpattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t// See interpolation below\n\t\t\t}\n\t\t}\n\t],\n\t'atom': {\n\t\t// Look-behind prevents bad highlighting of the :: operator\n\t\tpattern: /(^|[^:]):\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'symbol'\n\t},\n\t// Look-ahead prevents bad highlighting of the :: operator\n\t'attr-name': /\\w+\\??:(?!:)/,\n\t'capture': {\n\t\t// Look-behind prevents bad highlighting of the && operator\n\t\tpattern: /(^|[^&])&(?:[^&\\s\\d()][^\\s()]*|(?=\\())/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'argument': {\n\t\t// Look-behind prevents bad highlighting of the && operator\n\t\tpattern: /(^|[^&])&\\d+/,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t'attribute': {\n\t\tpattern: /@\\w+/,\n\t\talias: 'variable'\n\t},\n\t'number': /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n\t'keyword': /\\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\\b/,\n\t'boolean': /\\b(?:true|false|nil)\\b/,\n\t'operator': [\n\t\t/\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n\t\t{\n\t\t\t// We don't want to match <<\n\t\t\tpattern: /([^<])<(?!<)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// We don't want to match >>\n\t\t\tpattern: /([^>])>(?!>)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /<<|>>|[.,%\\[\\]{}()]/\n};\n\nPrism.languages.elixir.string.forEach(function(o) {\n\to.inside = {\n\t\t'interpolation': {\n\t\t\tpattern: /#\\{[^}]+\\}/,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^#\\{|\\}$/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.elixir\n\t\t\t}\n\t\t}\n\t};\n});\n\n\n/***/ }),\n\n/***/ 886:\n/***/ (function() {\n\nPrism.languages.elm = {\n\t'comment': /--.*|{-[\\s\\S]*?-}/,\n\t'char': {\n\t\tpattern: /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+))'/,\n\t\tgreedy: true\n\t},\n\t'string': [\n\t\t{\n\t\t\t// Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n\t\t\tpattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'import-statement': {\n\t\t// The imported or hidden names are not included in this import\n\t\t// statement. This is because we want to highlight those exactly like\n\t\t// we do for the names in the program.\n\t\tpattern: /^\\s*import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n\t\tinside: {\n\t\t\t'keyword': /\\b(?:import|as|exposing)\\b/\n\t\t}\n\t},\n\t'keyword': /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n\t// These are builtin variables only. Constructors are highlighted later as a constant.\n\t'builtin': /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n\t// decimal integers and floating point numbers | hexadecimal integers\n\t'number': /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n\t// Most of this is needed because of the meaning of a single '.'.\n\t// If it stands alone freely, it is the function composition.\n\t// It may also be a separator between a module name and an identifier => no\n\t// operator. If it comes together with other special characters it is an\n\t// operator too.\n\t// Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n\t// Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n\t'operator': /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n\t// In Elm, nearly everything is a variable, do not highlight these.\n\t'hvariable': /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n\t'constant': /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n\t'punctuation': /[{}[\\]|(),.:]/\n};\n\n\n/***/ }),\n\n/***/ 9599:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.erb = Prism.languages.extend('ruby', {});\n\tPrism.languages.insertBefore('erb', 'comment', {\n\t\t'delimiter': {\n\t\t\tpattern: /^<%=?|%>$/,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tvar erbPattern = /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s[\\s\\S]*?^=end)+?%>/gm;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'erb', erbPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'erb');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 2442:\n/***/ (function() {\n\nPrism.languages.erlang = {\n\t'comment': /%.+/,\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'quoted-function': {\n\t\tpattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n\t\talias: 'function'\n\t},\n\t'quoted-atom': {\n\t\tpattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n\t\talias: 'atom'\n\t},\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'keyword': /\\b(?:fun|when|case|of|end|if|receive|after|try|catch)\\b/,\n\t'number': [\n\t\t/\\$\\\\?./,\n\t\t/\\d+#[a-z0-9]+/i,\n\t\t/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n\t],\n\t'function': /\\b[a-z][\\w@]*(?=\\()/,\n\t'variable': {\n\t\t// Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n\t\tpattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n\t\tlookbehind: true\n\t},\n\t'operator': [\n\t\t/[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\\b/,\n\t\t{\n\t\t\t// We don't want to match <<\n\t\t\tpattern: /(^|[^<])<(?!<)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// We don't want to match >>\n\t\t\tpattern: /(^|[^>])>(?!>)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'atom': /\\b[a-z][\\w@]*/,\n\t'punctuation': /[()[\\]{}:;,.#|]|<<|>>/\n\n};\n\n\n/***/ }),\n\n/***/ 3062:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.etlua = {\n\t\t'delimiter': {\n\t\t\tpattern: /^<%[-=]?|-?%>$/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'language-lua': {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages.lua\n\t\t}\n\t};\n\n\tPrism.hooks.add('before-tokenize', function (env) {\n\t\tvar pattern = /<%[\\s\\S]+?%>/g;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'etlua', pattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9884:\n/***/ (function() {\n\nPrism.languages['excel-formula'] = {\n\t'comment': {\n\t\tpattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n\t\tgreedy: true\n\t},\n\t'reference': {\n\t\t// https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n\n\t\t// Sales!B2\n\t\t// 'Winter sales'!B2\n\t\t// [Sales.xlsx]Jan!B2:B5\n\t\t// D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n\t\t// '[Sales.xlsx]Jan sales'!B2:B5\n\t\t// 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n\n\t\tpattern: /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n\t\tgreedy: true,\n\t\talias: 'string',\n\t\tinside: {\n\t\t\t'operator': /!$/,\n\t\t\t'punctuation': /'/,\n\t\t\t'sheet': {\n\t\t\t\tpattern: /[^[\\]]+$/,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t'file': {\n\t\t\t\tpattern: /\\[[^[\\]]+\\]$/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /[[\\]]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'path': /[\\s\\S]+/\n\t\t}\n\t},\n\t'function-name': {\n\t\tpattern: /\\b[A-Z]\\w*(?=\\()/i,\n\t\talias: 'keyword'\n\t},\n\t'range': {\n\t\tpattern: /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'operator': /:/,\n\t\t\t'cell': /\\$?[A-Z]+\\$?\\d+/i,\n\t\t\t'column': /\\$?[A-Z]+/i,\n\t\t\t'row': /\\$?\\d+/\n\t\t}\n\t},\n\t'cell': {\n\t\t// Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n\t\t// To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n\t\tpattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n\t\talias: 'property'\n\t},\n\t'number': /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n\t'boolean': /\\b(?:TRUE|FALSE)\\b/i,\n\t'operator': /[-+*/^%=&,]|<[=>]?|>=?/,\n\t'punctuation': /[[\\]();{}|]/\n};\n\nPrism.languages['xlsx'] = Prism.languages['xls'] = Prism.languages['excel-formula'];\n\n\n/***/ }),\n\n/***/ 2630:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar comment_inside = {\n\t\t'function': /\\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n\t};\n\tvar string_inside = {\n\t\t'number': /\\\\[^\\s']|%\\w/\n\t};\n\n\tvar factor = {\n\t\t'comment': [\n\t\t\t{\n\t\t\t\t// ! single-line exclamation point comments with whitespace after/around the !\n\t\t\t\tpattern: /(^|\\s)(?:! .*|!$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: comment_inside\n\t\t\t},\n\n\t\t\t/* from basis/multiline: */\n\t\t\t{\n\t\t\t\t// /* comment */, /* comment*/\n\t\t\t\tpattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: comment_inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ![[ comment ]] , ![===[ comment]===]\n\t\t\t\tpattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: comment_inside\n\t\t\t}\n\t\t],\n\n\t\t'number': [\n\t\t\t{\n\t\t\t\t// basic base 10 integers 9, -9\n\t\t\t\tpattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n\t\t\t\tpattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n\t\t\t\tpattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// positive mixed numbers 23+1/5 +23+1/5\n\t\t\t\tpattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// negative mixed numbers -23-1/5\n\t\t\t\tpattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n\t\t\t\t// and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n\t\t\t\tpattern: /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// NAN literal syntax NAN: 80000deadbeef, NAN: a\n\t\t\t\tpattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t/*\n\t\t\t\t\tbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\t\t\t\t\t\"The normalized hex form \u00B10x1.MMMMMMMMMMMMM[pP]\u00B1EEEE allows any floating-point number to be specified precisely.\n\t\t\t\t\tThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n\t\t\t\t\t\n\t\t\t\t*/\n\t\t\t\tpattern: /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\n\t\t// R/ regexp?\\/\\\\/\n\t\t'regexp': {\n\t\t\tpattern: /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'number',\n\t\t\tinside: {\n\t\t\t\t'variable': /\\\\\\S/,\n\t\t\t\t'keyword': /[+?*\\[\\]^$(){}.|]/,\n\t\t\t\t'operator': {\n\t\t\t\t\tpattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t'boolean': {\n\t\t\tpattern: /(^|\\s)[tf](?=\\s|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\n\t\t// SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n\t\t'custom-string': {\n\t\t\tpattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\t'number': /\\\\\\S|%\\w|\\//\n\t\t\t}\n\t\t},\n\n\t\t'multiline-string': [\n\t\t\t{\n\t\t\t\t// STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n\t\t\t\tpattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'string',\n\t\t\t\tinside: {\n\t\t\t\t\t'number': string_inside.number,\n\t\t\t\t\t// trailing semicolon on its own line\n\t\t\t\t\t'semicolon-or-setlocal': {\n\t\t\t\t\t\tpattern: /((?:\\n|\\r\\n)\\s*);(?=\\s|$)/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'function'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n\t\t\t\tpattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'string',\n\t\t\t\tinside: string_inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// [[ string ]], [==[ string]==]\n\t\t\t\tpattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'string',\n\t\t\t\tinside: string_inside\n\t\t\t}\n\t\t],\n\n\t\t'special-using': {\n\t\t\tpattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function',\n\t\t\tinside: {\n\t\t\t\t// this is essentially a regex for vocab names, which i don't want to specify\n\t\t\t\t// but the USING: gets picked up as a vocab name\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /(\\s)[^:\\s]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\n\t\t\ttrying to do better is more work and regex-computation-time than it's worth though.\n\t\t\t- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n\t\t\t- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n\t\t\t- we'd like if the following variable name conventions were recognised specifically:\n\t\t\t\tspecial row variables = ..a b..\n\t\t\t\ttype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\n\t\t\t\tword throws unconditional error = *\n\t\t\t\tany other word-like variable name = a ? q' etc\n\n\t\t\thttps://docs.factorcode.org/content/article-effects.html\n\n\t\t\tthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\n\t\t\tthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n\t\t*/\n\n\t\t// current solution is not great\n\t\t'stack-effect-delimiter': [\n\t\t\t{\n\t\t\t\t// opening parenthesis\n\t\t\t\tpattern: /(^|\\s)(?:call|execute|eval)?\\((?=\\s)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// middle --\n\t\t\t\tpattern: /(\\s)--(?=\\s)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// closing parenthesis\n\t\t\t\tpattern: /(\\s)\\)(?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t}\n\t\t],\n\n\t\t'combinators': {\n\t\t\tpattern: null,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\n\t\t'kernel-builtin': {\n\t\t\tpattern: null,\n\t\t\tlookbehind: true,\n\t\t\talias: 'variable'\n\t\t},\n\n\t\t'sequences-builtin': {\n\t\t\tpattern: null,\n\t\t\tlookbehind: true,\n\t\t\talias: 'variable'\n\t\t},\n\n\t\t'math-builtin': {\n\t\t\tpattern: null,\n\t\t\tlookbehind: true,\n\t\t\talias: 'variable'\n\t\t},\n\n\t\t'constructor-word': {\n\t\t\t// but not <=>\n\t\t\tpattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\n\t\t'other-builtin-syntax': {\n\t\t\tpattern: null,\n\t\t\tlookbehind: true,\n\t\t\talias: 'operator'\n\t\t},\n\n\t\t/*\n\t\t\tfull list of supported word naming conventions: (the convention appears outside of the [brackets])\n\t\t\t\tset-[x]\n\t\t\t\tchange-[x]\n\t\t\t\twith-[x]\n\t\t\t\tnew-[x]\n\t\t\t\t>[string]\n\t\t\t\t[base]>\n\t\t\t\t[string]>[number]\n\t\t\t\t+[symbol]+\n\t\t\t\t[boolean-word]?\n\t\t\t\t?[of]\n\t\t\t\t[slot-reader]>>\n\t\t\t\t>>[slot-setter]\n\t\t\t\t[slot-writer]<<\n\t\t\t\t([implementation-detail])\n\t\t\t\t[mutater]!\n\t\t\t\t[variant]*\n\t\t\t\t[prettyprint].\n\t\t\t\t$[help-markup]\n\n\t\t\t, SYNTAX:, etc are supported by their own patterns.\n\n\t\t\t`with` and `new` from `kernel` are their own builtins.\n\n\t\t\tsee \n\t\t*/\n\t\t'conventionally-named-word': {\n\t\t\tpattern: /(^|\\s)(?!\")(?:(?:set|change|with|new)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\n\t\t'colon-syntax': {\n\t\t\tpattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: 'function'\n\t\t},\n\n\t\t'semicolon-or-setlocal': {\n\t\t\tpattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\n\t\t// do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n\t\t'curly-brace-literal-delimiter': [\n\t\t\t{\n\t\t\t\t// opening\n\t\t\t\tpattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// closing\n\t\t\t\tpattern: /(\\s)\\}(?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\n\t\t],\n\n\t\t// do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n\t\t'quotation-delimiter': [\n\t\t\t{\n\t\t\t\t// opening\n\t\t\t\tpattern: /(^|\\s)\\[(?=\\s)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// closing\n\t\t\t\tpattern: /(\\s)\\](?=\\s|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t],\n\n\t\t'normal-word': {\n\t\t\tpattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\n\t\t/*\n\t\t\tbasic first-class string \"a\"\n\t\t\t\twith escaped double-quote \"a\\\"\"\n\t\t\t\tescaped backslash \"\\\\\"\n\t\t\t\tand general escapes since Factor has so many \"\\N\"\n\n\t\t\tsyntax that works in the reference implementation that isn't fully\n\t\t\tsupported because it's an implementation detail:\n\t\t\t\t\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\t\t\t\t\"string\"5 -> string, 5\n\t\t\t\t\"string\"[ ] -> string, quotation\n\t\t\t\t{ \"a\"} -> array\n\n\t\t\tthe rest of those examples all properly recognise the string, but not\n\t\t\t\tthe other object (number, quotation, etc)\n\t\t\tthis is fine for a regex-only implementation.\n\t\t*/\n\t\t'string': {\n\t\t\tpattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n\t\t\tgreedy: true,\n\t\t\tinside: string_inside\n\t\t}\n\t};\n\n\tvar escape = function (str) {\n\t\treturn (str+'').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1');\n\t};\n\n\tvar arrToWordsRegExp = function (arr) {\n\t\treturn new RegExp(\n\t\t\t'(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)'\n\t\t);\n\t};\n\n\tvar builtins = {\n\t\t'kernel-builtin': [\n\t\t\t'or', '2nipd', '4drop', 'tuck', 'wrapper', 'nip', 'wrapper?', 'callstack>array', 'die', 'dupd', 'callstack', 'callstack?', '3dup', 'hashcode', 'pick', '4nip', 'build', '>boolean', 'nipd', 'clone', '5nip', 'eq?', '?', '=', 'swapd', '2over', 'clear', '2dup', 'get-retainstack', 'not', 'tuple?', 'dup', '3nipd', 'call', '-rotd', 'object', 'drop', 'assert=', 'assert?', '-rot', 'execute', 'boa', 'get-callstack', 'curried?', '3drop', 'pickd', 'overd', 'over', 'roll', '3nip', 'swap', 'and', '2nip', 'rotd', 'throw', '(clone)', 'hashcode*', 'spin', 'reach', '4dup', 'equal?', 'get-datastack', 'assert', '2drop', '', 'boolean?', 'identity-hashcode', 'identity-tuple?', 'null', 'composed?', 'new', '5drop', 'rot', '-roll', 'xor', 'identity-tuple', 'boolean'\n\t\t],\n\t\t'other-builtin-syntax': [\n\t\t\t// syntax\n\t\t\t'=======', 'recursive', 'flushable', '>>', '<<<<<<', 'M\\\\', 'B', 'PRIVATE>', '\\\\', '======', 'final', 'inline', 'delimiter', 'deprecated', '>>>>>', '<<<<<<<', 'parse-complex', 'malformed-complex', 'read-only', '>>>>>>>', 'call-next-method', '<<', 'foldable',\n\t\t\t// literals\n\t\t\t'$', '$[', '${'\n\t\t],\n\t\t'sequences-builtin': [\n\t\t\t'member-eq?', 'mismatch', 'append', 'assert-sequence=', 'longer', 'repetition', 'clone-like', '3sequence', 'assert-sequence?', 'last-index-from', 'reversed', 'index-from', 'cut*', 'pad-tail', 'join-as', 'remove-eq!', 'concat-as', 'but-last', 'snip', 'nths', 'nth', 'sequence', 'longest', 'slice?', '', 'remove-nth', 'tail-slice', 'empty?', 'tail*', 'member?', 'virtual-sequence?', 'set-length', 'drop-prefix', 'iota', 'unclip', 'bounds-error?', 'unclip-last-slice', 'non-negative-integer-expected', 'non-negative-integer-expected?', 'midpoint@', 'longer?', '?set-nth', '?first', 'rest-slice', 'prepend-as', 'prepend', 'fourth', 'sift', 'subseq-start', 'new-sequence', '?last', 'like', 'first4', '1sequence', 'reverse', 'slice', 'virtual@', 'repetition?', 'set-last', 'index', '4sequence', 'max-length', 'set-second', 'immutable-sequence', 'first2', 'first3', 'supremum', 'unclip-slice', 'suffix!', 'insert-nth', 'tail', '3append', 'short', 'suffix', 'concat', 'flip', 'immutable?', 'reverse!', '2sequence', 'sum', 'delete-all', 'indices', 'snip-slice', '', 'check-slice', 'sequence?', 'head', 'append-as', 'halves', 'sequence=', 'collapse-slice', '?second', 'slice-error?', 'product', 'bounds-check?', 'bounds-check', 'immutable', 'virtual-exemplar', 'harvest', 'remove', 'pad-head', 'last', 'set-fourth', 'cartesian-product', 'remove-eq', 'shorten', 'shorter', 'reversed?', 'shorter?', 'shortest', 'head-slice', 'pop*', 'tail-slice*', 'but-last-slice', 'iota?', 'append!', 'cut-slice', 'new-resizable', 'head-slice*', 'sequence-hashcode', 'pop', 'set-nth', '?nth', 'second', 'join', 'immutable-sequence?', '', '3append-as', 'virtual-sequence', 'subseq?', 'remove-nth!', 'length', 'last-index', 'lengthen', 'assert-sequence', 'copy', 'move', 'third', 'first', 'tail?', 'set-first', 'prefix', 'bounds-error', '', 'exchange', 'surround', 'cut', 'min-length', 'set-third', 'push-all', 'head?', 'subseq-start-from', 'delete-slice', 'rest', 'sum-lengths', 'head*', 'infimum', 'remove!', 'glue', 'slice-error', 'subseq', 'push', 'replace-slice', 'subseq-as', 'unclip-last'\n\t\t],\n\t\t'math-builtin': [\n\t\t\t'number=', 'next-power-of-2', '?1+', 'fp-special?', 'imaginary-part', 'float>bits', 'number?', 'fp-infinity?', 'bignum?', 'fp-snan?', 'denominator', 'gcd', '*', '+', 'fp-bitwise=', '-', 'u>=', '/', '>=', 'bitand', 'power-of-2?', 'log2-expects-positive', 'neg?', '<', 'log2', '>', 'integer?', 'number', 'bits>double', '2/', 'zero?', 'bits>float', 'float?', 'shift', 'ratio?', 'rect>', 'even?', 'ratio', 'fp-sign', 'bitnot', '>fixnum', 'complex?', '/i', 'integer>fixnum', '/f', 'sgn', '>bignum', 'next-float', 'u<', 'u>', 'mod', 'recip', 'rational', '>float', '2^', 'integer', 'fixnum?', 'neg', 'fixnum', 'sq', 'bignum', '>rect', 'bit?', 'fp-qnan?', 'simple-gcd', 'complex', '', 'real', '>fraction', 'double>bits', 'bitor', 'rem', 'fp-nan-payload', 'real-part', 'log2-expects-positive?', 'prev-float', 'align', 'unordered?', 'float', 'fp-nan?', 'abs', 'bitxor', 'integer>fixnum-strict', 'u<=', 'odd?', '<=', '/mod', '>integer', 'real?', 'rational?', 'numerator'\n\t\t]\n\t\t// that's all for now\n\t};\n\n\tObject.keys(builtins).forEach(function (k) {\n\t\tfactor[k].pattern = arrToWordsRegExp( builtins[k] );\n\t});\n\n\tvar combinators = [\n\t\t// kernel\n\t\t'2bi', 'while', '2tri', 'bi*', '4dip', 'both?', 'same?', 'tri@', 'curry', 'prepose', '3bi', '?if', 'tri*', '2keep', '3keep', 'curried', '2keepd', 'when', '2bi*', '2tri*', '4keep', 'bi@', 'keepdd', 'do', 'unless*', 'tri-curry', 'if*', 'loop', 'bi-curry*', 'when*', '2bi@', '2tri@', 'with', '2with', 'either?', 'bi', 'until', '3dip', '3curry', 'tri-curry*', 'tri-curry@', 'bi-curry', 'keepd', 'compose', '2dip', 'if', '3tri', 'unless', 'tuple', 'keep', '2curry', 'tri', 'most', 'while*', 'dip', 'composed', 'bi-curry@',\n\t\t// sequences\n\t\t'find-last-from', 'trim-head-slice', 'map-as', 'each-from', 'none?', 'trim-tail', 'partition', 'if-empty', 'accumulate*', 'reject!', 'find-from', 'accumulate-as', 'collector-for-as', 'reject', 'map', 'map-sum', 'accumulate!', '2each-from', 'follow', 'supremum-by', 'map!', 'unless-empty', 'collector', 'padding', 'reduce-index', 'replicate-as', 'infimum-by', 'trim-tail-slice', 'count', 'find-index', 'filter', 'accumulate*!', 'reject-as', 'map-integers', 'map-find', 'reduce', 'selector', 'interleave', '2map', 'filter-as', 'binary-reduce', 'map-index-as', 'find', 'produce', 'filter!', 'replicate', 'cartesian-map', 'cartesian-each', 'find-index-from', 'map-find-last', '3map-as', '3map', 'find-last', 'selector-as', '2map-as', '2map-reduce', 'accumulate', 'each', 'each-index', 'accumulate*-as', 'when-empty', 'all?', 'collector-as', 'push-either', 'new-like', 'collector-for', '2selector', 'push-if', '2all?', 'map-reduce', '3each', 'any?', 'trim-slice', '2reduce', 'change-nth', 'produce-as', '2each', 'trim', 'trim-head', 'cartesian-find', 'map-index',\n\t\t// math\n\t\t'if-zero', 'each-integer', 'unless-zero', '(find-integer)', 'when-zero', 'find-last-integer', '(all-integers?)', 'times', '(each-integer)', 'find-integer', 'all-integers?',\n\t\t// math.combinators\n\t\t'unless-negative', 'if-positive', 'when-positive', 'when-negative', 'unless-positive', 'if-negative',\n\t\t// combinators\n\t\t'case', '2cleave', 'cond>quot', 'case>quot', '3cleave', 'wrong-values', 'to-fixed-point', 'alist>quot', 'cond', 'cleave', 'call-effect', 'recursive-hashcode', 'spread', 'deep-spread>quot',\n\t\t// combinators.short-circuit\n\t\t'2||', '0||', 'n||', '0&&', '2&&', '3||', '1||', '1&&', 'n&&', '3&&',\n\t\t// combinators.smart\n\t\t'smart-unless*', 'keep-inputs', 'reduce-outputs', 'smart-when*', 'cleave>array', 'smart-with', 'smart-apply', 'smart-if', 'inputs/outputs', 'output>sequence-n', 'map-outputs', 'map-reduce-outputs', 'dropping', 'output>array', 'smart-map-reduce', 'smart-2map-reduce', 'output>array-n', 'nullary', 'inputsequence',\n\t\t// tafn\n\t];\n\n\tfactor.combinators.pattern = arrToWordsRegExp(combinators);\n\n\tPrism.languages.factor = factor;\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 5309:\n/***/ (function() {\n\nPrism.languages['firestore-security-rules'] = Prism.languages.extend('clike', {\n\t'comment': /\\/\\/.*/,\n\t'keyword': /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n\t'operator': /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/,\n});\n\ndelete Prism.languages['firestore-security-rules']['class-name'];\n\nPrism.languages.insertBefore('firestore-security-rules', 'keyword', {\n\t'path': {\n\t\tpattern: /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'variable': {\n\t\t\t\tpattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'operator': /=/,\n\t\t\t\t\t'keyword': /\\*\\*/,\n\t\t\t\t\t'punctuation': /[.$(){}]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /[/]/\n\t\t}\n\t},\n\t'method': {\n\t\t// to make the pattern shorter, the actual method names are omitted\n\t\tpattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n\t\tlookbehind: true,\n\t\talias: 'builtin',\n\t\tinside: {\n\t\t\t'punctuation': /,/\n\t\t}\n\t},\n});\n\n\n/***/ }),\n\n/***/ 2081:\n/***/ (function() {\n\n(function (Prism) {\n\tPrism.languages.flow = Prism.languages.extend('javascript', {});\n\n\tPrism.languages.insertBefore('flow', 'keyword', {\n\t\t'type': [\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,\n\t\t\t\talias: 'tag'\n\t\t\t}\n\t\t]\n\t});\n\tPrism.languages.flow['function-variable'].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i;\n\tdelete Prism.languages.flow['parameter'];\n\n\tPrism.languages.insertBefore('flow', 'operator', {\n\t\t'flow-punctuation': {\n\t\t\tpattern: /\\{\\||\\|\\}/,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tif (!Array.isArray(Prism.languages.flow.keyword)) {\n\t\tPrism.languages.flow.keyword = [Prism.languages.flow.keyword];\n\t}\n\tPrism.languages.flow.keyword.unshift(\n\t\t{\n\t\t\tpattern: /(^|[^$]\\b)(?:type|opaque|declare|Class)\\b(?!\\$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,\n\t\t\tlookbehind: true\n\t\t}\n\t);\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6186:\n/***/ (function() {\n\nPrism.languages.fortran = {\n\t'quoted-number': {\n\t\tpattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n\t\talias: 'number'\n\t},\n\t'string': {\n\t\tpattern: /(?:\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n\t\tinside: {\n\t\t\t'comment': {\n\t\t\t\tpattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t}\n\t},\n\t'comment': {\n\t\tpattern: /!.*/,\n\t\tgreedy: true\n\t},\n\t'boolean': /\\.(?:TRUE|FALSE)\\.(?:_\\w+)?/i,\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n\t'keyword': [\n\t\t// Types\n\t\t/\\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\\b/i,\n\t\t// END statements\n\t\t/\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i,\n\t\t// Statements\n\t\t/\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i,\n\t\t// Others\n\t\t/\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n\t],\n\t'operator': [\n\t\t/\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n\t\t{\n\t\t\t// Use lookbehind to prevent confusion with (/ /)\n\t\t\tpattern: /(^|(?!\\().)\\/(?!\\))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /\\(\\/|\\/\\)|[(),;:&]/\n};\n\n\n/***/ }),\n\n/***/ 4250:\n/***/ (function() {\n\nPrism.languages.fsharp = Prism.languages.extend('clike', {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\(\\*[\\s\\S]*?\\*\\)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?|'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'operator': /->|\\*/,\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\\b/,\n\t'number': [\n\t\t/\\b0x[\\da-fA-F]+(?:un|lf|LF)?\\b/,\n\t\t/\\b0b[01]+(?:y|uy)?\\b/,\n\t\t/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n\t\t/\\b\\d+(?:[IlLsy]|u[lsy]?|UL)?\\b/\n\t],\n\t'operator': /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n});\nPrism.languages.insertBefore('fsharp', 'keyword', {\n\t'preprocessor': {\n\t\tpattern: /^[^\\r\\n\\S]*#.*/m,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'directive': {\n\t\t\t\tpattern: /(\\s*#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t}\n\t\t}\n\t}\n});\nPrism.languages.insertBefore('fsharp', 'punctuation', {\n\t'computation-expression': {\n\t\tpattern: /[_a-z]\\w*(?=\\s*\\{)/i,\n\t\talias: 'keyword'\n\t}\n});\nPrism.languages.insertBefore('fsharp', 'string', {\n\t'annotation': {\n\t\tpattern: /\\[<.+?>\\]/,\n\t\tinside: {\n\t\t\t'punctuation': /^\\[<|>\\]$/,\n\t\t\t'class-name': {\n\t\t\t\tpattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'annotation-content': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\tinside: Prism.languages.fsharp\n\t\t\t}\n\t\t}\n\t}\n});\n\n\n/***/ }),\n\n/***/ 8463:\n/***/ (function() {\n\n(function (Prism) {\n\n\t// https://freemarker.apache.org/docs/dgui_template_exp.html\n\n\t// FTL expression with 4 levels of nesting supported\n\tvar FTL_EXPR = /[^<()\"']|\\((?:)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/.source;\n\tfor (var i = 0; i < 2; i++) {\n\t\tFTL_EXPR = FTL_EXPR.replace(//g, function () { return FTL_EXPR; });\n\t}\n\tFTL_EXPR = FTL_EXPR.replace(//g, /[^\\s\\S]/.source);\n\n\tvar ftl = {\n\t\t'comment': /<#--[\\s\\S]*?-->/,\n\t\t'string': [\n\t\t\t{\n\t\t\t\t// raw string\n\t\t\t\tpattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:))*\\})*\\1/.source.replace(//g, function () { return FTL_EXPR; })),\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': {\n\t\t\t\t\t\tpattern: RegExp(/((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:))*\\}/.source.replace(//g, function () { return FTL_EXPR; })),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trest: null\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'keyword': /\\b(?:as)\\b/,\n\t\t'boolean': /\\b(?:true|false)\\b/,\n\t\t'builtin-function': {\n\t\t\tpattern: /((?:^|[^?])\\?\\s*)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t'function': /\\w+(?=\\s*\\()/,\n\t\t'number': /\\d+(?:\\.\\d+)?/,\n\t\t'operator': /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n\t\t'punctuation': /[,;.:()[\\]{}]/\n\t};\n\n\tftl.string[1].inside.interpolation.inside.rest = ftl;\n\n\tPrism.languages.ftl = {\n\t\t'ftl-comment': {\n\t\t\t// the pattern is shortened to be more efficient\n\t\t\tpattern: /^<#--[\\s\\S]*/,\n\t\t\talias: 'comment'\n\t\t},\n\t\t'ftl-directive': {\n\t\t\tpattern: /^<[\\s\\S]+>$/,\n\t\t\tinside: {\n\t\t\t\t'directive': {\n\t\t\t\t\tpattern: /(^<\\/?)[#@][a-z]\\w*/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t},\n\t\t\t\t'punctuation': /^<\\/?|\\/?>$/,\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /\\s*\\S[\\s\\S]*/,\n\t\t\t\t\talias: 'ftl',\n\t\t\t\t\tinside: ftl\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'ftl-interpolation': {\n\t\t\tpattern: /^\\$\\{[\\s\\S]*\\}$/,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^\\$\\{|\\}$/,\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /\\s*\\S[\\s\\S]*/,\n\t\t\t\t\talias: 'ftl',\n\t\t\t\t\tinside: ftl\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tPrism.hooks.add('before-tokenize', function (env) {\n\t\tvar pattern = RegExp(/<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:)*?>|\\$\\{(?:)*?\\}/.source.replace(//g, function () { return FTL_EXPR; }), 'gi');\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'ftl', pattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6735:\n/***/ (function() {\n\nPrism.languages.gcode = {\n\t'comment': /;.*|\\B\\(.*?\\)\\B/,\n\t'string': {\n\t\tpattern: /\"(?:\"\"|[^\"])*\"/,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n\t'property': /\\b[A-Z]/,\n\t'checksum': {\n\t\tpattern: /\\*\\d+/,\n\t\talias: 'punctuation'\n\t},\n\t// T0:0:0\n\t'punctuation': /:/\n};\n\n\n/***/ }),\n\n/***/ 4626:\n/***/ (function() {\n\nPrism.languages.gdscript = {\n\t'comment': /#.*/,\n\t'string': {\n\t\tpattern: /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\t// class_name Foo, extends Bar, class InnerClass\n\t\t// export(int) var baz, export(int, 0) var i\n\t\t// as Node\n\t\t// const FOO: int = 9, var bar: bool = true\n\t\t// func add(reference: Item, amount: int) -> Item:\n\t\tpattern: /(^(?:class_name|class|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n\t'function': /[a-z_]\\w*(?=[ \\t]*\\()/i,\n\t'variable': /\\$\\w+/,\n\t'number': [\n\t\t/\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n\t\t/\\b(?:INF|NAN|PI|TAU)\\b/\n\t],\n\t'constant': /\\b[A-Z][A-Z_\\d]*\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'operator': /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n\t'punctuation': /[.:,;()[\\]{}]/\n};\n\n\n/***/ }),\n\n/***/ 9767:\n/***/ (function() {\n\nPrism.languages.gedcom = {\n\t'line-value': {\n\t\t// Preceded by level, optional pointer, and tag\n\t\tpattern: /(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'pointer': {\n\t\t\t\tpattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n\t\t\t\talias: 'variable'\n\t\t\t}\n\t\t}\n\t},\n\t'tag': {\n\t\t// Preceded by level and optional pointer\n\t\tpattern: /(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n\t\tlookbehind: true,\n\t\talias: 'string'\n\t},\n\t'level': {\n\t\tpattern: /(^\\s*)\\d+/m,\n\t\tlookbehind: true,\n\t\talias: 'number'\n\t},\n\t'pointer': {\n\t\tpattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n\t\talias: 'variable'\n\t}\n};\n\n\n/***/ }),\n\n/***/ 7252:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source;\n\n\tPrism.languages.gherkin = {\n\t\t'pystring': {\n\t\t\tpattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n\t\t\talias: 'string'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^[ \\t]*)#.*/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'tag': {\n\t\t\tpattern: /(^[ \\t]*)@\\S*/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'feature': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Caracter\u00EDstica|Egenskab|Egenskap|Eiginleiki|Feature|F\u012B\u010Da|Fitur|Fonctionnalit\u00E9|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Func\u0163ionalitate|Func\u021Bionalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalit\u0101te|Funkcionalnost|Funkcja|Funksie|Funktionalit\u00E4t|Funktionalit\u00E9it|Funzionalit\u00E0|Hwaet|Hw\u00E6t|Jellemz\u0151|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogu\u0107nost|Moznosti|Mo\u017Enosti|OH HAI|Omadus|Ominaisuus|Osobina|\u00D6zellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Po\u017Eadavek|Po\u017Eiadavka|Pretty much|Qap|Qu'meH 'ut|Savyb\u0117|T\u00EDnh n\u0103ng|Trajto|Vermo\u00EB|Vlastnos\u0165|W\u0142a\u015Bciwo\u015B\u0107|Zna\u010Dilnost|\u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1|\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1|\u041C\u043E\u0433\u0443\u045B\u043D\u043E\u0441\u0442|\u041C\u04E9\u043C\u043A\u0438\u043D\u043B\u0435\u043A|\u041E\u0441\u043E\u0431\u0438\u043D\u0430|\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u043E|\u04AE\u0437\u0435\u043D\u0447\u04D9\u043B\u0435\u043A\u043B\u0435\u043B\u0435\u043A|\u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B|\u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442|\u0424\u0443\u043D\u043A\u0446\u0438\u044F|\u0424\u0443\u043D\u043A\u0446\u0456\u043E\u043D\u0430\u043B|\u05EA\u05DB\u05D5\u05E0\u05D4|\u062E\u0627\u0635\u064A\u0629|\u062E\u0635\u0648\u0635\u06CC\u062A|\u0635\u0644\u0627\u062D\u06CC\u062A|\u06A9\u0627\u0631\u0648\u0628\u0627\u0631 \u06A9\u06CC \u0636\u0631\u0648\u0631\u062A|\u0648\u0650\u06CC\u0698\u06AF\u06CC|\u0930\u0942\u092A \u0932\u0947\u0916|\u0A16\u0A3E\u0A38\u0A40\u0A05\u0A24|\u0A28\u0A15\u0A36 \u0A28\u0A41\u0A39\u0A3E\u0A30|\u0A2E\u0A41\u0A39\u0A3E\u0A02\u0A26\u0A30\u0A3E|\u0C17\u0C41\u0C23\u0C2E\u0C41|\u0CB9\u0CC6\u0C9A\u0CCD\u0C9A\u0CB3|\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E17\u0E32\u0E07\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08|\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16|\u0E42\u0E04\u0E23\u0E07\u0E2B\u0E25\u0E31\u0E01|\uAE30\uB2A5|\u30D5\u30A3\u30FC\u30C1\u30E3|\u529F\u80FD|\u6A5F\u80FD):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'important': {\n\t\t\t\t\tpattern: /(:)[^\\r\\n]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'keyword': /[^:\\r\\n]+:/\n\t\t\t}\n\t\t},\n\t\t'scenario': {\n\t\t\tpattern: /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|\u00C6r|Agtergrond|All y'all|Antecedentes|Antecedents|Atbur\u00F0ar\u00E1s|Atbur\u00F0ar\u00E1sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|B\u1ED1i c\u1EA3nh|Cefndir|Cenario|Cen\u00E1rio|Cenario de Fundo|Cen\u00E1rio de Fundo|Cenarios|Cen\u00E1rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|D\u00E6mi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delinea\u00E7\u00E3o do Cen\u00E1rio|Dis is what went down|D\u1EEF li\u1EC7u|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cen\u00E1rio|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgat\u00F3k\u00F6nyv|Forgat\u00F3k\u00F6nyv v\u00E1zlat|Fundo|Ge\u00E7mi\u015F|ghantoH|Grundlage|Hannergrond|H\u00E1tt\u00E9r|Heave to|Istorik|Juhtumid|Keadaan|Khung k\u1ECBch b\u1EA3n|Khung t\u00ECnh hu\u1ED1ng|K\u1ECBch b\u1EA3n|Koncept|Konsep skenario|Kont\u00E8ks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|L\u00FDsing Atbur\u00F0ar\u00E1sar|L\u00FDsing D\u00E6ma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|N\u00E1\u010Drt Scen\u00E1ra|N\u00E1\u010Drt Sc\u00E9n\u00E1\u0159e|N\u00E1\u010Drt Scen\u00E1ru|Oris scenarija|\u00D6rnekler|Osnova|Osnova Scen\u00E1ra|Osnova sc\u00E9n\u00E1\u0159e|Osnutek|Ozadje|Paraugs|Pavyzd\u017Eiai|P\u00E9ld\u00E1k|Piem\u0113ri|Plan du sc\u00E9nario|Plan du Sc\u00E9nario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozad\u00ED|Pozadie|Pozadina|Pr\u00EDklady|P\u0159\u00EDklady|Primer|Primeri|Primjeri|Przyk\u0142ady|Raamstsenaarium|Reckon it's like|Rerefons|Scen\u00E1r|Sc\u00E9n\u00E1\u0159|Scenarie|Scenarij|Scenarijai|Scenarijaus \u0161ablonas|Scenariji|Scen\u0101rijs|Scen\u0101rijs p\u0113c parauga|Scenarijus|Scenario|Sc\u00E9nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se \u00F0e|Se the|Se \u00FEe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo tasla\u011F\u0131|Shiver me timbers|Situ\u0101cija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structur\u0103 scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hw\u00E6r swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|T\u00ECnh hu\u1ED1ng|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\\-ho\\-ho|You'll wanna|Za\u0142o\u017Cenia|\u03A0\u03B1\u03C1\u03B1\u03B4\u03B5\u03AF\u03B3\u03BC\u03B1\u03C4\u03B1|\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03A3\u03B5\u03BD\u03B1\u03C1\u03AF\u03BF\u03C5|\u03A3\u03B5\u03BD\u03AC\u03C1\u03B9\u03B1|\u03A3\u03B5\u03BD\u03AC\u03C1\u03B9\u03BF|\u03A5\u03C0\u03CC\u03B2\u03B1\u03B8\u03C1\u03BF|\u041A\u0435\u0440\u0435\u0448|\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442|\u041A\u043E\u043D\u0446\u0435\u043F\u0442|\u041C\u0438\u0441\u0430\u043B\u043B\u0430\u0440|\u041C\u0438\u0441\u043E\u043B\u043B\u0430\u0440|\u041E\u0441\u043D\u043E\u0432\u0430|\u041F\u0435\u0440\u0435\u0434\u0443\u043C\u043E\u0432\u0430|\u041F\u043E\u0437\u0430\u0434\u0438\u043D\u0430|\u041F\u0440\u0435\u0434\u0438\u0441\u0442\u043E\u0440\u0438\u044F|\u041F\u0440\u0435\u0434\u044B\u0441\u0442\u043E\u0440\u0438\u044F|\u041F\u0440\u0438\u043A\u043B\u0430\u0434\u0438|\u041F\u0440\u0438\u043C\u0435\u0440|\u041F\u0440\u0438\u043C\u0435\u0440\u0438|\u041F\u0440\u0438\u043C\u0435\u0440\u044B|\u0420\u0430\u043C\u043A\u0430 \u043D\u0430 \u0441\u0446\u0435\u043D\u0430\u0440\u0438\u0439|\u0421\u043A\u0438\u0446\u0430|\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043D\u0430\u0440\u0438\u0458\u0430|\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043D\u0430\u0440\u0438\u044F|\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043D\u0430\u0440\u0456\u044E|\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439|\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430\u0441\u0438|\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439\u043D\u044B\u04A3 \u0442\u04E9\u0437\u0435\u043B\u0435\u0448\u0435|\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0458\u0438|\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u043E|\u0421\u0446\u0435\u043D\u0430\u0440\u0456\u0439|\u0422\u0430\u0440\u0438\u0445|\u04AE\u0440\u043D\u04D9\u043A\u043B\u04D9\u0440|\u05D3\u05D5\u05D2\u05DE\u05D0\u05D5\u05EA|\u05E8\u05E7\u05E2|\u05EA\u05D1\u05E0\u05D9\u05EA \u05EA\u05E8\u05D7\u05D9\u05E9|\u05EA\u05E8\u05D7\u05D9\u05E9|\u0627\u0644\u062E\u0644\u0641\u064A\u0629|\u0627\u0644\u06AF\u0648\u06CC \u0633\u0646\u0627\u0631\u06CC\u0648|\u0627\u0645\u062B\u0644\u0629|\u067E\u0633 \u0645\u0646\u0638\u0631|\u0632\u0645\u06CC\u0646\u0647|\u0633\u0646\u0627\u0631\u06CC\u0648|\u0633\u064A\u0646\u0627\u0631\u064A\u0648|\u0633\u064A\u0646\u0627\u0631\u064A\u0648 \u0645\u062E\u0637\u0637|\u0645\u062B\u0627\u0644\u06CC\u06BA|\u0645\u0646\u0638\u0631 \u0646\u0627\u0645\u06D2 \u06A9\u0627 \u062E\u0627\u06A9\u06C1|\u0645\u0646\u0638\u0631\u0646\u0627\u0645\u06C1|\u0646\u0645\u0648\u0646\u0647 \u0647\u0627|\u0909\u0926\u093E\u0939\u0930\u0923|\u092A\u0930\u093F\u0926\u0943\u0936\u094D\u092F|\u092A\u0930\u093F\u0926\u0943\u0936\u094D\u092F \u0930\u0942\u092A\u0930\u0947\u0916\u093E|\u092A\u0943\u0937\u094D\u0920\u092D\u0942\u092E\u093F|\u0A09\u0A26\u0A3E\u0A39\u0A30\u0A28\u0A3E\u0A02|\u0A2A\u0A1F\u0A15\u0A25\u0A3E|\u0A2A\u0A1F\u0A15\u0A25\u0A3E \u0A22\u0A3E\u0A02\u0A1A\u0A3E|\u0A2A\u0A1F\u0A15\u0A25\u0A3E \u0A30\u0A42\u0A2A \u0A30\u0A47\u0A16\u0A3E|\u0A2A\u0A3F\u0A1B\u0A4B\u0A15\u0A5C|\u0C09\u0C26\u0C3E\u0C39\u0C30\u0C23\u0C32\u0C41|\u0C15\u0C25\u0C28\u0C02|\u0C28\u0C47\u0C2A\u0C25\u0C4D\u0C2F\u0C02|\u0C38\u0C28\u0C4D\u0C28\u0C3F\u0C35\u0C47\u0C36\u0C02|\u0C89\u0CA6\u0CBE\u0CB9\u0CB0\u0CA3\u0CC6\u0C97\u0CB3\u0CC1|\u0C95\u0CA5\u0CBE\u0CB8\u0CBE\u0CB0\u0CBE\u0C82\u0CB6|\u0CB5\u0CBF\u0CB5\u0CB0\u0CA3\u0CC6|\u0CB9\u0CBF\u0CA8\u0CCD\u0CA8\u0CC6\u0CB2\u0CC6|\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C|\u0E0A\u0E38\u0E14\u0E02\u0E2D\u0E07\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07|\u0E0A\u0E38\u0E14\u0E02\u0E2D\u0E07\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C|\u0E41\u0E19\u0E27\u0E04\u0E34\u0E14|\u0E2A\u0E23\u0E38\u0E1B\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C|\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C|\uBC30\uACBD|\uC2DC\uB098\uB9AC\uC624|\uC2DC\uB098\uB9AC\uC624 \uAC1C\uC694|\uC608|\u30B5\u30F3\u30D7\u30EB|\u30B7\u30CA\u30EA\u30AA|\u30B7\u30CA\u30EA\u30AA\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3|\u30B7\u30CA\u30EA\u30AA\u30C6\u30F3\u30D7\u30EC|\u30B7\u30CA\u30EA\u30AA\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8|\u30C6\u30F3\u30D7\u30EC|\u4F8B|\u4F8B\u5B50|\u5267\u672C|\u5267\u672C\u5927\u7EB2|\u5287\u672C|\u5287\u672C\u5927\u7DB1|\u573A\u666F|\u573A\u666F\u5927\u7EB2|\u5834\u666F|\u5834\u666F\u5927\u7DB1|\u80CC\u666F):[^:\\r\\n]*/m,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'important': {\n\t\t\t\t\tpattern: /(:)[^\\r\\n]*/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'keyword': /[^:\\r\\n]+:/\n\t\t\t}\n\t\t},\n\t\t'table-body': {\n\t\t\t// Look-behind is used to skip the table head, which has the same format as any table row\n\t\t\tpattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'outline': {\n\t\t\t\t\tpattern: /<[^>]+?>/,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t},\n\t\t\t\t'td': {\n\t\t\t\t\tpattern: /\\s*[^\\s|][^|]*/,\n\t\t\t\t\talias: 'string'\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\|/\n\t\t\t}\n\t\t},\n\t\t'table-head': {\n\t\t\tpattern: RegExp(tableRow),\n\t\t\tinside: {\n\t\t\t\t'th': {\n\t\t\t\t\tpattern: /\\s*[^\\s|][^|]*/,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\|/\n\t\t\t}\n\t\t},\n\t\t'atrule': {\n\t\t\tpattern: /(^[ \\t]+)(?:'ach|'a|'ej|7|a|A tak\u00E9|A taktie\u017E|A tie\u017E|A z\u00E1rove\u0148|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|At\u00E8s|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Bi\u1EBFt|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|C\u00E2nd|Cando|Cand|Ce|Cuando|\u010Ce|\u00D0a \u00F0e|\u00D0a|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Da\u0163i fiind|Da\u021Bi fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donita\u0135o|Do|Dun|Duota|\u00D0urh|Eeldades|Ef|E\u011Fer ki|Entao|Ent\u00E3o|Ent\u00F3n|Entonces|En|Epi|E|\u00C9s|Etant donn\u00E9e|Etant donn\u00E9|Et|\u00C9tant donn\u00E9es|\u00C9tant donn\u00E9e|\u00C9tant donn\u00E9|Etant donn\u00E9es|Etant donn\u00E9s|\u00C9tant donn\u00E9s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Je\u015Bli|Je\u017Celi|Kadar|Kada|Kad|Kai|Kaj|Kdy\u017E|Ke\u010F|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|L\u00E8 sa a|L\u00E8|Logo|Lorsqu'<|Lorsque|m\u00E4|Maar|Mais|Maj\u0105c|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|N\u00E5r|N\u00E4r|Nato|Nh\u01B0ng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Per\u00F2|Podano|Pokia\u013E|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|S\u00E5|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|\u015Ei|\u0218i|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Th\u00EC|Thurh|Toda|Too right|ugeholl|Und|Un|V\u00E0|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za p\u0159edpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zak\u0142adaj\u0105c|Zaradi|Zatati|\u00DEa \u00FEe|\u00DEa|\u00DE\u00E1|\u00DEegar|\u00DEurh|\u0391\u03BB\u03BB\u03AC|\u0394\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5|\u039A\u03B1\u03B9|\u038C\u03C4\u03B1\u03BD|\u03A4\u03CC\u03C4\u03B5|\u0410 \u0442\u0430\u043A\u043E\u0436|\u0410\u0433\u0430\u0440|\u0410\u043B\u0435|\u0410\u043B\u0438|\u0410\u043C\u043C\u043E|\u0410|\u04D8\u0433\u04D9\u0440|\u04D8\u0439\u0442\u0438\u043A|\u04D8\u043C\u043C\u0430|\u0411\u0438\u0440\u043E\u043A|\u0412\u0430|\u0412\u04D9|\u0414\u0430\u0434\u0435\u043D\u043E|\u0414\u0430\u043D\u043E|\u0414\u043E\u043F\u0443\u0441\u0442\u0438\u043C|\u0415\u0441\u043B\u0438|\u0417\u0430\u0434\u0430\u0442\u0435|\u0417\u0430\u0434\u0430\u0442\u0438|\u0417\u0430\u0434\u0430\u0442\u043E|\u0418|\u0406|\u041A \u0442\u043E\u043C\u0443 \u0436\u0435|\u041A\u0430\u0434\u0430|\u041A\u0430\u0434|\u041A\u043E\u0433\u0430\u0442\u043E|\u041A\u043E\u0433\u0434\u0430|\u041A\u043E\u043B\u0438|\u041B\u04D9\u043A\u0438\u043D|\u041B\u0435\u043A\u0438\u043D|\u041D\u04D9\u0442\u0438\u0497\u04D9\u0434\u04D9|\u041D\u0435\u0445\u0430\u0439|\u041D\u043E|\u041E\u043D\u0434\u0430|\u041F\u0440\u0438\u043F\u0443\u0441\u0442\u0438\u043C\u043E, \u0449\u043E|\u041F\u0440\u0438\u043F\u0443\u0441\u0442\u0438\u043C\u043E|\u041F\u0443\u0441\u0442\u044C|\u0422\u0430\u043A\u0436\u0435|\u0422\u0430|\u0422\u043E\u0433\u0434\u0430|\u0422\u043E\u0434\u0456|\u0422\u043E|\u0423\u043D\u0434\u0430|\u04BA\u04D9\u043C|\u042F\u043A\u0449\u043E|\u05D0\u05D1\u05DC|\u05D0\u05D6\u05D9|\u05D0\u05D6|\u05D1\u05D4\u05D9\u05E0\u05EA\u05DF|\u05D5\u05D2\u05DD|\u05DB\u05D0\u05E9\u05E8|\u0622\u0646\u06AF\u0627\u0647|\u0627\u0630\u0627\u064B|\u0627\u06AF\u0631|\u0627\u0645\u0627|\u0627\u0648\u0631|\u0628\u0627 \u0641\u0631\u0636|\u0628\u0627\u0644\u0641\u0631\u0636|\u0628\u0641\u0631\u0636|\u067E\u06BE\u0631|\u062A\u0628|\u062B\u0645|\u062C\u0628|\u0639\u0646\u062F\u0645\u0627|\u0641\u0631\u0636 \u06A9\u06CC\u0627|\u0644\u0643\u0646|\u0644\u06CC\u06A9\u0646|\u0645\u062A\u0649|\u0647\u0646\u06AF\u0627\u0645\u06CC|\u0648|\u0905\u0917\u0930|\u0914\u0930|\u0915\u0926\u093E|\u0915\u093F\u0928\u094D\u0924\u0941|\u091A\u0942\u0902\u0915\u093F|\u091C\u092C|\u0924\u0925\u093E|\u0924\u0926\u093E|\u0924\u092C|\u092A\u0930\u0928\u094D\u0924\u0941|\u092A\u0930|\u092F\u0926\u093F|\u0A05\u0A24\u0A47|\u0A1C\u0A26\u0A4B\u0A02|\u0A1C\u0A3F\u0A35\u0A47\u0A02 \u0A15\u0A3F|\u0A1C\u0A47\u0A15\u0A30|\u0A24\u0A26|\u0A2A\u0A30|\u0C05\u0C2A\u0C4D\u0C2A\u0C41\u0C21\u0C41|\u0C08 \u0C2A\u0C30\u0C3F\u0C38\u0C4D\u0C25\u0C3F\u0C24\u0C3F\u0C32\u0C4B|\u0C15\u0C3E\u0C28\u0C3F|\u0C1A\u0C46\u0C2A\u0C4D\u0C2A\u0C2C\u0C21\u0C3F\u0C28\u0C26\u0C3F|\u0C2E\u0C30\u0C3F\u0C2F\u0C41|\u0C86\u0CA6\u0CB0\u0CC6|\u0CA8\u0C82\u0CA4\u0CB0|\u0CA8\u0CBF\u0CD5\u0CA1\u0CBF\u0CA6|\u0CAE\u0CA4\u0CCD\u0CA4\u0CC1|\u0CB8\u0CCD\u0CA5\u0CBF\u0CA4\u0CBF\u0CAF\u0CA8\u0CCD\u0CA8\u0CC1|\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E43\u0E2B\u0E49|\u0E14\u0E31\u0E07\u0E19\u0E31\u0E49\u0E19|\u0E41\u0E15\u0E48|\u0E40\u0E21\u0E37\u0E48\u0E2D|\u0E41\u0E25\u0E30|\uADF8\uB7EC\uBA74<|\uADF8\uB9AC\uACE0<|\uB2E8<|\uB9CC\uC57D<|\uB9CC\uC77C<|\uBA3C\uC800<|\uC870\uAC74<|\uD558\uC9C0\uB9CC<|\u304B\u3064<|\u3057\u304B\u3057<|\u305F\u3060\u3057<|\u306A\u3089\u3070<|\u3082\u3057<|\u4E26\u4E14<|\u4F46\u3057<|\u4F46\u662F<|\u5047\u5982<|\u5047\u5B9A<|\u5047\u8A2D<|\u5047\u8BBE<|\u524D\u63D0<|\u540C\u65F6<|\u540C\u6642<|\u5E76\u4E14<|\u5F53<|\u7576<|\u800C\u4E14<|\u90A3\u4E48<|\u90A3\u9EBC<)(?=[ \\t])/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n\t\t\tinside: {\n\t\t\t\t'outline': {\n\t\t\t\t\tpattern: /<[^>]+?>/,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'outline': {\n\t\t\tpattern: /<[^>]+?>/,\n\t\t\talias: 'variable'\n\t\t}\n\t};\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1702:\n/***/ (function() {\n\nPrism.languages.git = {\n\t/*\n\t * A simple one line comment like in a git status command\n\t * For instance:\n\t * $ git status\n\t * # On branch infinite-scroll\n\t * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n\t * # and have 1 and 2 different commits each, respectively.\n\t * nothing to commit (working directory clean)\n\t */\n\t'comment': /^#.*/m,\n\n\t/*\n\t * Regexp to match the changed lines in a git diff output. Check the example below.\n\t */\n\t'deleted': /^[-\u2013].*/m,\n\t'inserted': /^\\+.*/m,\n\n\t/*\n\t * a string (double and simple quote)\n\t */\n\t'string': /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\n\n\t/*\n\t * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n\t * For instance:\n\t * $ git add file.txt\n\t */\n\t'command': {\n\t\tpattern: /^.*\\$ git .*$/m,\n\t\tinside: {\n\t\t\t/*\n\t\t\t * A git command can contain a parameter starting by a single or a double dash followed by a string\n\t\t\t * For instance:\n\t\t\t * $ git diff --cached\n\t\t\t * $ git log -p\n\t\t\t */\n\t\t\t'parameter': /\\s--?\\w+/m\n\t\t}\n\t},\n\n\t/*\n\t * Coordinates displayed in a git diff command\n\t * For instance:\n\t * $ git diff\n\t * diff --git file.txt file.txt\n\t * index 6214953..1d54a52 100644\n\t * --- file.txt\n\t * +++ file.txt\n\t * @@ -1 +1,2 @@\n\t * -Here's my tetx file\n\t * +Here's my text file\n\t * +And this is the second line\n\t */\n\t'coord': /^@@.*@@$/m,\n\n\t/*\n\t * Match a \"commit [SHA1]\" line in a git log output.\n\t * For instance:\n\t * $ git log\n\t * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n\t * Author: lgiraudel\n\t * Date: Mon Feb 17 11:18:34 2014 +0100\n\t *\n\t * Add of a new line\n\t */\n\t'commit-sha1': /^commit \\w{40}$/m\n};\n\n\n/***/ }),\n\n/***/ 7052:\n/***/ (function() {\n\nPrism.languages.glsl = Prism.languages.extend('c', {\n\t'keyword': /\\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\\b/\n});\n\n\n/***/ }),\n\n/***/ 2940:\n/***/ (function() {\n\nPrism.languages.gamemakerlanguage = Prism.languages.gml = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\\b/,\n\t'number': /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n\t'operator': /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at|xor)\\b/,\n\t'constant': /\\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\\d|numpad\\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\\w+)\\b/,\n\t'variable': /\\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\\d)|argument|global|local|self|other)\\b/\n});\n\n\n/***/ }),\n\n/***/ 5586:\n/***/ (function() {\n\nPrism.languages.go = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'boolean': /\\b(?:_|iota|nil|true|false)\\b/,\n\t'number': /(?:\\b0x[a-f\\d]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n\t'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n\t'builtin': /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/\n});\ndelete Prism.languages.go['class-name'];\n\n\n/***/ }),\n\n/***/ 6546:\n/***/ (function() {\n\nPrism.languages.graphql = {\n\t'comment': /#.*/,\n\t'description': {\n\t\tpattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n\t\tgreedy: true,\n\t\talias: 'string',\n\t\tinside: {\n\t\t\t'language-markdown': {\n\t\t\t\tpattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.markdown\n\t\t\t}\n\t\t}\n\t},\n\t'string': {\n\t\tpattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'number': /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'variable': /\\$[a-z_]\\w*/i,\n\t'directive': {\n\t\tpattern: /@[a-z_]\\w*/i,\n\t\talias: 'function'\n\t},\n\t'attr-name': {\n\t\tpattern: /[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*)[a-zA-Z_]\\w*/,\n\t\tlookbehind: true\n\t},\n\t'fragment': {\n\t\tpattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'keyword': /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n\t'operator': /[!=|&]|\\.{3}/,\n\t'punctuation': /[!(){}\\[\\]:=,]/,\n\t'constant': /\\b(?!ID\\b)[A-Z][A-Z_\\d]*\\b/\n};\n\n\n/***/ }),\n\n/***/ 6215:\n/***/ (function() {\n\nPrism.languages.groovy = Prism.languages.extend('clike', {\n\t'string': [\n\t\t{\n\t\t\t// https://groovy-lang.org/syntax.html#_dollar_slashy_string\n\t\t\tpattern: /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\t// TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n\t\t\t// simple division (see JS regex), so find a fix maybe?\n\t\t\tpattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'keyword': /\\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n\t'number': /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?[\\d]+)?)[glidf]?\\b/i,\n\t'operator': {\n\t\tpattern: /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /\\.+|[{}[\\];(),:$]/\n});\n\nPrism.languages.insertBefore('groovy', 'string', {\n\t'shebang': {\n\t\tpattern: /#!.+/,\n\t\talias: 'comment'\n\t}\n});\n\nPrism.languages.insertBefore('groovy', 'punctuation', {\n\t'spock-block': /\\b(?:setup|given|when|then|and|cleanup|expect|where):/\n});\n\nPrism.languages.insertBefore('groovy', 'function', {\n\t'annotation': {\n\t\tpattern: /(^|[^.])@\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t}\n});\n\n// Handle string interpolation\nPrism.hooks.add('wrap', function(env) {\n\tif (env.language === 'groovy' && env.type === 'string') {\n\t\tvar delimiter = env.content[0];\n\n\t\tif (delimiter != \"'\") {\n\t\t\tvar pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/;\n\t\t\tif (delimiter === '$') {\n\t\t\t\tpattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/;\n\t\t\t}\n\n\t\t\t// To prevent double HTML-encoding we have to decode env.content first\n\t\t\tenv.content = env.content.replace(/</g, '<').replace(/&/g, '&');\n\n\t\t\tenv.content = Prism.highlight(env.content, {\n\t\t\t\t'expression': {\n\t\t\t\t\tpattern: pattern,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: Prism.languages.groovy\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tenv.classes.push(delimiter === '/' ? 'regex' : 'gstring');\n\t\t}\n\t}\n});\n\n\n/***/ }),\n\n/***/ 8689:\n/***/ (function() {\n\n/* TODO\n\tHandle multiline code after tag\n\t %foo= some |\n\t\t\tmultiline |\n\t\t\tcode |\n*/\n\n(function(Prism) {\n\n\tPrism.languages.haml = {\n\t\t// Multiline stuff should appear before the rest\n\n\t\t'multiline-comment': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'comment'\n\t\t},\n\n\t\t'multiline-code': [\n\t\t\t{\n\t\t\t\tpattern: /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.ruby\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.ruby\n\t\t\t}\n\t\t],\n\n\t\t// See at the end of the file for known filters\n\t\t'filter': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'filter-name': {\n\t\t\t\t\tpattern: /^:[\\w-]+/,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t'markup': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.markup\n\t\t},\n\t\t'doctype': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'tag': {\n\t\t\t// Allows for one nested group of braces\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attributes': [\n\t\t\t\t\t{\n\t\t\t\t\t\t// Lookbehind tries to prevent interpolations from breaking it all\n\t\t\t\t\t\t// Allows for one nested group of braces\n\t\t\t\t\t\tpattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: Prism.languages.ruby\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpattern: /\\([^)]+\\)/,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'attr-value': {\n\t\t\t\t\t\t\t\tpattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n\t\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n\t\t\t\t\t\t\t'punctuation': /[=(),]/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpattern: /\\[[^\\]]+\\]/,\n\t\t\t\t\t\tinside: Prism.languages.ruby\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t'punctuation': /[<>]/\n\t\t\t}\n\t\t},\n\t\t'code': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.ruby\n\t\t},\n\t\t// Interpolations in plain text\n\t\t'interpolation': {\n\t\t\tpattern: /#\\{[^}]+\\}/,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^#\\{|\\}$/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.ruby\n\t\t\t}\n\t\t},\n\t\t'punctuation': {\n\t\t\tpattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n\t\t\tlookbehind: true\n\t\t}\n\t};\n\n\tvar filter_pattern = '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+';\n\n\t// Non exhaustive list of available filters and associated languages\n\tvar filters = [\n\t\t'css',\n\t\t{filter:'coffee',language:'coffeescript'},\n\t\t'erb',\n\t\t'javascript',\n\t\t'less',\n\t\t'markdown',\n\t\t'ruby',\n\t\t'scss',\n\t\t'textile'\n\t];\n\tvar all_filters = {};\n\tfor (var i = 0, l = filters.length; i < l; i++) {\n\t\tvar filter = filters[i];\n\t\tfilter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;\n\t\tif (Prism.languages[filter.language]) {\n\t\t\tall_filters['filter-' + filter.filter] = {\n\t\t\t\tpattern: RegExp(filter_pattern.replace('{{filter_name}}', function () { return filter.filter; })),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'filter-name': {\n\t\t\t\t\t\tpattern: /^:[\\w-]+/,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages[filter.language]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tPrism.languages.insertBefore('haml', 'filter', all_filters);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1223:\n/***/ (function() {\n\n(function(Prism) {\n\n\tPrism.languages.handlebars = {\n\t\t'comment': /\\{\\{![\\s\\S]*?\\}\\}/,\n\t\t'delimiter': {\n\t\t\tpattern: /^\\{\\{\\{?|\\}\\}\\}?$/i,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'string': /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n\t\t'boolean': /\\b(?:true|false)\\b/,\n\t\t'block': {\n\t\t\tpattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/i,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t'brackets': {\n\t\t\tpattern: /\\[[^\\]]+\\]/,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\[|\\]/,\n\t\t\t\tvariable: /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t'punctuation': /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n\t\t'variable': /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n\t};\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tvar handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'handlebars', handlebarsPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'handlebars');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1234:\n/***/ (function() {\n\nPrism.languages.haskell = {\n\t'comment': {\n\t\tpattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|{-[\\s\\S]*?-})/m,\n\t\tlookbehind: true\n\t},\n\t'char': {\n\t\tpattern: /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n\t'import-statement': {\n\t\t// The imported or hidden names are not included in this import\n\t\t// statement. This is because we want to highlight those exactly like\n\t\t// we do for the names in the program.\n\t\tpattern: /(^\\s*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'keyword': /\\b(?:import|qualified|as|hiding)\\b/\n\t\t}\n\t},\n\t// These are builtin variables only. Constructors are highlighted later as a constant.\n\t'builtin': /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n\t// decimal integers and floating point numbers | octal integers | hexadecimal integers\n\t'number': /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n\t// Most of this is needed because of the meaning of a single '.'.\n\t// If it stands alone freely, it is the function composition.\n\t// It may also be a separator between a module name and an identifier => no\n\t// operator. If it comes together with other special characters it is an\n\t// operator too.\n\t'operator': /\\s\\.\\s|[-!#$%*+=?&@|~:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n\t// In Haskell, nearly everything is a variable, do not highlight these.\n\t'hvariable': /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*\\b/,\n\t'constant': /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*\\b/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.hs = Prism.languages.haskell;\n\n\n/***/ }),\n\n/***/ 8537:\n/***/ (function() {\n\nPrism.languages.haxe = Prism.languages.extend('clike', {\n\t// Strings can be multi-line\n\t'string': {\n\t\tpattern: /([\"'])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^}]+\\})/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': {\n\t\t\t\t\t\tpattern: /^\\$\\w*/,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t}\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t// The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n\t'keyword': /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\\.)\\b/,\n\t'operator': /\\.{3}|\\+\\+?|-[->]?|[=!]=?|&&?|\\|\\|?|<[<=]?|>[>=]?|[*\\/%~^]/\n});\nPrism.languages.insertBefore('haxe', 'class-name', {\n\t'regex': {\n\t\tpattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[igmsu]*/,\n\t\tgreedy: true\n\t}\n});\nPrism.languages.insertBefore('haxe', 'keyword', {\n\t'preprocessor': {\n\t\tpattern: /#\\w+/,\n\t\talias: 'builtin'\n\t},\n\t'metadata': {\n\t\tpattern: /@:?\\w+/,\n\t\talias: 'symbol'\n\t},\n\t'reification': {\n\t\tpattern: /\\$(?:\\w+|(?=\\{))/,\n\t\talias: 'variable'\n\t}\n});\nPrism.languages.haxe['string'].inside['interpolation'].inside.rest = Prism.languages.haxe;\ndelete Prism.languages.haxe['class-name'];\n\n/***/ }),\n\n/***/ 280:\n/***/ (function() {\n\nPrism.languages.hcl = {\n\t'comment': /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t'heredoc': {\n\t\tpattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /(?:resource|data)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+{)/i,\n\t\t\tinside: {\n\t\t\t\t'type': {\n\t\t\t\t\tpattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /(?:provider|provisioner|variable|output|module|backend)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?={)/i,\n\t\t\tinside: {\n\t\t\t\t'type': {\n\t\t\t\t\tpattern: /(provider|provisioner|variable|output|module|backend)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/[\\w-]+(?=\\s+{)/\n\t],\n\t'property': [\n\t\t/[\\w-\\.]+(?=\\s*=(?!=))/,\n\t\t/\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/,\n\t],\n\t'string': {\n\t\tpattern: /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'type': {\n\t\t\t\t\t\tpattern: /(\\b(?:terraform|var|self|count|module|path|data|local)\\b\\.)[\\w\\*]+/i,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t},\n\t\t\t\t\t'keyword': /\\b(?:terraform|var|self|count|module|path|data|local)\\b/i,\n\t\t\t\t\t'function': /\\w+(?=\\()/,\n\t\t\t\t\t'string': {\n\t\t\t\t\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t},\n\t\t\t\t\t'number': /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n\t\t\t\t\t'punctuation': /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/,\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n\t'number': /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n\t'boolean': /\\b(?:true|false)\\b/i,\n\t'punctuation': /[=\\[\\]{}]/,\n};\n\n\n/***/ }),\n\n/***/ 2926:\n/***/ (function() {\n\nPrism.languages.hlsl = Prism.languages.extend('c', {\n\n\t// Regarding keywords and class names:\n\t// The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n\t// https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n\t// https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n\t'class-name': [\n\t\tPrism.languages.c['class-name'],\n\t\t/\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n\t],\n\t'keyword': [\n\t\t// HLSL keyword\n\t\t/\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/,\n\t\t// scalar, vector, and matrix types\n\t\t/\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n\t],\n\t// https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n\t'number': /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n\t'boolean': /\\b(?:false|true)\\b/\n});\n\n\n/***/ }),\n\n/***/ 4807:\n/***/ (function() {\n\n/**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n\nPrism.languages.hpkp = {\n\t'directive': {\n\t\tpattern: /\\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256=\"[a-zA-Z\\d+=/]+\"|(?:max-age|report-uri)=|report-to )/,\n\t\talias: 'keyword'\n\t},\n\t'safe': {\n\t\tpattern: /\\b\\d{7,}\\b/,\n\t\talias: 'selector'\n\t},\n\t'unsafe': {\n\t\tpattern: /\\b\\d{1,6}\\b/,\n\t\talias: 'function'\n\t}\n};\n\n\n/***/ }),\n\n/***/ 9400:\n/***/ (function() {\n\n/**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n\nPrism.languages.hsts = {\n\t'directive': {\n\t\tpattern: /\\b(?:max-age=|includeSubDomains|preload)/,\n\t\talias: 'keyword'\n\t},\n\t'safe': {\n\t\tpattern: /\\b\\d{8,}\\b/,\n\t\talias: 'selector'\n\t},\n\t'unsafe': {\n\t\tpattern: /\\b\\d{1,7}\\b/,\n\t\talias: 'function'\n\t}\n};\n\n\n/***/ }),\n\n/***/ 4326:\n/***/ (function() {\n\n(function (Prism) {\n\tPrism.languages.http = {\n\t\t'request-line': {\n\t\t\tpattern: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\s(?:https?:\\/\\/|\\/)\\S+\\sHTTP\\/[0-9.]+/m,\n\t\t\tinside: {\n\t\t\t\t// HTTP Verb\n\t\t\t\t'property': /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\b/,\n\t\t\t\t// Path or query argument\n\t\t\t\t'attr-name': /:\\w+/\n\t\t\t}\n\t\t},\n\t\t'response-status': {\n\t\t\tpattern: /^HTTP\\/1.[01] \\d.*/m,\n\t\t\tinside: {\n\t\t\t\t// Status, e.g. 200 OK\n\t\t\t\t'property': {\n\t\t\t\t\tpattern: /(^HTTP\\/1.[01] )\\d.*/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// HTTP header name\n\t\t'header-name': {\n\t\t\tpattern: /^[\\w-]+:(?=.)/m,\n\t\t\talias: 'keyword'\n\t\t}\n\t};\n\n\t// Create a mapping of Content-Type headers to language definitions\n\tvar langs = Prism.languages;\n\tvar httpLanguages = {\n\t\t'application/javascript': langs.javascript,\n\t\t'application/json': langs.json || langs.javascript,\n\t\t'application/xml': langs.xml,\n\t\t'text/xml': langs.xml,\n\t\t'text/html': langs.html,\n\t\t'text/css': langs.css\n\t};\n\n\t// Declare which types can also be suffixes\n\tvar suffixTypes = {\n\t\t'application/json': true,\n\t\t'application/xml': true\n\t};\n\n\t/**\n\t * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n\t *\n\t * @param {string} contentType\n\t * @returns {string}\n\t */\n\tfunction getSuffixPattern(contentType) {\n\t\tvar suffix = contentType.replace(/^[a-z]+\\//, '');\n\t\tvar suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])';\n\t\treturn '(?:' + contentType + '|' + suffixPattern + ')';\n\t}\n\n\t// Insert each content type parser that has its associated language\n\t// currently loaded.\n\tvar options;\n\tfor (var contentType in httpLanguages) {\n\t\tif (httpLanguages[contentType]) {\n\t\t\toptions = options || {};\n\n\t\t\tvar pattern = suffixTypes[contentType] ? getSuffixPattern(contentType) : contentType;\n\t\t\toptions[contentType.replace(/\\//g, '-')] = {\n\t\t\t\tpattern: RegExp('(content-type:\\\\s*' + pattern + '.*)(?:\\\\r?\\\\n|\\\\r){2}[\\\\s\\\\S]*', 'i'),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: httpLanguages[contentType]\n\t\t\t};\n\t\t}\n\t}\n\tif (options) {\n\t\tPrism.languages.insertBefore('http', 'header-name', options);\n\t}\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 877:\n/***/ (function() {\n\n// according to the offical reference (EN)\n// https://ichigojam.net/IchigoJam-en.html\nPrism.languages.ichigojam = {\n\t'comment': /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n\t'string': {\n\t\tpattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,\n\t\tgreedy: true\n\t},\n\t'number': /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n\t'keyword': /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n\t'function': /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n\t'label': /(?:\\B@[^\\s]+)/i,\n\t'operator': /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n\t'punctuation': /[\\[,;:()\\]]/\n};\n\n\n/***/ }),\n\n/***/ 8651:\n/***/ (function() {\n\nPrism.languages.icon = {\n\t'comment': /#.*/,\n\t'string': {\n\t\tpattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n\t\tgreedy: true\n\t},\n\t'number': /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n\t'builtin-keyword': {\n\t\tpattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n\t\talias: 'variable'\n\t},\n\t'directive': {\n\t\tpattern: /\\$\\w+/,\n\t\talias: 'builtin'\n\t},\n\t'keyword': /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n\t'function': /(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n\t'operator': /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n\t'punctuation': /[\\[\\](){},;]/\n};\n\n/***/ }),\n\n/***/ 7014:\n/***/ (function() {\n\nPrism.languages.iecst = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t},\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true,\n\t},\n\t'class-name': /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\\b/i,\n\t'keyword': /\\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\\b/,\n\t'variable': /\\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\\b/,\n\t'symbol': /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n\t'number': /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:T|D|DT|TOD)#[\\d_shmd:]*|\\b[A-Z]*\\#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'boolean': /\\b(?:TRUE|FALSE|NULL)\\b/,\n\t'function': /\\w+(?=\\()/,\n\t'operator': /(?:S?R?:?=>?|&&?|\\*\\*?|<=?|>=?|[-:^/+])|\\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\\b/,\n\t'punctuation': /[();]/,\n\t'type': {\n\t\t'pattern': /#/,\n\t\t'alias': 'selector',\n\t},\n};\n\n\n/***/ }),\n\n/***/ 6053:\n/***/ (function() {\n\n(function (Prism) {\n\tPrism.languages.ignore = {\n\t\t// https://git-scm.com/docs/gitignore\n\t\t'comment': /^#.*/m,\n\t\t'entry': {\n\t\t\tpattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\t'operator': /^!|\\*\\*?|\\?/,\n\t\t\t\t'regex': {\n\t\t\t\t\tpattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\//\n\t\t\t}\n\t\t}\n\t};\n\n\tPrism.languages.gitignore = Prism.languages.ignore\n\tPrism.languages.hgignore = Prism.languages.ignore\n\tPrism.languages.npmignore = Prism.languages.ignore\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6759:\n/***/ (function() {\n\nPrism.languages.inform7 = {\n\t'string': {\n\t\tpattern: /\"[^\"]*\"/,\n\t\tinside: {\n\t\t\t'substitution': {\n\t\t\t\tpattern: /\\[[^\\]]+\\]/,\n\t\t\t\tinside: {\n\t\t\t\t\t'delimiter': {\n\t\t\t\t\t\tpattern:/\\[|\\]/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t}\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'comment': {\n\t\tpattern: /\\[[^\\]]+\\]/,\n\t\tgreedy: true\n\t},\n\t'title': {\n\t\tpattern: /^[ \\t]*(?:volume|book|part(?! of)|chapter|section|table)\\b.+/im,\n\t\talias: 'important'\n\t},\n\t'number': {\n\t\tpattern: /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\\b(?!-)/i,\n\t\tlookbehind: true\n\t},\n\t'verb': {\n\t\tpattern: /(^|[^-])\\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\\b(?!-)/i,\n\t\tlookbehind: true,\n\t\talias: 'operator'\n\t},\n\t'keyword': {\n\t\tpattern: /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n\t\tlookbehind: true\n\t},\n\t'property': {\n\t\tpattern: /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n\t\tlookbehind: true,\n\t\talias: 'symbol'\n\t},\n\t'position': {\n\t\tpattern: /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t'type': {\n\t\tpattern: /(^|[^-])\\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t'punctuation': /[.,:;(){}]/\n};\n\nPrism.languages.inform7['string'].inside['substitution'].inside.rest = Prism.languages.inform7;\n// We don't want the remaining text in the substitution to be highlighted as the string.\nPrism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n\tpattern: /\\S(?:\\s*\\S)*/,\n\talias: 'comment'\n};\n\n\n/***/ }),\n\n/***/ 5329:\n/***/ (function() {\n\nPrism.languages.ini= {\n\t'comment': /^[ \\t]*[;#].*$/m,\n\t'selector': /^[ \\t]*\\[.*?\\]/m,\n\t'constant': /^[ \\t]*[^\\s=]+?(?=[ \\t]*=)/m,\n\t'attr-value': {\n\t\tpattern: /=.*/,\n\t\tinside: {\n\t\t\t'punctuation': /^[=]/\n\t\t}\n\t}\n};\n\n\n/***/ }),\n\n/***/ 9147:\n/***/ (function() {\n\nPrism.languages.io = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\/.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])#.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'triple-quoted-string': {\n\t\tpattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n\t'builtin':/\\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\\b/,\n\t'boolean': /\\b(?:true|false|nil)\\b/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n\t'operator': /[=!*/%+\\-^&|]=|>>?=?|<+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n\t\talias: 'keyword'\n\t},\n\t'number': /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:[ejpx]|ad|ar)_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n\t'adverb': {\n\t\tpattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n\t\talias: 'builtin'\n\t},\n\t'operator': /[=a][.:]|_\\./,\n\t'conjunction': {\n\t\tpattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n\t\talias: 'variable'\n\t},\n\t'punctuation': /[()]/\n};\n\n\n/***/ }),\n\n/***/ 3701:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n\t// full package (optional) + parent classes (optional)\n\tvar classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\n\t// based on the java naming conventions\n\tvar className = {\n\t\tpattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\./\n\t\t}\n\t};\n\n\tPrism.languages.java = Prism.languages.extend('clike', {\n\t\t'class-name': [\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t// variables and parameters\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t'function': [\n\t\t\tPrism.languages.clike.function,\n\t\t\t{\n\t\t\t\tpattern: /(\\:\\:\\s*)[a-z_]\\w*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t\t'operator': {\n\t\t\tpattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'string', {\n\t\t'triple-quoted-string': {\n\t\t\t// http://openjdk.java.net/jeps/355#Description\n\t\t\tpattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'class-name', {\n\t\t'annotation': {\n\t\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'generics': {\n\t\t\tpattern: /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n\t\t\tinside: {\n\t\t\t\t'class-name': className,\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'punctuation': /[<>(),.:]/,\n\t\t\t\t'operator': /[?&|]/\n\t\t\t}\n\t\t},\n\t\t'namespace': {\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/\n\t\t\t\t\t.source.replace(//g, function () { return keywords.source; })),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./,\n\t\t\t}\n\t\t}\n\t});\n}(Prism));\n\n\n/***/ }),\n\n/***/ 7002:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar codeLinePattern = /(^(?:\\s*(?:\\*\\s*)*))[^*\\s].*$/m;\n\n\tvar memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source;\n\tvar reference = /(?:[a-zA-Z]\\w+\\s*\\.\\s*)*[A-Z]\\w*(?:\\s*)?|/.source.replace(//g, function () { return memberReference });\n\n\tPrism.languages.javadoc = Prism.languages.extend('javadoclike', {});\n\tPrism.languages.insertBefore('javadoc', 'keyword', {\n\t\t'reference': {\n\t\t\tpattern: RegExp(/(@(?:exception|throws|see|link|linkplain|value)\\s+(?:\\*\\s*)?)/.source + '(?:' + reference + ')'),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'function': {\n\t\t\t\t\tpattern: /(#\\s*)\\w+(?=\\s*\\()/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'field': {\n\t\t\t\t\tpattern: /(#\\s*)\\w+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'namespace': {\n\t\t\t\t\tpattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'class-name': /\\b[A-Z]\\w*/,\n\t\t\t\t'keyword': Prism.languages.java.keyword,\n\t\t\t\t'punctuation': /[#()[\\],.]/\n\t\t\t}\n\t\t},\n\t\t'class-name': {\n\t\t\t// @param the first generic type parameter\n\t\t\tpattern: /(@param\\s+)<[A-Z]\\w*>/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /[.<>]/\n\t\t\t}\n\t\t},\n\t\t'code-section': [\n\t\t\t{\n\t\t\t\tpattern: /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'code': {\n\t\t\t\t\t\t// there can't be any HTML inside of {@code} tags\n\t\t\t\t\t\tpattern: codeLinePattern,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: Prism.languages.java,\n\t\t\t\t\t\talias: 'language-java'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(<(code|pre|tt)>(?!)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'line': {\n\t\t\t\t\t\tpattern: codeLinePattern,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t// highlight HTML tags and entities\n\t\t\t\t\t\t\t'tag': Prism.languages.markup.tag,\n\t\t\t\t\t\t\t'entity': Prism.languages.markup.entity,\n\t\t\t\t\t\t\t'code': {\n\t\t\t\t\t\t\t\t// everything else is Java code\n\t\t\t\t\t\t\t\tpattern: /.+/,\n\t\t\t\t\t\t\t\tinside: Prism.languages.java,\n\t\t\t\t\t\t\t\talias: 'language-java'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'tag': Prism.languages.markup.tag,\n\t\t'entity': Prism.languages.markup.entity,\n\t});\n\n\tPrism.languages.javadoclike.addSupport('java', Prism.languages.javadoc);\n}(Prism));\n\n\n/***/ }),\n\n/***/ 5800:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar javaDocLike = Prism.languages.javadoclike = {\n\t\t'parameter': {\n\t\t\tpattern: /(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:param|arg|arguments)\\s+)\\w+/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\t// keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n\t\t\t// @word, {@word}\n\t\t\tpattern: /(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[{}]/\n\t};\n\n\n\t/**\n\t * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n\t *\n\t * @param {string} lang the language add doc comment support to.\n\t * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n\t */\n\tfunction docCommentSupport(lang, callback) {\n\t\tvar tokenName = 'doc-comment';\n\n\t\tvar grammar = Prism.languages[lang];\n\t\tif (!grammar) {\n\t\t\treturn;\n\t\t}\n\t\tvar token = grammar[tokenName];\n\n\t\tif (!token) {\n\t\t\t// add doc comment: /** */\n\t\t\tvar definition = {};\n\t\t\tdefinition[tokenName] = {\n\t\t\t\tpattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'comment'\n\t\t\t};\n\n\t\t\tgrammar = Prism.languages.insertBefore(lang, 'comment', definition);\n\t\t\ttoken = grammar[tokenName];\n\t\t}\n\n\t\tif (token instanceof RegExp) { // convert regex to object\n\t\t\ttoken = grammar[tokenName] = { pattern: token };\n\t\t}\n\n\t\tif (Array.isArray(token)) {\n\t\t\tfor (var i = 0, l = token.length; i < l; i++) {\n\t\t\t\tif (token[i] instanceof RegExp) {\n\t\t\t\t\ttoken[i] = { pattern: token[i] };\n\t\t\t\t}\n\t\t\t\tcallback(token[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tcallback(token);\n\t\t}\n\t}\n\n\t/**\n\t * Adds doc-comment support to the given languages for the given documentation language.\n\t *\n\t * @param {string[]|string} languages\n\t * @param {Object} docLanguage\n\t */\n\tfunction addSupport(languages, docLanguage) {\n\t\tif (typeof languages === 'string') {\n\t\t\tlanguages = [languages];\n\t\t}\n\n\t\tlanguages.forEach(function (lang) {\n\t\t\tdocCommentSupport(lang, function (pattern) {\n\t\t\t\tif (!pattern.inside) {\n\t\t\t\t\tpattern.inside = {};\n\t\t\t\t}\n\t\t\t\tpattern.inside.rest = docLanguage;\n\t\t\t});\n\t\t});\n\t}\n\n\tObject.defineProperty(javaDocLike, 'addSupport', { value: addSupport });\n\n\tjavaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6563:\n/***/ (function() {\n\n// Specification:\n// https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n\nPrism.languages.javastacktrace = {\n\n\t// java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n\t// Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n\t// Caused by: com.example.myproject.MyProjectServletException\n\t// Caused by: MidLevelException: LowLevelException\n\t// Suppressed: Resource$CloseFailException: Resource ID = 0\n\t'summary': {\n\t\tpattern: /^[\\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?:\\:.*)?$/m,\n\t\tinside: {\n\t\t\t'keyword': {\n\t\t\t\tpattern: /^(\\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\n\t\t\t// the current thread if the summary starts with 'Exception in thread'\n\t\t\t'string': {\n\t\t\t\tpattern: /^(\\s*)\"[^\"]*\"/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'exceptions': {\n\t\t\t\tpattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'class-name': /[\\w$]+(?=$|:)/,\n\t\t\t\t\t'namespace': /[a-z]\\w*/,\n\t\t\t\t\t'punctuation': /[.:]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'message': {\n\t\t\t\tpattern: /(:\\s*)\\S.*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'punctuation': /[:]/\n\t\t}\n\t},\n\n\t// at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n\t// at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n\t// at java.base/java.lang.Class.forName0(Native Method)\n\t// at Util.(Unknown Source)\n\t// at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n\t// at com.foo.loader//com.foo.bar.App.run(App.java:12)\n\t// at acme@2.1/org.acme.Lib.test(Lib.java:80)\n\t// at MyClass.mash(MyClass.java:9)\n\t//\n\t// More information:\n\t// https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n\t//\n\t// A valid Java module name is defined as:\n\t// \"A module name consists of one or more Java identifiers (\u00A73.8) separated by \".\" tokens.\"\n\t// https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n\t//\n\t// A Java module version is defined by this class:\n\t// https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n\t// This is the implementation of the `parse` method in JDK13:\n\t// https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n\t// However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n\t'stack-frame': {\n\t\tpattern: /^[\\t ]*at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:)?\\([^()]*\\)/m,\n\t\tinside: {\n\t\t\t'keyword': {\n\t\t\t\tpattern: /^(\\s*)at(?= )/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'source': [\n\t\t\t\t// (Main.java:15)\n\t\t\t\t// (Main.scala:15)\n\t\t\t\t{\n\t\t\t\t\tpattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'file': /^\\w+\\.\\w+/,\n\t\t\t\t\t\t'punctuation': /:/,\n\t\t\t\t\t\t'line-number': {\n\t\t\t\t\t\t\tpattern: /\\d+/,\n\t\t\t\t\t\t\talias: 'number'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// (Unknown Source)\n\t\t\t\t// (Native Method)\n\t\t\t\t// (...something...)\n\t\t\t\t{\n\t\t\t\t\tpattern: /(\\()[^()]*(?=\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'keyword': /^(?:Unknown Source|Native Method)$/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\t\t\t'class-name': /[\\w$]+(?=\\.(?:|[\\w$]+)\\()/,\n\t\t\t'function': /(?:|[\\w$]+)(?=\\()/,\n\t\t\t'class-loader': {\n\t\t\t\tpattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'namespace',\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'module': {\n\t\t\t\tpattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'version': {\n\t\t\t\t\t\tpattern: /(@)[\\s\\S]+/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'number'\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /[@.]/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'namespace': {\n\t\t\t\tpattern: /(?:[a-z]\\w*\\.)+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /[()/.]/\n\t\t}\n\t},\n\n\t// ... 32 more\n\t// ... 32 common frames omitted\n\t'more': {\n\t\tpattern: /^[\\t ]*\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n\t\tinside: {\n\t\t\t'punctuation': /\\.{3}/,\n\t\t\t'number': /\\d+/,\n\t\t\t'keyword': /\\b[a-z]+(?: [a-z]+)*\\b/\n\t\t}\n\t}\n\n};\n\n\n/***/ }),\n\n/***/ 7474:\n/***/ (function() {\n\nPrism.languages.jolie = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\\b/,\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n\t'operator': /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[:?\\/%^]/,\n\t'punctuation': /[,.]/,\n\t'builtin': /\\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\\b/,\n\t'symbol': /[|;@]/\n});\n\ndelete Prism.languages.jolie['class-name'];\n\nPrism.languages.insertBefore( 'jolie', 'keyword', {\n\t'function':\n\t{\n\t\tpattern: /((?:\\b(?:outputPort|inputPort|in|service|courier)\\b|@)\\s*)\\w+/,\n\t\tlookbehind: true\n\t},\n\t'aggregates': {\n\t\tpattern: /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'with-extension': {\n\t\t\t\tpattern: /\\bwith\\s+\\w+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword' : /\\bwith\\b/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'function': {\n\t\t\t\tpattern: /\\w+/\n\t\t\t},\n\t\t\t'punctuation': {\n\t\t\t\tpattern: /,/\n\t\t\t}\n\t\t}\n\t},\n\t'redirects': {\n\t\tpattern: /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': {\n\t\t\t\tpattern: /,/\n\t\t\t},\n\t\t\t'function': {\n\t\t\t\tpattern: /\\w+/\n\t\t\t},\n\t\t\t'symbol': {\n\t\t\t\tpattern: /=>/\n\t\t\t}\n\t\t}\n\t}\n});\n\n\n/***/ }),\n\n/***/ 2938:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source;\n\tvar string = RegExp(/\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(/__/g, function () { return interpolation; }));\n\tvar stringInterpolation = {\n\t\t'interpolation': {\n\t\t\tpattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: null // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /^\\\\\\(|\\)$/\n\t\t\t}\n\t\t}\n\t};\n\n\tvar jq = Prism.languages.jq = {\n\t\t'comment': /#.*/,\n\t\t'property': {\n\t\t\tpattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n\t\t\tgreedy: true,\n\t\t\tinside: stringInterpolation\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true,\n\t\t\tinside: stringInterpolation\n\t\t},\n\n\t\t'function': {\n\t\t\tpattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n\t\t\tlookbehind: true\n\t\t},\n\n\t\t'variable': /\\B\\$\\w+/,\n\t\t'property-literal': {\n\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n\t\t\talias: 'property'\n\t\t},\n\t\t'keyword': /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n\t\t'boolean': /\\b(?:true|false)\\b/,\n\t\t'number': /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n\n\t\t'operator': [\n\t\t\t{\n\t\t\t\tpattern: /\\|=?/,\n\t\t\t\talias: 'pipe'\n\t\t\t},\n\t\t\t/\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|or|not)\\b/\n\t\t],\n\t\t'c-style-function': {\n\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\t\t\talias: 'function'\n\t\t},\n\t\t'punctuation': /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n\t\t'dot': {\n\t\t\tpattern: /\\./,\n\t\t\talias: 'important'\n\t\t}\n\t}\n\n\tstringInterpolation.interpolation.inside.content.inside = jq;\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 6624:\n/***/ (function() {\n\n(function (Prism) {\n\n\tPrism.languages.insertBefore('javascript', 'function-variable', {\n\t\t'method-variable': {\n\t\t\tpattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function-variable'].pattern.source),\n\t\t\tlookbehind: true,\n\t\t\talias: ['function-variable', 'method', 'function', 'property-access']\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('javascript', 'function', {\n\t\t'method': {\n\t\t\tpattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source),\n\t\t\tlookbehind: true,\n\t\t\talias: ['function', 'property-access']\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('javascript', 'constant', {\n\t\t'known-class-name': [\n\t\t\t{\n\t\t\t\t// standard built-ins\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n\t\t\t\tpattern: /\\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\\b/,\n\t\t\t\talias: 'class-name'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// errors\n\t\t\t\tpattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n\t\t\t\talias: 'class-name'\n\t\t\t}\n\t\t]\n\t});\n\n\t/**\n\t * Replaces the `` placeholder in the given pattern with a pattern for general JS identifiers.\n\t *\n\t * @param {string} source\n\t * @param {string} [flags]\n\t * @returns {RegExp}\n\t */\n\tfunction withId(source, flags) {\n\t\treturn RegExp(\n\t\t\tsource.replace(//g, function () { return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source; }),\n\t\t\tflags);\n\t}\n\tPrism.languages.insertBefore('javascript', 'keyword', {\n\t\t'imports': {\n\t\t\t// https://tc39.es/ecma262/#sec-imports\n\t\t\tpattern: withId(/(\\bimport\\b\\s*)(?:(?:\\s*,\\s*(?:\\*\\s*as\\s+|\\{[^{}]*\\}))?|\\*\\s*as\\s+|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source),\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t'exports': {\n\t\t\t// https://tc39.es/ecma262/#sec-exports\n\t\t\tpattern: withId(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source),\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t});\n\n\tPrism.languages.javascript['keyword'].unshift(\n\t\t{\n\t\t\tpattern: /\\b(?:as|default|export|from|import)\\b/,\n\t\t\talias: 'module'\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\\b/,\n\t\t\talias: 'control-flow'\n\t\t},\n\t\t{\n\t\t\tpattern: /\\bnull\\b/,\n\t\t\talias: ['null', 'nil']\n\t\t},\n\t\t{\n\t\t\tpattern: /\\bundefined\\b/,\n\t\t\talias: 'nil'\n\t\t}\n\t);\n\n\tPrism.languages.insertBefore('javascript', 'operator', {\n\t\t'spread': {\n\t\t\tpattern: /\\.{3}/,\n\t\t\talias: 'operator'\n\t\t},\n\t\t'arrow': {\n\t\t\tpattern: /=>/,\n\t\t\talias: 'operator'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('javascript', 'punctuation', {\n\t\t'property-access': {\n\t\t\tpattern: withId(/(\\.\\s*)#?/.source),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'maybe-class-name': {\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'dom': {\n\t\t\t// this contains only a few commonly used DOM variables\n\t\t\tpattern: /\\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\\b/,\n\t\t\talias: 'variable'\n\t\t},\n\t\t'console': {\n\t\t\tpattern: /\\bconsole(?=\\s*\\.)/,\n\t\t\talias: 'class-name'\n\t\t}\n\t});\n\n\n\t// add 'maybe-class-name' to tokens which might be a class name\n\tvar maybeClassNameTokens = ['function', 'function-variable', 'method', 'method-variable', 'property-access'];\n\n\tfor (var i = 0; i < maybeClassNameTokens.length; i++) {\n\t\tvar token = maybeClassNameTokens[i];\n\t\tvar value = Prism.languages.javascript[token];\n\n\t\t// convert regex to object\n\t\tif (Prism.util.type(value) === 'RegExp') {\n\t\t\tvalue = Prism.languages.javascript[token] = {\n\t\t\t\tpattern: value\n\t\t\t};\n\t\t}\n\n\t\t// keep in mind that we don't support arrays\n\n\t\tvar inside = value.inside || {};\n\t\tvalue.inside = inside;\n\n\t\tinside['maybe-class-name'] = /^[A-Z][\\s\\S]*/;\n\t}\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1530:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar templateString = Prism.languages.javascript['template-string'];\n\n\t// see the pattern in prism-javascript.js\n\tvar templateLiteralPattern = templateString.pattern.source;\n\tvar interpolationObject = templateString.inside['interpolation'];\n\tvar interpolationPunctuationObject = interpolationObject.inside['interpolation-punctuation'];\n\tvar interpolationPattern = interpolationObject.pattern.source;\n\n\n\t/**\n\t * Creates a new pattern to match a template string with a special tag.\n\t *\n\t * This will return `undefined` if there is no grammar with the given language id.\n\t *\n\t * @param {string} language The language id of the embedded language. E.g. `markdown`.\n\t * @param {string} tag The regex pattern to match the tag.\n\t * @returns {object | undefined}\n\t * @example\n\t * createTemplate('css', /\\bcss/.source);\n\t */\n\tfunction createTemplate(language, tag) {\n\t\tif (!Prism.languages[language]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tpattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'template-punctuation': {\n\t\t\t\t\tpattern: /^`|`$/,\n\t\t\t\t\talias: 'string'\n\t\t\t\t},\n\t\t\t\t'embedded-code': {\n\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\talias: language\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\n\tPrism.languages.javascript['template-string'] = [\n\t\t// styled-jsx:\n\t\t// css`a { color: #25F; }`\n\t\t// styled-components:\n\t\t// styled.h1`color: red;`\n\t\tcreateTemplate('css', /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),\n\n\t\t// html`

    `\n\t\t// div.innerHTML = `

    `\n\t\tcreateTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source),\n\n\t\t// svg``\n\t\tcreateTemplate('svg', /\\bsvg/.source),\n\n\t\t// md`# h1`, markdown`## h2`\n\t\tcreateTemplate('markdown', /\\b(?:md|markdown)/.source),\n\n\t\t// gql`...`, graphql`...`, graphql.experimental`...`\n\t\tcreateTemplate('graphql', /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source),\n\n\t\t// vanilla template string\n\t\ttemplateString\n\t].filter(Boolean);\n\n\n\t/**\n\t * Returns a specific placeholder literal for the given language.\n\t *\n\t * @param {number} counter\n\t * @param {string} language\n\t * @returns {string}\n\t */\n\tfunction getPlaceholder(counter, language) {\n\t\treturn '___' + language.toUpperCase() + '_' + counter + '___';\n\t}\n\n\t/**\n\t * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n\t *\n\t * @param {string} code\n\t * @param {any} grammar\n\t * @param {string} language\n\t * @returns {(string|Token)[]}\n\t */\n\tfunction tokenizeWithHooks(code, grammar, language) {\n\t\tvar env = {\n\t\t\tcode: code,\n\t\t\tgrammar: grammar,\n\t\t\tlanguage: language\n\t\t};\n\t\tPrism.hooks.run('before-tokenize', env);\n\t\tenv.tokens = Prism.tokenize(env.code, env.grammar);\n\t\tPrism.hooks.run('after-tokenize', env);\n\t\treturn env.tokens;\n\t}\n\n\t/**\n\t * Returns the token of the given JavaScript interpolation expression.\n\t *\n\t * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n\t * @returns {Token}\n\t */\n\tfunction tokenizeInterpolationExpression(expression) {\n\t\tvar tempGrammar = {};\n\t\ttempGrammar['interpolation-punctuation'] = interpolationPunctuationObject;\n\n\t\t/** @type {Array} */\n\t\tvar tokens = Prism.tokenize(expression, tempGrammar);\n\t\tif (tokens.length === 3) {\n\t\t\t/**\n\t\t\t * The token array will look like this\n\t\t\t * [\n\t\t\t * [\"interpolation-punctuation\", \"${\"]\n\t\t\t * \"...\" // JavaScript expression of the interpolation\n\t\t\t * [\"interpolation-punctuation\", \"}\"]\n\t\t\t * ]\n\t\t\t */\n\n\t\t\tvar args = [1, 1];\n\t\t\targs.push.apply(args, tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript'));\n\n\t\t\ttokens.splice.apply(tokens, args);\n\t\t}\n\n\t\treturn new Prism.Token('interpolation', tokens, interpolationObject.alias, expression);\n\t}\n\n\t/**\n\t * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n\t *\n\t * This function has 3 phases:\n\t *\n\t * 1. Replace all JavaScript interpolation expression with a placeholder.\n\t * The placeholder will have the syntax of a identify of the target language.\n\t * 2. Tokenize the code with placeholders.\n\t * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n\t * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n\t * tokenized as two tokens by the grammar of the embedded language.\n\t *\n\t * @param {string} code\n\t * @param {object} grammar\n\t * @param {string} language\n\t * @returns {Token}\n\t */\n\tfunction tokenizeEmbedded(code, grammar, language) {\n\t\t// 1. First filter out all interpolations\n\n\t\t// because they might be escaped, we need a lookbehind, so we use Prism\n\t\t/** @type {(Token|string)[]} */\n\t\tvar _tokens = Prism.tokenize(code, {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: RegExp(interpolationPattern),\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t});\n\n\t\t// replace all interpolations with a placeholder which is not in the code already\n\t\tvar placeholderCounter = 0;\n\t\t/** @type {Object} */\n\t\tvar placeholderMap = {};\n\t\tvar embeddedCode = _tokens.map(function (token) {\n\t\t\tif (typeof token === 'string') {\n\t\t\t\treturn token;\n\t\t\t} else {\n\t\t\t\tvar interpolationExpression = token.content;\n\n\t\t\t\tvar placeholder;\n\t\t\t\twhile (code.indexOf(placeholder = getPlaceholder(placeholderCounter++, language)) !== -1) { }\n\t\t\t\tplaceholderMap[placeholder] = interpolationExpression;\n\t\t\t\treturn placeholder;\n\t\t\t}\n\t\t}).join('');\n\n\n\t\t// 2. Tokenize the embedded code\n\n\t\tvar embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language);\n\n\n\t\t// 3. Re-insert the interpolation\n\n\t\tvar placeholders = Object.keys(placeholderMap);\n\t\tplaceholderCounter = 0;\n\n\t\t/**\n\t\t *\n\t\t * @param {(Token|string)[]} tokens\n\t\t * @returns {void}\n\t\t */\n\t\tfunction walkTokens(tokens) {\n\t\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\t\tif (placeholderCounter >= placeholders.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (typeof token === 'string' || typeof token.content === 'string') {\n\t\t\t\t\tvar placeholder = placeholders[placeholderCounter];\n\t\t\t\t\tvar s = typeof token === 'string' ? token : /** @type {string} */ (token.content);\n\n\t\t\t\t\tvar index = s.indexOf(placeholder);\n\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t++placeholderCounter;\n\n\t\t\t\t\t\tvar before = s.substring(0, index);\n\t\t\t\t\t\tvar middle = tokenizeInterpolationExpression(placeholderMap[placeholder]);\n\t\t\t\t\t\tvar after = s.substring(index + placeholder.length);\n\n\t\t\t\t\t\tvar replacement = [];\n\t\t\t\t\t\tif (before) {\n\t\t\t\t\t\t\treplacement.push(before);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treplacement.push(middle);\n\t\t\t\t\t\tif (after) {\n\t\t\t\t\t\t\tvar afterTokens = [after];\n\t\t\t\t\t\t\twalkTokens(afterTokens);\n\t\t\t\t\t\t\treplacement.push.apply(replacement, afterTokens);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof token === 'string') {\n\t\t\t\t\t\t\ttokens.splice.apply(tokens, [i, 1].concat(replacement));\n\t\t\t\t\t\t\ti += replacement.length - 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttoken.content = replacement;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar content = token.content;\n\t\t\t\t\tif (Array.isArray(content)) {\n\t\t\t\t\t\twalkTokens(content);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twalkTokens([content]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twalkTokens(embeddedTokens);\n\n\t\treturn new Prism.Token(language, embeddedTokens, 'language-' + language, code);\n\t}\n\n\t/**\n\t * The languages for which JS templating will handle tagged template literals.\n\t *\n\t * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n\t */\n\tvar supportedLanguages = {\n\t\t'javascript': true,\n\t\t'js': true,\n\t\t'typescript': true,\n\t\t'ts': true,\n\t\t'jsx': true,\n\t\t'tsx': true,\n\t};\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tif (!(env.language in supportedLanguages)) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * Finds and tokenizes all template strings with an embedded languages.\n\t\t *\n\t\t * @param {(Token | string)[]} tokens\n\t\t * @returns {void}\n\t\t */\n\t\tfunction findTemplateStrings(tokens) {\n\t\t\tfor (var i = 0, l = tokens.length; i < l; i++) {\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (typeof token === 'string') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar content = token.content;\n\t\t\t\tif (!Array.isArray(content)) {\n\t\t\t\t\tif (typeof content !== 'string') {\n\t\t\t\t\t\tfindTemplateStrings([content]);\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (token.type === 'template-string') {\n\t\t\t\t\t/**\n\t\t\t\t\t * A JavaScript template-string token will look like this:\n\t\t\t\t\t *\n\t\t\t\t\t * [\"template-string\", [\n\t\t\t\t\t * [\"template-punctuation\", \"`\"],\n\t\t\t\t\t * (\n\t\t\t\t\t * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n\t\t\t\t\t * or\n\t\t\t\t\t * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n\t\t\t\t\t * It also has an alias which is the language of the embedded code.\n\t\t\t\t\t * ),\n\t\t\t\t\t * [\"template-punctuation\", \"`\"]\n\t\t\t\t\t * ]]\n\t\t\t\t\t */\n\n\t\t\t\t\tvar embedded = content[1];\n\t\t\t\t\tif (content.length === 3 && typeof embedded !== 'string' && embedded.type === 'embedded-code') {\n\t\t\t\t\t\t// get string content\n\t\t\t\t\t\tvar code = stringContent(embedded);\n\n\t\t\t\t\t\tvar alias = embedded.alias;\n\t\t\t\t\t\tvar language = Array.isArray(alias) ? alias[0] : alias;\n\n\t\t\t\t\t\tvar grammar = Prism.languages[language];\n\t\t\t\t\t\tif (!grammar) {\n\t\t\t\t\t\t\t// the embedded language isn't registered.\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontent[1] = tokenizeEmbedded(code, grammar, language);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfindTemplateStrings(content);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfindTemplateStrings(env.tokens);\n\t});\n\n\n\t/**\n\t * Returns the string content of a token or token stream.\n\t *\n\t * @param {string | Token | (string | Token)[]} value\n\t * @returns {string}\n\t */\n\tfunction stringContent(value) {\n\t\tif (typeof value === 'string') {\n\t\t\treturn value;\n\t\t} else if (Array.isArray(value)) {\n\t\t\treturn value.map(stringContent).join('');\n\t\t} else {\n\t\t\treturn stringContent(value.content);\n\t\t}\n\t}\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 4545:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar javascript = Prism.languages.javascript;\n\n\tvar type = /{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source;\n\tvar parameterPrefix = '(@(?:param|arg|argument|property)\\\\s+(?:' + type + '\\\\s+)?)';\n\n\tPrism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n\t\t'parameter': {\n\t\t\t// @param {string} foo - foo bar\n\t\t\tpattern: RegExp(parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('jsdoc', 'keyword', {\n\t\t'optional-parameter': {\n\t\t\t// @param {string} [baz.foo=\"bar\"] foo bar\n\t\t\tpattern: RegExp(parameterPrefix + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'parameter': {\n\t\t\t\t\tpattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'code': {\n\t\t\t\t\tpattern: /(=)[\\s\\S]*(?=\\]$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: javascript,\n\t\t\t\t\talias: 'language-javascript'\n\t\t\t\t},\n\t\t\t\t'punctuation': /[=[\\]]/\n\t\t\t}\n\t\t},\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(@(?:augments|extends|class|interface|memberof!?|template|this|typedef)\\s+(?:\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(//g, function () { return type; })),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp('(@[a-z]+\\\\s+)' + type),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'string': javascript.string,\n\t\t\t\t\t'number': javascript.number,\n\t\t\t\t\t'boolean': javascript.boolean,\n\t\t\t\t\t'keyword': Prism.languages.typescript.keyword,\n\t\t\t\t\t'operator': /=>|\\.\\.\\.|[&|?:*]/,\n\t\t\t\t\t'punctuation': /[.,;=<>{}()[\\]]/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'example': {\n\t\t\tpattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'code': {\n\t\t\t\t\tpattern: /^(\\s*(?:\\*\\s*)?)\\S.*$/m,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: javascript,\n\t\t\t\t\talias: 'language-javascript'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 2363:\n/***/ (function() {\n\n// https://www.json.org/json-en.html\nPrism.languages.json = {\n\t'property': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tgreedy: true\n\t},\n\t'comment': {\n\t\tpattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'punctuation': /[{}[\\],]/,\n\t'operator': /:/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n\nPrism.languages.webmanifest = Prism.languages.json;\n\n\n/***/ }),\n\n/***/ 6840:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n\n\tPrism.languages.json5 = Prism.languages.extend('json', {\n\t\t'property': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(string.source + '(?=\\\\s*:)'),\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n\t\t\t\talias: 'unquoted'\n\t\t\t}\n\t\t],\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'number': /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9962:\n/***/ (function() {\n\nPrism.languages.jsonp = Prism.languages.extend('json', {\n\t'punctuation': /[{}[\\]();,.]/\n});\n\nPrism.languages.insertBefore('jsonp', 'punctuation', {\n\t'function': /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n});\n\n\n/***/ }),\n\n/***/ 1629:\n/***/ (function() {\n\nPrism.languages.jsstacktrace = {\n\t'error-message': {\n\t\tpattern: /^\\S.*/m,\n\t\talias: 'string'\n\t},\n\n\t'stack-frame': {\n\t\tpattern: /^[ \\t]+at[ \\t].*/m,\n\t\tinside: {\n\t\t\t'not-my-code': {\n\t\t\t\tpattern: /[ \\t]+at[ \\t]+(?!\\s)(?:node\\.js|\\|.*(?:node_modules|\\(\\\\)|\\(\\|\\$|\\(internal\\/|\\(node\\.js)).*/m,\n\t\t\t\talias: 'comment'\n\t\t\t},\n\n\t\t\t'filename': {\n\t\t\t\tpattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'url'\n\t\t\t},\n\n\t\t\t'function': {\n\t\t\t\tpattern: /(at\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t'punctuation': /[()]/,\n\n\t\t\t'keyword': /\\b(?:at|new)\\b/,\n\n\t\t\t'alias': {\n\t\t\t\tpattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n\t\t\t\talias: 'variable'\n\t\t\t},\n\n\t\t\t'line-number': {\n\t\t\t\tpattern: /:[0-9]+(?::[0-9]+)?\\b/,\n\t\t\t\talias: 'number',\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /:/\n\t\t\t\t}\n\t\t\t},\n\n\t\t}\n\t}\n}\n\n\n/***/ }),\n\n/***/ 662:\n/***/ (function() {\n\n(function(Prism) {\n\nvar javascript = Prism.util.clone(Prism.languages.javascript);\n\nPrism.languages.jsx = Prism.languages.extend('markup', javascript);\nPrism.languages.jsx.tag.pattern = /<\\/?(?:[\\w.:-]+(?:\\s+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[^]|[^\\\\\"])*\"|'(?:\\\\[^]|[^\\\\'])*'|[^\\s{'\">=]+|\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}))?|\\{\\s*\\.{3}\\s*[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\s*\\}))*\\s*\\/?)?>/i;\n\nPrism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/i;\nPrism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\\{)(?:\"(?:\\\\[^]|[^\\\\\"])*\"|'(?:\\\\[^]|[^\\\\'])*'|[^\\s'\">]+)/i;\nPrism.languages.jsx.tag.inside['tag'].inside['class-name'] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/;\n\nPrism.languages.insertBefore('inside', 'attr-name', {\n\t'spread': {\n\t\tpattern: /\\{\\s*\\.{3}\\s*[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\s*\\}/,\n\t\tinside: {\n\t\t\t'punctuation': /\\.{3}|[{}.]/,\n\t\t\t'attr-value': /\\w+/\n\t\t}\n\t}\n}, Prism.languages.jsx.tag);\n\nPrism.languages.insertBefore('inside', 'attr-value',{\n\t'script': {\n\t\t// Allow for two levels of nesting\n\t\tpattern: /=(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\})/i,\n\t\tinside: {\n\t\t\t'script-punctuation': {\n\t\t\t\tpattern: /^=(?={)/,\n\t\t\t\talias: 'punctuation'\n\t\t\t},\n\t\t\trest: Prism.languages.jsx\n\t\t},\n\t\t'alias': 'language-javascript'\n\t}\n}, Prism.languages.jsx.tag);\n\n// The following will handle plain text inside tags\nvar stringifyToken = function (token) {\n\tif (!token) {\n\t\treturn '';\n\t}\n\tif (typeof token === 'string') {\n\t\treturn token;\n\t}\n\tif (typeof token.content === 'string') {\n\t\treturn token.content;\n\t}\n\treturn token.content.map(stringifyToken).join('');\n};\n\nvar walkTokens = function (tokens) {\n\tvar openedTags = [];\n\tfor (var i = 0; i < tokens.length; i++) {\n\t\tvar token = tokens[i];\n\t\tvar notTagNorBrace = false;\n\n\t\tif (typeof token !== 'string') {\n\t\t\tif (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') {\n\t\t\t\t// We found a tag, now find its kind\n\n\t\t\t\tif (token.content[0].content[0].content === ' 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {\n\t\t\t\t\t\t// Pop matching opening tag\n\t\t\t\t\t\topenedTags.pop();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (token.content[token.content.length - 1].content === '/>') {\n\t\t\t\t\t\t// Autoclosed tag, ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Opening tag\n\t\t\t\t\t\topenedTags.push({\n\t\t\t\t\t\t\ttagName: stringifyToken(token.content[0].content[1]),\n\t\t\t\t\t\t\topenedBraces: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (openedTags.length > 0 && token.type === 'punctuation' && token.content === '{') {\n\n\t\t\t\t// Here we might have entered a JSX context inside a tag\n\t\t\t\topenedTags[openedTags.length - 1].openedBraces++;\n\n\t\t\t} else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') {\n\n\t\t\t\t// Here we might have left a JSX context inside a tag\n\t\t\t\topenedTags[openedTags.length - 1].openedBraces--;\n\n\t\t\t} else {\n\t\t\t\tnotTagNorBrace = true\n\t\t\t}\n\t\t}\n\t\tif (notTagNorBrace || typeof token === 'string') {\n\t\t\tif (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {\n\t\t\t\t// Here we are inside a tag, and not inside a JSX context.\n\t\t\t\t// That's plain text: drop any tokens matched.\n\t\t\t\tvar plainText = stringifyToken(token);\n\n\t\t\t\t// And merge text with adjacent text\n\t\t\t\tif (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) {\n\t\t\t\t\tplainText += stringifyToken(tokens[i + 1]);\n\t\t\t\t\ttokens.splice(i + 1, 1);\n\t\t\t\t}\n\t\t\t\tif (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) {\n\t\t\t\t\tplainText = stringifyToken(tokens[i - 1]) + plainText;\n\t\t\t\t\ttokens.splice(i - 1, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\n\t\t\t\ttokens[i] = new Prism.Token('plain-text', plainText, null, plainText);\n\t\t\t}\n\t\t}\n\n\t\tif (token.content && typeof token.content !== 'string') {\n\t\t\twalkTokens(token.content);\n\t\t}\n\t}\n};\n\nPrism.hooks.add('after-tokenize', function (env) {\n\tif (env.language !== 'jsx' && env.language !== 'tsx') {\n\t\treturn;\n\t}\n\twalkTokens(env.tokens);\n});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 8946:\n/***/ (function() {\n\nPrism.languages.julia = {\n\t'comment': {\n\t\t// support one level of nested comments\n\t\t// https://github.com/JuliaLang/julia/pull/6128\n\t\tpattern: /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n\t\tlookbehind: true\n\t},\n\t'regex': {\n\t\t// https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n\t\tpattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\t// https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n\t\t// https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n\t\t// https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n\t\t// https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n\t\tpattern: /\"\"\"[\\s\\S]+?\"\"\"|\\w*\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'number': /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n\t// https://docs.julialang.org/en/v1/manual/mathematical-operations/\n\t// https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n\t'operator': /&&|\\|\\||[-+*^%\u00F7\u22BB&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~\u2260\u2264\u2265'\u221A\u221B]/,\n\t'punctuation': /::?|[{}[\\]();,.?]/,\n\t// https://docs.julialang.org/en/v1/base/numbers/#Base.im\n\t'constant': /\\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\\b|[\u03C0\u212F]/\n};\n\n\n/***/ }),\n\n/***/ 4738:\n/***/ (function() {\n\nPrism.languages.keyman = {\n\t'comment': /\\bc\\s.*/i,\n\t'function': /\\[\\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\\s+)*(?:[TKU]_[\\w?]+|\".+?\"|'.+?')\\s*\\]/i, // virtual key\n\t'string': /(\"|').*?\\1/,\n\t'bold': [ // header statements, system stores and variable system stores\n\t\t/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\\b/i,\n\t\t/\\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\\b/i\n\t],\n\t'keyword': /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\\b/i, // rule keywords\n\t'atrule': /\\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\\b/i, // structural keywords\n\t'number': /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i, // U+####, x###, d### characters and numbers\n\t'operator': /[+>\\\\,()]/,\n\t'tag': /\\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes\n};\n\n/***/ }),\n\n/***/ 17:\n/***/ (function() {\n\n(function (Prism) {\n\tPrism.languages.kotlin = Prism.languages.extend('clike', {\n\t\t'keyword': {\n\t\t\t// The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n\t\t\tpattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function': [\n\t\t\t{\n\t\t\t\tpattern: /(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\()/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n\t\t'operator': /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n\t});\n\n\tdelete Prism.languages.kotlin[\"class-name\"];\n\n\tPrism.languages.insertBefore('kotlin', 'string', {\n\t\t'raw-string': {\n\t\t\tpattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n\t\t\talias: 'string'\n\t\t\t// See interpolation below\n\t\t}\n\t});\n\tPrism.languages.insertBefore('kotlin', 'keyword', {\n\t\t'annotation': {\n\t\t\tpattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n\t\t\talias: 'builtin'\n\t\t}\n\t});\n\tPrism.languages.insertBefore('kotlin', 'function', {\n\t\t'label': {\n\t\t\tpattern: /\\w+@|@\\w+/,\n\t\t\talias: 'symbol'\n\t\t}\n\t});\n\n\tvar interpolation = [\n\t\t{\n\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\talias: 'variable'\n\t\t\t\t},\n\t\t\t\trest: Prism.languages.kotlin\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\\$\\w+/,\n\t\t\talias: 'variable'\n\t\t}\n\t];\n\n\tPrism.languages.kotlin['string'].inside = Prism.languages.kotlin['raw-string'].inside = {\n\t\tinterpolation: interpolation\n\t};\n\n\tPrism.languages.kt = Prism.languages.kotlin;\n\tPrism.languages.kts = Prism.languages.kotlin;\n}(Prism));\n\n\n/***/ }),\n\n/***/ 8361:\n/***/ (function() {\n\n(function (Prism) {\n\tvar funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i;\n\tvar insideEqu = {\n\t\t'equation-command': {\n\t\t\tpattern: funcPattern,\n\t\t\talias: 'regex'\n\t\t}\n\t};\n\n\tPrism.languages.latex = {\n\t\t'comment': /%.*/m,\n\t\t// the verbatim environment prints whitespace to the document\n\t\t'cdata': {\n\t\t\tpattern: /(\\\\begin\\{((?:verbatim|lstlisting)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t/*\n\t\t * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n\t\t * (all are multiline)\n\t\t */\n\t\t'equation': [\n\t\t\t{\n\t\t\t\tpattern: /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n\t\t\t\tinside: insideEqu,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\\\begin\\{((?:equation|math|eqnarray|align|multline|gather)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: insideEqu,\n\t\t\t\talias: 'string'\n\t\t\t}\n\t\t],\n\t\t/*\n\t\t * arguments which are keywords or references are highlighted\n\t\t * as keywords\n\t\t */\n\t\t'keyword': {\n\t\t\tpattern: /(\\\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'url': {\n\t\t\tpattern: /(\\\\url\\{)[^}]+(?=\\})/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t/*\n\t\t * section or chapter headlines are highlighted as bold so that\n\t\t * they stand out more\n\t\t */\n\t\t'headline': {\n\t\t\tpattern: /(\\\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\}(?:\\[[^\\]]+\\])?)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'function': {\n\t\t\tpattern: funcPattern,\n\t\t\talias: 'selector'\n\t\t},\n\t\t'punctuation': /[[\\]{}&]/\n\t};\n\n\tPrism.languages.tex = Prism.languages.latex;\n\tPrism.languages.context = Prism.languages.latex;\n})(Prism);\n\n\n/***/ }),\n\n/***/ 3242:\n/***/ (function() {\n\n(function (Prism) {\n\tPrism.languages.latte = {\n\t\t'comment': /^\\{\\*[\\s\\S]*/,\n\t\t'ld': {\n\t\t\tpattern: /^\\{(?:[=_]|\\/?(?!\\d|\\w+\\()\\w+|)/,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^\\{\\/?/,\n\t\t\t\t'tag': {\n\t\t\t\t\tpattern: /.+/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'rd': {\n\t\t\tpattern: /\\}$/,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /.+/\n\t\t\t}\n\t\t},\n\t\t'php': {\n\t\t\tpattern: /\\S(?:[\\s\\S]*\\S)?/,\n\t\t\talias: 'language-php',\n\t\t\tinside: Prism.languages.php\n\t\t}\n\t};\n\n\tvar markupLatte = Prism.languages.extend('markup', {});\n\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t'n-attr': {\n\t\t\tpattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n\t\t\tinside: {\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /^[^\\s=]+/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t},\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t'php': {\n\t\t\t\t\t\t\tpattern: /\\S(?:[\\s\\S]*\\S)?/,\n\t\t\t\t\t\t\tinside: Prism.languages.php\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t}, markupLatte.tag);\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tif (env.language !== 'latte') {\n\t\t\treturn;\n\t\t}\n\t\tvar lattePattern = /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*?\\}/g;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'latte', lattePattern);\n\t\tenv.grammar = markupLatte;\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'latte');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 3872:\n/***/ (function() {\n\n/* FIXME :\n :extend() is not handled specifically : its highlighting is buggy.\n Mixin usage must be inside a ruleset to be highlighted.\n At-rules (e.g. import) containing interpolations are buggy.\n Detached rulesets are highlighted as at-rules.\n A comment before a mixin usage prevents the latter to be properly highlighted.\n */\n\nPrism.languages.less = Prism.languages.extend('css', {\n\t'comment': [\n\t\t/\\/\\*[\\s\\S]*?\\*\\//,\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\/.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'atrule': {\n\t\tpattern: /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n\t\tinside: {\n\t\t\t'punctuation': /[:()]/\n\t\t}\n\t},\n\t// selectors and mixins are considered the same\n\t'selector': {\n\t\tpattern: /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n\t\tinside: {\n\t\t\t// mixin parameters\n\t\t\t'variable': /@+[\\w-]+/\n\t\t}\n\t},\n\n\t'property': /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/i,\n\t'operator': /[+\\-*\\/]/\n});\n\nPrism.languages.insertBefore('less', 'property', {\n\t'variable': [\n\t\t// Variable declaration (the colon must be consumed!)\n\t\t{\n\t\t\tpattern: /@[\\w-]+\\s*:/,\n\t\t\tinside: {\n\t\t\t\t\"punctuation\": /:/\n\t\t\t}\n\t\t},\n\n\t\t// Variable usage\n\t\t/@@?[\\w-]+/\n\t],\n\t'mixin-usage': {\n\t\tpattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t}\n});\n\n\n/***/ }),\n\n/***/ 7743:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar schemeExpression = /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|)*\\)/.source;\n\t// allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n\t// For some reason, this can't be 4\n\tvar recursivenessLog2 = 5;\n\tfor (var i = 0; i < recursivenessLog2; i++) {\n\t\tschemeExpression = schemeExpression.replace(//g, function () { return schemeExpression; });\n\t}\n\tschemeExpression = schemeExpression.replace(//g, /[^\\s\\S]/.source);\n\n\n\tvar lilypond = Prism.languages.lilypond = {\n\t\t'comment': /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n\t\t'embedded-scheme': {\n\t\t\tpattern: RegExp(/(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|))/.source.replace(//g, function () { return schemeExpression; }), 'm'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'scheme': {\n\t\t\t\t\tpattern: /^(#)[\\s\\S]+$/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'language-scheme',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'embedded-lilypond': {\n\t\t\t\t\t\t\tpattern: /#\\{[\\s\\S]*?#\\}/,\n\t\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t\t'punctuation': /^#\\{|#\\}$/,\n\t\t\t\t\t\t\t\t'lilypond': {\n\t\t\t\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\t\t\t\talias: 'language-lilypond',\n\t\t\t\t\t\t\t\t\tinside: null // see below\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\trest: Prism.languages.scheme\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'punctuation': /#/\n\t\t\t}\n\t\t},\n\t\t'string': {\n\t\t\tpattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': {\n\t\t\tpattern: /(\\\\new\\s+)[\\w-]+/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /\\\\[a-z][-\\w]*/i,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^\\\\/\n\t\t\t}\n\t\t},\n\t\t'operator': /[=|]|<<|>>/,\n\t\t'punctuation': {\n\t\t\tpattern: /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'number': /\\b\\d+(?:\\/\\d+)?\\b/\n\t};\n\n\tlilypond['embedded-scheme'].inside['scheme'].inside['embedded-lilypond'].inside['lilypond'].inside = lilypond;\n\n\tPrism.languages.ly = lilypond;\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1676:\n/***/ (function() {\n\nPrism.languages.liquid = {\n\t'keyword': /\\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\\b/,\n\t'number': /\\b0b[01]+\\b|\\b0x(?:\\.[\\da-fp-]+|[\\da-f]+(?:\\.[\\da-fp-]+)?)\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,\n\t'operator': {\n\t\tpattern: /(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,\n\t\tlookbehind: true\n\t},\n\t'function': {\n\t\tpattern: /(^|[\\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\\s;|&])/,\n\t\tlookbehind: true\n\t}\n};\n\n\n/***/ }),\n\n/***/ 5042:\n/***/ (function() {\n\n(function (Prism) {\n\t// Functions to construct regular expressions\n\t// simple form\n\t// e.g. (interactive ... or (interactive)\n\tfunction simple_form(name) {\n\t\treturn RegExp('(\\\\()' + name + '(?=[\\\\s\\\\)])');\n\t}\n\t// booleans and numbers\n\tfunction primitive(pattern) {\n\t\treturn RegExp('([\\\\s([])' + pattern + '(?=[\\\\s)])');\n\t}\n\n\t// Patterns in regular expressions\n\n\t// Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n\t// & and : are excluded as they are usually used for special purposes\n\tvar symbol = '[-+*/_~!@$%^=<>{}\\\\w]+';\n\t// symbol starting with & used in function arguments\n\tvar marker = '&' + symbol;\n\t// Open parenthesis for look-behind\n\tvar par = '(\\\\()';\n\tvar endpar = '(?=\\\\))';\n\t// End the pattern with look-ahead space\n\tvar space = '(?=\\\\s)';\n\n\tvar language = {\n\t\t// Three or four semicolons are considered a heading.\n\t\t// See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n\t\theading: {\n\t\t\tpattern: /;;;.*/,\n\t\t\talias: ['comment', 'title']\n\t\t},\n\t\tcomment: /;.*/,\n\t\tstring: {\n\t\t\tpattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\targument: /[-A-Z]+(?=[.,\\s])/,\n\t\t\t\tsymbol: RegExp('`' + symbol + \"'\")\n\t\t\t}\n\t\t},\n\t\t'quoted-symbol': {\n\t\t\tpattern: RegExp(\"#?'\" + symbol),\n\t\t\talias: ['variable', 'symbol']\n\t\t},\n\t\t'lisp-property': {\n\t\t\tpattern: RegExp(':' + symbol),\n\t\t\talias: 'property'\n\t\t},\n\t\tsplice: {\n\t\t\tpattern: RegExp(',@?' + symbol),\n\t\t\talias: ['symbol', 'variable']\n\t\t},\n\t\tkeyword: [\n\t\t\t{\n\t\t\t\tpattern: RegExp(\n\t\t\t\t\tpar +\n\t\t\t\t\t\t'(?:(?:lexical-)?let\\\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' +\n\t\t\t\t\t\tspace\n\t\t\t\t),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(\n\t\t\t\t\tpar + '(?:for|do|collect|return|finally|append|concat|in|by)' + space\n\t\t\t\t),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t],\n\t\tdeclare: {\n\t\t\tpattern: simple_form('declare'),\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\t\tinteractive: {\n\t\t\tpattern: simple_form('interactive'),\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\t\tboolean: {\n\t\t\tpattern: primitive('(?:t|nil)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\tnumber: {\n\t\t\tpattern: primitive('[-+]?\\\\d+(?:\\\\.\\\\d*)?'),\n\t\t\tlookbehind: true\n\t\t},\n\t\tdefvar: {\n\t\t\tpattern: RegExp(par + 'def(?:var|const|custom|group)\\\\s+' + symbol),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tkeyword: /^def[a-z]+/,\n\t\t\t\tvariable: RegExp(symbol)\n\t\t\t}\n\t\t},\n\t\tdefun: {\n\t\t\tpattern: RegExp(\n\t\t\t\tpar +\n\t\t\t\t\t'(?:cl-)?(?:defun\\\\*?|defmacro)\\\\s+' +\n\t\t\t\t\tsymbol +\n\t\t\t\t\t'\\\\s+\\\\([\\\\s\\\\S]*?\\\\)'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tkeyword: /^(?:cl-)?def\\S+/,\n\t\t\t\t// See below, this property needs to be defined later so that it can\n\t\t\t\t// reference the language object.\n\t\t\t\targuments: null,\n\t\t\t\tfunction: {\n\t\t\t\t\tpattern: RegExp('(^\\\\s)' + symbol),\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\tpunctuation: /[()]/\n\t\t\t}\n\t\t},\n\t\tlambda: {\n\t\t\tpattern: RegExp(par + 'lambda\\\\s+\\\\(\\\\s*(?:&?' + symbol + '(?:\\\\s+&?' + symbol + ')*\\\\s*)?\\\\)'),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tkeyword: /^lambda/,\n\t\t\t\t// See below, this property needs to be defined later so that it can\n\t\t\t\t// reference the language object.\n\t\t\t\targuments: null,\n\t\t\t\tpunctuation: /[()]/\n\t\t\t}\n\t\t},\n\t\tcar: {\n\t\t\tpattern: RegExp(par + symbol),\n\t\t\tlookbehind: true\n\t\t},\n\t\tpunctuation: [\n\t\t\t// open paren, brackets, and close paren\n\t\t\t/(?:['`,]?\\(|[)\\[\\]])/,\n\t\t\t// cons\n\t\t\t{\n\t\t\t\tpattern: /(\\s)\\.(?=\\s)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t]\n\t};\n\n\tvar arg = {\n\t\t'lisp-marker': RegExp(marker),\n\t\trest: {\n\t\t\targument: {\n\t\t\t\tpattern: RegExp(symbol),\n\t\t\t\talias: 'variable'\n\t\t\t},\n\t\t\tvarform: {\n\t\t\t\tpattern: RegExp(par + symbol + '\\\\s+\\\\S[\\\\s\\\\S]*' + endpar),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\tstring: language.string,\n\t\t\t\t\tboolean: language.boolean,\n\t\t\t\t\tnumber: language.number,\n\t\t\t\t\tsymbol: language.symbol,\n\t\t\t\t\tpunctuation: /[()]/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tvar forms = '\\\\S+(?:\\\\s+\\\\S+)*';\n\n\tvar arglist = {\n\t\tpattern: RegExp(par + '[\\\\s\\\\S]*' + endpar),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'rest-vars': {\n\t\t\t\tpattern: RegExp('&(?:rest|body)\\\\s+' + forms),\n\t\t\t\tinside: arg\n\t\t\t},\n\t\t\t'other-marker-vars': {\n\t\t\t\tpattern: RegExp('&(?:optional|aux)\\\\s+' + forms),\n\t\t\t\tinside: arg\n\t\t\t},\n\t\t\tkeys: {\n\t\t\t\tpattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n\t\t\t\tinside: arg\n\t\t\t},\n\t\t\targument: {\n\t\t\t\tpattern: RegExp(symbol),\n\t\t\t\talias: 'variable'\n\t\t\t},\n\t\t\tpunctuation: /[()]/\n\t\t}\n\t};\n\n\tlanguage['lambda'].inside.arguments = arglist;\n\tlanguage['defun'].inside.arguments = Prism.util.clone(arglist);\n\tlanguage['defun'].inside.arguments.inside.sublist = arglist;\n\n\tPrism.languages.lisp = language;\n\tPrism.languages.elisp = language;\n\tPrism.languages.emacs = language;\n\tPrism.languages['emacs-lisp'] = language;\n}(Prism));\n\n\n/***/ }),\n\n/***/ 5875:\n/***/ (function() {\n\nPrism.languages.livescript = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])#.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'interpolated-string': {\n\t\t/* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n\t\t* forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n\t\tpattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'variable': {\n\t\t\t\tpattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^#\\{|\\}$/,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t}\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string': [\n\t\t{\n\t\t\tpattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /<\\[[\\s\\S]*?\\]>/,\n\t\t\tgreedy: true\n\t\t},\n\t\t/\\\\[^\\s,;\\])}]+/\n\t],\n\t'regex': [\n\t\t{\n\t\t\tpattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'comment': {\n\t\t\t\t\tpattern: /(^|[^\\\\])#.*/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'keyword': {\n\t\tpattern: /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n\t\tlookbehind: true\n\t},\n\t'keyword-operator': {\n\t\tpattern: /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n\t\tlookbehind: true,\n\t\talias: 'operator'\n\t},\n\t'boolean': {\n\t\tpattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n\t\tlookbehind: true\n\t},\n\t'argument': {\n\t\t// Don't match .&. nor &&\n\t\tpattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t'number': /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n\t'identifier': /[a-z_](?:-?[a-z]|[\\d_])*/i,\n\t'operator': [\n\t\t// Spaced .\n\t\t{\n\t\t\tpattern: /( )\\.(?= )/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Full list, in order:\n\t\t// .= .~ .. ...\n\t\t// .&. .^. .<<. .>>. .>>>.\n\t\t// := :: ::=\n\t\t// &&\n\t\t// || |>\n\t\t// < << <<< <<<<\n\t\t// <- <-- <-! <--!\n\t\t// <~ <~~ <~! <~~!\n\t\t// <| <= >> >= >?\n\t\t// - -- -> -->\n\t\t// + ++\n\t\t// @ @@\n\t\t// % %%\n\t\t// * **\n\t\t// ! != !~=\n\t\t// !~> !~~>\n\t\t// !-> !-->\n\t\t// ~ ~> ~~> ~=\n\t\t// = ==\n\t\t// ^ ^^\n\t\t// / ?\n\t\t/\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n\t],\n\t'punctuation': /[(){}\\[\\]|.,:;`]/\n};\n\nPrism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript;\n\n\n/***/ }),\n\n/***/ 6929:\n/***/ (function() {\n\n(function(Prism) {\n\tPrism.languages.llvm = {\n\t\t'comment': /;.*/,\n\t\t'string': {\n\t\t\tpattern: /\"[^\"]*\"/,\n\t\t\tgreedy: true,\n\t\t},\n\t\t'boolean': /\\b(?:true|false)\\b/,\n\t\t'variable': /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n\t\t'label': /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n\t\t'type': {\n\t\t\tpattern: /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n\t\t\talias: 'class-name',\n\t\t},\n\t\t'keyword': /\\b[a-z_][a-z_0-9]*\\b/,\n\t\t'number': /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n\t\t'punctuation': /[{}[\\];(),.!*=<>]/,\n\t};\n}(Prism));\n\n\n/***/ }),\n\n/***/ 4127:\n/***/ (function() {\n\nPrism.languages.lolcode = {\n\t'comment': [\n\t\t/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/,\n\t\t/\\bBTW.+/\n\t],\n\t'string': {\n\t\tpattern: /\"(?::.|[^\":])*\"/,\n\t\tinside: {\n\t\t\t'variable': /:\\{[^}]+\\}/,\n\t\t\t'symbol': [\n\t\t\t\t/:\\([a-f\\d]+\\)/i,\n\t\t\t\t/:\\[[^\\]]+\\]/,\n\t\t\t\t/:[)>o\":]/\n\t\t\t]\n\t\t},\n\t\tgreedy: true\n\t},\n\t'number': /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n\t'symbol': {\n\t\tpattern: /(^|\\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\\s|,|$)/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'keyword': /A(?=\\s)/\n\t\t}\n\t},\n\t'label': {\n\t\tpattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n\t\tlookbehind: true,\n\t\talias: 'string'\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\\w*/,\n\t\tlookbehind: true\n\t},\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /(^|\\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\\?|YA RLY|NO WAI|OIC|MEBBE|WTF\\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\\s|,|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t/'Z(?=\\s|,|$)/\n\t],\n\t'boolean': {\n\t\tpattern: /(^|\\s)(?:WIN|FAIL)(?=\\s|,|$)/,\n\t\tlookbehind: true\n\t},\n\t'variable': {\n\t\tpattern: /(^|\\s)IT(?=\\s|,|$)/,\n\t\tlookbehind: true\n\t},\n\t'operator': {\n\t\tpattern: /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\\s|,|$)/,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /\\.{3}|\u2026|,|!/\n};\n\n\n/***/ }),\n\n/***/ 7643:\n/***/ (function() {\n\nPrism.languages.lua = {\n\t'comment': /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n\t// \\z may be used to skip the following space\n\t'string': {\n\t\tpattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n\t\tgreedy: true\n\t},\n\t'number': /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n\t'keyword': /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n\t'function': /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n\t'operator': [\n\t\t/[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n\t\t{\n\t\t\t// Match \"..\" but don't break \"...\"\n\t\t\tpattern: /(^|[^.])\\.\\.(?!\\.)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /[\\[\\](){},;]|\\.+|:+/\n};\n\n\n/***/ }),\n\n/***/ 900:\n/***/ (function() {\n\nPrism.languages.makefile = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n\t\tlookbehind: true\n\t},\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\n\t// Built-in target names\n\t'builtin': /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n\n\t// Targets\n\t'symbol': {\n\t\tpattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n\t\tinside: {\n\t\t\t'variable': /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n\t\t}\n\t},\n\t'variable': /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n\n\t'keyword': [\n\t\t// Directives\n\t\t/-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n\t\t// Functions\n\t\t{\n\t\t\tpattern: /(\\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \\t])/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'operator': /(?:::|[?:+!])?=|[|@]/,\n\t'punctuation': /[:;(){}]/\n};\n\n\n/***/ }),\n\n/***/ 5031:\n/***/ (function() {\n\n(function (Prism) {\n\n\t// Allow only one line break\n\tvar inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?!\\n|\\r\\n?))/.source;\n\n\t/**\n\t * This function is intended for the creation of the bold or italic pattern.\n\t *\n\t * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n\t *\n\t * _Note:_ Keep in mind that this adds a capturing group.\n\t *\n\t * @param {string} pattern\n\t * @returns {RegExp}\n\t */\n\tfunction createInline(pattern) {\n\t\tpattern = pattern.replace(//g, function () { return inner; });\n\t\treturn RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n\t}\n\n\n\tvar tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n\tvar tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function () { return tableCell; });\n\tvar tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n\n\n\tPrism.languages.markdown = Prism.languages.extend('markup', {});\n\tPrism.languages.insertBefore('markdown', 'prolog', {\n\t\t'front-matter-block': {\n\t\t\tpattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^---|---$/,\n\t\t\t\t'font-matter': {\n\t\t\t\t\tpattern: /\\S+(?:\\s+\\S+)*/,\n\t\t\t\t\talias: ['yaml', 'language-yaml'],\n\t\t\t\t\tinside: Prism.languages.yaml\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'blockquote': {\n\t\t\t// > ...\n\t\t\tpattern: /^>(?:[\\t ]*>)*/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'table': {\n\t\t\tpattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n\t\t\tinside: {\n\t\t\t\t'table-data-rows': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-data': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-line': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\||:?-{3,}:?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-header-row': {\n\t\t\t\t\tpattern: RegExp('^' + tableRow + '$'),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-header': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\talias: 'important',\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'code': [\n\t\t\t{\n\t\t\t\t// Prefixed by 4 spaces or 1 tab and preceded by an empty line\n\t\t\t\tpattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// `code`\n\t\t\t\t// ``code``\n\t\t\t\tpattern: /``.+?``|`[^`\\r\\n]+`/,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ```optional language\n\t\t\t\t// code block\n\t\t\t\t// ```\n\t\t\t\tpattern: /^```[\\s\\S]*?^```$/m,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'code-block': {\n\t\t\t\t\t\tpattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'code-language': {\n\t\t\t\t\t\tpattern: /^(```).+/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /```/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'title': [\n\t\t\t{\n\t\t\t\t// title 1\n\t\t\t\t// =======\n\n\t\t\t\t// title 2\n\t\t\t\t// -------\n\t\t\t\tpattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /==+$|--+$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// # title 1\n\t\t\t\t// ###### title 6\n\t\t\t\tpattern: /(^\\s*)#.+/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /^#+|#+$/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'hr': {\n\t\t\t// ***\n\t\t\t// ---\n\t\t\t// * * *\n\t\t\t// -----------\n\t\t\tpattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'list': {\n\t\t\t// * item\n\t\t\t// + item\n\t\t\t// - item\n\t\t\t// 1. item\n\t\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'url-reference': {\n\t\t\t// [id]: http://example.com \"Optional title\"\n\t\t\t// [id]: http://example.com 'Optional title'\n\t\t\t// [id]: http://example.com (Optional title)\n\t\t\t// [id]: \"Optional title\"\n\t\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n\t\t\tinside: {\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n\t\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\n\t\t\t},\n\t\t\talias: 'url'\n\t\t},\n\t\t'bold': {\n\t\t\t// **strong**\n\t\t\t// __strong__\n\n\t\t\t// allow one nested instance of italic text using the same delimiter\n\t\t\tpattern: createInline(/\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^..)[\\s\\S]+(?=..$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\*\\*|__/\n\t\t\t}\n\t\t},\n\t\t'italic': {\n\t\t\t// *em*\n\t\t\t// _em_\n\n\t\t\t// allow one nested instance of bold text using the same delimiter\n\t\t\tpattern: createInline(/\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^.)[\\s\\S]+(?=.$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /[*_]/\n\t\t\t}\n\t\t},\n\t\t'strike': {\n\t\t\t// ~~strike through~~\n\t\t\t// ~strike~\n\t\t\tpattern: createInline(/(~~?)(?:(?!~))+?\\2/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /~~?/\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// [example](http://example.com \"Optional title\")\n\t\t\t// [example][id]\n\t\t\t// [example] [id]\n\t\t\tpattern: createInline(/!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\]))+\\])/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'operator': /^!/,\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^\\[)[^\\]]+(?=\\])/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'url': {\n\t\t\t\t\tpattern: /(^\\]\\()[^\\s)]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n\t\t['url', 'bold', 'italic', 'strike'].forEach(function (inside) {\n\t\t\tif (token !== inside) {\n\t\t\t\tPrism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n\t\t\t}\n\t\t});\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tif (env.language !== 'markdown' && env.language !== 'md') {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction walkTokens(tokens) {\n\t\t\tif (!tokens || typeof tokens === 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, l = tokens.length; i < l; i++) {\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (token.type !== 'code') {\n\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n\t\t\t\t * is optional. But the grammar is defined so that there is only one case we have to handle:\n\t\t\t\t *\n\t\t\t\t * token.content = [\n\t\t\t\t * ```,\n\t\t\t\t * xxxx,\n\t\t\t\t * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n\t\t\t\t * ...,\n\t\t\t\t * '\\n', // exactly one new lines again\n\t\t\t\t * ```\n\t\t\t\t * ];\n\t\t\t\t */\n\n\t\t\t\tvar codeLang = token.content[1];\n\t\t\t\tvar codeBlock = token.content[3];\n\n\t\t\t\tif (codeLang && codeBlock &&\n\t\t\t\t\tcodeLang.type === 'code-language' && codeBlock.type === 'code-block' &&\n\t\t\t\t\ttypeof codeLang.content === 'string') {\n\n\t\t\t\t\t// this might be a language that Prism does not support\n\n\t\t\t\t\t// do some replacements to support C++, C#, and F#\n\t\t\t\t\tvar lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp')\n\t\t\t\t\t// only use the first word\n\t\t\t\t\tlang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n\t\t\t\t\tvar alias = 'language-' + lang;\n\n\t\t\t\t\t// add alias\n\t\t\t\t\tif (!codeBlock.alias) {\n\t\t\t\t\t\tcodeBlock.alias = [alias];\n\t\t\t\t\t} else if (typeof codeBlock.alias === 'string') {\n\t\t\t\t\t\tcodeBlock.alias = [codeBlock.alias, alias];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcodeBlock.alias.push(alias);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twalkTokens(env.tokens);\n\t});\n\n\tPrism.hooks.add('wrap', function (env) {\n\t\tif (env.type !== 'code-block') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar codeLang = '';\n\t\tfor (var i = 0, l = env.classes.length; i < l; i++) {\n\t\t\tvar cls = env.classes[i];\n\t\t\tvar match = /language-(.+)/.exec(cls);\n\t\t\tif (match) {\n\t\t\t\tcodeLang = match[1];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar grammar = Prism.languages[codeLang];\n\n\t\tif (!grammar) {\n\t\t\tif (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n\t\t\t\tvar id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n\t\t\t\tenv.attributes['id'] = id;\n\n\t\t\t\tPrism.plugins.autoloader.loadLanguages(codeLang, function () {\n\t\t\t\t\tvar ele = document.getElementById(id);\n\t\t\t\t\tif (ele) {\n\t\t\t\t\t\tele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// reverse Prism.util.encode\n\t\t\tvar code = env.content.replace(/</g, '<').replace(/&/g, '&');\n\n\t\t\tenv.content = Prism.highlight(code, grammar, codeLang);\n\t\t}\n\t});\n\n\tPrism.languages.md = Prism.languages.markdown;\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 3502:\n/***/ (function() {\n\n(function (Prism) {\n\n\t/**\n\t * Returns the placeholder for the given language id and index.\n\t *\n\t * @param {string} language\n\t * @param {string|number} index\n\t * @returns {string}\n\t */\n\tfunction getPlaceholder(language, index) {\n\t\treturn '___' + language.toUpperCase() + index + '___';\n\t}\n\n\tObject.defineProperties(Prism.languages['markup-templating'] = {}, {\n\t\tbuildPlaceholders: {\n\t\t\t/**\n\t\t\t * Tokenize all inline templating expressions matching `placeholderPattern`.\n\t\t\t *\n\t\t\t * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n\t\t\t * `true` will be replaced.\n\t\t\t *\n\t\t\t * @param {object} env The environment of the `before-tokenize` hook.\n\t\t\t * @param {string} language The language id.\n\t\t\t * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n\t\t\t * @param {(match: string) => boolean} [replaceFilter]\n\t\t\t */\n\t\t\tvalue: function (env, language, placeholderPattern, replaceFilter) {\n\t\t\t\tif (env.language !== language) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar tokenStack = env.tokenStack = [];\n\n\t\t\t\tenv.code = env.code.replace(placeholderPattern, function (match) {\n\t\t\t\t\tif (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n\t\t\t\t\t\treturn match;\n\t\t\t\t\t}\n\t\t\t\t\tvar i = tokenStack.length;\n\t\t\t\t\tvar placeholder;\n\n\t\t\t\t\t// Check for existing strings\n\t\t\t\t\twhile (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1)\n\t\t\t\t\t\t++i;\n\n\t\t\t\t\t// Create a sparse array\n\t\t\t\t\ttokenStack[i] = match;\n\n\t\t\t\t\treturn placeholder;\n\t\t\t\t});\n\n\t\t\t\t// Switch the grammar to markup\n\t\t\t\tenv.grammar = Prism.languages.markup;\n\t\t\t}\n\t\t},\n\t\ttokenizePlaceholders: {\n\t\t\t/**\n\t\t\t * Replace placeholders with proper tokens after tokenizing.\n\t\t\t *\n\t\t\t * @param {object} env The environment of the `after-tokenize` hook.\n\t\t\t * @param {string} language The language id.\n\t\t\t */\n\t\t\tvalue: function (env, language) {\n\t\t\t\tif (env.language !== language || !env.tokenStack) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Switch the grammar back\n\t\t\t\tenv.grammar = Prism.languages[language];\n\n\t\t\t\tvar j = 0;\n\t\t\t\tvar keys = Object.keys(env.tokenStack);\n\n\t\t\t\tfunction walkTokens(tokens) {\n\t\t\t\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\t\t\t\t// all placeholders are replaced already\n\t\t\t\t\t\tif (j >= keys.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar token = tokens[i];\n\t\t\t\t\t\tif (typeof token === 'string' || (token.content && typeof token.content === 'string')) {\n\t\t\t\t\t\t\tvar k = keys[j];\n\t\t\t\t\t\t\tvar t = env.tokenStack[k];\n\t\t\t\t\t\t\tvar s = typeof token === 'string' ? token : token.content;\n\t\t\t\t\t\t\tvar placeholder = getPlaceholder(language, k);\n\n\t\t\t\t\t\t\tvar index = s.indexOf(placeholder);\n\t\t\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\t\t\t++j;\n\n\t\t\t\t\t\t\t\tvar before = s.substring(0, index);\n\t\t\t\t\t\t\t\tvar middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t);\n\t\t\t\t\t\t\t\tvar after = s.substring(index + placeholder.length);\n\n\t\t\t\t\t\t\t\tvar replacement = [];\n\t\t\t\t\t\t\t\tif (before) {\n\t\t\t\t\t\t\t\t\treplacement.push.apply(replacement, walkTokens([before]));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treplacement.push(middle);\n\t\t\t\t\t\t\t\tif (after) {\n\t\t\t\t\t\t\t\t\treplacement.push.apply(replacement, walkTokens([after]));\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (typeof token === 'string') {\n\t\t\t\t\t\t\t\t\ttokens.splice.apply(tokens, [i, 1].concat(replacement));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttoken.content = replacement;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (token.content /* && typeof token.content !== 'string' */) {\n\t\t\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tokens;\n\t\t\t\t}\n\n\t\t\t\twalkTokens(env.tokens);\n\t\t\t}\n\t\t}\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1151:\n/***/ (function() {\n\nPrism.languages.matlab = {\n\t'comment': [\n\t\t/%\\{[\\s\\S]*?\\}%/,\n\t\t/%.+/\n\t],\n\t'string': {\n\t\tpattern: /\\B'(?:''|[^'\\r\\n])*'/,\n\t\tgreedy: true\n\t},\n\t// FIXME We could handle imaginary numbers as a whole\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n\t'keyword': /\\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n\t'function': /(?!\\d)\\w+(?=\\s*\\()/,\n\t'operator': /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n\t'punctuation': /\\.{3}|[.,;\\[\\](){}!]/\n};\n\n\n/***/ }),\n\n/***/ 5116:\n/***/ (function() {\n\nPrism.languages.mel = {\n\t'comment': /\\/\\/.*/,\n\t'code': {\n\t\tpattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n\t\tgreedy: true,\n\t\talias: 'italic',\n\t\tinside: {\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'punctuation'\n\t\t\t}\n\t\t\t// See rest below\n\t\t}\n\t},\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'variable': /\\$\\w+/,\n\t'number': /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n\t'flag': {\n\t\tpattern: /-[^\\d\\W]\\w*/,\n\t\talias: 'operator'\n\t},\n\t'keyword': /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n\t'function': /\\w+(?=\\()|\\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n\n\t'operator': [\n\t\t/\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n\t\t{\n\t\t\t// We don't want to match <<\n\t\t\tpattern: /(^|[^<])<(?!<)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// We don't want to match >>\n\t\t\tpattern: /(^|[^>])>(?!>)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /<<|>>|[.,:;?\\[\\](){}]/\n};\nPrism.languages.mel['code'].inside.rest = Prism.languages.mel;\n\n\n/***/ }),\n\n/***/ 9919:\n/***/ (function() {\n\nPrism.languages.mizar = {\n\t'comment': /::.+/,\n\t'keyword': /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\\b/,\n\t'parameter': {\n\t\tpattern: /\\$(?:10|\\d)/,\n\t\talias: 'variable'\n\t},\n\t'variable': /\\w+(?=:)/,\n\t'number': /(?:\\b|-)\\d+\\b/,\n\t'operator': /\\.\\.\\.|->|&|\\.?=/,\n\t'punctuation': /\\(#|#\\)|[,:;\\[\\](){}]/\n};\n\n/***/ }),\n\n/***/ 7638:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar operators = [\n\t\t// query and projection\n\t\t'$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne', '$nin', '$and', '$not', '$nor', '$or',\n\t\t'$exists', '$type', '$expr', '$jsonSchema', '$mod', '$regex', '$text', '$where', '$geoIntersects',\n\t\t'$geoWithin', '$near', '$nearSphere', '$all', '$elemMatch', '$size', '$bitsAllClear', '$bitsAllSet',\n\t\t'$bitsAnyClear', '$bitsAnySet', '$comment', '$elemMatch', '$meta', '$slice',\n\n\t\t// update\n\t\t'$currentDate', '$inc', '$min', '$max', '$mul', '$rename', '$set', '$setOnInsert', '$unset',\n\t\t'$addToSet', '$pop', '$pull', '$push', '$pullAll', '$each', '$position', '$slice', '$sort', '$bit',\n\n\t\t// aggregation pipeline stages\n\t\t'$addFields', '$bucket', '$bucketAuto', '$collStats', '$count', '$currentOp', '$facet', '$geoNear',\n\t\t'$graphLookup', '$group','$indexStats', '$limit', '$listLocalSessions', '$listSessions', '$lookup',\n\t\t'$match', '$merge', '$out', '$planCacheStats', '$project', '$redact', '$replaceRoot', '$replaceWith',\n\t\t'$sample', '$set', '$skip', '$sort', '$sortByCount', '$unionWith', '$unset', '$unwind',\n\n\t\t// aggregation pipeline operators\n\t\t'$abs', '$accumulator', '$acos', '$acosh', '$add', '$addToSet', '$allElementsTrue', '$and',\n\t\t'$anyElementTrue', '$arrayElemAt', '$arrayToObject', '$asin', '$asinh', '$atan', '$atan2',\n\t\t'$atanh', '$avg', '$binarySize', '$bsonSize', '$ceil', '$cmp', '$concat', '$concatArrays', '$cond',\n\t\t'$convert', '$cos', '$dateFromParts', '$dateToParts', '$dateFromString', '$dateToString', '$dayOfMonth',\n\t\t'$dayOfWeek', '$dayOfYear', '$degreesToRadians', '$divide', '$eq', '$exp', '$filter', '$first',\n\t\t'$floor', '$function', '$gt', '$gte', '$hour', '$ifNull', '$in', '$indexOfArray', '$indexOfBytes',\n\t\t'$indexOfCP', '$isArray', '$isNumber', '$isoDayOfWeek', '$isoWeek', '$isoWeekYear', '$last',\n\t\t'$last', '$let', '$literal', '$ln', '$log', '$log10', '$lt', '$lte', '$ltrim', '$map', '$max',\n\t\t'$mergeObjects', '$meta', '$min', '$millisecond', '$minute', '$mod', '$month', '$multiply', '$ne',\n\t\t'$not', '$objectToArray', '$or', '$pow', '$push', '$radiansToDegrees', '$range', '$reduce',\n\t\t'$regexFind', '$regexFindAll', '$regexMatch', '$replaceOne', '$replaceAll', '$reverseArray', '$round',\n\t\t'$rtrim', '$second', '$setDifference', '$setEquals', '$setIntersection', '$setIsSubset', '$setUnion',\n\t\t'$size', '$sin', '$slice', '$split', '$sqrt', '$stdDevPop', '$stdDevSamp', '$strcasecmp', '$strLenBytes',\n\t\t'$strLenCP', '$substr', '$substrBytes', '$substrCP', '$subtract', '$sum', '$switch', '$tan',\n\t\t'$toBool', '$toDate', '$toDecimal', '$toDouble', '$toInt', '$toLong', '$toObjectId', '$toString',\n\t\t'$toLower', '$toUpper', '$trim', '$trunc', '$type', '$week', '$year', '$zip',\n\n\t\t// aggregation pipeline query modifiers\n\t\t'$comment', '$explain', '$hint', '$max', '$maxTimeMS', '$min', '$orderby', '$query',\n\t\t'$returnKey', '$showDiskLoc', '$natural',\n\t];\n\n\tvar builtinFunctions = [\n\t\t'ObjectId',\n\t\t'Code',\n\t\t'BinData',\n\t\t'DBRef',\n\t\t'Timestamp',\n\t\t'NumberLong',\n\t\t'NumberDecimal',\n\t\t'MaxKey',\n\t\t'MinKey',\n\t\t'RegExp',\n\t\t'ISODate',\n\t\t'UUID',\n\t];\n\n\toperators = operators.map(function(operator) {\n\t\treturn operator.replace('$', '\\\\$');\n\t});\n\n\tvar operatorsSource = '(?:' + operators.join('|') + ')\\\\b';\n\n\tPrism.languages.mongodb = Prism.languages.extend('javascript', {});\n\n\tPrism.languages.insertBefore('mongodb', 'string', {\n\t\t'property': {\n\t\t\tpattern: /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'keyword': RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.mongodb.string.inside = {\n\t\turl: {\n\t\t\t// url pattern\n\t\t\tpattern: /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n\t\t\tgreedy: true\n\t\t},\n\t\tentity: {\n\t\t\t// ipv4\n\t\t\tpattern: /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/,\n\t\t\tgreedy: true\n\t\t}\n\t};\n\n\tPrism.languages.insertBefore('mongodb', 'constant', {\n\t\t'builtin': {\n\t\t\tpattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n\t\t\talias: 'keyword'\n\t\t}\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9102:\n/***/ (function() {\n\nPrism.languages.monkey = {\n\t'string': /\"[^\"\\r\\n]*\"/,\n\t'comment': [\n\t\t{\n\t\t\tpattern: /^#Rem\\s[\\s\\S]*?^#End/im,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /'.+/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'preprocessor': {\n\t\tpattern: /(^[ \\t]*)#.+/m,\n\t\tlookbehind: true,\n\t\talias: 'comment'\n\t},\n\t'function': /\\w+(?=\\()/,\n\t'type-char': {\n\t\tpattern: /(\\w)[?%#$]/,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t'number': {\n\t\tpattern: /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\\b/i,\n\t'operator': /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n\t'punctuation': /[.,:;()\\[\\]]/\n};\n\n\n/***/ }),\n\n/***/ 6382:\n/***/ (function() {\n\nPrism.languages.moonscript = {\n\t'comment': /--.*/,\n\t'string': [\n\t\t{\n\t\t\tpattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\"[^\"]*\"/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: /#\\{[^{}]*\\}/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'moonscript': {\n\t\t\t\t\t\t\tpattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\tinside: null // see beow\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\t\tpattern: /#\\{|\\}/,\n\t\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t],\n\t'class-name': [\n\t\t{\n\t\t\tpattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// class-like names start with a capital letter\n\t\t/\\b[A-Z]\\w*/\n\t],\n\t'keyword': /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n\t'variable': /@@?\\w*/,\n\t'property': {\n\t\tpattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n\t\tlookbehind: true\n\t},\n\t'function': {\n\t\tpattern: /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:running|create|resume|status|wrap|yield)|debug\\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\\b/,\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'number': /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n\t'operator': /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n\t'punctuation': /[.,()[\\]{}\\\\]/\n};\n\nPrism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside = Prism.languages.moonscript;\n\nPrism.languages.moon = Prism.languages.moonscript;\n\n\n/***/ }),\n\n/***/ 1359:\n/***/ (function() {\n\nPrism.languages.n1ql = {\n\t'comment': /\\/\\*[\\s\\S]*?(?:$|\\*\\/)/,\n\t'parameter': /\\$[\\w.]+/,\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n\t\tgreedy: true,\n\t},\n\t'identifier': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n\t\tgreedy: true,\n\t},\n\t'function': /\\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\\s*\\()/i,\n\t'keyword': /\\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\\b/i,\n\t'boolean': /\\b(?:TRUE|FALSE)\\b/i,\n\t'number': /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n\t'operator': /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n\t'punctuation': /[;[\\](),.{}:]/\n};\n\n\n/***/ }),\n\n/***/ 3976:\n/***/ (function() {\n\nPrism.languages.n4js = Prism.languages.extend('javascript', {\n\t// Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n\t'keyword': /\\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n});\n\nPrism.languages.insertBefore('n4js', 'constant', {\n\t// Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n\t'annotation': {\n\t\tpattern: /@+\\w+/,\n\t\talias: 'operator'\n\t}\n});\n\nPrism.languages.n4jsd=Prism.languages.n4js;\n\n\n/***/ }),\n\n/***/ 6154:\n/***/ (function() {\n\nPrism.languages['nand2tetris-hdl'] = {\n\t'comment': /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t'keyword': /\\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /[A-Za-z][A-Za-z0-9]*(?=\\()/,\n\t'number': /\\b\\d+\\b/,\n\t'operator': /=|\\.\\./,\n\t'punctuation': /[{}[\\];(),:]/\n};\n\n\n/***/ }),\n\n/***/ 4086:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/;\n\n\tvar params = {\n\t\t'quoted-string': {\n\t\t\tpattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n\t\t\talias: 'operator'\n\t\t},\n\t\t'command-param-id': {\n\t\t\tpattern: /(\\s)\\w+:/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'property'\n\t\t},\n\t\t'command-param-value': [\n\t\t\t{\n\t\t\t\tpattern: expressionDef,\n\t\t\t\talias: 'selector',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([\\t ])\\S+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'operator',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\S(?:.*\\S)?/,\n\t\t\t\talias: 'operator',\n\t\t\t}\n\t\t]\n\t};\n\n\tPrism.languages.naniscript = {\n\t\t// ; ...\n\t\t'comment': {\n\t\t\tpattern: /^([\\t ]*);.*/m,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t// > ...\n\t\t// Define is a control line starting with '>' followed by a word, a space and a text.\n\t\t'define': {\n\t\t\tpattern: /^>.+/m,\n\t\t\talias: 'tag',\n\t\t\tinside: {\n\t\t\t\t'value': {\n\t\t\t\t\tpattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'operator'\n\t\t\t\t},\n\t\t\t\t'key': {\n\t\t\t\t\tpattern: /(^>)\\w+/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// # ...\n\t\t'label': {\n\t\t\tpattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'regex'\n\t\t},\n\t\t'command': {\n\t\t\tpattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function',\n\t\t\tinside: {\n\t\t\t\t'command-name': /^@\\w+/,\n\t\t\t\t'expression': {\n\t\t\t\t\tpattern: expressionDef,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'command-params': {\n\t\t\t\t\tpattern: /\\s*\\S[\\s\\S]*/,\n\t\t\t\t\tinside: params\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\t// Generic is any line that doesn't start with operators: ;>#@\n\t\t'generic-text': {\n\t\t\tpattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation',\n\t\t\tinside: {\n\t\t\t\t// \\{ ... \\} ... \\[ ... \\] ... \\\"\n\t\t\t\t'escaped-char': /\\\\[{}\\[\\]\"]/,\n\t\t\t\t'expression': {\n\t\t\t\t\tpattern: expressionDef,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'inline-command': {\n\t\t\t\t\tpattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\talias: 'function',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'command-params': {\n\t\t\t\t\t\t\tpattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\tinside: params\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'command-param-name': {\n\t\t\t\t\t\t\tpattern: /^(\\[[\\t ]*)\\w+/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: 'name',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'start-stop-char': /[\\[\\]]/,\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t};\n\tPrism.languages.nani = Prism.languages['naniscript'];\n\n\t/** @typedef {InstanceType} Token */\n\n\t/**\n\t * This hook is used to validate generic-text tokens for balanced brackets.\n\t * Mark token as bad-line when contains not balanced brackets: {},[]\n\t */\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\t/** @type {(Token | string)[]} */\n\t\tvar tokens = env.tokens;\n\t\ttokens.forEach(function (token) {\n\t\t\tif (typeof token !== \"string\" && token.type === 'generic-text') {\n\t\t\t\tvar content = getTextContent(token);\n\t\t\t\tif (!isBracketsBalanced(content)) {\n\t\t\t\t\ttoken.type = 'bad-line';\n\t\t\t\t\ttoken.content = content;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\t/**\n\t * @param {string} input\n\t * @returns {boolean}\n\t */\n\tfunction isBracketsBalanced(input) {\n\t\tvar brackets = \"[]{}\";\n\t\tvar stack = [];\n\t\tfor (var i = 0; i < input.length; i++) {\n\t\t\tvar bracket = input[i];\n\t\t\tvar bracketsIndex = brackets.indexOf(bracket);\n\t\t\tif (bracketsIndex !== -1) {\n\t\t\t\tif (bracketsIndex % 2 === 0) {\n\t\t\t\t\tstack.push(bracketsIndex + 1);\n\t\t\t\t} else if (stack.pop() !== bracketsIndex) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn stack.length === 0;\n\t};\n\n\t/**\n\t * @param {string | Token | (string | Token)[]} token\n\t * @returns {string}\n\t */\n\tfunction getTextContent(token) {\n\t\tif (typeof token === 'string') {\n\t\t\treturn token;\n\t\t} else if (Array.isArray(token)) {\n\t\t\treturn token.map(getTextContent).join('');\n\t\t} else {\n\t\t\treturn getTextContent(token.content);\n\t\t}\n\t}\n\n})(Prism);\n\n\n/***/ }),\n\n/***/ 2794:\n/***/ (function() {\n\nPrism.languages.nasm = {\n\t'comment': /;.*$/m,\n\t'string': /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t'label': {\n\t\tpattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'keyword': [\n\t\t/\\[?BITS (?:16|32|64)\\]?/,\n\t\t{\n\t\t\tpattern: /(^\\s*)section\\s*[a-zA-Z.]+:?/im,\n\t\t\tlookbehind: true\n\t\t},\n\t\t/(?:extern|global)[^;\\r\\n]*/i,\n\t\t/(?:CPU|FLOAT|DEFAULT).*$/m\n\t],\n\t'register': {\n\t\tpattern: /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\\b/i,\n\t\talias: 'variable'\n\t},\n\t'number': /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n\t'operator': /[\\[\\]*+\\-\\/%<>=&|$!]/\n};\n\n\n/***/ }),\n\n/***/ 9501:\n/***/ (function() {\n\nPrism.languages.neon = {\n\t'comment': {\n\t\tpattern: /#.*/,\n\t\tgreedy: true\n\t},\n\t'datetime': {\n\t\tpattern: /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n\t\tlookbehind: true,\n\t\talias: 'number'\n\t},\n\t'key': {\n\t\tpattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n\t\tlookbehind: true,\n\t\talias: 'atrule'\n\t},\n\t'number': {\n\t\tpattern: /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n\t\tlookbehind: true\n\t},\n\t'boolean': {\n\t\tpattern: /(^|[[{(=:,\\s])(?:true|false|yes|no)(?=$|[\\]}),:=\\s])/i,\n\t\tlookbehind: true\n\t},\n\t'null': {\n\t\tpattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n\t\tlookbehind: true,\n\t\talias: 'keyword'\n\t},\n\t'string': {\n\t\tpattern: /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'literal': {\n\t\tpattern: /(^|[[{(=:,\\s])(?:[^#\"\\',:=[\\]{}()\\s`-]|[:-][^\"\\',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n\t\tlookbehind: true,\n\t\talias: 'string',\n\t},\n\t'punctuation': /[,:=[\\]{}()-]/,\n};\n\n\n\n/***/ }),\n\n/***/ 838:\n/***/ (function() {\n\nPrism.languages.nginx = Prism.languages.extend('clike', {\n\t'comment': {\n\t\tpattern: /(^|[^\"{\\\\])#.*/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types|ssl_session_tickets|ssl_stapling|ssl_stapling_verify|ssl_ecdh_curve|ssl_trusted_certificate|more_set_headers|ssl_early_data)\\b/i\n});\n\nPrism.languages.insertBefore('nginx', 'keyword', {\n\t'variable': /\\$[a-z_]+/i\n});\n\n\n/***/ }),\n\n/***/ 4361:\n/***/ (function() {\n\nPrism.languages.nim = {\n\t'comment': /#.*/,\n\t// Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n\t// Character literals are handled specifically to prevent issues with numeric type suffixes\n\t'string': {\n\t\tpattern: /(?:(?:\\b(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")|'(?:\\\\(?:\\d+|x[\\da-fA-F]{2}|.)|[^'])')/,\n\t\tgreedy: true\n\t},\n\t// The negative look ahead prevents wrong highlighting of the .. operator\n\t'number': /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n\t'keyword': /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n\t'function': {\n\t\tpattern: /(?:(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n\t\tinside: {\n\t\t\t'operator': /\\*$/\n\t\t}\n\t},\n\t// We don't want to highlight operators inside backticks\n\t'ignore': {\n\t\tpattern: /`[^`\\r\\n]+`/,\n\t\tinside: {\n\t\t\t'punctuation': /`/\n\t\t}\n\t},\n\t'operator': {\n\t\t// Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n\t\t// but allow the slice operator .. to take precedence over them\n\t\t// One can define his own operators in Nim so all combination of operators might be an operator.\n\t\tpattern: /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\\b)/m,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n};\n\n/***/ }),\n\n/***/ 6386:\n/***/ (function() {\n\nPrism.languages.nix = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// The lookbehind ensures the ${} is not preceded by \\ or ''\n\t\t\t\tpattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'antiquotation': {\n\t\t\t\t\t\tpattern: /^\\$(?=\\{)/,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t}\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'url': [\n\t\t/\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n\t\t{\n\t\t\tpattern: /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'antiquotation': {\n\t\tpattern: /\\$(?=\\{)/,\n\t\talias: 'variable'\n\t},\n\t'number': /\\b\\d+\\b/,\n\t'keyword': /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n\t'function': /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'operator': /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n\t'punctuation': /[{}()[\\].,:;]/\n};\n\nPrism.languages.nix.string.inside.interpolation.inside.rest = Prism.languages.nix;\n\n\n/***/ }),\n\n/***/ 9160:\n/***/ (function() {\n\n/**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.02\n */\n Prism.languages.nsis = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n\t\tlookbehind: true\n\t},\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': {\n\t\tpattern: /(^\\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\\b/m,\n\t\tlookbehind: true\n\t},\n\t 'property': /\\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\\b/,\n\t'constant': /\\${[\\w\\.:\\^-]+}|\\$\\([\\w\\.:\\^-]+\\)/i,\n\t'variable': /\\$\\w+/i,\n\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t'operator': /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/,\n\t'important': {\n\t\tpattern: /(^\\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/mi,\n\t\tlookbehind: true\n\t}\n};\n\n\n/***/ }),\n\n/***/ 1412:\n/***/ (function() {\n\nPrism.languages.objectivec = Prism.languages.extend('c', {\n\t'string': /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n\t'keyword': /\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n\t'operator': /-[->]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n});\n\ndelete Prism.languages.objectivec['class-name'];\n\nPrism.languages.objc = Prism.languages.objectivec;\n\n\n/***/ }),\n\n/***/ 1094:\n/***/ (function() {\n\nPrism.languages.ocaml = {\n\t'comment': /\\(\\*[\\s\\S]*?\\*\\)/,\n\t'string': [\n\t\t{\n\t\t\tpattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'number': /\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?[\\d_]+)?)/i,\n\t'directive': {\n\t\tpattern: /\\B#\\w+/,\n\t\talias: 'important'\n\t},\n\t'label': {\n\t\tpattern: /\\B~\\w+/,\n\t\talias: 'function'\n\t},\n\t'type-variable': {\n\t\tpattern: /\\B'\\w+/,\n\t\talias: 'function'\n\t},\n\t'variant': {\n\t\tpattern: /`\\w+/,\n\t\talias: 'variable'\n\t},\n\t'module': {\n\t\tpattern: /\\b[A-Z]\\w+/,\n\t\talias: 'variable'\n\t},\n\t// For the list of keywords and operators,\n\t// see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n\t'keyword': /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t// Custom operators are allowed\n\t'operator': /:=|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n\t'punctuation': /[(){}\\[\\]|.,:;]|\\b_\\b/\n};\n\n\n/***/ }),\n\n/***/ 4971:\n/***/ (function() {\n\n(function (Prism) {\n\t/* OpenCL kernel language */\n\tPrism.languages.opencl = Prism.languages.extend('c', {\n\t\t// Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n\t\t'keyword': /\\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n\t\t// Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n\t\t// Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n\t\t// Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n\t\t'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n\t\t'boolean': /\\b(?:false|true)\\b/,\n\t\t'constant-opencl-kernel': {\n\t\t\tpattern: /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\\b/,\n\t\t\talias: 'constant'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('opencl', 'class-name', {\n\t\t// https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n\t\t// https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n\t\t'builtin-type': {\n\t\t\tpattern: /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n\t\t\talias: 'keyword'\n\t\t}\n\t});\n\n\tvar attributes = {\n\t\t// Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n\t\t'type-opencl-host': {\n\t\t\tpattern: /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t'boolean-opencl-host': {\n\t\t\tpattern: /\\bCL_(?:TRUE|FALSE)\\b/,\n\t\t\talias: 'boolean'\n\t\t},\n\t\t// Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n\t\t'constant-opencl-host': {\n\t\t\tpattern: /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n\t\t\talias: 'constant'\n\t\t},\n\t\t// Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n\t\t'function-opencl-host': {\n\t\t\tpattern: /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n\t\t\talias: 'function'\n\t\t}\n\t};\n\n\t/* OpenCL host API */\n\tPrism.languages.insertBefore('c', 'keyword', attributes);\n\n\t// C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n\tif (Prism.languages.cpp) {\n\t\t// Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n\t\tattributes['type-opencl-host-cpp'] = {\n\t\t\tpattern: /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\\b/,\n\t\t\talias: 'keyword'\n\t\t};\n\n\t\tPrism.languages.insertBefore('cpp', 'keyword', attributes);\n\t}\n}(Prism));\n\n\n/***/ }),\n\n/***/ 1439:\n/***/ (function() {\n\nPrism.languages.oz = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n\t\tgreedy: true\n\t},\n\t'atom': {\n\t\tpattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n\t\tgreedy: true,\n\t\talias: 'builtin'\n\t},\n\t'keyword': /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n\t'function': [\n\t\t/\\b[a-z][A-Za-z\\d]*(?=\\()/,\n\t\t{\n\t\t\tpattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'number': /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n\t'variable': /\\b[A-Z][A-Za-z\\d]*|`(?:[^`\\\\]|\\\\.)+`/,\n\t'attr-name': /\\w+(?=:)/,\n\t'operator': /:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n\t'punctuation': /[\\[\\](){}.:;?]/\n};\n\n\n/***/ }),\n\n/***/ 5784:\n/***/ (function() {\n\nPrism.languages.parigp = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n\t\tgreedy: true\n\t},\n\t// PARI/GP does not care about white spaces at all\n\t// so let's process the keywords to build an appropriate regexp\n\t// (e.g. \"b *r *e *a *k\", etc.)\n\t'keyword': (function () {\n\t\tvar keywords = [\n\t\t\t'breakpoint', 'break', 'dbg_down', 'dbg_err', 'dbg_up', 'dbg_x',\n\t\t\t'forcomposite', 'fordiv', 'forell', 'forpart', 'forprime',\n\t\t\t'forstep', 'forsubgroup', 'forvec', 'for', 'iferr', 'if',\n\t\t\t'local', 'my', 'next', 'return', 'until', 'while'\n\t\t];\n\t\tkeywords = keywords.map(function (keyword) {\n\t\t\treturn keyword.split('').join(' *');\n\t\t}).join('|');\n\t\treturn RegExp('\\\\b(?:' + keywords + ')\\\\b');\n\t}()),\n\t'function': /\\w(?:[\\w ]*\\w)?(?= *\\()/,\n\t'number': {\n\t\t// The lookbehind and the negative lookahead prevent from breaking the .. operator\n\t\tpattern: /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n\t\tlookbehind: true\n\t},\n\t'operator': /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n\t'punctuation': /[\\[\\]{}().,:;|]/\n};\n\n\n/***/ }),\n\n/***/ 2900:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar parser = Prism.languages.parser = Prism.languages.extend('markup', {\n\t\t'keyword': {\n\t\t\tpattern: /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'variable': {\n\t\t\tpattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\.|:+/\n\t\t\t}\n\t\t},\n\t\t'function': {\n\t\t\tpattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^@)(?:GET_|SET_)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\.|:+/\n\t\t\t}\n\t\t},\n\t\t'escape': {\n\t\t\tpattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n\t\t\talias: 'builtin'\n\t\t},\n\t\t'punctuation': /[\\[\\](){};]/\n\t});\n\n\tparser = Prism.languages.insertBefore('parser', 'keyword', {\n\t\t'parser-comment': {\n\t\t\tpattern: /(\\s)#.*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'comment'\n\t\t},\n\t\t'expression': {\n\t\t\t// Allow for 3 levels of depth\n\t\t\tpattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n\t\t\tgreedy: true,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'keyword': parser.keyword,\n\t\t\t\t'variable': parser.variable,\n\t\t\t\t'function': parser.function,\n\t\t\t\t'boolean': /\\b(?:true|false)\\b/,\n\t\t\t\t'number': /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n\t\t\t\t'escape': parser.escape,\n\t\t\t\t'operator': /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n\t\t\t\t'punctuation': parser.punctuation\n\t\t\t}\n\t\t}\n\t});\n\n\tparser = Prism.languages.insertBefore('inside', 'punctuation', {\n\t\t'expression': parser.expression,\n\t\t'keyword': parser.keyword,\n\t\t'variable': parser.variable,\n\t\t'function': parser.function,\n\t\t'escape': parser.escape,\n\t\t'parser-punctuation': {\n\t\t\tpattern: parser.punctuation,\n\t\t\talias: 'punctuation'\n\t\t}\n\t}, parser['tag'].inside['attr-value']);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9188:\n/***/ (function() {\n\n// Based on Free Pascal\n\n/* TODO\n\tSupport inline asm ?\n*/\n\nPrism.languages.pascal = {\n\t'comment': [\n\t\t/\\(\\*[\\s\\S]+?\\*\\)/,\n\t\t/\\{[\\s\\S]+?\\}/,\n\t\t/\\/\\/.*/\n\t],\n\t'string': {\n\t\tpattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n\t\tgreedy: true\n\t},\n\t'keyword': [\n\t\t{\n\t\t\t// Turbo Pascal\n\t\t\tpattern: /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// Free Pascal\n\t\t\tpattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// Object Pascal\n\t\t\tpattern: /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// Modifiers\n\t\t\tpattern: /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'number': [\n\t\t// Hexadecimal, octal and binary\n\t\t/(?:[&%]\\d+|\\$[a-f\\d]+)/i,\n\t\t// Decimal\n\t\t/\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n\t],\n\t'operator': [\n\t\t/\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/i,\n\t\t{\n\t\t\tpattern: /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'punctuation': /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n};\n\nPrism.languages.objectpascal = Prism.languages.pascal;\n\n\n/***/ }),\n\n/***/ 8271:\n/***/ (function() {\n\n(function (Prism) {\n\n\t// Pascaligo is a layer 2 smart contract language for the tezos blockchain\n\n\tvar braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source;\n\tvar type = /(?:\\w+(?:)?|)/.source.replace(//g, function () { return braces; });\n\n\tvar pascaligo = Prism.languages.pascaligo = {\n\t\t'comment': /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n\t\t'string': {\n\t\t\tpattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\btype\\s+\\w+\\s+is\\s+)/.source.replace(//g, function () { return type; }), 'i'),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(?=\\s+is\\b)/.source.replace(//g, function () { return type; }), 'i'),\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(:\\s*)/.source.replace(//g, function () { return type; })),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: null // see below\n\t\t\t}\n\t\t],\n\t\t'keyword': {\n\t\t\tpattern: /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[^&])\\b(?:True|False)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'builtin': {\n\t\t\tpattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function': /\\w+(?=\\s*\\()/i,\n\t\t'number': [\n\t\t\t// Hexadecimal, octal and binary\n\t\t\t/%[01]+|&[0-7]+|\\$[a-f\\d]+/i,\n\t\t\t// Decimal\n\t\t\t/\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n\t\t],\n\t\t'operator': /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n\t\t'punctuation': /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n\t};\n\n\tvar classNameInside = ['comment', 'keyword', 'builtin', 'operator', 'punctuation'].reduce(function (accum, key) {\n\t\taccum[key] = pascaligo[key];\n\t\treturn accum;\n\t}, {});\n\n\tpascaligo[\"class-name\"].forEach(function (p) {\n\t\tp.inside = classNameInside;\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 3463:\n/***/ (function() {\n\nPrism.languages.pcaxis = {\n\t'string': /\"[^\"]*\"/,\n\t'keyword': {\n\t\tpattern: /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'keyword': /^[-A-Z\\d]+/,\n\t\t\t'language': {\n\t\t\t\tpattern: /^(\\s*)\\[[-\\w]+\\]/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\\[|\\]$/,\n\t\t\t\t\t'property': /[-\\w]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'sub-key': {\n\t\t\t\tpattern: /^(\\s*)\\S[\\s\\S]*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'parameter': {\n\t\t\t\t\t\tpattern: /\"[^\"]*\"/,\n\t\t\t\t\t\talias: 'property'\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /^\\(|\\)$|,/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'operator': /=/,\n\t'tlist': {\n\t\tpattern: /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'function': /^TLIST/,\n\t\t\t'property': {\n\t\t\t\tpattern: /^(\\s*\\(\\s*)\\w+/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'string': /\"[^\"]*\"/,\n\t\t\t'punctuation': /[(),]/,\n\t\t\t'operator': /-/\n\t\t}\n\t},\n\t'punctuation': /[;,]/,\n\t'number': {\n\t\tpattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n\t\tlookbehind: true\n\t},\n\t'boolean': /YES|NO/,\n};\n\nPrism.languages.px = Prism.languages.pcaxis;\n\n\n/***/ }),\n\n/***/ 6678:\n/***/ (function() {\n\nPrism.languages.peoplecode = {\n\t'comment': RegExp([\n\t\t// C-style multiline comments\n\t\t/\\/\\*[\\s\\S]*?\\*\\//.source,\n\t\t// REM comments\n\t\t/\\bREM[^;]*;/.source,\n\t\t// Nested <* *> comments\n\t\t/<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source,\n\t\t// /+ +/ comments\n\t\t/\\/\\+[\\s\\S]*?\\+\\//.source,\n\t].join(\"|\")),\n\t'string': {\n\t\tpattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n\t\tgreedy: true\n\t},\n\t'variable': /%\\w+/,\n\t'function-definition': {\n\t\tpattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'class-name': {\n\t\tpattern: /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /:/\n\t\t}\n\t},\n\t'keyword': /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n\t'operator-keyword': {\n\t\tpattern: /\\b(?:and|not|or)\\b/i,\n\t\talias: 'operator'\n\t},\n\t'function': /[_a-z]\\w*(?=\\s*\\()/i,\n\n\t'boolean': /\\b(?:false|true)\\b/i,\n\t'number': /\\b\\d+(?:\\.\\d+)?\\b/,\n\t'operator': /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n\t'punctuation': /[:.;,()[\\]]/\n};\n\nPrism.languages.pcode = Prism.languages.peoplecode;\n\n\n/***/ }),\n\n/***/ 5637:\n/***/ (function() {\n\nPrism.languages.perl = {\n\t'comment': [\n\t\t{\n\t\t\t// POD\n\t\t\tpattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t// TODO Could be nice to handle Heredoc too.\n\t'string': [\n\t\t// q/.../\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// q a...a\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// q(...)\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// q{...}\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// q[...]\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// q<...>\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// \"...\", `...`\n\t\t{\n\t\t\tpattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// '...'\n\t\t// FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n\t\t{\n\t\t\tpattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'regex': [\n\t\t// m/.../\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// m a...a\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// m(...)\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// m{...}\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// m[...]\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// m<...>\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// The lookbehinds prevent -s from breaking\n\t\t// FIXME We don't handle change of separator like s(...)[...]\n\t\t// s/.../.../\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// s a...a...a\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// s(...)(...)\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// s{...}{...}\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// s[...][...]\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// s<...><...>\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// /.../\n\t\t// The look-ahead tries to prevent two divisions on\n\t\t// the same line from being highlighted as regex.\n\t\t// This does not support multi-line regex.\n\t\t{\n\t\t\tpattern: /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\n\t// FIXME Not sure about the handling of ::, ', and #\n\t'variable': [\n\t\t// ${^POSTMATCH}\n\t\t/[&*$@%]\\{\\^[A-Z]+\\}/,\n\t\t// $^V\n\t\t/[&*$@%]\\^[A-Z_]/,\n\t\t// ${...}\n\t\t/[&*$@%]#?(?=\\{)/,\n\t\t// $foo\n\t\t/[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+)+(?:::)*/i,\n\t\t// $1\n\t\t/[&*$@%]\\d+/,\n\t\t// $_, @_, %!\n\t\t// The negative lookahead prevents from breaking the %= operator\n\t\t/(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n\t],\n\t'filehandle': {\n\t\t// <>, , _\n\t\tpattern: /<(?![<=])\\S*>|\\b_\\b/,\n\t\talias: 'symbol'\n\t},\n\t'vstring': {\n\t\t// v1.2, 1.2.3\n\t\tpattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n\t\talias: 'string'\n\t},\n\t'function': {\n\t\tpattern: /sub [a-z0-9_]+/i,\n\t\tinside: {\n\t\t\tkeyword: /sub/\n\t\t}\n\t},\n\t'keyword': /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n\t'number': /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n\t'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,\n\t'punctuation': /[{}[\\];(),:]/\n};\n\n\n/***/ }),\n\n/***/ 4739:\n/***/ (function() {\n\nPrism.languages.insertBefore('php', 'variable', {\n\t'this': /\\$this\\b/,\n\t'global': /\\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\\b/,\n\t'scope': {\n\t\tpattern: /\\b[\\w\\\\]+::/,\n\t\tinside: {\n\t\t\tkeyword: /static|self|parent/,\n\t\t\tpunctuation: /::|\\\\/\n\t\t}\n\t}\n});\n\n/***/ }),\n\n/***/ 4999:\n/***/ (function() {\n\n/**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n(function (Prism) {\n\tvar comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/;\n\tvar constant = [\n\t\t{\n\t\t\tpattern: /\\b(?:false|true)\\b/i,\n\t\t\talias: 'boolean'\n\t\t},\n\t\t/\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/,\n\t\t/\\b(?:null)\\b/i,\n\t];\n\tvar number = /\\b0b[01]+\\b|\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i;\n\tvar operator = /|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/;\n\tvar punctuation = /[{}\\[\\](),:;]/;\n\n\tPrism.languages.php = {\n\t\t'delimiter': {\n\t\t\tpattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': comment,\n\t\t'variable': /\\$+(?:\\w+\\b|(?={))/i,\n\t\t'package': {\n\t\t\tpattern: /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\\\/\n\t\t\t}\n\t\t},\n\t\t'keyword': [\n\t\t\t{\n\t\t\t\tpattern: /(\\(\\s*)\\b(?:bool|boolean|int|integer|float|string|object|array)\\b(?=\\s*\\))/i,\n\t\t\t\talias: 'type-casting',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)\\b(?:bool|int|float|string|object|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-hint',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*[a-z0-9_|]\\|\\s*)(?:null|false)\\b(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-hint',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n\t\t\t\talias: 'return-type',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?[a-z0-9_|]\\|\\s*)(?:null|false)\\b/i,\n\t\t\t\talias: 'return-type',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)(?:null|false)\\b/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n\t\t\t\talias: 'static-context',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t/\\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\\b/i\n\t\t],\n\t\t'argument-name': /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'type-declaration'],\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n\t\t\t\talias: 'static-context',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'static-context'],\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-hint',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'type-hint'],\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\talias: 'return-type',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'return-type'],\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'constant': constant,\n\t\t'function': /\\w+\\s*(?=\\()/,\n\t\t'property': {\n\t\t\tpattern: /(->)[\\w]+/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'number': number,\n\t\t'operator': operator,\n\t\t'punctuation': punctuation\n\t};\n\n\tvar string_interpolation = {\n\t\tpattern: /{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)*)/,\n\t\tlookbehind: true,\n\t\tinside: Prism.languages.php\n\t};\n\n\tvar string = [\n\t\t{\n\t\t\tpattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n\t\t\talias: 'nowdoc-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<'?|[';]$/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n\t\t\talias: 'heredoc-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<\"?|[\";]$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'interpolation': string_interpolation // See below\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\t\talias: 'backtick-quoted-string',\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n\t\t\talias: 'single-quoted-string',\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n\t\t\talias: 'double-quoted-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': string_interpolation // See below\n\t\t\t}\n\t\t}\n\t];\n\n\tPrism.languages.insertBefore('php', 'variable', {\n\t\t'string': string,\n\t});\n\n\tPrism.languages.insertBefore('php', 'variable', {\n\t\t'attribute': {\n\t\t\tpattern: /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/mi,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'attribute-content': {\n\t\t\t\t\tpattern: /^(#\\[)[\\s\\S]+(?=]$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t// inside can appear subset of php\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'comment': comment,\n\t\t\t\t\t\t'string': string,\n\t\t\t\t\t\t'attribute-class-name': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\t\t\t\t\talias: 'class-name',\n\t\t\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n\t\t\t\t\t\t\t\talias: [\n\t\t\t\t\t\t\t\t\t'class-name',\n\t\t\t\t\t\t\t\t\t'class-name-fully-qualified'\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t'constant': constant,\n\t\t\t\t\t\t'number': number,\n\t\t\t\t\t\t'operator': operator,\n\t\t\t\t\t\t'punctuation': punctuation\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^#\\[|]$/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tif (!/<\\?/.test(env.code)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar phpPattern = /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/ig;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'php');\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 9484:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source;\n\n\tPrism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n\t\t'parameter': {\n\t\t\tpattern: RegExp('(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' + typeExpression + '\\\\s+)?)\\\\$\\\\w+'),\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('phpdoc', 'keyword', {\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: RegExp('(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' + typeExpression),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'keyword': /\\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\\b/,\n\t\t\t\t\t'punctuation': /[|\\\\[\\]()]/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t});\n\n\tPrism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 5212:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar plsql = Prism.languages.plsql = Prism.languages.extend('sql', {\n\t\t'comment': [\n\t\t\t/\\/\\*[\\s\\S]*?\\*\\//,\n\t\t\t/--.*/\n\t\t]\n\t});\n\n\tvar keyword = plsql['keyword'];\n\tif (!Array.isArray(keyword)) {\n\t\tkeyword = plsql['keyword'] = [keyword];\n\t}\n\tkeyword.unshift(\n\t\t/\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i\n\t);\n\n\tvar operator = plsql['operator'];\n\tif (!Array.isArray(operator)) {\n\t\toperator = plsql['operator'] = [operator];\n\t}\n\toperator.unshift(\n\t\t/:=/\n\t);\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 4509:\n/***/ (function() {\n\n// https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n\nPrism.languages.powerquery = {\n 'comment': {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/).*)/,\n lookbehind: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true,\n alias: 'variable'\n },\n 'string': {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'constant': [\n /\\bDay\\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:First|Last|All)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:List|Ignore|Error)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Double|Decimal)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n 'boolean': /\\b(?:true|false)\\b/,\n 'keyword': /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n 'function': {\n pattern: /(^|[^#\\w.])(?!\\d)[\\w.]+(?=\\s*\\()/,\n lookbehind: true\n },\n 'data-type': {\n pattern: /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\\b/,\n alias: 'variable'\n },\n 'number': {\n pattern: /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n 'operator': /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n 'punctuation': /[,;\\[\\](){}]/\n};\n\nPrism.languages.pq = Prism.languages['powerquery'];\nPrism.languages.mscript = Prism.languages['powerquery']\n\n/***/ }),\n\n/***/ 3133:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar powershell = Prism.languages.powershell = {\n\t\t'comment': [\n\t\t\t{\n\t\t\t\tpattern: /(^|[^`])<#[\\s\\S]*?#>/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(^|[^`])#.*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'string': [\n\t\t\t{\n\t\t\t\tpattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'function': {\n\t\t\t\t\t\t// Allow for one level of nesting\n\t\t\t\t\t\tpattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t// Populated at end of file\n\t\t\t\t\t\tinside: {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /'(?:[^']|'')*'/,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t// Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n\t\t// Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n\t\t'namespace': /\\[[a-z](?:\\[(?:\\[[^\\]]*]|[^\\[\\]])*]|[^\\[\\]])*]/i,\n\t\t'boolean': /\\$(?:true|false)\\b/i,\n\t\t'variable': /\\$\\w+\\b/,\n\t\t// Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n\t\t// Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n\t\t// Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n\t\t'function': [\n\t\t\t/\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n\t\t\t/\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n\t\t],\n\t\t// per http://technet.microsoft.com/en-us/library/hh847744.aspx\n\t\t'keyword': /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n\t\t'operator': {\n\t\t\tpattern: /(\\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[|{}[\\];(),.]/\n\t};\n\n\t// Variable interpolation inside strings, and nested expressions\n\tvar stringInside = powershell.string[0].inside;\n\tstringInside.boolean = powershell.boolean;\n\tstringInside.variable = powershell.variable;\n\tstringInside.function.inside = powershell;\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 755:\n/***/ (function() {\n\nPrism.languages.processing = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n\t'operator': /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n});\nPrism.languages.insertBefore('processing', 'number', {\n\t// Special case: XML is a type\n\t'constant': /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n\t'type': {\n\t\tpattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n\t\talias: 'variable'\n\t}\n});\n\n// Spaces are allowed between function name and parenthesis\nPrism.languages.processing['function'] = /\\w+(?=\\s*\\()/;\n\n// Class-names is not styled by default\nPrism.languages.processing['class-name'].alias = 'variable';\n\n\n/***/ }),\n\n/***/ 2685:\n/***/ (function() {\n\nPrism.languages.prolog = {\n\t// Syntax depends on the implementation\n\t'comment': [\n\t\t/%.+/,\n\t\t/\\/\\*[\\s\\S]*?\\*\\//\n\t],\n\t// Depending on the implementation, strings may allow escaped newlines and quote-escape\n\t'string': {\n\t\tpattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'builtin': /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n\t'variable': /\\b[A-Z_]\\w*/,\n\t// FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n\t'function': /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n\t'number': /\\b\\d+(?:\\.\\d*)?/,\n\t// Custom operators are allowed\n\t'operator': /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n\t'punctuation': /[(){}\\[\\],]/\n};\n\n\n/***/ }),\n\n/***/ 8447:\n/***/ (function() {\n\n// Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n// As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n\n(function (Prism) {\n\t// PromQL Aggregation Operators\n\t// (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n\tvar aggregations = [\n\t\t'sum',\n\t\t'min',\n\t\t'max',\n\t\t'avg',\n\t\t'group',\n\t\t'stddev',\n\t\t'stdvar',\n\t\t'count',\n\t\t'count_values',\n\t\t'bottomk',\n\t\t'topk',\n\t\t'quantile'\n\t];\n\n\t// PromQL vector matching + the by and without clauses\n\t// (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n\tvar vectorMatching = [\n\t\t'on',\n\t\t'ignoring',\n\t\t'group_right',\n\t\t'group_left',\n\t\t'by',\n\t\t'without',\n\t];\n\n\t// PromQL offset modifier\n\t// (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n\tvar offsetModifier = ['offset'];\n\n\tvar keywords = aggregations.concat(vectorMatching, offsetModifier);\n\n\tPrism.languages.promql = {\n\t\t'comment': {\n\t\t\tpattern: /(^[ \\t]*)#.*/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'vector-match': {\n\t\t\t// Match the comma-separated label lists inside vector matching:\n\t\t\tpattern: new RegExp('((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'label-key': {\n\t\t\t\t\tpattern: /\\b[^,]*\\b/,\n\t\t\t\t\talias: 'attr-name',\n\t\t\t\t},\n\t\t\t\t'punctuation': /[(),]/\n\t\t\t},\n\t\t},\n\t\t'context-labels': {\n\t\t\tpattern: /\\{[^{}]*\\}/,\n\t\t\tinside: {\n\t\t\t\t'label-key': {\n\t\t\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*(?:=~?|![=~]))/,\n\t\t\t\t\talias: 'attr-name',\n\t\t\t\t},\n\t\t\t\t'label-value': {\n\t\t\t\t\tpattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\talias: 'attr-value',\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\{|\\}|=~?|![=~]|,/,\n\t\t\t},\n\t\t},\n\t\t'context-range': [\n\t\t\t{\n\t\t\t\tpattern: /\\[[\\w\\s:]+\\]/, // [1m]\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\[|\\]|:/,\n\t\t\t\t\t'range-duration': {\n\t\t\t\t\t\tpattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n\t\t\t\t\t\talias: 'number',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\boffset\\s+)\\w+/, // offset 1m\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'range-duration': {\n\t\t\t\t\t\tpattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n\t\t\t\t\t\talias: 'number',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t'keyword': new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n\t\t'function': /\\b[a-zA-Z_]\\w*(?=\\s*\\()/i,\n\t\t'number': /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n\t\t'operator': /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|unless|or)\\b/i,\n\t\t'punctuation': /[{};()`,.[\\]]/,\n\t};\n})(Prism);\n\n\n/***/ }),\n\n/***/ 8103:\n/***/ (function() {\n\nPrism.languages.properties = {\n\t'comment': /^[ \\t]*[#!].*$/m,\n\t'attr-value': {\n\t\tpattern: /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n\t\tlookbehind: true\n\t},\n\t'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?= *[=:] *| )/m,\n\t'punctuation': /[=:]/\n};\n\n\n/***/ }),\n\n/***/ 3306:\n/***/ (function() {\n\n(function (Prism) {\n\n\tvar builtinTypes = /\\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\\b/;\n\n\tPrism.languages.protobuf = Prism.languages.extend('clike', {\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'keyword': /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n\t\t'function': /[a-z_]\\w*(?=\\s*\\()/i\n\t});\n\n\tPrism.languages.insertBefore('protobuf', 'operator', {\n\t\t'map': {\n\t\t\tpattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n\t\t\talias: 'class-name',\n\t\t\tinside: {\n\t\t\t\t'punctuation': /[<>.,]/,\n\t\t\t\t'builtin': builtinTypes\n\t\t\t}\n\t\t},\n\t\t'builtin': builtinTypes,\n\t\t'positional-class-name': {\n\t\t\tpattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n\t\t\talias: 'class-name',\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t},\n\t\t'annotation': {\n\t\t\tpattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n}(Prism));\n\n\n/***/ }),\n\n/***/ 3413:\n/***/ (function() {\n\n(function(Prism) {\n\t// TODO:\n\t// - Add CSS highlighting inside