{
  "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/trix/dist/trix.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/form_controller.js", "../../../node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js", "../../javascript/controllers/player_controller.js", "../../javascript/controllers/reveal_controller.js", "../../javascript/controllers/voice_messages_controller.js", "../../javascript/controllers/trikot_controller.js", "../../javascript/controllers/navbar_controller.js", "../../javascript/controllers/vote_controller.js", "../../javascript/controllers/rider_search_controller.js", "../../javascript/controllers/index.js", "../../javascript/application.js", "../../../node_modules/altcha/dist/main/altcha.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", "/*\nTrix 1.3.2\nCopyright \u00A9 2024 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function(){}).call(this),function(){var t;null==window.Set&&(window.Set=t=function(){function t(){this.clear()}return t.prototype.clear=function(){return this.values=[]},t.prototype.has=function(t){return-1!==this.values.indexOf(t)},t.prototype.add=function(t){return this.has(t)||this.values.push(t),this},t.prototype[\"delete\"]=function(t){var e;return-1===(e=this.values.indexOf(t))?!1:(this.values.splice(e,1),!0)},t.prototype.forEach=function(){var t;return(t=this.values).forEach.apply(t,arguments)},t}())}.call(this),function(t){function e(){}function n(t,e){return function(){t.apply(e,arguments)}}function i(t){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof t)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(t,this)}function o(t,e){for(;3===t._state;)t=t._value;return 0===t._state?void t._deferreds.push(e):(t._handled=!0,void h(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?r:s)(e.promise,t._value);var i;try{i=n(t._value)}catch(o){return void s(e.promise,o)}r(e.promise,i)}))}function r(t,e){try{if(e===t)throw new TypeError(\"A promise cannot be resolved with itself.\");if(e&&(\"object\"==typeof e||\"function\"==typeof e)){var o=e.then;if(e instanceof i)return t._state=3,t._value=e,void a(t);if(\"function\"==typeof o)return void c(n(o,e),t)}t._state=1,t._value=e,a(t)}catch(r){s(t,r)}}function s(t,e){t._state=2,t._value=e,a(t)}function a(t){2===t._state&&0===t._deferreds.length&&setTimeout(function(){t._handled||p(t._value)},1);for(var e=0,n=t._deferreds.length;n>e;e++)o(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled=\"function\"==typeof t?t:null,this.onRejected=\"function\"==typeof e?e:null,this.promise=n}function c(t,e){var n=!1;try{t(function(t){n||(n=!0,r(e,t))},function(t){n||(n=!0,s(e,t))})}catch(i){if(n)return;n=!0,s(e,i)}}var l=setTimeout,h=\"function\"==typeof setImmediate&&setImmediate||function(t){l(t,1)},p=function(t){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",t)};i.prototype[\"catch\"]=function(t){return this.then(null,t)},i.prototype.then=function(t,n){var r=new i(e);return o(this,new u(t,n,r)),r},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function i(r,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var a=s.then;if(\"function\"==typeof a)return void a.call(s,function(t){i(r,t)},n)}e[r]=s,0===--o&&t(e)}catch(u){n(u)}}if(0===e.length)return t([]);for(var o=e.length,r=0;r<e.length;r++)i(r,e[r])})},i.resolve=function(t){return t&&\"object\"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var i=0,o=t.length;o>i;i++)t[i].then(e,n)})},i._setImmediateFn=function(t){h=t},i._setUnhandledRejectionFn=function(t){p=t},\"undefined\"!=typeof module&&module.exports?module.exports=i:t.Promise||(t.Promise=i)}(this),function(){var t=\"object\"==typeof window.customElements,e=\"function\"==typeof document.registerElement,n=t||e;n||(/**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\"undefined\"==typeof WeakMap&&!function(){var t=Object.defineProperty,e=Date.now()%1e9,n=function(){this.name=\"__st\"+(1e9*Math.random()>>>0)+(e++ +\"__\")};n.prototype={set:function(e,n){var i=e[this.name];return i&&i[0]===e?i[1]=n:t(e,this.name,{value:[e,n],writable:!0}),this},get:function(t){var e;return(e=t[this.name])&&e[0]===t?e[1]:void 0},\"delete\":function(t){var e=t[this.name];return e&&e[0]===t?(e[0]=e[1]=void 0,!0):!1},has:function(t){var e=t[this.name];return e?e[0]===t:!1}},window.WeakMap=n}(),function(t){function e(t){A.push(t),b||(b=!0,g(i))}function n(t){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(t)||t}function i(){b=!1;var t=A;A=[],t.sort(function(t,e){return t.uid_-e.uid_});var e=!1;t.forEach(function(t){var n=t.takeRecords();o(t),n.length&&(t.callback_(n,t),e=!0)}),e&&i()}function o(t){t.nodes_.forEach(function(e){var n=m.get(e);n&&n.forEach(function(e){e.observer===t&&e.removeTransientObservers()})})}function r(t,e){for(var n=t;n;n=n.parentNode){var i=m.get(n);if(i)for(var o=0;o<i.length;o++){var r=i[o],s=r.options;if(n===t||s.subtree){var a=e(s);a&&r.enqueue(a)}}}}function s(t){this.callback_=t,this.nodes_=[],this.records_=[],this.uid_=++C}function a(t,e){this.type=t,this.target=e,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function u(t){var e=new a(t.type,t.target);return e.addedNodes=t.addedNodes.slice(),e.removedNodes=t.removedNodes.slice(),e.previousSibling=t.previousSibling,e.nextSibling=t.nextSibling,e.attributeName=t.attributeName,e.attributeNamespace=t.attributeNamespace,e.oldValue=t.oldValue,e}function c(t,e){return x=new a(t,e)}function l(t){return w?w:(w=u(x),w.oldValue=t,w)}function h(){x=w=void 0}function p(t){return t===w||t===x}function d(t,e){return t===e?t:w&&p(t)?w:null}function f(t,e,n){this.observer=t,this.target=e,this.options=n,this.transientObservedNodes=[]}if(!t.JsMutationObserver){var g,m=new WeakMap;if(/Trident|Edge/.test(navigator.userAgent))g=setTimeout;else if(window.setImmediate)g=window.setImmediate;else{var v=[],y=String(Math.random());window.addEventListener(\"message\",function(t){if(t.data===y){var e=v;v=[],e.forEach(function(t){t()})}}),g=function(t){v.push(t),window.postMessage(y,\"*\")}}var b=!1,A=[],C=0;s.prototype={observe:function(t,e){if(t=n(t),!e.childList&&!e.attributes&&!e.characterData||e.attributeOldValue&&!e.attributes||e.attributeFilter&&e.attributeFilter.length&&!e.attributes||e.characterDataOldValue&&!e.characterData)throw new SyntaxError;var i=m.get(t);i||m.set(t,i=[]);for(var o,r=0;r<i.length;r++)if(i[r].observer===this){o=i[r],o.removeListeners(),o.options=e;break}o||(o=new f(this,t,e),i.push(o),this.nodes_.push(t)),o.addListeners()},disconnect:function(){this.nodes_.forEach(function(t){for(var e=m.get(t),n=0;n<e.length;n++){var i=e[n];if(i.observer===this){i.removeListeners(),e.splice(n,1);break}}},this),this.records_=[]},takeRecords:function(){var t=this.records_;return this.records_=[],t}};var x,w;f.prototype={enqueue:function(t){var n=this.observer.records_,i=n.length;if(n.length>0){var o=n[i-1],r=d(o,t);if(r)return void(n[i-1]=r)}else e(this.observer);n[i]=t},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(t){var e=this.options;e.attributes&&t.addEventListener(\"DOMAttrModified\",this,!0),e.characterData&&t.addEventListener(\"DOMCharacterDataModified\",this,!0),e.childList&&t.addEventListener(\"DOMNodeInserted\",this,!0),(e.childList||e.subtree)&&t.addEventListener(\"DOMNodeRemoved\",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(t){var e=this.options;e.attributes&&t.removeEventListener(\"DOMAttrModified\",this,!0),e.characterData&&t.removeEventListener(\"DOMCharacterDataModified\",this,!0),e.childList&&t.removeEventListener(\"DOMNodeInserted\",this,!0),(e.childList||e.subtree)&&t.removeEventListener(\"DOMNodeRemoved\",this,!0)},addTransientObserver:function(t){if(t!==this.target){this.addListeners_(t),this.transientObservedNodes.push(t);var e=m.get(t);e||m.set(t,e=[]),e.push(this)}},removeTransientObservers:function(){var t=this.transientObservedNodes;this.transientObservedNodes=[],t.forEach(function(t){this.removeListeners_(t);for(var e=m.get(t),n=0;n<e.length;n++)if(e[n]===this){e.splice(n,1);break}},this)},handleEvent:function(t){switch(t.stopImmediatePropagation(),t.type){case\"DOMAttrModified\":var e=t.attrName,n=t.relatedNode.namespaceURI,i=t.target,o=new c(\"attributes\",i);o.attributeName=e,o.attributeNamespace=n;var s=t.attrChange===MutationEvent.ADDITION?null:t.prevValue;r(i,function(t){return!t.attributes||t.attributeFilter&&t.attributeFilter.length&&-1===t.attributeFilter.indexOf(e)&&-1===t.attributeFilter.indexOf(n)?void 0:t.attributeOldValue?l(s):o});break;case\"DOMCharacterDataModified\":var i=t.target,o=c(\"characterData\",i),s=t.prevValue;r(i,function(t){return t.characterData?t.characterDataOldValue?l(s):o:void 0});break;case\"DOMNodeRemoved\":this.addTransientObserver(t.target);case\"DOMNodeInserted\":var a,u,p=t.target;\"DOMNodeInserted\"===t.type?(a=[p],u=[]):(a=[],u=[p]);var d=p.previousSibling,f=p.nextSibling,o=c(\"childList\",t.target.parentNode);o.addedNodes=a,o.removedNodes=u,o.previousSibling=d,o.nextSibling=f,r(t.relatedNode,function(t){return t.childList?o:void 0})}h()}},t.JsMutationObserver=s,t.MutationObserver||(t.MutationObserver=s,s._isPolyfilled=!0)}}(self),function(){\"use strict\";if(!window.performance||!window.performance.now){var t=Date.now();window.performance={now:function(){return Date.now()-t}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var t=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return t?function(e){return t(function(){e(performance.now())})}:function(t){return window.setTimeout(t,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}}());var e=function(){var t=document.createEvent(\"Event\");return t.initEvent(\"foo\",!0,!0),t.preventDefault(),t.defaultPrevented}();if(!e){var n=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(n.call(this),Object.defineProperty(this,\"defaultPrevented\",{get:function(){return!0},configurable:!0}))}}var i=/Trident/.test(navigator.userAgent);if((!window.CustomEvent||i&&\"function\"!=typeof window.CustomEvent)&&(window.CustomEvent=function(t,e){e=e||{};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,Boolean(e.bubbles),Boolean(e.cancelable),e.detail),n},window.CustomEvent.prototype=window.Event.prototype),!window.Event||i&&\"function\"!=typeof window.Event){var o=window.Event;window.Event=function(t,e){e=e||{};var n=document.createEvent(\"Event\");return n.initEvent(t,Boolean(e.bubbles),Boolean(e.cancelable)),n},window.Event.prototype=o.prototype}}(window.WebComponents),window.CustomElements=window.CustomElements||{flags:{}},function(t){var e=t.flags,n=[],i=function(t){n.push(t)},o=function(){n.forEach(function(e){e(t)})};t.addModule=i,t.initializeModules=o,t.hasNative=Boolean(document.registerElement),t.isIE=/Trident/.test(navigator.userAgent),t.useNative=!e.register&&t.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(t){function e(t,e){n(t,function(t){return e(t)?!0:void i(t,e)}),i(t,e)}function n(t,e,i){var o=t.firstElementChild;if(!o)for(o=t.firstChild;o&&o.nodeType!==Node.ELEMENT_NODE;)o=o.nextSibling;for(;o;)e(o,i)!==!0&&n(o,e,i),o=o.nextElementSibling;return null}function i(t,n){for(var i=t.shadowRoot;i;)e(i,n),i=i.olderShadowRoot}function o(t,e){r(t,e,[])}function r(t,e,n){if(t=window.wrap(t),!(n.indexOf(t)>=0)){n.push(t);for(var i,o=t.querySelectorAll(\"link[rel=\"+s+\"]\"),a=0,u=o.length;u>a&&(i=o[a]);a++)i.import&&r(i.import,e,n);e(t)}}var s=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:\"none\";t.forDocumentTree=o,t.forSubtree=e}),window.CustomElements.addModule(function(t){function e(t,e){return n(t,e)||i(t,e)}function n(e,n){return t.upgrade(e,n)?!0:void(n&&s(e))}function i(t,e){b(t,function(t){return n(t,e)?!0:void 0})}function o(t){w.push(t),x||(x=!0,setTimeout(r))}function r(){x=!1;for(var t,e=w,n=0,i=e.length;i>n&&(t=e[n]);n++)t();w=[]}function s(t){C?o(function(){a(t)}):a(t)}function a(t){t.__upgraded__&&!t.__attached&&(t.__attached=!0,t.attachedCallback&&t.attachedCallback())}function u(t){c(t),b(t,function(t){c(t)})}function c(t){C?o(function(){l(t)}):l(t)}function l(t){t.__upgraded__&&t.__attached&&(t.__attached=!1,t.detachedCallback&&t.detachedCallback())}function h(t){for(var e=t,n=window.wrap(document);e;){if(e==n)return!0;e=e.parentNode||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host}}function p(t){if(t.shadowRoot&&!t.shadowRoot.__watched){y.dom&&console.log(\"watching shadow-root for: \",t.localName);for(var e=t.shadowRoot;e;)g(e),e=e.olderShadowRoot}}function d(t,n){if(y.dom){var i=n[0];if(i&&\"childList\"===i.type&&i.addedNodes&&i.addedNodes){for(var o=i.addedNodes[0];o&&o!==document&&!o.host;)o=o.parentNode;var r=o&&(o.URL||o._URL||o.host&&o.host.localName)||\"\";r=r.split(\"/?\").shift().split(\"/\").pop()}console.group(\"mutations (%d) [%s]\",n.length,r||\"\")}var s=h(t);n.forEach(function(t){\"childList\"===t.type&&(E(t.addedNodes,function(t){t.localName&&e(t,s)}),E(t.removedNodes,function(t){t.localName&&u(t)}))}),y.dom&&console.groupEnd()}function f(t){for(t=window.wrap(t),t||(t=window.wrap(document));t.parentNode;)t=t.parentNode;var e=t.__observer;e&&(d(t,e.takeRecords()),r())}function g(t){if(!t.__observer){var e=new MutationObserver(d.bind(this,t));e.observe(t,{childList:!0,subtree:!0}),t.__observer=e}}function m(t){t=window.wrap(t),y.dom&&console.group(\"upgradeDocument: \",t.baseURI.split(\"/\").pop());var n=t===window.wrap(document);e(t,n),g(t),y.dom&&console.groupEnd()}function v(t){A(t,m)}var y=t.flags,b=t.forSubtree,A=t.forDocumentTree,C=window.MutationObserver._isPolyfilled&&y[\"throttle-attached\"];t.hasPolyfillMutations=C,t.hasThrottledAttached=C;var x=!1,w=[],E=Array.prototype.forEach.call.bind(Array.prototype.forEach),S=Element.prototype.createShadowRoot;S&&(Element.prototype.createShadowRoot=function(){var t=S.call(this);return window.CustomElements.watchShadow(this),t}),t.watchShadow=p,t.upgradeDocumentTree=v,t.upgradeDocument=m,t.upgradeSubtree=i,t.upgradeAll=e,t.attached=s,t.takeRecords=f}),window.CustomElements.addModule(function(t){function e(e,i){if(\"template\"===e.localName&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(e),!e.__upgraded__&&e.nodeType===Node.ELEMENT_NODE){var o=e.getAttribute(\"is\"),r=t.getRegisteredDefinition(e.localName)||t.getRegisteredDefinition(o);if(r&&(o&&r.tag==e.localName||!o&&!r.extends))return n(e,r,i)}}function n(e,n,o){return s.upgrade&&console.group(\"upgrade:\",e.localName),n.is&&e.setAttribute(\"is\",n.is),i(e,n),e.__upgraded__=!0,r(e),o&&t.attached(e),t.upgradeSubtree(e,o),s.upgrade&&console.groupEnd(),e}function i(t,e){Object.__proto__?t.__proto__=e.prototype:(o(t,e.prototype,e.native),t.__proto__=e.prototype)}function o(t,e,n){for(var i={},o=e;o!==n&&o!==HTMLElement.prototype;){for(var r,s=Object.getOwnPropertyNames(o),a=0;r=s[a];a++)i[r]||(Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(o,r)),i[r]=1);o=Object.getPrototypeOf(o)}}function r(t){t.createdCallback&&t.createdCallback()}var s=t.flags;t.upgrade=e,t.upgradeWithDefinition=n,t.implementPrototype=i}),window.CustomElements.addModule(function(t){function e(e,i){var u=i||{};if(!e)throw new Error(\"document.registerElement: first argument `name` must not be empty\");if(e.indexOf(\"-\")<0)throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\"+String(e)+\"'.\");if(o(e))throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\"+String(e)+\"'. The type name is invalid.\");if(c(e))throw new Error(\"DuplicateDefinitionError: a type with name '\"+String(e)+\"' is already registered\");return u.prototype||(u.prototype=Object.create(HTMLElement.prototype)),u.__name=e.toLowerCase(),u.extends&&(u.extends=u.extends.toLowerCase()),u.lifecycle=u.lifecycle||{},u.ancestry=r(u.extends),s(u),a(u),n(u.prototype),l(u.__name,u),u.ctor=h(u),u.ctor.prototype=u.prototype,u.prototype.constructor=u.ctor,t.ready&&m(document),u.ctor}function n(t){if(!t.setAttribute._polyfilled){var e=t.setAttribute;t.setAttribute=function(t,n){i.call(this,t,n,e)};var n=t.removeAttribute;t.removeAttribute=function(t){i.call(this,t,null,n)},t.setAttribute._polyfilled=!0}}function i(t,e,n){t=t.toLowerCase();var i=this.getAttribute(t);n.apply(this,arguments);var o=this.getAttribute(t);this.attributeChangedCallback&&o!==i&&this.attributeChangedCallback(t,i,o)}function o(t){for(var e=0;e<C.length;e++)if(t===C[e])return!0}function r(t){var e=c(t);return e?r(e.extends).concat([e]):[]}function s(t){for(var e,n=t.extends,i=0;e=t.ancestry[i];i++)n=e.is&&e.tag;t.tag=n||t.__name,n&&(t.is=t.__name)}function a(t){if(!Object.__proto__){var e=HTMLElement.prototype;if(t.is){var n=document.createElement(t.tag);e=Object.getPrototypeOf(n)}for(var i,o=t.prototype,r=!1;o;)o==e&&(r=!0),i=Object.getPrototypeOf(o),i&&(o.__proto__=i),o=i;r||console.warn(t.tag+\" prototype not found in prototype chain for \"+t.is),t.native=e}}function u(t){return y(E(t.tag),t)}function c(t){return t?x[t.toLowerCase()]:void 0}function l(t,e){x[t]=e}function h(t){return function(){return u(t)}}function p(t,e,n){return t===w?d(e,n):S(t,e)}function d(t,e){t&&(t=t.toLowerCase()),e&&(e=e.toLowerCase());var n=c(e||t);if(n){if(t==n.tag&&e==n.is)return new n.ctor;if(!e&&!n.is)return new n.ctor}var i;return e?(i=d(t),i.setAttribute(\"is\",e),i):(i=E(t),t.indexOf(\"-\")>=0&&b(i,HTMLElement),i)}function f(t,e){var n=t[e];t[e]=function(){var t=n.apply(this,arguments);return v(t),t}}var g,m=(t.isIE,t.upgradeDocumentTree),v=t.upgradeAll,y=t.upgradeWithDefinition,b=t.implementPrototype,A=t.useNative,C=[\"annotation-xml\",\"color-profile\",\"font-face\",\"font-face-src\",\"font-face-uri\",\"font-face-format\",\"font-face-name\",\"missing-glyph\"],x={},w=\"http://www.w3.org/1999/xhtml\",E=document.createElement.bind(document),S=document.createElementNS.bind(document);g=Object.__proto__||A?function(t,e){return t instanceof e}:function(t,e){if(t instanceof e)return!0;for(var n=t;n;){if(n===e.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,\"cloneNode\"),f(document,\"importNode\"),document.registerElement=e,document.createElement=d,document.createElementNS=p,t.registry=x,t.instanceof=g,t.reservedTagList=C,t.getRegisteredDefinition=c,document.register=document.registerElement}),function(t){function e(){r(window.wrap(document)),window.CustomElements.ready=!0;var t=window.requestAnimationFrame||function(t){setTimeout(t,16)};t(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent(\"WebComponentsReady\",{bubbles:!0}))})})}var n=t.useNative,i=t.initializeModules;if(t.isIE,n){var o=function(){};t.watchShadow=o,t.upgrade=o,t.upgradeAll=o,t.upgradeDocumentTree=o,t.upgradeSubtree=o,t.takeRecords=o,t.instanceof=function(t,e){return t instanceof e}}else i();var r=t.upgradeDocumentTree,s=t.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(t){return t}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(t){t.import&&s(wrap(t.import))}),\"complete\"===document.readyState||t.flags.eager)e();else if(\"interactive\"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var a=window.HTMLImports&&!window.HTMLImports.ready?\"HTMLImportsLoaded\":\"DOMContentLoaded\";window.addEventListener(a,e)}else e()}(window.CustomElements))}.call(this),function(){}.call(this),function(){var t=this;(function(){(function(){this.Trix={VERSION:\"1.3.2\",ZERO_WIDTH_SPACE:\"\\ufeff\",NON_BREAKING_SPACE:\"\\xa0\",OBJECT_REPLACEMENT_CHARACTER:\"\\ufffc\",browser:{composesExistingText:/Android.*Chrome/.test(navigator.userAgent),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:function(){var t,e,n,i;if(\"undefined\"==typeof InputEvent)return!1;for(i=[\"data\",\"getTargetRanges\",\"inputType\"],t=0,e=i.length;e>t;t++)if(n=i[t],!(n in InputEvent.prototype))return!1;return!0}()},config:{}}}).call(this)}).call(t);var e=t.Trix;(function(){(function(){e.BasicObject=function(){function t(){}var e,n,i;return t.proxyMethod=function(t){var i,o,r,s,a;return r=n(t),i=r.name,s=r.toMethod,a=r.toProperty,o=r.optional,this.prototype[i]=function(){var t,n;return t=null!=s?o?\"function\"==typeof this[s]?this[s]():void 0:this[s]():null!=a?this[a]:void 0,o?(n=null!=t?t[i]:void 0,null!=n?e.call(n,t,arguments):void 0):(n=t[i],e.call(n,t,arguments))}},n=function(t){var e,n;if(!(n=t.match(i)))throw new Error(\"can't parse @proxyMethod expression: \"+t);return e={name:n[4]},null!=n[2]?e.toMethod=n[1]:e.toProperty=n[1],null!=n[3]&&(e.optional=!0),e},e=Function.prototype.apply,i=/^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/,t}()}).call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Object=function(n){function i(){this.id=++o}var o;return t(i,n),o=0,i.fromJSONString=function(t){return this.fromJSON(JSON.parse(t))},i.prototype.hasSameConstructorAs=function(t){return this.constructor===(null!=t?t.constructor:void 0)},i.prototype.isEqualTo=function(t){return this===t},i.prototype.inspect=function(){var t,e,n;return t=function(){var t,i,o;i=null!=(t=this.contentsForInspection())?t:{},o=[];for(e in i)n=i[e],o.push(e+\"=\"+n);return o}.call(this),\"#<\"+this.constructor.name+\":\"+this.id+(t.length?\" \"+t.join(\", \"):\"\")+\">\"},i.prototype.contentsForInspection=function(){},i.prototype.toJSONString=function(){return JSON.stringify(this)},i.prototype.toUTF16String=function(){return e.UTF16String.box(this)},i.prototype.getCacheKey=function(){return this.id.toString()},i}(e.BasicObject)}.call(this),function(){e.extend=function(t){var e,n;for(e in t)n=t[e],this[e]=n;return this}}.call(this),function(){e.extend({defer:function(t){return setTimeout(t,1)}})}.call(this),function(){var t,n;e.extend({normalizeSpaces:function(t){return t.replace(RegExp(\"\"+e.ZERO_WIDTH_SPACE,\"g\"),\"\").replace(RegExp(\"\"+e.NON_BREAKING_SPACE,\"g\"),\" \")},normalizeNewlines:function(t){return t.replace(/\\r\\n/g,\"\\n\")},breakableWhitespacePattern:RegExp(\"[^\\\\S\"+e.NON_BREAKING_SPACE+\"]\"),squishBreakableWhitespace:function(t){return t.replace(RegExp(\"\"+e.breakableWhitespacePattern.source,\"g\"),\" \").replace(/\\ {2,}/g,\" \")},summarizeStringChange:function(t,i){var o,r,s,a;return t=e.UTF16String.box(t),i=e.UTF16String.box(i),i.length<t.length?(r=n(t,i),a=r[0],o=r[1]):(s=n(i,t),o=s[0],a=s[1]),{added:o,removed:a}}}),n=function(n,i){var o,r,s,a,u;return n.isEqualTo(i)?[\"\",\"\"]:(r=t(n,i),a=r.utf16String.length,s=a?(u=r.offset,r,o=n.codepoints.slice(0,u).concat(n.codepoints.slice(u+a)),t(i,e.UTF16String.fromCodepoints(o))):t(i,n),[r.utf16String.toString(),s.utf16String.toString()])},t=function(t,e){var n,i,o;for(n=0,i=t.length,o=e.length;i>n&&t.charAt(n).isEqualTo(e.charAt(n));)n++;for(;i>n+1&&t.charAt(i-1).isEqualTo(e.charAt(o-1));)i--,o--;return{utf16String:t.slice(n,i),offset:n}}}.call(this),function(){e.extend({copyObject:function(t){var e,n,i;null==t&&(t={}),n={};for(e in t)i=t[e],n[e]=i;return n},objectsAreEqual:function(t,e){var n,i;if(null==t&&(t={}),null==e&&(e={}),Object.keys(t).length!==Object.keys(e).length)return!1;for(n in t)if(i=t[n],i!==e[n])return!1;return!0}})}.call(this),function(){var t=[].slice;e.extend({arraysAreEqual:function(t,e){var n,i,o,r;if(null==t&&(t=[]),null==e&&(e=[]),t.length!==e.length)return!1;for(i=n=0,o=t.length;o>n;i=++n)if(r=t[i],r!==e[i])return!1;return!0},arrayStartsWith:function(t,n){return null==t&&(t=[]),null==n&&(n=[]),e.arraysAreEqual(t.slice(0,n.length),n)},spliceArray:function(){var e,n,i;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],i=n.slice(0),i.splice.apply(i,e),i},summarizeArrayChange:function(t,e){var n,i,o,r,s,a,u,c,l,h,p;for(null==t&&(t=[]),null==e&&(e=[]),n=[],h=[],o=new Set,r=0,u=t.length;u>r;r++)p=t[r],o.add(p);for(i=new Set,s=0,c=e.length;c>s;s++)p=e[s],i.add(p),o.has(p)||n.push(p);for(a=0,l=t.length;l>a;a++)p=t[a],i.has(p)||h.push(p);return{added:n,removed:h}}})}.call(this),function(){var t,n,i,o;t=null,n=null,o=null,i=null,e.extend({getAllAttributeNames:function(){return null!=t?t:t=e.getTextAttributeNames().concat(e.getBlockAttributeNames())},getBlockConfig:function(t){return e.config.blockAttributes[t]},getBlockAttributeNames:function(){return null!=n?n:n=Object.keys(e.config.blockAttributes)},getTextConfig:function(t){return e.config.textAttributes[t]},getTextAttributeNames:function(){return null!=o?o:o=Object.keys(e.config.textAttributes)},getListAttributeNames:function(){var t,n;return null!=i?i:i=function(){var i,o;i=e.config.blockAttributes,o=[];for(t in i)n=i[t].listAttribute,null!=n&&o.push(n);return o}()}})}.call(this),function(){var t,n,i,o,r,s=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=document.documentElement,n=null!=(i=null!=(o=null!=(r=t.matchesSelector)?r:t.webkitMatchesSelector)?o:t.msMatchesSelector)?i:t.mozMatchesSelector,e.extend({handleEvent:function(n,i){var o,r,s,a,u,c,l,h,p,d,f,g;return h=null!=i?i:{},c=h.onElement,u=h.matchingSelector,g=h.withCallback,a=h.inPhase,l=h.preventDefault,d=h.times,r=null!=c?c:t,p=u,o=g,f=\"capturing\"===a,s=function(t){var n;return null!=d&&0===--d&&s.destroy(),n=e.findClosestElementFromNode(t.target,{matchingSelector:p}),null!=n&&(null!=g&&g.call(n,t,n),l)?t.preventDefault():void 0},s.destroy=function(){return r.removeEventListener(n,s,f)},r.addEventListener(n,s,f),s},handleEventOnce:function(t,n){return null==n&&(n={}),n.times=1,e.handleEvent(t,n)},triggerEvent:function(n,i){var o,r,s,a,u,c,l;return l=null!=i?i:{},c=l.onElement,r=l.bubbles,s=l.cancelable,o=l.attributes,a=null!=c?c:t,r=r!==!1,s=s!==!1,u=document.createEvent(\"Events\"),u.initEvent(n,r,s),null!=o&&e.extend.call(u,o),a.dispatchEvent(u)},elementMatchesSelector:function(t,e){return 1===(null!=t?t.nodeType:void 0)?n.call(t,e):void 0},findClosestElementFromNode:function(t,n){var i,o,r;for(o=null!=n?n:{},i=o.matchingSelector,r=o.untilNode;null!=t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==i)return t;if(t.closest&&null==r)return t.closest(i);for(;t&&t!==r;){if(e.elementMatchesSelector(t,i))return t;t=t.parentNode}}},findInnerElement:function(t){for(;null!=t?t.firstElementChild:void 0;)t=t.firstElementChild;return t},innerElementIsActive:function(t){return document.activeElement!==t&&e.elementContainsNode(t,document.activeElement)},elementContainsNode:function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},findNodeFromContainerAndOffset:function(t,e){var n;if(t)return t.nodeType===Node.TEXT_NODE?t:0===e?null!=(n=t.firstChild)?n:t:t.childNodes.item(e-1)},findElementFromContainerAndOffset:function(t,n){var i;return i=e.findNodeFromContainerAndOffset(t,n),e.findClosestElementFromNode(i)},findChildIndexOfNode:function(t){var e;if(null!=t?t.parentNode:void 0){for(e=0;t=t.previousSibling;)e++;return e}},removeNode:function(t){var e;return null!=t&&null!=(e=t.parentNode)?e.removeChild(t):void 0},walkTree:function(t,e){var n,i,o,r,s;return o=null!=e?e:{},i=o.onlyNodesOfType,r=o.usingFilter,n=o.expandEntityReferences,s=function(){switch(i){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}}(),document.createTreeWalker(t,s,null!=r?r:null,n===!0)},tagName:function(t){var e;return null!=t&&null!=(e=t.tagName)?e.toLowerCase():void 0},makeElement:function(t,e){var n,i,o,r,s,a,u,c,l,h,p,d,f,g;if(null==e&&(e={}),\"object\"==typeof t?(e=t,t=e.tagName):e={attributes:e},o=document.createElement(t),null!=e.editable&&(null==e.attributes&&(e.attributes={}),e.attributes.contenteditable=e.editable),e.attributes){l=e.attributes;for(a in l)g=l[a],o.setAttribute(a,g)}if(e.style){h=e.style;for(a in h)g=h[a],o.style[a]=g}if(e.data){p=e.data;for(a in p)g=p[a],o.dataset[a]=g}if(e.className)for(d=e.className.split(\" \"),r=0,u=d.length;u>r;r++)i=d[r],o.classList.add(i);if(e.textContent&&(o.textContent=e.textContent),e.childNodes)for(f=[].concat(e.childNodes),s=0,c=f.length;c>s;s++)n=f[s],o.appendChild(n);return o},getBlockTagNames:function(){var t,n;return null!=e.blockTagNames?e.blockTagNames:e.blockTagNames=function(){var i,o;i=e.config.blockAttributes,o=[];for(t in i)n=i[t].tagName,n&&o.push(n);return o}()},nodeIsBlockContainer:function(t){return e.nodeIsBlockStartComment(null!=t?t.firstChild:void 0)},nodeProbablyIsBlockContainer:function(t){var n,i;return n=e.tagName(t),s.call(e.getBlockTagNames(),n)>=0&&(i=e.tagName(t.firstChild),s.call(e.getBlockTagNames(),i)<0)},nodeIsBlockStart:function(t,n){var i;return i=(null!=n?n:{strict:!0}).strict,i?e.nodeIsBlockStartComment(t):e.nodeIsBlockStartComment(t)||!e.nodeIsBlockStartComment(t.firstChild)&&e.nodeProbablyIsBlockContainer(t)},nodeIsBlockStartComment:function(t){return e.nodeIsCommentNode(t)&&\"block\"===(null!=t?t.data:void 0)},nodeIsCommentNode:function(t){return(null!=t?t.nodeType:void 0)===Node.COMMENT_NODE},nodeIsCursorTarget:function(t,n){var i;return i=(null!=n?n:{}).name,t?e.nodeIsTextNode(t)?t.data===e.ZERO_WIDTH_SPACE?i?t.parentNode.dataset.trixCursorTarget===i:!0:void 0:e.nodeIsCursorTarget(t.firstChild):void 0},nodeIsAttachmentElement:function(t){return e.elementMatchesSelector(t,e.AttachmentView.attachmentSelector)},nodeIsEmptyTextNode:function(t){return e.nodeIsTextNode(t)&&\"\"===(null!=t?t.data:void 0)},nodeIsTextNode:function(t){return(null!=t?t.nodeType:void 0)===Node.TEXT_NODE}})}.call(this),function(){var t,n,i,o,r;t=e.copyObject,o=e.objectsAreEqual,e.extend({normalizeRange:i=function(t){var e;if(null!=t)return Array.isArray(t)||(t=[t,t]),[n(t[0]),n(null!=(e=t[1])?e:t[0])]},rangeIsCollapsed:function(t){var e,n,o;if(null!=t)return n=i(t),o=n[0],e=n[1],r(o,e)},rangesAreEqual:function(t,e){var n,o,s,a,u,c;if(null!=t&&null!=e)return s=i(t),o=s[0],n=s[1],a=i(e),c=a[0],u=a[1],r(o,c)&&r(n,u)}}),n=function(e){return\"number\"==typeof e?e:t(e)},r=function(t,e){return\"number\"==typeof t?t===e:o(t,e)}}.call(this),function(){var t,n,i,o,r,s,a;e.registerElement=function(t,e){var n,i;return null==e&&(e={}),t=t.toLowerCase(),e=a(e),i=s(e),(n=i.defaultCSS)&&(delete i.defaultCSS,o(n,t)),r(t,i)},o=function(t,e){var n;return n=i(e),n.textContent=t.replace(/%t/g,e)},i=function(e){var n,i;return n=document.createElement(\"style\"),n.setAttribute(\"type\",\"text/css\"),n.setAttribute(\"data-tag-name\",e.toLowerCase()),(i=t())&&n.setAttribute(\"nonce\",i),document.head.insertBefore(n,document.head.firstChild),n},t=function(){var t;return(t=n(\"trix-csp-nonce\")||n(\"csp-nonce\"))?t.getAttribute(\"content\"):void 0},n=function(t){return document.head.querySelector(\"meta[name=\"+t+\"]\")},s=function(t){var e,n,i;n={};for(e in t)i=t[e],n[e]=\"function\"==typeof i?{value:i}:i;return n},a=function(){var t;return t=function(t){var e,n,i,o,r;for(e={},r=[\"initialize\",\"connect\",\"disconnect\"],n=0,o=r.length;o>n;n++)i=r[n],e[i]=t[i],delete t[i];return e},window.customElements?function(e){var n,i,o,r,s;return s=t(e),o=s.initialize,n=s.connect,i=s.disconnect,o&&(r=n,n=function(){return this.initialized||(this.initialized=!0,o.call(this)),null!=r?r.call(this):void 0}),n&&(e.connectedCallback=n),i&&(e.disconnectedCallback=i),e}:function(e){var n,i,o,r;return r=t(e),o=r.initialize,n=r.connect,i=r.disconnect,o&&(e.createdCallback=o),n&&(e.attachedCallback=n),i&&(e.detachedCallback=i),e}}(),r=function(){return window.customElements?function(t,e){var n;return n=function(){return\"object\"==typeof Reflect?Reflect.construct(HTMLElement,[],n):HTMLElement.apply(this)},Object.setPrototypeOf(n.prototype,HTMLElement.prototype),Object.setPrototypeOf(n,HTMLElement),Object.defineProperties(n.prototype,e),window.customElements.define(t,n),n}:function(t,e){var n,i;return i=Object.create(HTMLElement.prototype,e),n=document.registerElement(t,{prototype:i}),Object.defineProperty(i,\"constructor\",{value:n}),n}}()}.call(this),function(){var t,n;e.extend({getDOMSelection:function(){var t;return t=window.getSelection(),t.rangeCount>0?t:void 0},getDOMRange:function(){var n,i;return(n=null!=(i=e.getDOMSelection())?i.getRangeAt(0):void 0)&&!t(n)?n:void 0},setDOMRange:function(t){var n;return n=window.getSelection(),n.removeAllRanges(),n.addRange(t),e.selectionChangeObserver.update()}}),t=function(t){return n(t.startContainer)||n(t.endContainer)},n=function(t){return!Object.getPrototypeOf(t)}}.call(this),function(){var t;t={\"application/x-trix-feature-detection\":\"test\"},e.extend({dataTransferIsPlainText:function(t){var e,n,i;return i=t.getData(\"text/plain\"),n=t.getData(\"text/html\"),i&&n?(e=(new DOMParser).parseFromString(n,\"text/html\").body,e.textContent===i?!e.querySelector(\"*\"):void 0):null!=i?i.length:void 0},dataTransferIsWritable:function(e){var n,i;if(null!=(null!=e?e.setData:void 0)){for(n in t)if(i=t[n],!function(){try{return e.setData(n,i),e.getData(n)===i}catch(t){}}())return;return!0}},keyEventIsKeyboardCommand:function(){return/Mac|^iP/.test(navigator.platform)?function(t){return t.metaKey}:function(t){return t.ctrlKey}}()})}.call(this),function(){e.extend({RTL_PATTERN:/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,getDirection:function(){var t,n,i,o;return n=e.makeElement(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),t=e.makeElement(\"form\"),t.appendChild(n),i=function(){try{return new FormData(t).has(n.dirName)}catch(e){}}(),o=function(){try{return n.matches(\":dir(ltr),:dir(rtl)\")}catch(t){}}(),i?function(e){return n.value=e,new FormData(t).get(n.dirName)}:o?function(t){return n.value=t,n.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){var n;return n=t.trim().charAt(0),e.RTL_PATTERN.test(n)?\"rtl\":\"ltr\"}}()})}.call(this),function(){}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.arraysAreEqual,e.Hash=function(i){function o(t){null==t&&(t={}),this.values=s(t),o.__super__.constructor.apply(this,arguments)}var r,s,a,u,c;return n(o,i),o.fromCommonAttributesOfObjects=function(t){var e,n,i,o,s,a;if(null==t&&(t=[]),!t.length)return new this;for(e=r(t[0]),i=e.getKeys(),a=t.slice(1),n=0,o=a.length;o>n;n++)s=a[n],i=e.getKeysCommonToHash(r(s)),e=e.slice(i);return e},o.box=function(t){return r(t)},o.prototype.add=function(t,e){return this.merge(u(t,e))},o.prototype.remove=function(t){return new e.Hash(s(this.values,t))},o.prototype.get=function(t){return this.values[t]},o.prototype.has=function(t){return t in this.values},o.prototype.merge=function(t){return new e.Hash(a(this.values,c(t)))},o.prototype.slice=function(t){var n,i,o,r;for(r={},n=0,o=t.length;o>n;n++)i=t[n],this.has(i)&&(r[i]=this.values[i]);return new e.Hash(r)},o.prototype.getKeys=function(){return Object.keys(this.values)},o.prototype.getKeysCommonToHash=function(t){var e,n,i,o,s;for(t=r(t),o=this.getKeys(),s=[],e=0,i=o.length;i>e;e++)n=o[e],this.values[n]===t.values[n]&&s.push(n);return s},o.prototype.isEqualTo=function(e){return t(this.toArray(),r(e).toArray())},o.prototype.isEmpty=function(){return 0===this.getKeys().length},o.prototype.toArray=function(){var t,e,n;return(null!=this.array?this.array:this.array=function(){var i;e=[],i=this.values;for(t in i)n=i[t],e.push(t,n);return e}.call(this)).slice(0)},o.prototype.toObject=function(){return s(this.values)},o.prototype.toJSON=function(){return this.toObject()},o.prototype.contentsForInspection=function(){return{values:JSON.stringify(this.values)}},u=function(t,e){var n;return n={},n[t]=e,n},a=function(t,e){var n,i,o;i=s(t);for(n in e)o=e[n],i[n]=o;return i},s=function(t,e){var n,i,o,r,s;for(r={},s=Object.keys(t).sort(),n=0,o=s.length;o>n;n++)i=s[n],i!==e&&(r[i]=t[i]);return r},r=function(t){return t instanceof e.Hash?t:new e.Hash(t)},c=function(t){return t instanceof e.Hash?t.values:t\n},o}(e.Object)}.call(this),function(){e.ObjectGroup=function(){function t(t,e){var n,i;this.objects=null!=t?t:[],i=e.depth,n=e.asTree,n&&(this.depth=i,this.objects=this.constructor.groupObjects(this.objects,{asTree:n,depth:this.depth+1}))}return t.groupObjects=function(t,e){var n,i,o,r,s,a,u,c,l;for(null==t&&(t=[]),l=null!=e?e:{},o=l.depth,n=l.asTree,n&&null==o&&(o=0),c=[],s=0,a=t.length;a>s;s++){if(u=t[s],r){if((\"function\"==typeof u.canBeGrouped?u.canBeGrouped(o):void 0)&&(\"function\"==typeof(i=r[r.length-1]).canBeGroupedWith?i.canBeGroupedWith(u,o):void 0)){r.push(u);continue}c.push(new this(r,{depth:o,asTree:n})),r=null}(\"function\"==typeof u.canBeGrouped?u.canBeGrouped(o):void 0)?r=[u]:c.push(u)}return r&&c.push(new this(r,{depth:o,asTree:n})),c},t.prototype.getObjects=function(){return this.objects},t.prototype.getDepth=function(){return this.depth},t.prototype.getCacheKey=function(){var t,e,n,i,o;for(e=[\"objectGroup\"],o=this.getObjects(),t=0,n=o.length;n>t;t++)i=o[t],e.push(i.getCacheKey());return e.join(\"/\")},t}()}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ObjectMap=function(e){function n(t){var e,n,i,o,r;for(null==t&&(t=[]),this.objects={},i=0,o=t.length;o>i;i++)r=t[i],n=JSON.stringify(r),null==(e=this.objects)[n]&&(e[n]=r)}return t(n,e),n.prototype.find=function(t){var e;return e=JSON.stringify(t),this.objects[e]},n}(e.BasicObject)}.call(this),function(){e.ElementStore=function(){function t(t){this.reset(t)}var e;return t.prototype.add=function(t){var n;return n=e(t),this.elements[n]=t},t.prototype.remove=function(t){var n,i;return n=e(t),(i=this.elements[n])?(delete this.elements[n],i):void 0},t.prototype.reset=function(t){var e,n,i;for(null==t&&(t=[]),this.elements={},n=0,i=t.length;i>n;n++)e=t[n],this.add(e);return t},e=function(t){return t.dataset.trixStoreKey},t}()}.call(this),function(){}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Operation=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.isPerforming=function(){return this.performing===!0},n.prototype.hasPerformed=function(){return this.performed===!0},n.prototype.hasSucceeded=function(){return this.performed&&this.succeeded},n.prototype.hasFailed=function(){return this.performed&&!this.succeeded},n.prototype.getPromise=function(){return null!=this.promise?this.promise:this.promise=new Promise(function(t){return function(e,n){return t.performing=!0,t.perform(function(i,o){return t.succeeded=i,t.performing=!1,t.performed=!0,t.succeeded?e(o):n(o)})}}(this))},n.prototype.perform=function(t){return t(!1)},n.prototype.release=function(){var t;return null!=(t=this.promise)&&\"function\"==typeof t.cancel&&t.cancel(),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null},n.proxyMethod(\"getPromise().then\"),n.proxyMethod(\"getPromise().catch\"),n}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s=function(t,e){function n(){this.constructor=t}for(var i in e)a.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},a={}.hasOwnProperty;e.UTF16String=function(t){function e(t,e){this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}return s(e,t),e.box=function(t){return null==t&&(t=\"\"),t instanceof this?t:this.fromUCS2String(null!=t?t.toString():void 0)},e.fromUCS2String=function(t){return new this(t,o(t))},e.fromCodepoints=function(t){return new this(r(t),t)},e.prototype.offsetToUCS2Offset=function(t){return r(this.codepoints.slice(0,Math.max(0,t))).length},e.prototype.offsetFromUCS2Offset=function(t){return o(this.ucs2String.slice(0,Math.max(0,t))).length},e.prototype.slice=function(){var t;return this.constructor.fromCodepoints((t=this.codepoints).slice.apply(t,arguments))},e.prototype.charAt=function(t){return this.slice(t,t+1)},e.prototype.isEqualTo=function(t){return this.constructor.box(t).ucs2String===this.ucs2String},e.prototype.toJSON=function(){return this.ucs2String},e.prototype.getCacheKey=function(){return this.ucs2String},e.prototype.toString=function(){return this.ucs2String},e}(e.BasicObject),t=1===(\"function\"==typeof Array.from?Array.from(\"\\ud83d\\udc7c\").length:void 0),n=null!=(\"function\"==typeof\" \".codePointAt?\" \".codePointAt(0):void 0),i=\" \\ud83d\\udc7c\"===(\"function\"==typeof String.fromCodePoint?String.fromCodePoint(32,128124):void 0),o=t&&n?function(t){return Array.from(t).map(function(t){return t.codePointAt(0)})}:function(t){var e,n,i,o,r;for(o=[],e=0,i=t.length;i>e;)r=t.charCodeAt(e++),r>=55296&&56319>=r&&i>e&&(n=t.charCodeAt(e++),56320===(64512&n)?r=((1023&r)<<10)+(1023&n)+65536:e--),o.push(r);return o},r=i?function(t){return String.fromCodePoint.apply(String,t)}:function(t){var e,n,i;return e=function(){var e,o,r;for(r=[],e=0,o=t.length;o>e;e++)i=t[e],n=\"\",i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|1023&i),r.push(n+String.fromCharCode(i));return r}(),e.join(\"\")}}.call(this),function(){}.call(this),function(){}.call(this),function(){e.config.lang={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",\"byte\":\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption\\u2026\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL\\u2026\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"}}.call(this),function(){e.config.css={attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"}}.call(this),function(){var t;e.config.blockAttributes=t={\"default\":{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test:function(n){return e.tagName(n.parentNode)===t[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test:function(n){return e.tagName(n.parentNode)===t[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}}}.call(this),function(){var t,n;t=e.config.lang,n=[t.bytes,t.KB,t.MB,t.GB,t.TB,t.PB],e.config.fileSize={prefix:\"IEC\",precision:2,formatter:function(e){var i,o,r,s,a;switch(e){case 0:return\"0 \"+t.bytes;case 1:return\"1 \"+t.byte;default:return i=function(){switch(this.prefix){case\"SI\":return 1e3;case\"IEC\":return 1024}}.call(this),o=Math.floor(Math.log(e)/Math.log(i)),r=e/Math.pow(i,o),s=r.toFixed(this.precision),a=s.replace(/0*$/,\"\").replace(/\\.$/,\"\"),a+\" \"+n[o]}}}}.call(this),function(){e.config.textAttributes={bold:{tagName:\"strong\",inheritable:!0,parser:function(t){var e;return e=window.getComputedStyle(t),\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:function(t){var e;return e=window.getComputedStyle(t),\"italic\"===e.fontStyle}},href:{groupTagName:\"a\",parser:function(t){var n,i,o;return n=e.AttachmentView.attachmentSelector,o=\"a:not(\"+n+\")\",(i=e.findClosestElementFromNode(t,{matchingSelector:o}))?i.getAttribute(\"href\"):void 0}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}}}.call(this),function(){var t,n,i,o,r;r=\"[data-trix-serialize=false]\",o=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],n=\"data-trix-serialized-attributes\",i=\"[\"+n+\"]\",t=new RegExp(\"<!--block-->\",\"g\"),e.extend({serializers:{\"application/json\":function(t){var n;if(t instanceof e.Document)n=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");n=e.Document.fromHTML(t.innerHTML)}return n.toSerializableDocument().toJSONString()},\"text/html\":function(s){var a,u,c,l,h,p,d,f,g,m,v,y,b,A,C,x,w;if(s instanceof e.Document)l=e.DocumentView.render(s);else{if(!(s instanceof HTMLElement))throw new Error(\"unserializable object\");l=s.cloneNode(!0)}for(A=l.querySelectorAll(r),h=0,g=A.length;g>h;h++)c=A[h],e.removeNode(c);for(p=0,m=o.length;m>p;p++)for(a=o[p],C=l.querySelectorAll(\"[\"+a+\"]\"),d=0,v=C.length;v>d;d++)c=C[d],c.removeAttribute(a);for(x=l.querySelectorAll(i),f=0,y=x.length;y>f;f++){c=x[f];try{u=JSON.parse(c.getAttribute(n)),c.removeAttribute(n);for(b in u)w=u[b],c.setAttribute(b,w)}catch(E){}}return l.innerHTML.replace(t,\"\")}},deserializers:{\"application/json\":function(t){return e.Document.fromJSONString(t)},\"text/html\":function(t){return e.Document.fromHTML(t)}},serializeToContentType:function(t,n){var i;if(i=e.serializers[n])return i(t);throw new Error(\"unknown content type: \"+n)},deserializeFromContentType:function(t,n){var i;if(i=e.deserializers[n])return i(t);throw new Error(\"unknown content type: \"+n)}})}.call(this),function(){var t;t=e.config.lang,e.config.toolbar={getDefaultHTML:function(){return'<div class=\"trix-button-row\">\\n  <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'+t.bold+'\" tabindex=\"-1\">'+t.bold+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"'+t.italic+'\" tabindex=\"-1\">'+t.italic+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"'+t.strike+'\" tabindex=\"-1\">'+t.strike+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"'+t.link+'\" tabindex=\"-1\">'+t.link+'</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"'+t.heading1+'\" tabindex=\"-1\">'+t.heading1+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"'+t.quote+'\" tabindex=\"-1\">'+t.quote+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"'+t.code+'\" tabindex=\"-1\">'+t.code+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"'+t.bullets+'\" tabindex=\"-1\">'+t.bullets+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"'+t.numbers+'\" tabindex=\"-1\">'+t.numbers+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"'+t.outdent+'\" tabindex=\"-1\">'+t.outdent+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"'+t.indent+'\" tabindex=\"-1\">'+t.indent+'</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"'+t.attachFiles+'\" tabindex=\"-1\">'+t.attachFiles+'</button>\\n  </span>\\n\\n  <span class=\"trix-button-group-spacer\"></span>\\n\\n  <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"'+t.undo+'\" tabindex=\"-1\">'+t.undo+'</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"'+t.redo+'\" tabindex=\"-1\">'+t.redo+'</button>\\n  </span>\\n</div>\\n\\n<div class=\"trix-dialogs\" data-trix-dialogs>\\n  <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n    <div class=\"trix-dialog__link-fields\">\\n      <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"'+t.urlPlaceholder+'\" aria-label=\"'+t.url+'\" required data-trix-input>\\n      <div class=\"trix-button-group\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"'+t.link+'\" data-trix-method=\"setAttribute\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"'+t.unlink+'\" data-trix-method=\"removeAttribute\">\\n      </div>\\n    </div>\\n  </div>\\n</div>'}}}.call(this),function(){e.config.undoInterval=5e3}.call(this),function(){e.config.attachments={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}}}.call(this),function(){e.config.keyNames={8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"}}.call(this),function(){e.config.input={level2Enabled:!0,getLevel:function(){return this.level2Enabled&&e.browser.supportsInputEvents?2:0},pickFiles:function(t){var n;return n=e.makeElement(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId}),n.addEventListener(\"change\",function(){return t(n.files),e.removeNode(n)}),e.removeNode(document.getElementById(this.fileInputId)),document.body.appendChild(n),n.click()},fileInputId:\"trix-file-input-\"+Date.now().toString(16)}}.call(this),function(){}.call(this),function(){e.registerElement(\"trix-toolbar\",{defaultCSS:\"%t {\\n  display: block;\\n}\\n\\n%t {\\n  white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n  display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n  display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n  background-color: #ffdddd;\\n}\",initialize:function(){return\"\"===this.innerHTML?this.innerHTML=e.config.toolbar.getDefaultHTML():void 0}})}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty,i=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};e.ObjectView=function(n){function o(t,e){this.object=t,this.options=null!=e?e:{},this.childViews=[],this.rootView=this}return t(o,n),o.prototype.getNodes=function(){var t,e,n,i,o;for(null==this.nodes&&(this.nodes=this.createNodes()),i=this.nodes,o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.cloneNode(!0));return o},o.prototype.invalidate=function(){var t;return this.nodes=null,this.childViews=[],null!=(t=this.parentView)?t.invalidate():void 0},o.prototype.invalidateViewForObject=function(t){var e;return null!=(e=this.findViewForObject(t))?e.invalidate():void 0},o.prototype.findOrCreateCachedChildView=function(t,e){var n;return(n=this.getCachedViewForObject(e))?this.recordChildView(n):(n=this.createChildView.apply(this,arguments),this.cacheViewForObject(n,e)),n},o.prototype.createChildView=function(t,n,i){var o;return null==i&&(i={}),n instanceof e.ObjectGroup&&(i.viewClass=t,t=e.ObjectGroupView),o=new t(n,i),this.recordChildView(o)},o.prototype.recordChildView=function(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t},o.prototype.getAllChildViews=function(){var t,e,n,i,o;for(o=[],i=this.childViews,e=0,n=i.length;n>e;e++)t=i[e],o.push(t),o=o.concat(t.getAllChildViews());return o},o.prototype.findElement=function(){return this.findElementForObject(this.object)},o.prototype.findElementForObject=function(t){var e;return(e=null!=t?t.id:void 0)?this.rootView.element.querySelector(\"[data-trix-id='\"+e+\"']\"):void 0},o.prototype.findViewForObject=function(t){var e,n,i,o;for(i=this.getAllChildViews(),e=0,n=i.length;n>e;e++)if(o=i[e],o.object===t)return o},o.prototype.getViewCache=function(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?null!=this.viewCache?this.viewCache:this.viewCache={}:void 0},o.prototype.isViewCachingEnabled=function(){return this.shouldCacheViews!==!1},o.prototype.enableViewCaching=function(){return this.shouldCacheViews=!0},o.prototype.disableViewCaching=function(){return this.shouldCacheViews=!1},o.prototype.getCachedViewForObject=function(t){var e;return null!=(e=this.getViewCache())?e[t.getCacheKey()]:void 0},o.prototype.cacheViewForObject=function(t,e){var n;return null!=(n=this.getViewCache())?n[e.getCacheKey()]=t:void 0},o.prototype.garbageCollectCachedViews=function(){var t,e,n,o,r,s;if(t=this.getViewCache()){s=this.getAllChildViews().concat(this),n=function(){var t,e,n;for(n=[],t=0,e=s.length;e>t;t++)r=s[t],n.push(r.object.getCacheKey());return n}(),o=[];for(e in t)i.call(n,e)<0&&o.push(delete t[e]);return o}},o}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ObjectGroupView=function(e){function n(){n.__super__.constructor.apply(this,arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}return t(n,e),n.prototype.getChildViews=function(){var t,e,n,i;if(!this.childViews.length)for(i=this.objectGroup.getObjects(),t=0,e=i.length;e>t;t++)n=i[t],this.findOrCreateCachedChildView(this.viewClass,n,this.options);return this.childViews},n.prototype.createNodes=function(){var t,e,n,i,o,r,s,a,u;for(t=this.createContainerElement(),s=this.getChildViews(),e=0,i=s.length;i>e;e++)for(u=s[e],a=u.getNodes(),n=0,o=a.length;o>n;n++)r=a[n],t.appendChild(r);return[t]},n.prototype.createContainerElement=function(t){return null==t&&(t=this.objectGroup.getDepth()),this.getChildViews()[0].createContainerElement(t)},n}(e.ObjectView)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Controller=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a=function(t,e){return function(){return t.apply(e,arguments)}},u=function(t,e){function n(){this.constructor=t}for(var i in e)c.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},c={}.hasOwnProperty,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.findClosestElementFromNode,i=e.nodeIsEmptyTextNode,n=e.nodeIsBlockStartComment,o=e.normalizeSpaces,r=e.summarizeStringChange,s=e.tagName,e.MutationObserver=function(e){function c(t){this.element=t,this.didMutate=a(this.didMutate,this),this.observer=new window.MutationObserver(this.didMutate),this.start()}var h,p,d,f;return u(c,e),p=\"data-trix-mutable\",d=\"[\"+p+\"]\",f={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},c.prototype.start=function(){return this.reset(),this.observer.observe(this.element,f)},c.prototype.stop=function(){return this.observer.disconnect()},c.prototype.didMutate=function(t){var e,n;return(e=this.mutations).push.apply(e,this.findSignificantMutations(t)),this.mutations.length?(null!=(n=this.delegate)&&\"function\"==typeof n.elementDidMutate&&n.elementDidMutate(this.getMutationSummary()),this.reset()):void 0},c.prototype.reset=function(){return this.mutations=[]},c.prototype.findSignificantMutations=function(t){var e,n,i,o;for(o=[],e=0,n=t.length;n>e;e++)i=t[e],this.mutationIsSignificant(i)&&o.push(i);return o},c.prototype.mutationIsSignificant=function(t){var e,n,i,o;if(this.nodeIsMutable(t.target))return!1;for(o=this.nodesModifiedByMutation(t),e=0,n=o.length;n>e;e++)if(i=o[e],this.nodeIsSignificant(i))return!0;return!1},c.prototype.nodeIsSignificant=function(t){return t!==this.element&&!this.nodeIsMutable(t)&&!i(t)},c.prototype.nodeIsMutable=function(e){return t(e,{matchingSelector:d})},c.prototype.nodesModifiedByMutation=function(t){var e;switch(e=[],t.type){case\"attributes\":t.attributeName!==p&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push.apply(e,t.addedNodes),e.push.apply(e,t.removedNodes)}return e},c.prototype.getMutationSummary=function(){return this.getTextMutationSummary()},c.prototype.getTextMutationSummary=function(){var t,e,n,i,o,r,s,a,u,c,h;for(a=this.getTextChangesFromCharacterData(),n=a.additions,o=a.deletions,h=this.getTextChangesFromChildList(),u=h.additions,r=0,s=u.length;s>r;r++)e=u[r],l.call(n,e)<0&&n.push(e);return o.push.apply(o,h.deletions),c={},(t=n.join(\"\"))&&(c.textAdded=t),(i=o.join(\"\"))&&(c.textDeleted=i),c},c.prototype.getMutationsByType=function(t){var e,n,i,o,r;for(o=this.mutations,r=[],e=0,n=o.length;n>e;e++)i=o[e],i.type===t&&r.push(i);return r},c.prototype.getTextChangesFromChildList=function(){var t,e,i,r,s,a,u,c,l,p,d;for(t=[],u=[],a=this.getMutationsByType(\"childList\"),e=0,r=a.length;r>e;e++)s=a[e],t.push.apply(t,s.addedNodes),u.push.apply(u,s.removedNodes);return c=0===t.length&&1===u.length&&n(u[0]),c?(p=[],d=[\"\\n\"]):(p=h(t),d=h(u)),{additions:function(){var t,e,n;for(n=[],i=t=0,e=p.length;e>t;i=++t)l=p[i],l!==d[i]&&n.push(o(l));return n}(),deletions:function(){var t,e,n;for(n=[],i=t=0,e=d.length;e>t;i=++t)l=d[i],l!==p[i]&&n.push(o(l));return n}()}},c.prototype.getTextChangesFromCharacterData=function(){var t,e,n,i,s,a,u,c;return e=this.getMutationsByType(\"characterData\"),e.length&&(c=e[0],n=e[e.length-1],s=o(c.oldValue),i=o(n.target.data),a=r(s,i),t=a.added,u=a.removed),{additions:t?[t]:[],deletions:u?[u]:[]}},h=function(t){var e,n,i,o;for(null==t&&(t=[]),o=[],e=0,n=t.length;n>e;e++)switch(i=t[e],i.nodeType){case Node.TEXT_NODE:o.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===s(i)?o.push(\"\\n\"):o.push.apply(o,h(i.childNodes))}return o},c}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.FileVerificationOperation=function(e){function n(t){this.file=t}return t(n,e),n.prototype.perform=function(t){var e;return e=new FileReader,e.onerror=function(){return t(!1)},e.onload=function(n){return function(){e.onerror=null;try{e.abort()}catch(i){}return t(!0,n.file)}}(this),e.readAsArrayBuffer(this.file)},n}(e.Operation)}.call(this),function(){var t,n,i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty;t=e.handleEvent,n=e.innerElementIsActive,e.InputController=function(o){function r(n){var i;this.element=n,this.mutationObserver=new e.MutationObserver(this.element),this.mutationObserver.delegate=this;for(i in this.events)t(i,{onElement:this.element,withCallback:this.handlerFor(i)})}return i(r,o),r.prototype.events={},r.prototype.elementDidMutate=function(){},r.prototype.editorWillSyncDocumentView=function(){return this.mutationObserver.stop()},r.prototype.editorDidSyncDocumentView=function(){return this.mutationObserver.start()},r.prototype.requestRender=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidRequestRender?t.inputControllerDidRequestRender():void 0},r.prototype.requestReparse=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidRequestReparse&&t.inputControllerDidRequestReparse(),this.requestRender()},r.prototype.attachFiles=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(new e.FileVerificationOperation(n));return r}(),Promise.all(i).then(function(t){return function(e){return t.handleInput(function(){var t,n;return null!=(t=this.delegate)&&t.inputControllerWillAttachFiles(),null!=(n=this.responder)&&n.insertFiles(e),this.requestRender()})}}(this))},r.prototype.handlerFor=function(t){return function(e){return function(i){return i.defaultPrevented?void 0:e.handleInput(function(){return n(this.element)?void 0:(this.eventName=t,this.events[t].call(this,i))})}}(this)},r.prototype.handleInput=function(t){var e,n;try{return null!=(e=this.delegate)&&e.inputControllerWillHandleInput(),t.call(this)}finally{null!=(n=this.delegate)&&n.inputControllerDidHandleInput()}},r.prototype.createLinkHTML=function(t,e){var n;return n=document.createElement(\"a\"),n.href=t,n.textContent=null!=e?e:t,n.outerHTML},r}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h,p,d,f=function(t,e){function n(){this.constructor=t}for(var i in e)g.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},g={}.hasOwnProperty,m=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=e.makeElement,l=e.objectsAreEqual,d=e.tagName,n=e.browser,a=e.keyEventIsKeyboardCommand,o=e.dataTransferIsWritable,i=e.dataTransferIsPlainText,u=e.config.keyNames,e.Level0InputController=function(n){function s(){s.__super__.constructor.apply(this,arguments),this.resetInputSummary()}var d;return f(s,n),d=0,s.prototype.setInputSummary=function(t){var e,n;null==t&&(t={}),this.inputSummary.eventName=this.eventName;for(e in t)n=t[e],this.inputSummary[e]=n;return this.inputSummary},s.prototype.resetInputSummary=function(){return this.inputSummary={}},s.prototype.reset=function(){return this.resetInputSummary(),e.selectionChangeObserver.reset()},s.prototype.elementDidMutate=function(t){var e;return this.isComposing()?null!=(e=this.delegate)&&\"function\"==typeof e.inputControllerDidAllowUnhandledInput?e.inputControllerDidAllowUnhandledInput():void 0:this.handleInput(function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()})},s.prototype.mutationIsExpected=function(t){var e,n,i,o,r,s,a,u,c,l;return a=t.textAdded,u=t.textDeleted,this.inputSummary.preferDocument?!0:(e=null!=a?a===this.inputSummary.textAdded:!this.inputSummary.textAdded,n=null!=u?this.inputSummary.didDelete:!this.inputSummary.didDelete,c=(\"\\n\"===a||\" \\n\"===a)&&!e,l=\"\\n\"===u&&!n,s=c&&!l||l&&!c,s&&(o=this.getSelectedRange())&&(i=c?a.replace(/\\n$/,\"\").length||-1:(null!=a?a.length:void 0)||1,null!=(r=this.responder)?r.positionIsBlockBreak(o[1]+i):void 0)?!0:e&&n)},s.prototype.mutationIsSignificant=function(t){var e,n,i;return i=Object.keys(t).length>0,e=\"\"===(null!=(n=this.compositionInput)?n.getEndData():void 0),i||!e},s.prototype.events={keydown:function(t){var n,i,o,r,s,c,l,h,p;if(this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0,r=u[t.keyCode]){for(i=this.keys,h=[\"ctrl\",\"alt\",\"shift\",\"meta\"],o=0,c=h.length;c>o;o++)l=h[o],t[l+\"Key\"]&&(\"ctrl\"===l&&(l=\"control\"),i=null!=i?i[l]:void 0);null!=(null!=i?i[r]:void 0)&&(this.setInputSummary({keyName:r}),e.selectionChangeObserver.reset(),i[r].call(this,t))}return a(t)&&(n=String.fromCharCode(t.keyCode).toLowerCase())&&(s=function(){var e,n,i,o;for(i=[\"alt\",\"shift\"],o=[],e=0,n=i.length;n>e;e++)l=i[e],t[l+\"Key\"]&&o.push(l);return o}(),s.push(n),null!=(p=this.delegate)?p.inputControllerDidReceiveKeyboardCommand(s):void 0)?t.preventDefault():void 0},keypress:function(t){var e,n,i;if(null==this.inputSummary.eventName&&!t.metaKey&&(!t.ctrlKey||t.altKey))return(i=p(t))?(null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(i),this.setInputSummary({textAdded:i,didDelete:this.selectionIsExpanded()})):void 0},textInput:function(t){var e,n,i,o;return e=t.data,o=this.inputSummary.textAdded,o&&o!==e&&o.toUpperCase()===e?(n=this.getSelectedRange(),this.setSelectedRange([n[0],n[1]+o.length]),null!=(i=this.responder)&&i.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(n)):void 0},dragenter:function(t){return t.preventDefault()},dragstart:function(t){var e,n;return n=t.target,this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null!=(e=this.delegate)&&\"function\"==typeof e.inputControllerDidStartDrag?e.inputControllerDidStartDrag():void 0},dragover:function(t){var e,n;return!this.draggedRange&&!this.canAcceptDataTransfer(t.dataTransfer)||(t.preventDefault(),e={x:t.clientX,y:t.clientY},l(e,this.draggingPoint))?void 0:(this.draggingPoint=e,null!=(n=this.delegate)&&\"function\"==typeof n.inputControllerDidReceiveDragOverPoint?n.inputControllerDidReceiveDragOverPoint(this.draggingPoint):void 0)},dragend:function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidCancelDrag&&t.inputControllerDidCancelDrag(),this.draggedRange=null,this.draggingPoint=null},drop:function(t){var n,i,o,r,s,a,u,c,l;return t.preventDefault(),o=null!=(s=t.dataTransfer)?s.files:void 0,r={x:t.clientX,y:t.clientY},null!=(a=this.responder)&&a.setLocationRangeFromPointRange(r),(null!=o?o.length:void 0)?this.attachFiles(o):this.draggedRange?(null!=(u=this.delegate)&&u.inputControllerWillMoveText(),null!=(c=this.responder)&&c.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()):(i=t.dataTransfer.getData(\"application/x-trix-document\"))&&(n=e.Document.fromJSONString(i),null!=(l=this.responder)&&l.insertDocument(n),this.requestRender()),this.draggedRange=null,this.draggingPoint=null},cut:function(t){var e,n;return(null!=(e=this.responder)?e.selectionIsExpanded():void 0)&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null!=(n=this.delegate)&&n.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented)?this.requestRender():void 0},copy:function(t){var e;return(null!=(e=this.responder)?e.selectionIsExpanded():void 0)&&this.serializeSelectionToDataTransfer(t.clipboardData)?t.preventDefault():void 0},paste:function(t){var n,o,s,a,u,c,l,p,f,g,v,y,b,A,C,x,w,E,S,R,k,D,L;return n=null!=(p=t.clipboardData)?p:t.testClipboardData,l={clipboard:n},null==n||h(t)?void this.getPastedHTMLUsingHiddenElement(function(t){return function(e){var n,i,o;return l.type=\"text/html\",l.html=e,null!=(n=t.delegate)&&n.inputControllerWillPaste(l),null!=(i=t.responder)&&i.insertHTML(l.html),t.requestRender(),null!=(o=t.delegate)?o.inputControllerDidPaste(l):void 0}}(this)):((a=n.getData(\"URL\"))?(l.type=\"text/html\",L=(c=n.getData(\"public.url-name\"))?e.squishBreakableWhitespace(c).trim():a,l.html=this.createLinkHTML(a,L),null!=(f=this.delegate)&&f.inputControllerWillPaste(l),this.setInputSummary({textAdded:L,didDelete:this.selectionIsExpanded()}),null!=(C=this.responder)&&C.insertHTML(l.html),this.requestRender(),null!=(x=this.delegate)&&x.inputControllerDidPaste(l)):i(n)?(l.type=\"text/plain\",l.string=n.getData(\"text/plain\"),null!=(w=this.delegate)&&w.inputControllerWillPaste(l),this.setInputSummary({textAdded:l.string,didDelete:this.selectionIsExpanded()}),null!=(E=this.responder)&&E.insertString(l.string),this.requestRender(),null!=(S=this.delegate)&&S.inputControllerDidPaste(l)):(u=n.getData(\"text/html\"))?(l.type=\"text/html\",l.html=u,null!=(R=this.delegate)&&R.inputControllerWillPaste(l),null!=(k=this.responder)&&k.insertHTML(l.html),this.requestRender(),null!=(D=this.delegate)&&D.inputControllerDidPaste(l)):m.call(n.types,\"Files\")>=0&&(s=null!=(g=n.items)&&null!=(v=g[0])&&\"function\"==typeof v.getAsFile?v.getAsFile():void 0)&&(!s.name&&(o=r(s))&&(s.name=\"pasted-file-\"+ ++d+\".\"+o),l.type=\"File\",l.file=s,null!=(y=this.delegate)&&y.inputControllerWillAttachFiles(),null!=(b=this.responder)&&b.insertFile(l.file),this.requestRender(),null!=(A=this.delegate)&&A.inputControllerDidPaste(l)),t.preventDefault())},compositionstart:function(t){return this.getCompositionInput().start(t.data)},compositionupdate:function(t){return this.getCompositionInput().update(t.data)},compositionend:function(t){return this.getCompositionInput().end(t.data)},beforeinput:function(){return this.inputSummary.didInput=!0\n},input:function(t){return this.inputSummary.didInput=!0,t.stopPropagation()}},s.prototype.keys={backspace:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},\"delete\":function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},\"return\":function(){var t,e;return this.setInputSummary({preferDocument:!0}),null!=(t=this.delegate)&&t.inputControllerWillPerformTyping(),null!=(e=this.responder)?e.insertLineBreak():void 0},tab:function(t){var e,n;return(null!=(e=this.responder)?e.canIncreaseNestingLevel():void 0)?(null!=(n=this.responder)&&n.increaseNestingLevel(),this.requestRender(),t.preventDefault()):void 0},left:function(t){var e;return this.selectionIsInCursorTarget()?(t.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"backward\"):void 0):void 0},right:function(t){var e;return this.selectionIsInCursorTarget()?(t.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"forward\"):void 0):void 0},control:{d:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o:function(t){var e,n;return t.preventDefault(),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{\"return\":function(t){var e,n;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab:function(t){var e,n;return(null!=(e=this.responder)?e.canDecreaseNestingLevel():void 0)?(null!=(n=this.responder)&&n.decreaseNestingLevel(),this.requestRender(),t.preventDefault()):void 0},left:function(t){return this.selectionIsInCursorTarget()?(t.preventDefault(),this.expandSelectionInDirection(\"backward\")):void 0},right:function(t){return this.selectionIsInCursorTarget()?(t.preventDefault(),this.expandSelectionInDirection(\"forward\")):void 0}},alt:{backspace:function(){var t;return this.setInputSummary({preferDocument:!1}),null!=(t=this.delegate)?t.inputControllerWillPerformTyping():void 0}},meta:{backspace:function(){var t;return this.setInputSummary({preferDocument:!1}),null!=(t=this.delegate)?t.inputControllerWillPerformTyping():void 0}}},s.prototype.getCompositionInput=function(){return this.isComposing()?this.compositionInput:this.compositionInput=new t(this)},s.prototype.isComposing=function(){return null!=this.compositionInput&&!this.compositionInput.isEnded()},s.prototype.deleteInDirection=function(t,e){var n;return(null!=(n=this.responder)?n.deleteInDirection(t):void 0)!==!1?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0},s.prototype.serializeSelectionToDataTransfer=function(t){var n,i;if(o(t))return n=null!=(i=this.responder)?i.getSelectedDocument().toSerializableDocument():void 0,t.setData(\"application/x-trix-document\",JSON.stringify(n)),t.setData(\"text/html\",e.DocumentView.render(n).innerHTML),t.setData(\"text/plain\",n.toString().replace(/\\n$/,\"\")),!0},s.prototype.canAcceptDataTransfer=function(t){var e,n,i,o,r,s;for(s={},o=null!=(i=null!=t?t.types:void 0)?i:[],e=0,n=o.length;n>e;e++)r=o[e],s[r]=!0;return s.Files||s[\"application/x-trix-document\"]||s[\"text/html\"]||s[\"text/plain\"]},s.prototype.getPastedHTMLUsingHiddenElement=function(t){var n,i,o;return i=this.getSelectedRange(),o={position:\"absolute\",left:window.pageXOffset+\"px\",top:window.pageYOffset+\"px\",opacity:0},n=c({style:o,tagName:\"div\",editable:!0}),document.body.appendChild(n),n.focus(),requestAnimationFrame(function(o){return function(){var r;return r=n.innerHTML,e.removeNode(n),o.setSelectedRange(i),t(r)}}(this))},s.proxyMethod(\"responder?.getSelectedRange\"),s.proxyMethod(\"responder?.setSelectedRange\"),s.proxyMethod(\"responder?.expandSelectionInDirection\"),s.proxyMethod(\"responder?.selectionIsInCursorTarget\"),s.proxyMethod(\"responder?.selectionIsExpanded\"),s}(e.InputController),r=function(t){var e,n;return null!=(e=t.type)&&null!=(n=e.match(/\\/(\\w+)$/))?n[1]:void 0},s=null!=(\"function\"==typeof\" \".codePointAt?\" \".codePointAt(0):void 0),p=function(t){var n;return t.key&&s&&t.key.codePointAt(0)===t.keyCode?t.key:(null===t.which?n=t.keyCode:0!==t.which&&0!==t.charCode&&(n=t.charCode),null!=n&&\"escape\"!==u[n]?e.UTF16String.fromCodepoints([n]).toString():void 0)},h=function(t){var e,n,i,o,r,s,a,u,c,l;if(u=t.clipboardData){if(m.call(u.types,\"text/html\")>=0){for(c=u.types,i=0,s=c.length;s>i;i++)if(l=c[i],e=/^CorePasteboardFlavorType/.test(l),n=/^dyn\\./.test(l)&&u.getData(l),a=e||n)return!0;return!1}return o=m.call(u.types,\"com.apple.webarchive\")>=0,r=m.call(u.types,\"com.apple.flat-rtfd\")>=0,o||r}},t=function(t){function e(t){var e;this.inputController=t,e=this.inputController,this.responder=e.responder,this.delegate=e.delegate,this.inputSummary=e.inputSummary,this.data={}}return f(e,t),e.prototype.start=function(t){var e,n;return this.data.start=t,this.isSignificant()?(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded&&null!=(e=this.responder)&&e.deleteInDirection(\"left\"),this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null!=(n=this.responder)?n.getSelectedRange():void 0):void 0},e.prototype.update=function(t){var e;return this.data.update=t,this.isSignificant()&&(e=this.selectPlaceholder())?(this.forgetPlaceholder(),this.range=e):void 0},e.prototype.end=function(t){var e,n,i,o;return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.setSelectedRange(this.range),null!=(i=this.responder)&&i.insertString(this.data.end),null!=(o=this.responder)?o.setSelectedRange(this.range[0]+this.data.end.length):void 0):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset()},e.prototype.getEndData=function(){return this.data.end},e.prototype.isEnded=function(){return null!=this.getEndData()},e.prototype.isSignificant=function(){return n.composesExistingText?this.inputSummary.didInput:!0},e.prototype.canApplyToDocument=function(){var t,e;return 0===(null!=(t=this.data.start)?t.length:void 0)&&(null!=(e=this.data.end)?e.length:void 0)>0&&null!=this.range},e.proxyMethod(\"inputController.setInputSummary\"),e.proxyMethod(\"inputController.requestRender\"),e.proxyMethod(\"inputController.requestReparse\"),e.proxyMethod(\"responder?.selectionIsExpanded\"),e.proxyMethod(\"responder?.insertPlaceholder\"),e.proxyMethod(\"responder?.selectPlaceholder\"),e.proxyMethod(\"responder?.forgetPlaceholder\"),e}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.dataTransferIsPlainText,n=e.keyEventIsKeyboardCommand,i=e.objectsAreEqual,e.Level2InputController=function(s){function u(){return this.render=o(this.render,this),u.__super__.constructor.apply(this,arguments)}var c,l,h,p,d,f;return r(u,s),u.prototype.elementDidMutate=function(){var t;return this.scheduledRender?this.composing&&null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidAllowUnhandledInput?t.inputControllerDidAllowUnhandledInput():void 0:this.reparse()},u.prototype.scheduleRender=function(){return null!=this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)},u.prototype.render=function(){var t;return cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing||null!=(t=this.delegate)&&t.render(),\"function\"==typeof this.afterRender&&this.afterRender(),this.afterRender=null},u.prototype.reparse=function(){var t;return null!=(t=this.delegate)?t.reparse():void 0},u.prototype.events={keydown:function(t){var e,i,o,r;if(n(t)){if(e=l(t),null!=(r=this.delegate)?r.inputControllerDidReceiveKeyboardCommand(e):void 0)return t.preventDefault()}else if(o=t.key,t.altKey&&(o+=\"+Alt\"),t.shiftKey&&(o+=\"+Shift\"),i=this.keys[o])return this.withEvent(t,i)},paste:function(t){var e,n,i,o,r,s,a,u,c;return h(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):p(t)?(t.preventDefault(),n={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null!=(i=this.delegate)&&i.inputControllerWillPaste(n),null!=(o=this.responder)&&o.insertString(n.string),this.render(),null!=(r=this.delegate)?r.inputControllerDidPaste(n):void 0):(e=null!=(s=t.clipboardData)?s.getData(\"URL\"):void 0)?(t.preventDefault(),n={type:\"text/html\",html:this.createLinkHTML(e)},null!=(a=this.delegate)&&a.inputControllerWillPaste(n),null!=(u=this.responder)&&u.insertHTML(n.html),this.render(),null!=(c=this.delegate)?c.inputControllerDidPaste(n):void 0):void 0},beforeinput:function(t){var e;return(e=this.inputTypes[t.inputType])?(this.withEvent(t,e),this.scheduleRender()):void 0},input:function(){return e.selectionChangeObserver.reset()},dragstart:function(t){var e,n;return(null!=(e=this.responder)?e.selectionContainsAttachments():void 0)?(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null!=(n=this.responder)?n.getSelectedRange():void 0,point:d(t)}):void 0},dragenter:function(t){return c(t)?t.preventDefault():void 0},dragover:function(t){var e,n;if(this.dragging){if(t.preventDefault(),e=d(t),!i(e,this.dragging.point))return this.dragging.point=e,null!=(n=this.responder)?n.setLocationRangeFromPointRange(e):void 0}else if(c(t))return t.preventDefault()},drop:function(t){var e,n,i,o;return this.dragging?(t.preventDefault(),null!=(n=this.delegate)&&n.inputControllerWillMoveText(),null!=(i=this.responder)&&i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender()):c(t)?(t.preventDefault(),e=d(t),null!=(o=this.responder)&&o.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)):void 0},dragend:function(){var t;return this.dragging?(null!=(t=this.responder)&&t.setSelectedRange(this.dragging.range),this.dragging=null):void 0},compositionend:function(){return this.composing?(this.composing=!1,this.scheduleRender()):void 0}},u.prototype.keys={ArrowLeft:function(){var t,e;return(null!=(t=this.responder)?t.shouldManageMovingCursorInDirection(\"backward\"):void 0)?(this.event.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"backward\"):void 0):void 0},ArrowRight:function(){var t,e;return(null!=(t=this.responder)?t.shouldManageMovingCursorInDirection(\"forward\"):void 0)?(this.event.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"forward\"):void 0):void 0},Backspace:function(){var t,e,n;return(null!=(t=this.responder)?t.shouldManageDeletingInDirection(\"backward\"):void 0)?(this.event.preventDefault(),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.deleteInDirection(\"backward\"),this.render()):void 0},Tab:function(){var t,e;return(null!=(t=this.responder)?t.canIncreaseNestingLevel():void 0)?(this.event.preventDefault(),null!=(e=this.responder)&&e.increaseNestingLevel(),this.render()):void 0},\"Tab+Shift\":function(){var t,e;return(null!=(t=this.responder)?t.canDecreaseNestingLevel():void 0)?(this.event.preventDefault(),null!=(e=this.responder)&&e.decreaseNestingLevel(),this.render()):void 0}},u.prototype.inputTypes={deleteByComposition:function(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut:function(){return this.deleteInDirection(\"backward\")},deleteByDrag:function(){return this.event.preventDefault(),this.withTargetDOMRange(function(){var t;return this.deleteByDragRange=null!=(t=this.responder)?t.getSelectedRange():void 0})},deleteCompositionText:function(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent:function(){return this.deleteInDirection(\"backward\")},deleteContentBackward:function(){return this.deleteInDirection(\"backward\")},deleteContentForward:function(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine:function(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward:function(){return this.deleteInDirection(\"backward\")},deleteHardLineForward:function(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward:function(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward:function(){return this.deleteInDirection(\"forward\")},deleteWordBackward:function(){return this.deleteInDirection(\"backward\")},deleteWordForward:function(){return this.deleteInDirection(\"forward\")},formatBackColor:function(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold:function(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor:function(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName:function(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent:function(){var t;return(null!=(t=this.responder)?t.canIncreaseNestingLevel():void 0)?this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.increaseNestingLevel():void 0}):void 0},formatItalic:function(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter:function(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull:function(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft:function(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight:function(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent:function(){var t;return(null!=(t=this.responder)?t.canDecreaseNestingLevel():void 0)?this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.decreaseNestingLevel():void 0}):void 0},formatRemove:function(){return this.withTargetDOMRange(function(){var t,e,n,i;i=[];for(t in null!=(e=this.responder)?e.getCurrentAttributes():void 0)i.push(null!=(n=this.responder)?n.removeCurrentAttribute(t):void 0);return i})},formatSetBlockTextDirection:function(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection:function(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough:function(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript:function(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript:function(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline:function(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo:function(){var t;return null!=(t=this.delegate)?t.inputControllerWillPerformRedo():void 0},historyUndo:function(){var t;return null!=(t=this.delegate)?t.inputControllerWillPerformUndo():void 0},insertCompositionText:function(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition:function(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop:function(){var t,e;return(t=this.deleteByDragRange)?(this.deleteByDragRange=null,null!=(e=this.delegate)&&e.inputControllerWillMoveText(),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.moveTextFromRange(t):void 0})):void 0},insertFromPaste:function(){var n,i,o,r,s,a,u,c,l,h,p;return n=this.event.dataTransfer,s={dataTransfer:n},(i=n.getData(\"URL\"))?(this.event.preventDefault(),s.type=\"text/html\",p=(r=n.getData(\"public.url-name\"))?e.squishBreakableWhitespace(r).trim():i,s.html=this.createLinkHTML(i,p),null!=(a=this.delegate)&&a.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertHTML(s.html):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):t(n)?(s.type=\"text/plain\",s.string=n.getData(\"text/plain\"),null!=(u=this.delegate)&&u.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertString(s.string):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):(o=n.getData(\"text/html\"))?(this.event.preventDefault(),s.type=\"text/html\",s.html=o,null!=(c=this.delegate)&&c.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertHTML(s.html):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):(null!=(l=n.files)?l.length:void 0)?(s.type=\"File\",s.file=n.files[0],null!=(h=this.delegate)&&h.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertFile(s.file):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):void 0},insertFromYank:function(){return this.insertString(this.event.data)},insertLineBreak:function(){return this.insertString(\"\\n\")},insertLink:function(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList:function(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph:function(){var t;return null!=(t=this.delegate)&&t.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertLineBreak():void 0})},insertReplacementText:function(){return this.insertString(this.event.dataTransfer.getData(\"text/plain\"),{updatePosition:!1})},insertText:function(){var t,e;return this.insertString(null!=(t=this.event.data)?t:null!=(e=this.event.dataTransfer)?e.getData(\"text/plain\"):void 0)},insertTranspose:function(){return this.insertString(this.event.data)},insertUnorderedList:function(){return this.toggleAttributeIfSupported(\"bullet\")}},u.prototype.insertString=function(t,e){var n;return null==t&&(t=\"\"),null!=(n=this.delegate)&&n.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var n;return null!=(n=this.responder)?n.insertString(t,e):void 0})},u.prototype.toggleAttributeIfSupported=function(t){var n;return a.call(e.getAllAttributeNames(),t)>=0?(null!=(n=this.delegate)&&n.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.toggleCurrentAttribute(t):void 0})):void 0},u.prototype.activateAttributeIfSupported=function(t,n){var i;return a.call(e.getAllAttributeNames(),t)>=0?(null!=(i=this.delegate)&&i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.setCurrentAttribute(t,n):void 0})):void 0},u.prototype.deleteInDirection=function(t,e){var n,i,o,r;return o=(null!=e?e:{recordUndoEntry:!0}).recordUndoEntry,o&&null!=(r=this.delegate)&&r.inputControllerWillPerformTyping(),i=function(e){return function(){var n;return null!=(n=e.responder)?n.deleteInDirection(t):void 0}}(this),(n=this.getTargetDOMRange({minLength:2}))?this.withTargetDOMRange(n,i):i()},u.prototype.withTargetDOMRange=function(t,n){var i;return\"function\"==typeof t&&(n=t,t=this.getTargetDOMRange()),t?null!=(i=this.responder)?i.withTargetDOMRange(t,n.bind(this)):void 0:(e.selectionChangeObserver.reset(),n.call(this))},u.prototype.getTargetDOMRange=function(t){var e,n,i,o;return i=(null!=t?t:{minLength:0}).minLength,(o=\"function\"==typeof(e=this.event).getTargetRanges?e.getTargetRanges():void 0)&&o.length&&(n=f(o[0]),0===i||n.toString().length>=i)?n:void 0},f=function(t){var e;return e=document.createRange(),e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},u.prototype.withEvent=function(t,e){var n;this.event=t;try{n=e.call(this)}finally{this.event=null}return n},c=function(t){var e,n;return a.call(null!=(e=null!=(n=t.dataTransfer)?n.types:void 0)?e:[],\"Files\")>=0},h=function(t){var e;return(e=t.clipboardData)?a.call(e.types,\"Files\")>=0&&1===e.types.length&&e.files.length>=1:void 0},p=function(t){var e;return(e=t.clipboardData)?a.call(e.types,\"text/plain\")>=0&&1===e.types.length:void 0},l=function(t){var e;return e=[],t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},d=function(t){return{x:t.clientX,y:t.clientY}},u}(e.InputController)}.call(this),function(){var t,n,i,o,r,s,a,u,c=function(t,e){return function(){return t.apply(e,arguments)}},l=function(t,e){function n(){this.constructor=t}for(var i in e)h.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},h={}.hasOwnProperty;n=e.defer,i=e.handleEvent,s=e.makeElement,u=e.tagName,a=e.config,r=a.lang,t=a.css,o=a.keyNames,e.AttachmentEditorController=function(a){function h(t,e,n,i){this.attachmentPiece=t,this.element=e,this.container=n,this.options=null!=i?i:{},this.didBlurCaption=c(this.didBlurCaption,this),this.didChangeCaption=c(this.didChangeCaption,this),this.didInputCaption=c(this.didInputCaption,this),this.didKeyDownCaption=c(this.didKeyDownCaption,this),this.didClickActionButton=c(this.didClickActionButton,this),this.didClickToolbar=c(this.didClickToolbar,this),this.attachment=this.attachmentPiece.attachment,\"a\"===u(this.element)&&(this.element=this.element.firstChild),this.install()}var p;return l(h,a),p=function(t){return function(){var e;return e=t.apply(this,arguments),e[\"do\"](),null==this.undos&&(this.undos=[]),this.undos.push(e.undo)}},h.prototype.install=function(){return this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()?this.installCaptionEditor():void 0},h.prototype.uninstall=function(){var t,e;for(this.savePendingCaption();e=this.undos.pop();)e();return null!=(t=this.delegate)?t.didUninstallAttachmentEditor(this):void 0},h.prototype.savePendingCaption=function(){var t,e,n;return null!=this.pendingCaption?(t=this.pendingCaption,this.pendingCaption=null,t?null!=(e=this.delegate)&&\"function\"==typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment?e.attachmentEditorDidRequestUpdatingAttributesForAttachment({caption:t},this.attachment):void 0:null!=(n=this.delegate)&&\"function\"==typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment?n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\",this.attachment):void 0):void 0},h.prototype.makeElementMutable=p(function(){return{\"do\":function(t){return function(){return t.element.dataset.trixMutable=!0}}(this),undo:function(t){return function(){return delete t.element.dataset.trixMutable}}(this)}}),h.prototype.addToolbar=p(function(){var n;return n=s({tagName:\"div\",className:t.attachmentToolbar,data:{trixMutable:!0},childNodes:s({tagName:\"div\",className:\"trix-button-row\",childNodes:s({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:s({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:r.remove,attributes:{title:r.remove},data:{trixAction:\"remove\"}})})})}),this.attachment.isPreviewable()&&n.appendChild(s({tagName:\"div\",className:t.attachmentMetadataContainer,childNodes:s({tagName:\"span\",className:t.attachmentMetadata,childNodes:[s({tagName:\"span\",className:t.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),s({tagName:\"span\",className:t.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),i(\"click\",{onElement:n,withCallback:this.didClickToolbar}),i(\"click\",{onElement:n,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),{\"do\":function(t){return function(){return t.element.appendChild(n)}}(this),undo:function(){return function(){return e.removeNode(n)}}(this)}}),h.prototype.installCaptionEditor=p(function(){var o,a,u,c,l;return c=s({tagName:\"textarea\",className:t.attachmentCaptionEditor,attributes:{placeholder:r.captionPlaceholder},data:{trixMutable:!0}}),c.value=this.attachmentPiece.getCaption(),l=c.cloneNode(),l.classList.add(\"trix-autoresize-clone\"),l.tabIndex=-1,o=function(){return l.value=c.value,c.style.height=l.scrollHeight+\"px\"},i(\"input\",{onElement:c,withCallback:o}),i(\"input\",{onElement:c,withCallback:this.didInputCaption}),i(\"keydown\",{onElement:c,withCallback:this.didKeyDownCaption}),i(\"change\",{onElement:c,withCallback:this.didChangeCaption}),i(\"blur\",{onElement:c,withCallback:this.didBlurCaption}),u=this.element.querySelector(\"figcaption\"),a=u.cloneNode(),{\"do\":function(e){return function(){return u.style.display=\"none\",a.appendChild(c),a.appendChild(l),a.classList.add(t.attachmentCaption+\"--editing\"),u.parentElement.insertBefore(a,u),o(),e.options.editCaption?n(function(){return c.focus()}):void 0}}(this),undo:function(){return e.removeNode(a),u.style.display=null}}}),h.prototype.didClickToolbar=function(t){return t.preventDefault(),t.stopPropagation()},h.prototype.didClickActionButton=function(t){var e,n;switch(e=t.target.getAttribute(\"data-trix-action\")){case\"remove\":return null!=(n=this.delegate)?n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment):void 0}},h.prototype.didKeyDownCaption=function(t){var e;return\"return\"===o[t.keyCode]?(t.preventDefault(),this.savePendingCaption(),null!=(e=this.delegate)&&\"function\"==typeof e.attachmentEditorDidRequestDeselectingAttachment?e.attachmentEditorDidRequestDeselectingAttachment(this.attachment):void 0):void 0},h.prototype.didInputCaption=function(t){return this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()},h.prototype.didChangeCaption=function(){return this.savePendingCaption()},h.prototype.didBlurCaption=function(){return this.savePendingCaption()},h}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,t=e.config.css,e.AttachmentView=function(r){function s(){s.__super__.constructor.apply(this,arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}var a;return o(s,r),s.attachmentSelector=\"[data-trix-attachment]\",s.prototype.createContentNodes=function(){return[]},s.prototype.createNodes=function(){var e,n,o,r,s,u,c;if(e=r=i({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),(n=this.getHref())&&(r=i({tagName:\"a\",editable:!1,attributes:{href:n,tabindex:-1}}),e.appendChild(r)),this.attachment.hasContent())r.innerHTML=this.attachment.getContent();else for(c=this.createContentNodes(),o=0,s=c.length;s>o;o++)u=c[o],r.appendChild(u);return r.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=i({tagName:\"progress\",attributes:{\"class\":t.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[a(\"left\"),e,a(\"right\")]},s.prototype.createCaptionElement=function(){var e,n,o,r,s,a,u;return o=i({tagName:\"figcaption\",className:t.attachmentCaption}),(e=this.attachmentPiece.getCaption())?(o.classList.add(t.attachmentCaption+\"--edited\"),o.textContent=e):(n=this.getCaptionConfig(),n.name&&(r=this.attachment.getFilename()),n.size&&(a=this.attachment.getFormattedFilesize()),r&&(s=i({tagName:\"span\",className:t.attachmentName,textContent:r}),o.appendChild(s)),a&&(r&&o.appendChild(document.createTextNode(\" \")),u=i({tagName:\"span\",className:t.attachmentSize,textContent:a}),o.appendChild(u))),o},s.prototype.getClassName=function(){var e,n;return n=[t.attachment,t.attachment+\"--\"+this.attachment.getType()],(e=this.attachment.getExtension())&&n.push(t.attachment+\"--\"+e),n.join(\" \")},s.prototype.getData=function(){var t,e;return e={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},t=this.attachmentPiece.attributes,t.isEmpty()||(e.trixAttributes=JSON.stringify(t)),this.attachment.isPending()&&(e.trixSerialize=!1),e},s.prototype.getHref=function(){return n(this.attachment.getContent(),\"a\")?void 0:this.attachment.getHref()},s.prototype.getCaptionConfig=function(){var t,n,i;return i=this.attachment.getType(),t=e.copyObject(null!=(n=e.config.attachments[i])?n.caption:void 0),\"file\"===i&&(t.name=!0),t},s.prototype.findProgressElement=function(){var t;return null!=(t=this.findElement())?t.querySelector(\"progress\"):void 0},a=function(t){return i({tagName:\"span\",textContent:e.ZERO_WIDTH_SPACE,data:{trixCursorTarget:t,trixSerialize:!1}})},s.prototype.attachmentDidChangeUploadProgress=function(){var t,e;return e=this.attachment.getUploadProgress(),null!=(t=this.findProgressElement())?t.value=e:void 0},s}(e.ObjectView),n=function(t,e){var n;return n=i(\"div\"),n.innerHTML=null!=t?t:\"\",n.querySelector(e)}}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.makeElement,e.PreviewableAttachmentView=function(i){function o(){o.__super__.constructor.apply(this,arguments),this.attachment.previewDelegate=this}return n(o,i),o.prototype.createContentNodes=function(){return this.image=t({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]},o.prototype.createCaptionElement=function(){var t;return t=o.__super__.createCaptionElement.apply(this,arguments),t.textContent||t.setAttribute(\"data-trix-placeholder\",e.config.lang.captionPlaceholder),t},o.prototype.refresh=function(t){var e;return null==t&&(t=null!=(e=this.findElement())?e.querySelector(\"img\"):void 0),t?this.updateAttributesForImage(t):void 0},o.prototype.updateAttributesForImage=function(t){var e,n,i,o,r,s;return r=this.attachment.getURL(),n=this.attachment.getPreviewURL(),t.src=n||r,n===r?t.removeAttribute(\"data-trix-serialized-attributes\"):(i=JSON.stringify({src:r}),t.setAttribute(\"data-trix-serialized-attributes\",i)),s=this.attachment.getWidth(),e=this.attachment.getHeight(),null!=s&&(t.width=s),null!=e&&(t.height=e),o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\"),t.dataset.trixStoreKey=o},o.prototype.attachmentDidChangeAttributes=function(){return this.refresh(this.image),this.refresh()},o}(e.AttachmentView)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,t=e.findInnerElement,n=e.getTextConfig,e.PieceView=function(r){function s(){var t;s.__super__.constructor.apply(this,arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),t=this.options,this.textConfig=t.textConfig,this.context=t.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}var a;return o(s,r),s.prototype.createNodes=function(){var e,n,i,o,r,s;if(s=this.attachment?this.createAttachmentNodes():this.createStringNodes(),e=this.createElement()){for(i=t(e),n=0,o=s.length;o>n;n++)r=s[n],i.appendChild(r);s=[e]}return s},s.prototype.createAttachmentNodes=function(){var t,n;return t=this.attachment.isPreviewable()?e.PreviewableAttachmentView:e.AttachmentView,n=this.createChildView(t,this.piece.attachment,{piece:this.piece}),n.getNodes()},s.prototype.createStringNodes=function(){var t,e,n,o,r,s,a,u,c,l;if(null!=(u=this.textConfig)?u.plaintext:void 0)return[document.createTextNode(this.string)];for(a=[],c=this.string.split(\"\\n\"),n=e=0,o=c.length;o>e;n=++e)l=c[n],n>0&&(t=i(\"br\"),a.push(t)),(r=l.length)&&(s=document.createTextNode(this.preserveSpaces(l)),a.push(s));return a},s.prototype.createElement=function(){var t,e,o,r,s,a,u,c,l;c={},a=this.attributes;for(r in a)if(l=a[r],(t=n(r))&&(t.tagName&&(s=i(t.tagName),o?(o.appendChild(s),o=s):e=o=s),t.styleProperty&&(c[t.styleProperty]=l),t.style)){u=t.style;for(r in u)l=u[r],c[r]=l}if(Object.keys(c).length){null==e&&(e=i(\"span\"));for(r in c)l=c[r],e.style[r]=l}return e},s.prototype.createContainerElement=function(){var t,e,o,r,s;r=this.attributes;for(o in r)if(s=r[o],(e=n(o))&&e.groupTagName)return t={},t[o]=s,i(e.groupTagName,t)},a=e.NON_BREAKING_SPACE,s.prototype.preserveSpaces=function(t){return this.context.isLast&&(t=t.replace(/\\ $/,a)),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \"+a+\" $2\").replace(/\\ {2}/g,a+\" \").replace(/\\ {2}/g,\" \"+a),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,a)),t},s}(e.ObjectView)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t\n}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.TextView=function(n){function i(){i.__super__.constructor.apply(this,arguments),this.text=this.object,this.textConfig=this.options.textConfig}var o;return t(i,n),i.prototype.createNodes=function(){var t,n,i,r,s,a,u,c,l,h;for(a=[],c=e.ObjectGroup.groupObjects(this.getPieces()),r=c.length-1,i=n=0,s=c.length;s>n;i=++n)u=c[i],t={},0===i&&(t.isFirst=!0),i===r&&(t.isLast=!0),o(l)&&(t.followsWhitespace=!0),h=this.findOrCreateCachedChildView(e.PieceView,u,{textConfig:this.textConfig,context:t}),a.push.apply(a,h.getNodes()),l=u;return a},i.prototype.getPieces=function(){var t,e,n,i,o;for(i=this.text.getPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],n.hasAttribute(\"blockBreak\")||o.push(n);return o},o=function(t){return/\\s$/.test(null!=t?t.toString():void 0)},i}(e.ObjectView)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,n=e.getBlockConfig,t=e.config.css,e.BlockView=function(r){function s(){s.__super__.constructor.apply(this,arguments),this.block=this.object,this.attributes=this.block.getAttributes()}return o(s,r),s.prototype.createNodes=function(){var t,o,r,s,a,u,c,l,h,p,d;if(o=document.createComment(\"block\"),c=[o],this.block.isEmpty()?c.push(i(\"br\")):(p=null!=(l=n(this.block.getLastAttribute()))?l.text:void 0,d=this.findOrCreateCachedChildView(e.TextView,this.block.text,{textConfig:p}),c.push.apply(c,d.getNodes()),this.shouldAddExtraNewlineElement()&&c.push(i(\"br\"))),this.attributes.length)return c;for(h=e.config.blockAttributes[\"default\"].tagName,this.block.isRTL()&&(t={dir:\"rtl\"}),r=i({tagName:h,attributes:t}),s=0,a=c.length;a>s;s++)u=c[s],r.appendChild(u);return[r]},s.prototype.createContainerElement=function(e){var o,r,s,a,u;return o=this.attributes[e],u=n(o).tagName,0===e&&this.block.isRTL()&&(r={dir:\"rtl\"}),\"attachmentGallery\"===o&&(a=this.block.getBlockBreakPosition(),s=t.attachmentGallery+\" \"+t.attachmentGallery+\"--\"+a),i({tagName:u,className:s,attributes:r})},s.prototype.shouldAddExtraNewlineElement=function(){return/\\n\\n$/.test(this.block.toString())},s}(e.ObjectView)}.call(this),function(){var t,n,i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty;t=e.defer,n=e.makeElement,e.DocumentView=function(o){function r(){r.__super__.constructor.apply(this,arguments),this.element=this.options.element,this.elementStore=new e.ElementStore,this.setDocument(this.object)}var s,a,u;return i(r,o),r.render=function(t){var e,i;return e=n(\"div\"),i=new this(t,{element:e}),i.render(),i.sync(),e},r.prototype.setDocument=function(t){return t.isEqualTo(this.document)?void 0:this.document=this.object=t},r.prototype.render=function(){var t,i,o,r,s,a,u;if(this.childViews=[],this.shadowElement=n(\"div\"),!this.document.isEmpty()){for(s=e.ObjectGroup.groupObjects(this.document.getBlocks(),{asTree:!0}),a=[],t=0,i=s.length;i>t;t++)r=s[t],u=this.findOrCreateCachedChildView(e.BlockView,r),a.push(function(){var t,e,n,i;for(n=u.getNodes(),i=[],t=0,e=n.length;e>t;t++)o=n[t],i.push(this.shadowElement.appendChild(o));return i}.call(this));return a}},r.prototype.isSynced=function(){return s(this.shadowElement,this.element)},r.prototype.sync=function(){var t;for(t=this.createDocumentFragmentForSync();this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()},r.prototype.didSync=function(){return this.elementStore.reset(a(this.element)),t(function(t){return function(){return t.garbageCollectCachedViews()}}(this))},r.prototype.createDocumentFragmentForSync=function(){var t,e,n,i,o,r,s,u,c,l;for(e=document.createDocumentFragment(),u=this.shadowElement.childNodes,n=0,o=u.length;o>n;n++)s=u[n],e.appendChild(s.cloneNode(!0));for(c=a(e),i=0,r=c.length;r>i;i++)t=c[i],(l=this.elementStore.remove(t))&&t.parentNode.replaceChild(l,t);return e},a=function(t){return t.querySelectorAll(\"[data-trix-store-key]\")},s=function(t,e){return u(t.innerHTML)===u(e.innerHTML)},u=function(t){return t.replace(/&nbsp;/g,\" \")},r}(e.ObjectView)}.call(this),function(){var t,n,i,o,r,s=function(t,e){return function(){return t.apply(e,arguments)}},a=function(t,e){function n(){this.constructor=t}for(var i in e)u.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},u={}.hasOwnProperty;i=e.findClosestElementFromNode,o=e.handleEvent,r=e.innerElementIsActive,n=e.defer,t=e.AttachmentView.attachmentSelector,e.CompositionController=function(u){function c(n,i){this.element=n,this.composition=i,this.didClickAttachment=s(this.didClickAttachment,this),this.didBlur=s(this.didBlur,this),this.didFocus=s(this.didFocus,this),this.documentView=new e.DocumentView(this.composition.document,{element:this.element}),o(\"focus\",{onElement:this.element,withCallback:this.didFocus}),o(\"blur\",{onElement:this.element,withCallback:this.didBlur}),o(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),o(\"mousedown\",{onElement:this.element,matchingSelector:t,withCallback:this.didClickAttachment}),o(\"click\",{onElement:this.element,matchingSelector:\"a\"+t,preventDefault:!0})}return a(c,u),c.prototype.didFocus=function(){var t,e,n;return t=function(t){return function(){var e;return t.focused?void 0:(t.focused=!0,null!=(e=t.delegate)&&\"function\"==typeof e.compositionControllerDidFocus?e.compositionControllerDidFocus():void 0)}}(this),null!=(e=null!=(n=this.blurPromise)?n.then(t):void 0)?e:t()},c.prototype.didBlur=function(){return this.blurPromise=new Promise(function(t){return function(e){return n(function(){var n;return r(t.element)||(t.focused=null,null!=(n=t.delegate)&&\"function\"==typeof n.compositionControllerDidBlur&&n.compositionControllerDidBlur()),t.blurPromise=null,e()})}}(this))},c.prototype.didClickAttachment=function(t,e){var n,o,r;return n=this.findAttachmentForElement(e),o=null!=i(t.target,{matchingSelector:\"figcaption\"}),null!=(r=this.delegate)&&\"function\"==typeof r.compositionControllerDidSelectAttachment?r.compositionControllerDidSelectAttachment(n,{editCaption:o}):void 0},c.prototype.getSerializableElement=function(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element},c.prototype.render=function(){var t,e,n;return this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced()&&(null!=(t=this.delegate)&&\"function\"==typeof t.compositionControllerWillSyncDocumentView&&t.compositionControllerWillSyncDocumentView(),this.documentView.sync(),null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidSyncDocumentView&&e.compositionControllerDidSyncDocumentView()),null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerDidRender?n.compositionControllerDidRender():void 0},c.prototype.rerenderViewForObject=function(t){return this.invalidateViewForObject(t),this.render()},c.prototype.invalidateViewForObject=function(t){return this.documentView.invalidateViewForObject(t)},c.prototype.isViewCachingEnabled=function(){return this.documentView.isViewCachingEnabled()},c.prototype.enableViewCaching=function(){return this.documentView.enableViewCaching()},c.prototype.disableViewCaching=function(){return this.documentView.disableViewCaching()},c.prototype.refreshViewCache=function(){return this.documentView.garbageCollectCachedViews()},c.prototype.isEditingAttachment=function(){return null!=this.attachmentEditor},c.prototype.installAttachmentEditorForAttachment=function(t,n){var i,o,r;if((null!=(r=this.attachmentEditor)?r.attachment:void 0)!==t&&(o=this.documentView.findElementForObject(t)))return this.uninstallAttachmentEditor(),i=this.composition.document.getAttachmentPieceForAttachment(t),this.attachmentEditor=new e.AttachmentEditorController(i,o,this.element,n),this.attachmentEditor.delegate=this},c.prototype.uninstallAttachmentEditor=function(){var t;return null!=(t=this.attachmentEditor)?t.uninstall():void 0},c.prototype.didUninstallAttachmentEditor=function(){return this.attachmentEditor=null,this.render()},c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment=function(t,e){var n;return null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerWillUpdateAttachment&&n.compositionControllerWillUpdateAttachment(e),this.composition.updateAttributesForAttachment(t,e)},c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment=function(t,e){var n;return null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerWillUpdateAttachment&&n.compositionControllerWillUpdateAttachment(e),this.composition.removeAttributeForAttachment(t,e)},c.prototype.attachmentEditorDidRequestRemovalOfAttachment=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidRequestRemovalOfAttachment?e.compositionControllerDidRequestRemovalOfAttachment(t):void 0},c.prototype.attachmentEditorDidRequestDeselectingAttachment=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidRequestDeselectingAttachment?e.compositionControllerDidRequestDeselectingAttachment(t):void 0},c.prototype.canSyncDocumentView=function(){return!this.isEditingAttachment()},c.prototype.findAttachmentForElement=function(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))},c}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty;n=e.handleEvent,i=e.triggerEvent,t=e.findClosestElementFromNode,e.ToolbarController=function(e){function s(t){this.element=t,this.didKeyDownDialogInput=o(this.didKeyDownDialogInput,this),this.didClickDialogButton=o(this.didClickDialogButton,this),this.didClickAttributeButton=o(this.didClickAttributeButton,this),this.didClickActionButton=o(this.didClickActionButton,this),this.attributes={},this.actions={},this.resetDialogInputs(),n(\"mousedown\",{onElement:this.element,matchingSelector:a,withCallback:this.didClickActionButton}),n(\"mousedown\",{onElement:this.element,matchingSelector:c,withCallback:this.didClickAttributeButton}),n(\"click\",{onElement:this.element,matchingSelector:v,preventDefault:!0}),n(\"click\",{onElement:this.element,matchingSelector:l,withCallback:this.didClickDialogButton}),n(\"keydown\",{onElement:this.element,matchingSelector:h,withCallback:this.didKeyDownDialogInput})}var a,u,c,l,h,p,d,f,g,m,v;return r(s,e),c=\"[data-trix-attribute]\",a=\"[data-trix-action]\",v=c+\", \"+a,p=\"[data-trix-dialog]\",u=p+\"[data-trix-active]\",l=p+\" [data-trix-method]\",h=p+\" [data-trix-input]\",s.prototype.didClickActionButton=function(t,e){var n,i,o;return null!=(i=this.delegate)&&i.toolbarDidClickButton(),t.preventDefault(),n=d(e),this.getDialog(n)?this.toggleDialog(n):null!=(o=this.delegate)?o.toolbarDidInvokeAction(n):void 0},s.prototype.didClickAttributeButton=function(t,e){var n,i,o;return null!=(i=this.delegate)&&i.toolbarDidClickButton(),t.preventDefault(),n=f(e),this.getDialog(n)?this.toggleDialog(n):null!=(o=this.delegate)&&o.toolbarDidToggleAttribute(n),this.refreshAttributeButtons()},s.prototype.didClickDialogButton=function(e,n){var i,o;return i=t(n,{matchingSelector:p}),o=n.getAttribute(\"data-trix-method\"),this[o].call(this,i)},s.prototype.didKeyDownDialogInput=function(t,e){var n,i;return 13===t.keyCode&&(t.preventDefault(),n=e.getAttribute(\"name\"),i=this.getDialog(n),this.setAttribute(i)),27===t.keyCode?(t.preventDefault(),this.hideDialog()):void 0},s.prototype.updateActions=function(t){return this.actions=t,this.refreshActionButtons()},s.prototype.refreshActionButtons=function(){return this.eachActionButton(function(t){return function(e,n){return e.disabled=t.actions[n]===!1}}(this))},s.prototype.eachActionButton=function(t){var e,n,i,o,r;for(o=this.element.querySelectorAll(a),r=[],n=0,i=o.length;i>n;n++)e=o[n],r.push(t(e,d(e)));return r},s.prototype.updateAttributes=function(t){return this.attributes=t,this.refreshAttributeButtons()},s.prototype.refreshAttributeButtons=function(){return this.eachAttributeButton(function(t){return function(e,n){return e.disabled=t.attributes[n]===!1,t.attributes[n]||t.dialogIsVisible(n)?(e.setAttribute(\"data-trix-active\",\"\"),e.classList.add(\"trix-active\")):(e.removeAttribute(\"data-trix-active\"),e.classList.remove(\"trix-active\"))}}(this))},s.prototype.eachAttributeButton=function(t){var e,n,i,o,r;for(o=this.element.querySelectorAll(c),r=[],n=0,i=o.length;i>n;n++)e=o[n],r.push(t(e,f(e)));return r},s.prototype.applyKeyboardCommand=function(t){var e,n,o,r,s,a,u;for(s=JSON.stringify(t.sort()),u=this.element.querySelectorAll(\"[data-trix-key]\"),r=0,a=u.length;a>r;r++)if(e=u[r],o=e.getAttribute(\"data-trix-key\").split(\"+\"),n=JSON.stringify(o.sort()),n===s)return i(\"mousedown\",{onElement:e}),!0;return!1},s.prototype.dialogIsVisible=function(t){var e;return(e=this.getDialog(t))?e.hasAttribute(\"data-trix-active\"):void 0},s.prototype.toggleDialog=function(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)},s.prototype.showDialog=function(t){var e,n,i,o,r,s,a,u,c,l;for(this.hideDialog(),null!=(a=this.delegate)&&a.toolbarWillShowDialog(),i=this.getDialog(t),i.setAttribute(\"data-trix-active\",\"\"),i.classList.add(\"trix-active\"),u=i.querySelectorAll(\"input[disabled]\"),o=0,s=u.length;s>o;o++)n=u[o],n.removeAttribute(\"disabled\");return(e=f(i))&&(r=m(i,t))&&(r.value=null!=(c=this.attributes[e])?c:\"\",r.select()),null!=(l=this.delegate)?l.toolbarDidShowDialog(t):void 0},s.prototype.setAttribute=function(t){var e,n,i;return e=f(t),n=m(t,e),n.willValidate&&!n.checkValidity()?(n.setAttribute(\"data-trix-validate\",\"\"),n.classList.add(\"trix-validate\"),n.focus()):(null!=(i=this.delegate)&&i.toolbarDidUpdateAttribute(e,n.value),this.hideDialog())},s.prototype.removeAttribute=function(t){var e,n;return e=f(t),null!=(n=this.delegate)&&n.toolbarDidRemoveAttribute(e),this.hideDialog()},s.prototype.hideDialog=function(){var t,e;return(t=this.element.querySelector(u))?(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null!=(e=this.delegate)?e.toolbarDidHideDialog(g(t)):void 0):void 0},s.prototype.resetDialogInputs=function(){var t,e,n,i,o;for(i=this.element.querySelectorAll(h),o=[],t=0,n=i.length;n>t;t++)e=i[t],e.setAttribute(\"disabled\",\"disabled\"),e.removeAttribute(\"data-trix-validate\"),o.push(e.classList.remove(\"trix-validate\"));return o},s.prototype.getDialog=function(t){return this.element.querySelector(\"[data-trix-dialog=\"+t+\"]\")},m=function(t,e){return null==e&&(e=f(t)),t.querySelector(\"[data-trix-input][name='\"+e+\"']\")},d=function(t){return t.getAttribute(\"data-trix-action\")},f=function(t){var e;return null!=(e=t.getAttribute(\"data-trix-attribute\"))?e:t.getAttribute(\"data-trix-dialog-attribute\")},g=function(t){return t.getAttribute(\"data-trix-dialog\")},s}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ImagePreloadOperation=function(e){function n(t){this.url=t}return t(n,e),n.prototype.perform=function(t){var e;return e=new Image,e.onload=function(n){return function(){return e.width=n.width=e.naturalWidth,e.height=n.height=e.naturalHeight,t(!0,e)}}(this),e.onerror=function(){return t(!1)},e.src=this.url},n}(e.Operation)}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;e.Attachment=function(i){function o(n){null==n&&(n={}),this.releaseFile=t(this.releaseFile,this),o.__super__.constructor.apply(this,arguments),this.attributes=e.Hash.box(n),this.didChangeAttributes()}return n(o,i),o.previewablePattern=/^image(\\/(gif|png|jpe?g)|$)/,o.attachmentForFile=function(t){var e,n;return n=this.attributesForFile(t),e=new this(n),e.setFile(t),e},o.attributesForFile=function(t){return new e.Hash({filename:t.name,filesize:t.size,contentType:t.type})},o.fromJSON=function(t){return new this(t)},o.prototype.getAttribute=function(t){return this.attributes.get(t)},o.prototype.hasAttribute=function(t){return this.attributes.has(t)},o.prototype.getAttributes=function(){return this.attributes.toObject()},o.prototype.setAttributes=function(t){var e,n,i;return null==t&&(t={}),e=this.attributes.merge(t),this.attributes.isEqualTo(e)?void 0:(this.attributes=e,this.didChangeAttributes(),null!=(n=this.previewDelegate)&&\"function\"==typeof n.attachmentDidChangeAttributes&&n.attachmentDidChangeAttributes(this),null!=(i=this.delegate)&&\"function\"==typeof i.attachmentDidChangeAttributes?i.attachmentDidChangeAttributes(this):void 0)},o.prototype.didChangeAttributes=function(){return this.isPreviewable()?this.preloadURL():void 0},o.prototype.isPending=function(){return null!=this.file&&!(this.getURL()||this.getHref())},o.prototype.isPreviewable=function(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):this.constructor.previewablePattern.test(this.getContentType())},o.prototype.getType=function(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"},o.prototype.getURL=function(){return this.attributes.get(\"url\")},o.prototype.getHref=function(){return this.attributes.get(\"href\")},o.prototype.getFilename=function(){var t;return null!=(t=this.attributes.get(\"filename\"))?t:\"\"},o.prototype.getFilesize=function(){return this.attributes.get(\"filesize\")},o.prototype.getFormattedFilesize=function(){var t;return t=this.attributes.get(\"filesize\"),\"number\"==typeof t?e.config.fileSize.formatter(t):\"\"},o.prototype.getExtension=function(){var t;return null!=(t=this.getFilename().match(/\\.(\\w+)$/))?t[1].toLowerCase():void 0},o.prototype.getContentType=function(){return this.attributes.get(\"contentType\")},o.prototype.hasContent=function(){return this.attributes.has(\"content\")},o.prototype.getContent=function(){return this.attributes.get(\"content\")},o.prototype.getWidth=function(){return this.attributes.get(\"width\")},o.prototype.getHeight=function(){return this.attributes.get(\"height\")},o.prototype.getFile=function(){return this.file},o.prototype.setFile=function(t){return this.file=t,this.isPreviewable()?this.preloadFile():void 0},o.prototype.releaseFile=function(){return this.releasePreloadedFile(),this.file=null},o.prototype.getUploadProgress=function(){var t;return null!=(t=this.uploadProgress)?t:0},o.prototype.setUploadProgress=function(t){var e;return this.uploadProgress!==t?(this.uploadProgress=t,null!=(e=this.uploadProgressDelegate)&&\"function\"==typeof e.attachmentDidChangeUploadProgress?e.attachmentDidChangeUploadProgress(this):void 0):void 0},o.prototype.toJSON=function(){return this.getAttributes()},o.prototype.getCacheKey=function(){return[o.__super__.getCacheKey.apply(this,arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")},o.prototype.getPreviewURL=function(){return this.previewURL||this.preloadingURL},o.prototype.setPreviewURL=function(t){var e,n;return t!==this.getPreviewURL()?(this.previewURL=t,null!=(e=this.previewDelegate)&&\"function\"==typeof e.attachmentDidChangeAttributes&&e.attachmentDidChangeAttributes(this),null!=(n=this.delegate)&&\"function\"==typeof n.attachmentDidChangePreviewURL?n.attachmentDidChangePreviewURL(this):void 0):void 0},o.prototype.preloadURL=function(){return this.preload(this.getURL(),this.releaseFile)},o.prototype.preloadFile=function(){return this.file?(this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)):void 0},o.prototype.releasePreloadedFile=function(){return this.fileObjectURL?(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null):void 0},o.prototype.preload=function(t,n){var i;return t&&t!==this.getPreviewURL()?(this.preloadingURL=t,i=new e.ImagePreloadOperation(t),i.then(function(e){return function(i){var o,r;return r=i.width,o=i.height,e.getWidth()&&e.getHeight()||e.setAttributes({width:r,height:o}),e.preloadingURL=null,e.setPreviewURL(t),\"function\"==typeof n?n():void 0}}(this))[\"catch\"](function(t){return function(){return t.preloadingURL=null,\"function\"==typeof n?n():void 0}}(this))):void 0},o}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Piece=function(n){function i(t,n){null==n&&(n={}),i.__super__.constructor.apply(this,arguments),this.attributes=e.Hash.box(n)}return t(i,n),i.types={},i.registerType=function(t,e){return e.type=t,this.types[t]=e},i.fromJSON=function(t){var e;return(e=this.types[t.type])?e.fromJSON(t):void 0},i.prototype.copyWithAttributes=function(t){return new this.constructor(this.getValue(),t)},i.prototype.copyWithAdditionalAttributes=function(t){return this.copyWithAttributes(this.attributes.merge(t))},i.prototype.copyWithoutAttribute=function(t){return this.copyWithAttributes(this.attributes.remove(t))},i.prototype.copy=function(){return this.copyWithAttributes(this.attributes)},i.prototype.getAttribute=function(t){return this.attributes.get(t)},i.prototype.getAttributesHash=function(){return this.attributes},i.prototype.getAttributes=function(){return this.attributes.toObject()},i.prototype.getCommonAttributes=function(){var t,e,n;return(n=pieceList.getPieceAtIndex(0))?(t=n.attributes,e=t.getKeys(),pieceList.eachPiece(function(n){return e=t.getKeysCommonToHash(n.attributes),t=t.slice(e)}),t.toObject()):{}},i.prototype.hasAttribute=function(t){return this.attributes.has(t)},i.prototype.hasSameStringValueAsPiece=function(t){return null!=t&&this.toString()===t.toString()},i.prototype.hasSameAttributesAsPiece=function(t){return null!=t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))},i.prototype.isBlockBreak=function(){return!1},i.prototype.isEqualTo=function(t){return i.__super__.isEqualTo.apply(this,arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)},i.prototype.isEmpty=function(){return 0===this.length},i.prototype.isSerializable=function(){return!0},i.prototype.toJSON=function(){return{type:this.constructor.type,attributes:this.getAttributes()}},i.prototype.contentsForInspection=function(){return{type:this.constructor.type,attributes:this.attributes.inspect()}},i.prototype.canBeGrouped=function(){return this.hasAttribute(\"href\")},i.prototype.canBeGroupedWith=function(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")},i.prototype.getLength=function(){return this.length},i.prototype.canBeConsolidatedWith=function(){return!1},i}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Piece.registerType(\"attachment\",e.AttachmentPiece=function(n){function i(t){this.attachment=t,i.__super__.constructor.apply(this,arguments),this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}return t(i,n),i.fromJSON=function(t){return new this(e.Attachment.fromJSON(t.attachment),t.attributes)},i.permittedAttributes=[\"caption\",\"presentation\"],i.prototype.ensureAttachmentExclusivelyHasAttribute=function(t){return this.hasAttribute(t)?(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice(t)),this.attributes=this.attributes.remove(t)):void 0},i.prototype.removeProhibitedAttributes=function(){var t;return t=this.attributes.slice(this.constructor.permittedAttributes),t.isEqualTo(this.attributes)?void 0:this.attributes=t},i.prototype.getValue=function(){return this.attachment},i.prototype.isSerializable=function(){return!this.attachment.isPending()},i.prototype.getCaption=function(){var t;return null!=(t=this.attributes.get(\"caption\"))?t:\"\"},i.prototype.isEqualTo=function(t){var e;return i.__super__.isEqualTo.apply(this,arguments)&&this.attachment.id===(null!=t&&null!=(e=t.attachment)?e.id:void 0)},i.prototype.toString=function(){return e.OBJECT_REPLACEMENT_CHARACTER},i.prototype.toJSON=function(){var t;return t=i.__super__.toJSON.apply(this,arguments),t.attachment=this.attachment,t},i.prototype.getCacheKey=function(){return[i.__super__.getCacheKey.apply(this,arguments),this.attachment.getCacheKey()].join(\"/\")},i.prototype.toConsole=function(){return JSON.stringify(this.toString())},i}(e.Piece))}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.normalizeNewlines,e.Piece.registerType(\"string\",e.StringPiece=function(e){function i(e){i.__super__.constructor.apply(this,arguments),this.string=t(e),this.length=this.string.length}return n(i,e),i.fromJSON=function(t){return new this(t.string,t.attributes)},i.prototype.getValue=function(){return this.string},i.prototype.toString=function(){return this.string.toString()},i.prototype.isBlockBreak=function(){return\"\\n\"===this.toString()&&this.getAttribute(\"blockBreak\")===!0},i.prototype.toJSON=function(){var t;return t=i.__super__.toJSON.apply(this,arguments),t.string=this.string,t},i.prototype.canBeConsolidatedWith=function(t){return null!=t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)},i.prototype.consolidateWith=function(t){return new this.constructor(this.toString()+t.toString(),this.attributes)},i.prototype.splitAtOffset=function(t){var e,n;return 0===t?(e=null,n=this):t===this.length?(e=this,n=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),n=new this.constructor(this.string.slice(t),this.attributes)),[e,n]},i.prototype.toConsole=function(){var t;return t=this.string,t.length>15&&(t=t.slice(0,14)+\"\\u2026\"),JSON.stringify(t.toString())},i}(e.Piece))}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty,o=[].slice;t=e.spliceArray,e.SplittableList=function(e){function i(t){null==t&&(t=[]),i.__super__.constructor.apply(this,arguments),this.objects=t.slice(0),this.length=this.objects.length}var r,s,a;return n(i,e),i.box=function(t){return t instanceof this?t:new this(t)},i.prototype.indexOf=function(t){return this.objects.indexOf(t)},i.prototype.splice=function(){var e;return e=1<=arguments.length?o.call(arguments,0):[],new this.constructor(t.apply(null,[this.objects].concat(o.call(e))))},i.prototype.eachObject=function(t){var e,n,i,o,r,s;for(r=this.objects,s=[],n=e=0,i=r.length;i>e;n=++e)o=r[n],s.push(t(o,n));return s},i.prototype.insertObjectAtIndex=function(t,e){return this.splice(e,0,t)},i.prototype.insertSplittableListAtIndex=function(t,e){return this.splice.apply(this,[e,0].concat(o.call(t.objects)))},i.prototype.insertSplittableListAtPosition=function(t,e){var n,i,o;return o=this.splitObjectAtPosition(e),i=o[0],n=o[1],new this.constructor(i).insertSplittableListAtIndex(t,n)},i.prototype.editObjectAtIndex=function(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)},i.prototype.replaceObjectAtIndex=function(t,e){return this.splice(e,1,t)},i.prototype.removeObjectAtIndex=function(t){return this.splice(t,1)},i.prototype.getObjectAtIndex=function(t){return this.objects[t]},i.prototype.getSplittableListInRange=function(t){var e,n,i,o;return i=this.splitObjectsAtRange(t),n=i[0],e=i[1],o=i[2],new this.constructor(n.slice(e,o+1))},i.prototype.selectSplittableList=function(t){var e,n;return n=function(){var n,i,o,r;for(o=this.objects,r=[],n=0,i=o.length;i>n;n++)e=o[n],t(e)&&r.push(e);return r}.call(this),new this.constructor(n)},i.prototype.removeObjectsInRange=function(t){var e,n,i,o;return i=this.splitObjectsAtRange(t),n=i[0],e=i[1],o=i[2],new this.constructor(n).splice(e,o-e+1)},i.prototype.transformObjectsInRange=function(t,e){var n,i,o,r,s,a,u;return s=this.splitObjectsAtRange(t),r=s[0],i=s[1],a=s[2],u=function(){var t,s,u;for(u=[],n=t=0,s=r.length;s>t;n=++t)o=r[n],u.push(n>=i&&a>=n?e(o):o);return u}(),new this.constructor(u)},i.prototype.splitObjectsAtRange=function(t){var e,n,i,o,s,u;return o=this.splitObjectAtPosition(a(t)),n=o[0],e=o[1],i=o[2],s=new this.constructor(n).splitObjectAtPosition(r(t)+i),n=s[0],u=s[1],[n,e,u-1]},i.prototype.getObjectAtPosition=function(t){var e,n,i;return i=this.findIndexAndOffsetAtPosition(t),e=i.index,n=i.offset,this.objects[e]},i.prototype.splitObjectAtPosition=function(t){var e,n,i,o,r,s,a,u,c,l;return s=this.findIndexAndOffsetAtPosition(t),e=s.index,r=s.offset,o=this.objects.slice(0),null!=e?0===r?(c=e,l=0):(i=this.getObjectAtIndex(e),a=i.splitAtOffset(r),n=a[0],u=a[1],o.splice(e,1,n,u),c=e+1,l=n.getLength()-r):(c=o.length,l=0),[o,c,l]},i.prototype.consolidate=function(){var t,e,n,i,o,r;for(i=[],o=this.objects[0],r=this.objects.slice(1),t=0,e=r.length;e>t;t++)n=r[t],(\"function\"==typeof o.canBeConsolidatedWith?o.canBeConsolidatedWith(n):void 0)?o=o.consolidateWith(n):(i.push(o),o=n);return null!=o&&i.push(o),new this.constructor(i)},i.prototype.consolidateFromIndexToIndex=function(t,e){var n,i,r;return i=this.objects.slice(0),r=i.slice(t,e+1),n=new this.constructor(r).consolidate().toArray(),this.splice.apply(this,[t,r.length].concat(o.call(n)))},i.prototype.findIndexAndOffsetAtPosition=function(t){var e,n,i,o,r,s,a;for(e=0,a=this.objects,i=n=0,o=a.length;o>n;i=++n){if(s=a[i],r=e+s.getLength(),t>=e&&r>t)return{index:i,offset:t-e};e=r}return{index:null,offset:null}},i.prototype.findPositionAtIndexAndOffset=function(t,e){var n,i,o,r,s,a;for(s=0,a=this.objects,n=i=0,o=a.length;o>i;n=++i)if(r=a[n],t>n)s+=r.getLength();else if(n===t){s+=e;break}return s},i.prototype.getEndPosition=function(){var t,e;return null!=this.endPosition?this.endPosition:this.endPosition=function(){var n,i,o;for(e=0,o=this.objects,n=0,i=o.length;i>n;n++)t=o[n],e+=t.getLength();return e}.call(this)},i.prototype.toString=function(){return this.objects.join(\"\")},i.prototype.toArray=function(){return this.objects.slice(0)},i.prototype.toJSON=function(){return this.toArray()},i.prototype.isEqualTo=function(t){return i.__super__.isEqualTo.apply(this,arguments)||s(this.objects,null!=t?t.objects:void 0)},s=function(t,e){var n,i,o,r,s;if(null==e&&(e=[]),t.length!==e.length)return!1;for(s=!0,i=n=0,o=t.length;o>n;i=++n)r=t[i],s&&!r.isEqualTo(e[i])&&(s=!1);return s},i.prototype.contentsForInspection=function(){var t;return{objects:\"[\"+function(){var e,n,i,o;for(i=this.objects,o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(t.inspect());return o}.call(this).join(\", \")+\"]\"}},a=function(t){return t[0]},r=function(t){return t[1]},i}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Text=function(n){function i(t){var n;null==t&&(t=[]),i.__super__.constructor.apply(this,arguments),this.pieceList=new e.SplittableList(function(){var e,i,o;for(o=[],e=0,i=t.length;i>e;e++)n=t[e],n.isEmpty()||o.push(n);return o}())}return t(i,n),i.textForAttachmentWithAttributes=function(t,n){var i;return i=new e.AttachmentPiece(t,n),new this([i])},i.textForStringWithAttributes=function(t,n){var i;return i=new e.StringPiece(t,n),new this([i])},i.fromJSON=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(e.Piece.fromJSON(n));return r}(),new this(i)},i.prototype.copy=function(){return this.copyWithPieceList(this.pieceList)},i.prototype.copyWithPieceList=function(t){return new this.constructor(t.consolidate().toArray())},i.prototype.copyUsingObjectMap=function(t){var e,n;return n=function(){var n,i,o,r,s;for(o=this.getPieces(),s=[],n=0,i=o.length;i>n;n++)e=o[n],s.push(null!=(r=t.find(e))?r:e);return s}.call(this),new this.constructor(n)},i.prototype.appendText=function(t){return this.insertTextAtPosition(t,this.getLength())},i.prototype.insertTextAtPosition=function(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))\n},i.prototype.removeTextAtRange=function(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))},i.prototype.replaceTextAtRange=function(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])},i.prototype.moveTextFromRangeToPosition=function(t,e){var n,i;if(!(t[0]<=e&&e<=t[1]))return i=this.getTextAtRange(t),n=i.getLength(),t[0]<e&&(e-=n),this.removeTextAtRange(t).insertTextAtPosition(i,e)},i.prototype.addAttributeAtRange=function(t,e,n){var i;return i={},i[t]=e,this.addAttributesAtRange(i,n)},i.prototype.addAttributesAtRange=function(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,function(e){return e.copyWithAdditionalAttributes(t)}))},i.prototype.removeAttributeAtRange=function(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,function(e){return e.copyWithoutAttribute(t)}))},i.prototype.setAttributesAtRange=function(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,function(e){return e.copyWithAttributes(t)}))},i.prototype.getAttributesAtPosition=function(t){var e,n;return null!=(e=null!=(n=this.pieceList.getObjectAtPosition(t))?n.getAttributes():void 0)?e:{}},i.prototype.getCommonAttributes=function(){var t,n;return t=function(){var t,e,i,o;for(i=this.pieceList.toArray(),o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.getAttributes());return o}.call(this),e.Hash.fromCommonAttributesOfObjects(t).toObject()},i.prototype.getCommonAttributesAtRange=function(t){var e;return null!=(e=this.getTextAtRange(t).getCommonAttributes())?e:{}},i.prototype.getExpandedRangeForAttributeAtOffset=function(t,e){var n,i,o;for(n=o=e,i=this.getLength();n>0&&this.getCommonAttributesAtRange([n-1,o])[t];)n--;for(;i>o&&this.getCommonAttributesAtRange([e,o+1])[t];)o++;return[n,o]},i.prototype.getTextAtRange=function(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))},i.prototype.getStringAtRange=function(t){return this.pieceList.getSplittableListInRange(t).toString()},i.prototype.getStringAtPosition=function(t){return this.getStringAtRange([t,t+1])},i.prototype.startsWithString=function(t){return this.getStringAtRange([0,t.length])===t},i.prototype.endsWithString=function(t){var e;return e=this.getLength(),this.getStringAtRange([e-t.length,e])===t},i.prototype.getAttachmentPieces=function(){var t,e,n,i,o;for(i=this.pieceList.toArray(),o=[],t=0,e=i.length;e>t;t++)n=i[t],null!=n.attachment&&o.push(n);return o},i.prototype.getAttachments=function(){var t,e,n,i,o;for(i=this.getAttachmentPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.attachment);return o},i.prototype.getAttachmentAndPositionById=function(t){var e,n,i,o,r,s;for(o=0,r=this.pieceList.toArray(),e=0,n=r.length;n>e;e++){if(i=r[e],(null!=(s=i.attachment)?s.id:void 0)===t)return{attachment:i.attachment,position:o};o+=i.length}return{attachment:null,position:null}},i.prototype.getAttachmentById=function(t){var e,n,i;return i=this.getAttachmentAndPositionById(t),e=i.attachment,n=i.position,e},i.prototype.getRangeOfAttachment=function(t){var e,n;return n=this.getAttachmentAndPositionById(t.id),t=n.attachment,e=n.position,null!=t?[e,e+1]:void 0},i.prototype.updateAttributesForAttachment=function(t,e){var n;return(n=this.getRangeOfAttachment(e))?this.addAttributesAtRange(t,n):this},i.prototype.getLength=function(){return this.pieceList.getEndPosition()},i.prototype.isEmpty=function(){return 0===this.getLength()},i.prototype.isEqualTo=function(t){var e;return i.__super__.isEqualTo.apply(this,arguments)||(null!=t&&null!=(e=t.pieceList)?e.isEqualTo(this.pieceList):void 0)},i.prototype.isBlockBreak=function(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()},i.prototype.eachPiece=function(t){return this.pieceList.eachObject(t)},i.prototype.getPieces=function(){return this.pieceList.toArray()},i.prototype.getPieceAtPosition=function(t){return this.pieceList.getObjectAtPosition(t)},i.prototype.contentsForInspection=function(){return{pieceList:this.pieceList.inspect()}},i.prototype.toSerializableText=function(){var t;return t=this.pieceList.selectSplittableList(function(t){return t.isSerializable()}),this.copyWithPieceList(t)},i.prototype.toString=function(){return this.pieceList.toString()},i.prototype.toJSON=function(){return this.pieceList.toJSON()},i.prototype.toConsole=function(){var t;return JSON.stringify(function(){var e,n,i,o;for(i=this.pieceList.toArray(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(JSON.parse(t.toConsole()));return o}.call(this))},i.prototype.getDirection=function(){return e.getDirection(this.toString())},i.prototype.isRTL=function(){return\"rtl\"===this.getDirection()},i}(e.Object)}.call(this),function(){var t,n,i,o,r,s=function(t,e){function n(){this.constructor=t}for(var i in e)a.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},a={}.hasOwnProperty,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},c=[].slice;t=e.arraysAreEqual,r=e.spliceArray,i=e.getBlockConfig,n=e.getBlockAttributeNames,o=e.getListAttributeNames,e.Block=function(n){function a(t,n){null==t&&(t=new e.Text),null==n&&(n=[]),a.__super__.constructor.apply(this,arguments),this.text=h(t),this.attributes=n}var l,h,p,d,f,g,m,v,y;return s(a,n),a.fromJSON=function(t){var n;return n=e.Text.fromJSON(t.text),new this(n,t.attributes)},a.prototype.isEmpty=function(){return this.text.isBlockBreak()},a.prototype.isEqualTo=function(e){return a.__super__.isEqualTo.apply(this,arguments)||this.text.isEqualTo(null!=e?e.text:void 0)&&t(this.attributes,null!=e?e.attributes:void 0)},a.prototype.copyWithText=function(t){return new this.constructor(t,this.attributes)},a.prototype.copyWithoutText=function(){return this.copyWithText(null)},a.prototype.copyWithAttributes=function(t){return new this.constructor(this.text,t)},a.prototype.copyWithoutAttributes=function(){return this.copyWithAttributes(null)},a.prototype.copyUsingObjectMap=function(t){var e;return this.copyWithText((e=t.find(this.text))?e:this.text.copyUsingObjectMap(t))},a.prototype.addAttribute=function(t){var e;return e=this.attributes.concat(d(t)),this.copyWithAttributes(e)},a.prototype.removeAttribute=function(t){var e,n;return n=i(t).listAttribute,e=g(g(this.attributes,t),n),this.copyWithAttributes(e)},a.prototype.removeLastAttribute=function(){return this.removeAttribute(this.getLastAttribute())},a.prototype.getLastAttribute=function(){return f(this.attributes)},a.prototype.getAttributes=function(){return this.attributes.slice(0)},a.prototype.getAttributeLevel=function(){return this.attributes.length},a.prototype.getAttributeAtLevel=function(t){return this.attributes[t-1]},a.prototype.hasAttribute=function(t){return u.call(this.attributes,t)>=0},a.prototype.hasAttributes=function(){return this.getAttributeLevel()>0},a.prototype.getLastNestableAttribute=function(){return f(this.getNestableAttributes())},a.prototype.getNestableAttributes=function(){var t,e,n,o,r;for(o=this.attributes,r=[],e=0,n=o.length;n>e;e++)t=o[e],i(t).nestable&&r.push(t);return r},a.prototype.getNestingLevel=function(){return this.getNestableAttributes().length},a.prototype.decreaseNestingLevel=function(){var t;return(t=this.getLastNestableAttribute())?this.removeAttribute(t):this},a.prototype.increaseNestingLevel=function(){var t,e,n;return(t=this.getLastNestableAttribute())?(n=this.attributes.lastIndexOf(t),e=r.apply(null,[this.attributes,n+1,0].concat(c.call(d(t)))),this.copyWithAttributes(e)):this},a.prototype.getListItemAttributes=function(){var t,e,n,o,r;for(o=this.attributes,r=[],e=0,n=o.length;n>e;e++)t=o[e],i(t).listAttribute&&r.push(t);return r},a.prototype.isListItem=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.listAttribute:void 0},a.prototype.isTerminalBlock=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.terminal:void 0},a.prototype.breaksOnReturn=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.breakOnReturn:void 0},a.prototype.findLineBreakInDirectionFromPosition=function(t,e){var n,i;return i=this.toString(),n=function(){switch(t){case\"forward\":return i.indexOf(\"\\n\",e);case\"backward\":return i.slice(0,e).lastIndexOf(\"\\n\")}}(),-1!==n?n:void 0},a.prototype.contentsForInspection=function(){return{text:this.text.inspect(),attributes:this.attributes}},a.prototype.toString=function(){return this.text.toString()},a.prototype.toJSON=function(){return{text:this.text,attributes:this.attributes}},a.prototype.getDirection=function(){return this.text.getDirection()},a.prototype.isRTL=function(){return this.text.isRTL()},a.prototype.getLength=function(){return this.text.getLength()},a.prototype.canBeConsolidatedWith=function(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()},a.prototype.consolidateWith=function(t){var n,i;return n=e.Text.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(n),this.copyWithText(i.appendText(t.text))},a.prototype.splitAtOffset=function(t){var e,n;return 0===t?(e=null,n=this):t===this.getLength()?(e=this,n=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),n=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,n]},a.prototype.getBlockBreakPosition=function(){return this.text.getLength()-1},a.prototype.getTextWithoutBlockBreak=function(){return m(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()},a.prototype.canBeGrouped=function(t){return this.attributes[t]},a.prototype.canBeGroupedWith=function(t,e){var n,r,s,a;return s=t.getAttributes(),r=s[e],n=this.attributes[e],!(n!==r||i(n).group===!1&&(a=s[e+1],u.call(o(),a)<0)||this.getDirection()!==t.getDirection()&&!t.isEmpty())},h=function(t){return t=y(t),t=l(t)},y=function(t){var n,i,o,r,s,a;return r=!1,a=t.getPieces(),i=2<=a.length?c.call(a,0,n=a.length-1):(n=0,[]),o=a[n++],null==o?t:(i=function(){var t,e,n;for(n=[],t=0,e=i.length;e>t;t++)s=i[t],s.isBlockBreak()?(r=!0,n.push(v(s))):n.push(s);return n}(),r?new e.Text(c.call(i).concat([o])):t)},p=e.Text.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),l=function(t){return m(t)?t:t.appendText(p)},m=function(t){var e,n;return n=t.getLength(),0===n?!1:(e=t.getTextAtRange([n-1,n]),e.isBlockBreak())},v=function(t){return t.copyWithoutAttribute(\"blockBreak\")},d=function(t){var e;return e=i(t).listAttribute,null!=e?[e,t]:[t]},f=function(t){return t.slice(-1)[0]},g=function(t,e){var n;return n=t.lastIndexOf(e),-1===n?t:r(t,n,1)},a}(e.Object)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty,s=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},a=[].slice;n=e.tagName,i=e.walkTree,t=e.nodeIsAttachmentElement,e.HTMLSanitizer=function(r){function u(t,e){var n;n=null!=e?e:{},this.allowedAttributes=n.allowedAttributes,this.forbiddenProtocols=n.forbiddenProtocols,this.forbiddenElements=n.forbiddenElements,null==this.allowedAttributes&&(this.allowedAttributes=c),null==this.forbiddenProtocols&&(this.forbiddenProtocols=h),null==this.forbiddenElements&&(this.forbiddenElements=l),this.body=p(t)}var c,l,h,p;return o(u,r),c=\"style href src width height class\".split(\" \"),h=\"javascript:\".split(\" \"),l=\"script iframe noscript\".split(\" \"),u.sanitize=function(t,e){var n;return n=new this(t,e),n.sanitize(),n},u.prototype.sanitize=function(){return this.sanitizeElements(),this.normalizeListElementNesting()},u.prototype.getHTML=function(){return this.body.innerHTML},u.prototype.getBody=function(){return this.body},u.prototype.sanitizeElements=function(){var t,n,o,r,s;for(s=i(this.body),r=[];s.nextNode();)switch(o=s.currentNode,o.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(o)?r.push(o):this.sanitizeElement(o);break;case Node.COMMENT_NODE:r.push(o)}for(t=0,n=r.length;n>t;t++)o=r[t],e.removeNode(o);return this.body},u.prototype.sanitizeElement=function(t){var e,n,i,o,r;for(t.hasAttribute(\"href\")&&(o=t.protocol,s.call(this.forbiddenProtocols,o)>=0&&t.removeAttribute(\"href\")),r=a.call(t.attributes),e=0,n=r.length;n>e;e++)i=r[e].name,s.call(this.allowedAttributes,i)>=0||0===i.indexOf(\"data-trix\")||t.removeAttribute(i);return t},u.prototype.normalizeListElementNesting=function(){var t,e,i,o,r;for(r=a.call(this.body.querySelectorAll(\"ul,ol\")),t=0,e=r.length;e>t;t++)i=r[t],(o=i.previousElementSibling)&&\"li\"===n(o)&&o.appendChild(i);return this.body},u.prototype.elementIsRemovable=function(t){return(null!=t?t.nodeType:void 0)===Node.ELEMENT_NODE?this.elementIsForbidden(t)||this.elementIsntSerializable(t):void 0},u.prototype.elementIsForbidden=function(t){var e;return e=n(t),s.call(this.forbiddenElements,e)>=0},u.prototype.elementIsntSerializable=function(e){return\"false\"===e.getAttribute(\"data-trix-serialize\")&&!t(e)},p=function(t){var e,n,i,o,r;for(null==t&&(t=\"\"),t=t.replace(/<\\/html[^>]*>[^]*$/i,\"</html>\"),e=document.implementation.createHTMLDocument(\"\"),e.documentElement.innerHTML=t,r=e.head.querySelectorAll(\"style\"),i=0,o=r.length;o>i;i++)n=r[i],e.body.appendChild(n);return e.body},u}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h,p=function(t,e){function n(){this.constructor=t}for(var i in e)d.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty,f=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.arraysAreEqual,s=e.makeElement,l=e.tagName,r=e.getBlockTagNames,h=e.walkTree,o=e.findClosestElementFromNode,i=e.elementContainsNode,a=e.nodeIsAttachmentElement,u=e.normalizeSpaces,n=e.breakableWhitespacePattern,c=e.squishBreakableWhitespace,e.HTMLParser=function(d){function g(t,e){this.html=t,this.referenceElement=(null!=e?e:{}).referenceElement,this.blocks=[],this.blockElements=[],this.processedElements=[]}var m,v,y,b,A,C,x,w,E,S,R,k;return p(g,d),g.parse=function(t,e){var n;return n=new this(t,e),n.parse(),n},g.prototype.getDocument=function(){return e.Document.fromJSON(this.blocks)},g.prototype.parse=function(){var t,n;try{for(this.createHiddenContainer(),t=e.HTMLSanitizer.sanitize(this.html).getHTML(),this.containerElement.innerHTML=t,n=h(this.containerElement,{usingFilter:x});n.nextNode();)this.processNode(n.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}},g.prototype.createHiddenContainer=function(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=s({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))},g.prototype.removeHiddenContainer=function(){return e.removeNode(this.containerElement)},x=function(t){return\"style\"===l(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},g.prototype.processNode=function(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}},g.prototype.appendBlockForTextNode=function(e){var n,i,o;return i=e.parentNode,i===this.currentBlockElement&&this.isBlockElement(e.previousSibling)?this.appendStringWithAttributes(\"\\n\"):i!==this.containerElement&&!this.isBlockElement(i)||(n=this.getBlockAttributes(i),t(n,null!=(o=this.currentBlock)?o.attributes:void 0))?void 0:(this.currentBlock=this.appendBlockForAttributesWithElement(n,i),this.currentBlockElement=i)},g.prototype.appendBlockForElement=function(e){var n,o,r,s;if(r=this.isBlockElement(e),o=i(this.currentBlockElement,e),r&&!this.isBlockElement(e.firstChild)){if((!this.isInsignificantTextNode(e.firstChild)||!this.isBlockElement(e.firstElementChild))&&(n=this.getBlockAttributes(e),e.firstChild))return o&&t(n,this.currentBlock.attributes)?this.appendStringWithAttributes(\"\\n\"):(this.currentBlock=this.appendBlockForAttributesWithElement(n,e),this.currentBlockElement=e)}else if(this.currentBlockElement&&!o&&!r)return(s=this.findParentBlockElement(e))?this.appendBlockForElement(s):(this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null)},g.prototype.findParentBlockElement=function(t){var e;for(e=t.parentElement;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&f.call(this.blockElements,e)>=0)return e;e=e.parentElement}return null},g.prototype.processTextNode=function(t){var e,n;return n=t.data,v(t.parentNode)||(n=c(n),R(null!=(e=t.previousSibling)?e.textContent:void 0)&&(n=A(n))),this.appendStringWithAttributes(n,this.getTextAttributes(t.parentNode))},g.prototype.processElement=function(t){var e,n,i,o,r;if(a(t))return e=w(t,\"attachment\"),Object.keys(e).length&&(o=this.getTextAttributes(t),this.appendAttachmentWithAttributes(e,o),t.innerHTML=\"\"),this.processedElements.push(t);switch(l(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"},i=b(t);for(n in i)r=i[n],e[n]=r;return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(t.parentNode.firstChild!==t)return this.appendStringWithAttributes(\"\\n\");break;case\"td\":if(t.parentNode.firstChild!==t)return this.appendStringWithAttributes(\" | \")}},g.prototype.appendBlockForAttributesWithElement=function(t,e){var n;return this.blockElements.push(e),n=m(t),this.blocks.push(n),n},g.prototype.appendEmptyBlock=function(){return this.appendBlockForAttributesWithElement([],null)},g.prototype.appendStringWithAttributes=function(t,e){return this.appendPiece(S(t,e))},g.prototype.appendAttachmentWithAttributes=function(t,e){return this.appendPiece(E(t,e))},g.prototype.appendPiece=function(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)},g.prototype.appendStringToTextAtIndex=function(t,e){var n,i;return i=this.blocks[e].text,n=i[i.length-1],\"string\"===(null!=n?n.type:void 0)?n.string+=t:i.push(S(t))},g.prototype.prependStringToTextAtIndex=function(t,e){var n,i;return i=this.blocks[e].text,n=i[0],\"string\"===(null!=n?n.type:void 0)?n.string=t+n.string:i.unshift(S(t))},S=function(t,e){var n;return null==e&&(e={}),n=\"string\",t=u(t),{string:t,attributes:e,type:n}},E=function(t,e){var n;return null==e&&(e={}),n=\"attachment\",{attachment:t,attributes:e,type:n}},m=function(t){var e;return null==t&&(t={}),e=[],{text:e,attributes:t}},g.prototype.getTextAttributes=function(t){var n,i,r,s,u,c,l,h,p,d,f,g;r={},p=e.config.textAttributes;for(n in p)if(u=p[n],u.tagName&&o(t,{matchingSelector:u.tagName,untilNode:this.containerElement}))r[n]=!0;else if(u.parser){if(g=u.parser(t)){for(i=!1,d=this.findBlockElementAncestors(t),c=0,h=d.length;h>c;c++)if(s=d[c],u.parser(s)===g){i=!0;break}i||(r[n]=g)}}else u.styleProperty&&(g=t.style[u.styleProperty])&&(r[n]=g);if(a(t)){f=w(t,\"attributes\");for(l in f)g=f[l],r[l]=g}return r},g.prototype.getBlockAttributes=function(t){var n,i,o,r;for(i=[];t&&t!==this.containerElement;){r=e.config.blockAttributes;for(n in r)o=r[n],o.parse!==!1&&l(t)===o.tagName&&((\"function\"==typeof o.test?o.test(t):void 0)||!o.test)&&(i.push(n),o.listAttribute&&i.push(o.listAttribute));t=t.parentNode}return i.reverse()},g.prototype.findBlockElementAncestors=function(t){var e,n;for(e=[];t&&t!==this.containerElement;)n=l(t),f.call(r(),n)>=0&&e.push(t),t=t.parentNode;return e},w=function(t,e){var n;try{return n=JSON.parse(t.getAttribute(\"data-trix-\"+e)),\"text/html\"===n.contentType&&n.content&&(n.content=HTMLSanitizer.sanitize(n.content).getHTML()),n}catch(i){return{}}},b=function(t){var e,n,i;return i=t.getAttribute(\"width\"),n=t.getAttribute(\"height\"),e={},i&&(e.width=parseInt(i,10)),n&&(e.height=parseInt(n,10)),e},g.prototype.isBlockElement=function(t){var e;if((null!=t?t.nodeType:void 0)===Node.ELEMENT_NODE&&!a(t)&&!o(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return e=l(t),f.call(r(),e)>=0||\"block\"===window.getComputedStyle(t).display},g.prototype.isInsignificantTextNode=function(t){var e,n,i;if((null!=t?t.nodeType:void 0)===Node.TEXT_NODE&&k(t.data)&&(n=t.parentNode,i=t.previousSibling,e=t.nextSibling,(!C(n.previousSibling)||this.isBlockElement(n.previousSibling))&&!v(n)))return!i||this.isBlockElement(i)||!e||this.isBlockElement(e)},g.prototype.isExtraBR=function(t){return\"br\"===l(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t},v=function(t){var e;return e=window.getComputedStyle(t).whiteSpace,\"pre\"===e||\"pre-wrap\"===e||\"pre-line\"===e},C=function(t){return t&&!R(t.textContent)},g.prototype.translateBlockElementMarginsToNewlines=function(){var t,e,n,i,o,r,s,a;for(e=this.getMarginOfDefaultBlockElement(),s=this.blocks,a=[],i=n=0,o=s.length;o>n;i=++n)t=s[i],(r=this.getMarginOfBlockElementAtIndex(i))&&(r.top>2*e.top&&this.prependStringToTextAtIndex(\"\\n\",i),a.push(r.bottom>2*e.bottom?this.appendStringToTextAtIndex(\"\\n\",i):void 0));return a},g.prototype.getMarginOfBlockElementAtIndex=function(t){var e,n;return!(e=this.blockElements[t])||!e.textContent||(n=l(e),f.call(r(),n)>=0||f.call(this.processedElements,e)>=0)?void 0:y(e)},g.prototype.getMarginOfDefaultBlockElement=function(){var t;return t=s(e.config.blockAttributes[\"default\"].tagName),this.containerElement.appendChild(t),y(t)},y=function(t){var e;return e=window.getComputedStyle(t),\"block\"===e.display?{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}:void 0},A=function(t){return t.replace(RegExp(\"^\"+n.source+\"+\"),\"\")},k=function(t){return RegExp(\"^\"+n.source+\"*$\").test(t)},R=function(t){return/\\s$/.test(t)},g}(e.BasicObject)}.call(this),function(){var t,n,i,o,r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].slice,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.arraysAreEqual,i=e.normalizeRange,o=e.rangeIsCollapsed,n=e.getBlockConfig,e.Document=function(s){function c(t){null==t&&(t=[]),c.__super__.constructor.apply(this,arguments),0===t.length&&(t=[new e.Block]),this.blockList=e.SplittableList.box(t)}var l;return r(c,s),c.fromJSON=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(e.Block.fromJSON(n));return r}(),new this(i)},c.fromHTML=function(t,n){return e.HTMLParser.parse(t,n).getDocument()},c.fromString=function(t,n){var i;return i=e.Text.textForStringWithAttributes(t,n),new this([new e.Block(i)])},c.prototype.isEmpty=function(){var t;return 1===this.blockList.length&&(t=this.getBlockAtIndex(0),t.isEmpty()&&!t.hasAttributes())},c.prototype.copy=function(t){var e;return null==t&&(t={}),e=t.consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray(),new this.constructor(e)},c.prototype.copyUsingObjectsFromDocument=function(t){var n;return n=new e.ObjectMap(t.getObjects()),this.copyUsingObjectMap(n)},c.prototype.copyUsingObjectMap=function(t){var e,n,i;return n=function(){var n,o,r,s;for(r=this.getBlocks(),s=[],n=0,o=r.length;o>n;n++)e=r[n],s.push((i=t.find(e))?i:e.copyUsingObjectMap(t));return s}.call(this),new this.constructor(n)},c.prototype.copyWithBaseBlockAttributes=function(t){var e,n,i;return null==t&&(t=[]),i=function(){var i,o,r,s;for(r=this.getBlocks(),s=[],i=0,o=r.length;o>i;i++)n=r[i],e=t.concat(n.getAttributes()),s.push(n.copyWithAttributes(e));return s}.call(this),new this.constructor(i)},c.prototype.replaceBlock=function(t,e){var n;return n=this.blockList.indexOf(t),-1===n?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,n))},c.prototype.insertDocumentAtRange=function(t,e){var n,r,s,a,u,c,l;return r=t.blockList,u=(e=i(e))[0],c=this.locationFromPosition(u),s=c.index,a=c.offset,l=this,n=this.getBlockAtPosition(u),o(e)&&n.isEmpty()&&!n.hasAttributes()?l=new this.constructor(l.blockList.removeObjectAtIndex(s)):n.getBlockBreakPosition()===a&&u++,l=l.removeTextAtRange(e),new this.constructor(l.blockList.insertSplittableListAtPosition(r,u))},c.prototype.mergeDocumentAtRange=function(e,n){var o,r,s,a,u,c,l,h,p,d,f,g;return f=(n=i(n))[0],d=this.locationFromPosition(f),r=this.getBlockAtIndex(d.index).getAttributes(),o=e.getBaseBlockAttributes(),g=r.slice(-o.length),t(o,g)?(l=r.slice(0,-o.length),c=e.copyWithBaseBlockAttributes(l)):c=e.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(r),s=c.getBlockCount(),a=c.getBlockAtIndex(0),t(r,a.getAttributes())?(u=a.getTextWithoutBlockBreak(),p=this.insertTextAtRange(u,n),s>1&&(c=new this.constructor(c.getBlocks().slice(1)),h=f+u.getLength(),p=p.insertDocumentAtRange(c,h))):p=this.insertDocumentAtRange(c,n),p},c.prototype.insertTextAtRange=function(t,e){var n,o,r,s,a;return a=(e=i(e))[0],s=this.locationFromPosition(a),o=s.index,r=s.offset,n=this.removeTextAtRange(e),new this.constructor(n.blockList.editObjectAtIndex(o,function(e){return e.copyWithText(e.text.insertTextAtPosition(t,r))}))},c.prototype.removeTextAtRange=function(t){var e,n,r,s,a,u,c,l,h,p,d,f,g,m,v,y,b,A,C,x,w;return p=t=i(t),l=p[0],A=p[1],o(t)?this:(d=this.locationRangeFromRange(t),u=d[0],y=d[1],a=u.index,c=u.offset,s=this.getBlockAtIndex(a),v=y.index,b=y.offset,m=this.getBlockAtIndex(v),f=A-l===1&&s.getBlockBreakPosition()===c&&m.getBlockBreakPosition()!==b&&\"\\n\"===m.text.getStringAtPosition(b),f?r=this.blockList.editObjectAtIndex(v,function(t){return t.copyWithText(t.text.removeTextAtRange([b,b+1]))}):(h=s.text.getTextAtRange([0,c]),C=m.text.getTextAtRange([b,m.getLength()]),x=h.appendText(C),g=a!==v&&0===c,w=g&&s.getAttributeLevel()>=m.getAttributeLevel(),n=w?m.copyWithText(x):s.copyWithText(x),e=v+1-a,r=this.blockList.splice(a,e,n)),new this.constructor(r))},c.prototype.moveTextFromRangeToPosition=function(t,e){var n,o,r,s,u,c,l,h,p,d;return c=t=i(t),p=c[0],r=c[1],e>=p&&r>=e?this:(o=this.getDocumentAtRange(t),h=this.removeTextAtRange(t),u=e>p,u&&(e-=o.getLength()),l=o.getBlocks(),s=l[0],n=2<=l.length?a.call(l,1):[],0===n.length?(d=s.getTextWithoutBlockBreak(),u&&(e+=1)):d=s.text,h=h.insertTextAtRange(d,e),0===n.length?h:(o=new this.constructor(n),e+=d.getLength(),h.insertDocumentAtRange(o,e)))},c.prototype.addAttributeAtRange=function(t,e,i){var o;return o=this.blockList,this.eachBlockAtRange(i,function(i,r,s){return o=o.editObjectAtIndex(s,function(){return n(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})}),new this.constructor(o)},c.prototype.addAttribute=function(t,e){var n;return n=this.blockList,this.eachBlock(function(i,o){return n=n.editObjectAtIndex(o,function(){return i.addAttribute(t,e)})}),new this.constructor(n)},c.prototype.removeAttributeAtRange=function(t,e){var i;return i=this.blockList,this.eachBlockAtRange(e,function(e,o,r){return n(t)?i=i.editObjectAtIndex(r,function(){return e.removeAttribute(t)}):o[0]!==o[1]?i=i.editObjectAtIndex(r,function(){return e.copyWithText(e.text.removeAttributeAtRange(t,o))}):void 0}),new this.constructor(i)},c.prototype.updateAttributesForAttachment=function(t,e){var n,i,o,r;return o=(i=this.getRangeOfAttachment(e))[0],n=this.locationFromPosition(o).index,r=this.getTextAtIndex(n),new this.constructor(this.blockList.editObjectAtIndex(n,function(n){return n.copyWithText(r.updateAttributesForAttachment(t,e))}))},c.prototype.removeAttributeForAttachment=function(t,e){var n;return n=this.getRangeOfAttachment(e),this.removeAttributeAtRange(t,n)},c.prototype.insertBlockBreakAtRange=function(t){var n,o,r,s;return s=(t=i(t))[0],r=this.locationFromPosition(s).offset,o=this.removeTextAtRange(t),0===r&&(n=[new e.Block]),new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n),s))},c.prototype.applyBlockAttributeAtRange=function(t,e,i){var o,r,s,a;return s=this.expandRangeToLineBreaksAndSplitBlocks(i),r=s.document,i=s.range,o=n(t),o.listAttribute?(r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t}),a=r.convertLineBreaksToBlockBreaksInRange(i),r=a.document,i=a.range):r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i),r.addAttributeAtRange(t,e,i)},c.prototype.removeLastListAttributeAtRange=function(t,e){var i;return null==e&&(e={}),i=this.blockList,this.eachBlockAtRange(t,function(t,o,r){var s;if((s=t.getLastAttribute())&&n(s).listAttribute&&s!==e.exceptAttributeName)return i=i.editObjectAtIndex(r,function(){return t.removeAttribute(s)})}),new this.constructor(i)},c.prototype.removeLastTerminalAttributeAtRange=function(t){var e;return e=this.blockList,this.eachBlockAtRange(t,function(t,i,o){var r;if((r=t.getLastAttribute())&&n(r).terminal)return e=e.editObjectAtIndex(o,function(){return t.removeAttribute(r)})}),new this.constructor(e)},c.prototype.removeBlockAttributesAtRange=function(t){var e;return e=this.blockList,this.eachBlockAtRange(t,function(t,n,i){return t.hasAttributes()?e=e.editObjectAtIndex(i,function(){return t.copyWithoutAttributes()}):void 0}),new this.constructor(e)},c.prototype.expandRangeToLineBreaksAndSplitBlocks=function(t){var e,n,o,r,s,a,u,c,l;return a=t=i(t),l=a[0],r=a[1],c=this.locationFromPosition(l),o=this.locationFromPosition(r),e=this,u=e.getBlockAtIndex(c.index),null!=(c.offset=u.findLineBreakInDirectionFromPosition(\"backward\",c.offset))&&(s=e.positionFromLocation(c),e=e.insertBlockBreakAtRange([s,s+1]),o.index+=1,o.offset-=e.getBlockAtIndex(c.index).getLength(),c.index+=1),c.offset=0,0===o.offset&&o.index>c.index?(o.index-=1,o.offset=e.getBlockAtIndex(o.index).getBlockBreakPosition()):(n=e.getBlockAtIndex(o.index),\"\\n\"===n.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=n.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==n.getBlockBreakPosition()&&(s=e.positionFromLocation(o),e=e.insertBlockBreakAtRange([s,s+1]))),l=e.positionFromLocation(c),r=e.positionFromLocation(o),t=i([l,r]),{document:e,range:t}},c.prototype.convertLineBreaksToBlockBreaksInRange=function(t){var e,n,o;return n=(t=i(t))[0],o=this.getStringAtRange(t).slice(0,-1),e=this,o.replace(/.*?\\n/g,function(t){return n+=t.length,e=e.insertBlockBreakAtRange([n-1,n])}),{document:e,range:t}},c.prototype.consolidateBlocksAtRange=function(t){var e,n,o,r,s;return o=t=i(t),s=o[0],n=o[1],r=this.locationFromPosition(s).index,e=this.locationFromPosition(n).index,new this.constructor(this.blockList.consolidateFromIndexToIndex(r,e))},c.prototype.getDocumentAtRange=function(t){var e;return t=i(t),e=this.blockList.getSplittableListInRange(t).toArray(),new this.constructor(e)},c.prototype.getStringAtRange=function(t){var e,n,o;return o=t=i(t),n=o[o.length-1],n!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)},c.prototype.getBlockAtIndex=function(t){return this.blockList.getObjectAtIndex(t)},c.prototype.getBlockAtPosition=function(t){var e;return e=this.locationFromPosition(t).index,this.getBlockAtIndex(e)},c.prototype.getTextAtIndex=function(t){var e;return null!=(e=this.getBlockAtIndex(t))?e.text:void 0},c.prototype.getTextAtPosition=function(t){var e;return e=this.locationFromPosition(t).index,this.getTextAtIndex(e)},c.prototype.getPieceAtPosition=function(t){var e,n,i;return i=this.locationFromPosition(t),e=i.index,n=i.offset,this.getTextAtIndex(e).getPieceAtPosition(n)},c.prototype.getCharacterAtPosition=function(t){var e,n,i;return i=this.locationFromPosition(t),e=i.index,n=i.offset,this.getTextAtIndex(e).getStringAtRange([n,n+1])},c.prototype.getLength=function(){return this.blockList.getEndPosition()},c.prototype.getBlocks=function(){return this.blockList.toArray()},c.prototype.getBlockCount=function(){return this.blockList.length},c.prototype.getEditCount=function(){return this.editCount},c.prototype.eachBlock=function(t){return this.blockList.eachObject(t)},c.prototype.eachBlockAtRange=function(t,e){var n,o,r,s,a,u,c,l,h,p,d,f;if(u=t=i(t),d=u[0],r=u[1],p=this.locationFromPosition(d),o=this.locationFromPosition(r),p.index===o.index)return n=this.getBlockAtIndex(p.index),f=[p.offset,o.offset],e(n,f,p.index);for(h=[],a=s=c=p.index,l=o.index;l>=c?l>=s:s>=l;a=l>=c?++s:--s)(n=this.getBlockAtIndex(a))?(f=function(){switch(a){case p.index:return[p.offset,n.text.getLength()];case o.index:return[0,o.offset];default:return[0,n.text.getLength()]}}(),h.push(e(n,f,a))):h.push(void 0);return h},c.prototype.getCommonAttributesAtRange=function(t){var n,r,s;\nreturn r=(t=i(t))[0],o(t)?this.getCommonAttributesAtPosition(r):(s=[],n=[],this.eachBlockAtRange(t,function(t,e){return e[0]!==e[1]?(s.push(t.text.getCommonAttributesAtRange(e)),n.push(l(t))):void 0}),e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject())},c.prototype.getCommonAttributesAtPosition=function(t){var n,i,o,r,s,a,c,h,p,d;if(p=this.locationFromPosition(t),s=p.index,h=p.offset,o=this.getBlockAtIndex(s),!o)return{};r=l(o),n=o.text.getAttributesAtPosition(h),i=o.text.getAttributesAtPosition(h-1),a=function(){var t,n;t=e.config.textAttributes,n=[];for(c in t)d=t[c],d.inheritable&&n.push(c);return n}();for(c in i)d=i[c],(d===n[c]||u.call(a,c)>=0)&&(r[c]=d);return r},c.prototype.getRangeOfCommonAttributeAtPosition=function(t,e){var n,o,r,s,a,u,c,l,h;return a=this.locationFromPosition(e),r=a.index,s=a.offset,h=this.getTextAtIndex(r),u=h.getExpandedRangeForAttributeAtOffset(t,s),l=u[0],o=u[1],c=this.positionFromLocation({index:r,offset:l}),n=this.positionFromLocation({index:r,offset:o}),i([c,n])},c.prototype.getBaseBlockAttributes=function(){var t,e,n,i,o,r,s;for(t=this.getBlockAtIndex(0).getAttributes(),n=i=1,s=this.getBlockCount();s>=1?s>i:i>s;n=s>=1?++i:--i)e=this.getBlockAtIndex(n).getAttributes(),r=Math.min(t.length,e.length),t=function(){var n,i,s;for(s=[],o=n=0,i=r;(i>=0?i>n:n>i)&&e[o]===t[o];o=i>=0?++n:--n)s.push(e[o]);return s}();return t},l=function(t){var e,n;return n={},(e=t.getLastAttribute())&&(n[e]=!0),n},c.prototype.getAttachmentById=function(t){var e,n,i,o;for(o=this.getAttachments(),n=0,i=o.length;i>n;n++)if(e=o[n],e.id===t)return e},c.prototype.getAttachmentPieces=function(){var t;return t=[],this.blockList.eachObject(function(e){var n;return n=e.text,t=t.concat(n.getAttachmentPieces())}),t},c.prototype.getAttachments=function(){var t,e,n,i,o;for(i=this.getAttachmentPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.attachment);return o},c.prototype.getRangeOfAttachment=function(t){var e,n,o,r,s,a,u;for(r=0,s=this.blockList.toArray(),n=e=0,o=s.length;o>e;n=++e){if(a=s[n].text,u=a.getRangeOfAttachment(t))return i([r+u[0],r+u[1]]);r+=a.getLength()}},c.prototype.getLocationRangeOfAttachment=function(t){var e;return e=this.getRangeOfAttachment(t),this.locationRangeFromRange(e)},c.prototype.getAttachmentPieceForAttachment=function(t){var e,n,i,o;for(o=this.getAttachmentPieces(),e=0,n=o.length;n>e;e++)if(i=o[e],i.attachment===t)return i},c.prototype.findRangesForBlockAttribute=function(t){var e,n,i,o,r,s,a;for(r=0,s=[],a=this.getBlocks(),n=0,i=a.length;i>n;n++)e=a[n],o=e.getLength(),e.hasAttribute(t)&&s.push([r,r+o]),r+=o;return s},c.prototype.findRangesForTextAttribute=function(t,e){var n,i,o,r,s,a,u,c,l,h;for(h=(null!=e?e:{}).withValue,a=0,u=[],c=[],r=function(e){return null!=h?e.getAttribute(t)===h:e.hasAttribute(t)},l=this.getPieces(),n=0,i=l.length;i>n;n++)s=l[n],o=s.getLength(),r(s)&&(u[1]===a?u[1]=a+o:c.push(u=[a,a+o])),a+=o;return c},c.prototype.locationFromPosition=function(t){var e,n;return n=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t)),null!=n.index?n:(e=this.getBlocks(),{index:e.length-1,offset:e[e.length-1].getLength()})},c.prototype.positionFromLocation=function(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)},c.prototype.locationRangeFromPosition=function(t){return i(this.locationFromPosition(t))},c.prototype.locationRangeFromRange=function(t){var e,n,o,r;if(t=i(t))return r=t[0],n=t[1],o=this.locationFromPosition(r),e=this.locationFromPosition(n),i([o,e])},c.prototype.rangeFromLocationRange=function(t){var e,n;return t=i(t),e=this.positionFromLocation(t[0]),o(t)||(n=this.positionFromLocation(t[1])),i([e,n])},c.prototype.isEqualTo=function(t){return this.blockList.isEqualTo(null!=t?t.blockList:void 0)},c.prototype.getTexts=function(){var t,e,n,i,o;for(i=this.getBlocks(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(t.text);return o},c.prototype.getPieces=function(){var t,e,n,i,o;for(n=[],i=this.getTexts(),t=0,e=i.length;e>t;t++)o=i[t],n.push.apply(n,o.getPieces());return n},c.prototype.getObjects=function(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())},c.prototype.toSerializableDocument=function(){var t;return t=[],this.blockList.eachObject(function(e){return t.push(e.copyWithText(e.text.toSerializableText()))}),new this.constructor(t)},c.prototype.toString=function(){return this.blockList.toString()},c.prototype.toJSON=function(){return this.blockList.toJSON()},c.prototype.toConsole=function(){var t;return JSON.stringify(function(){var e,n,i,o;for(i=this.blockList.toArray(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(JSON.parse(t.text.toConsole()));return o}.call(this))},c}(e.Object)}.call(this),function(){e.LineBreakInsertion=function(){function t(t){var e;this.composition=t,this.document=this.composition.document,e=this.composition.getSelectedRange(),this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}return t.prototype.shouldInsertBlockBreak=function(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter},t.prototype.shouldBreakFormattedBlock=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)},t.prototype.shouldDecreaseListLevel=function(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()},t.prototype.shouldPrependListItem=function(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()},t.prototype.shouldRemoveLastBlockAttribute=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()},t}()}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h=function(t,e){function n(){this.constructor=t}for(var i in e)p.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},p={}.hasOwnProperty;s=e.normalizeRange,c=e.rangesAreEqual,u=e.rangeIsCollapsed,a=e.objectsAreEqual,t=e.arrayStartsWith,l=e.summarizeArrayChange,i=e.getAllAttributeNames,o=e.getBlockConfig,r=e.getTextConfig,n=e.extend,e.Composition=function(p){function d(){this.document=new e.Document,this.attachments=[],this.currentAttributes={},this.revision=0}var f;return h(d,p),d.prototype.setDocument=function(t){var e;return t.isEqualTo(this.document)?void 0:(this.document=t,this.refreshAttachments(),this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidChangeDocument?e.compositionDidChangeDocument(t):void 0)},d.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.getSelectedRange()}},d.prototype.loadSnapshot=function(t){var n,i,o,r;return n=t.document,r=t.selectedRange,null!=(i=this.delegate)&&\"function\"==typeof i.compositionWillLoadSnapshot&&i.compositionWillLoadSnapshot(),this.setDocument(null!=n?n:new e.Document),this.setSelection(null!=r?r:[0,0]),null!=(o=this.delegate)&&\"function\"==typeof o.compositionDidLoadSnapshot?o.compositionDidLoadSnapshot():void 0},d.prototype.insertText=function(t,e){var n,i,o,r;return r=(null!=e?e:{updatePosition:!0}).updatePosition,i=this.getSelectedRange(),this.setDocument(this.document.insertTextAtRange(t,i)),o=i[0],n=o+t.getLength(),r&&this.setSelection(n),this.notifyDelegateOfInsertionAtRange([o,n])},d.prototype.insertBlock=function(t){var n;return null==t&&(t=new e.Block),n=new e.Document([t]),this.insertDocument(n)},d.prototype.insertDocument=function(t){var n,i,o;return null==t&&(t=new e.Document),i=this.getSelectedRange(),this.setDocument(this.document.insertDocumentAtRange(t,i)),o=i[0],n=o+t.getLength(),this.setSelection(n),this.notifyDelegateOfInsertionAtRange([o,n])},d.prototype.insertString=function(t,n){var i,o;return i=this.getCurrentTextAttributes(),o=e.Text.textForStringWithAttributes(t,i),this.insertText(o,n)},d.prototype.insertBlockBreak=function(){var t,e,n;return e=this.getSelectedRange(),this.setDocument(this.document.insertBlockBreakAtRange(e)),n=e[0],t=n+1,this.setSelection(t),this.notifyDelegateOfInsertionAtRange([n,t])},d.prototype.insertLineBreak=function(){var t,n;return n=new e.LineBreakInsertion(this),n.shouldDecreaseListLevel()?(this.decreaseListLevel(),this.setSelection(n.startPosition)):n.shouldPrependListItem()?(t=new e.Document([n.block.copyWithoutText()]),this.insertDocument(t)):n.shouldInsertBlockBreak()?this.insertBlockBreak():n.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():n.shouldBreakFormattedBlock()?this.breakFormattedBlock(n):this.insertString(\"\\n\")},d.prototype.insertHTML=function(t){var n,i,o,r;return n=e.Document.fromHTML(t),o=this.getSelectedRange(),this.setDocument(this.document.mergeDocumentAtRange(n,o)),r=o[0],i=r+n.getLength()-1,this.setSelection(i),this.notifyDelegateOfInsertionAtRange([r,i])},d.prototype.replaceHTML=function(t){var n,i,o;return n=e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),o=this.document.rangeFromLocationRange(i),this.setDocument(n),this.setSelection(o)},d.prototype.insertFile=function(t){return this.insertFiles([t])},d.prototype.insertFiles=function(t){var n,i,o,r,s,a;for(i=[],r=0,s=t.length;s>r;r++)o=t[r],(null!=(a=this.delegate)?a.compositionShouldAcceptFile(o):void 0)&&(n=e.Attachment.attachmentForFile(o),i.push(n));return this.insertAttachments(i)},d.prototype.insertAttachment=function(t){return this.insertAttachments([t])},d.prototype.insertAttachments=function(t){var n,i,o,r,s,a,u,c,l;for(c=new e.Text,r=0,s=t.length;s>r;r++)n=t[r],l=n.getType(),a=null!=(u=e.config.attachments[l])?u.presentation:void 0,o=this.getCurrentTextAttributes(),a&&(o.presentation=a),i=e.Text.textForAttachmentWithAttributes(n,o),c=c.appendText(i);return this.insertText(c)},d.prototype.shouldManageDeletingInDirection=function(t){var e;if(e=this.getLocationRange(),u(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1},d.prototype.deleteInDirection=function(t,e){var n,i,o,r,s,a,c,l;return r=(null!=e?e:{}).length,s=this.getLocationRange(),a=this.getSelectedRange(),c=u(a),c?o=\"backward\"===t&&0===s[0].offset:l=s[0].index!==s[1].index,o&&this.canDecreaseBlockAttributeLevel()&&(i=this.getBlock(),i.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(a[0]),i.isEmpty())?!1:(c&&(a=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(n=this.getAttachmentAtRange(a))),n?(this.editAttachment(n),!1):(this.setDocument(this.document.removeTextAtRange(a)),this.setSelection(a[0]),o||l?!1:void 0))},d.prototype.moveTextFromRange=function(t){var e;return e=this.getSelectedRange()[0],this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)},d.prototype.removeAttachment=function(t){var e;return(e=this.document.getRangeOfAttachment(t))?(this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])):void 0},d.prototype.removeLastBlockAttribute=function(){var t,e,n,i;return n=this.getSelectedRange(),i=n[0],e=n[1],t=this.document.getBlockAtPosition(e),this.removeCurrentAttribute(t.getLastAttribute()),this.setSelection(i)},f=\" \",d.prototype.insertPlaceholder=function(){return this.placeholderPosition=this.getPosition(),this.insertString(f)},d.prototype.selectPlaceholder=function(){return null!=this.placeholderPosition?(this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+f.length]),this.getSelectedRange()):void 0},d.prototype.forgetPlaceholder=function(){return this.placeholderPosition=null},d.prototype.hasCurrentAttribute=function(t){var e;return e=this.currentAttributes[t],null!=e&&e!==!1},d.prototype.toggleCurrentAttribute=function(t){var e;return(e=!this.currentAttributes[t])?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)},d.prototype.canSetCurrentAttribute=function(t){return o(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)},d.prototype.canSetCurrentTextAttribute=function(){var t,e,n,i,o;if(e=this.getSelectedDocument()){for(o=e.getAttachments(),n=0,i=o.length;i>n;n++)if(t=o[n],!t.hasContent())return!1;return!0}},d.prototype.canSetCurrentBlockAttribute=function(){var t;if(t=this.getBlock())return!t.isTerminalBlock()},d.prototype.setCurrentAttribute=function(t,e){return o(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())},d.prototype.setTextAttribute=function(t,n){var i,o,r,s;if(o=this.getSelectedRange())return r=o[0],i=o[1],r!==i?this.setDocument(this.document.addAttributeAtRange(t,n,o)):\"href\"===t?(s=e.Text.textForStringWithAttributes(n,{href:n}),this.insertText(s)):void 0},d.prototype.setBlockAttribute=function(t,e){var n,i;if(i=this.getSelectedRange())return this.canSetCurrentAttribute(t)?(n=this.getBlock(),this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)):void 0},d.prototype.removeCurrentAttribute=function(t){return o(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())},d.prototype.removeTextAttribute=function(t){var e;if(e=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,e))},d.prototype.removeBlockAttribute=function(t){var e;if(e=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,e))},d.prototype.canDecreaseNestingLevel=function(){var t;return(null!=(t=this.getBlock())?t.getNestingLevel():void 0)>0},d.prototype.canIncreaseNestingLevel=function(){var e,n,i;if(e=this.getBlock())return(null!=(i=o(e.getLastNestableAttribute()))?i.listAttribute:0)?(n=this.getPreviousBlock())?t(n.getListItemAttributes(),e.getListItemAttributes()):void 0:e.getNestingLevel()>0},d.prototype.decreaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))},d.prototype.increaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))},d.prototype.canDecreaseBlockAttributeLevel=function(){var t;return(null!=(t=this.getBlock())?t.getAttributeLevel():void 0)>0},d.prototype.decreaseBlockAttributeLevel=function(){var t,e;return(t=null!=(e=this.getBlock())?e.getLastAttribute():void 0)?this.removeCurrentAttribute(t):void 0},d.prototype.decreaseListLevel=function(){var t,e,n,i,o,r;for(r=this.getSelectedRange()[0],o=this.document.locationFromPosition(r).index,n=o,t=this.getBlock().getAttributeLevel();(e=this.document.getBlockAtIndex(n+1))&&e.isListItem()&&e.getAttributeLevel()>t;)n++;return r=this.document.positionFromLocation({index:o,offset:0}),i=this.document.positionFromLocation({index:n,offset:0}),this.setDocument(this.document.removeLastListAttributeAtRange([r,i]))},d.prototype.updateCurrentAttributes=function(){var t,e,n,o,r,s;if(s=this.getSelectedRange({ignoreLock:!0})){for(e=this.document.getCommonAttributesAtRange(s),r=i(),n=0,o=r.length;o>n;n++)t=r[n],e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1);if(!a(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}},d.prototype.getCurrentAttributes=function(){return n.call({},this.currentAttributes)},d.prototype.getCurrentTextAttributes=function(){var t,e,n,i;t={},n=this.currentAttributes;for(e in n)i=n[e],i!==!1&&r(e)&&(t[e]=i);return t},d.prototype.freezeSelection=function(){return this.setCurrentAttribute(\"frozen\",!0)},d.prototype.thawSelection=function(){return this.removeCurrentAttribute(\"frozen\")},d.prototype.hasFrozenSelection=function(){return this.hasCurrentAttribute(\"frozen\")},d.proxyMethod(\"getSelectionManager().getPointRange\"),d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),d.proxyMethod(\"delegate?.getSelectionManager\"),d.prototype.setSelection=function(t){var e,n;return e=this.document.locationRangeFromRange(t),null!=(n=this.delegate)?n.compositionDidRequestChangingSelectionToLocationRange(e):void 0},d.prototype.getSelectedRange=function(){var t;return(t=this.getLocationRange())?this.document.rangeFromLocationRange(t):void 0},d.prototype.setSelectedRange=function(t){var e;return e=this.document.locationRangeFromRange(t),this.getSelectionManager().setLocationRange(e)},d.prototype.getPosition=function(){var t;return(t=this.getLocationRange())?this.document.positionFromLocation(t[0]):void 0},d.prototype.getLocationRange=function(t){var e,n;return null!=(e=null!=(n=this.targetLocationRange)?n:this.getSelectionManager().getLocationRange(t))?e:s({index:0,offset:0})},d.prototype.withTargetLocationRange=function(t,e){var n;this.targetLocationRange=t;try{n=e()}finally{this.targetLocationRange=null}return n},d.prototype.withTargetRange=function(t,e){var n;return n=this.document.locationRangeFromRange(t),this.withTargetLocationRange(n,e)},d.prototype.withTargetDOMRange=function(t,e){var n;return n=this.createLocationRangeFromDOMRange(t,{strict:!1}),this.withTargetLocationRange(n,e)},d.prototype.getExpandedRangeInDirection=function(t,e){var n,i,o,r;return i=(null!=e?e:{}).length,o=this.getSelectedRange(),r=o[0],n=o[1],\"backward\"===t?i?r-=i:r=this.translateUTF16PositionFromOffset(r,-1):i?n+=i:n=this.translateUTF16PositionFromOffset(n,1),s([r,n])},d.prototype.shouldManageMovingCursorInDirection=function(t){var e;return this.editingAttachment?!0:(e=this.getExpandedRangeInDirection(t),null!=this.getAttachmentAtRange(e))},d.prototype.moveCursorInDirection=function(t){var e,n,i,o;return this.editingAttachment?i=this.document.getRangeOfAttachment(this.editingAttachment):(o=this.getSelectedRange(),i=this.getExpandedRangeInDirection(t),n=!c(o,i)),this.setSelectedRange(\"backward\"===t?i[0]:i[1]),n&&(e=this.getAttachmentAtRange(i))?this.editAttachment(e):void 0},d.prototype.expandSelectionInDirection=function(t,e){var n,i;return n=(null!=e?e:{}).length,i=this.getExpandedRangeInDirection(t,{length:n}),this.setSelectedRange(i)},d.prototype.expandSelectionForEditing=function(){return this.hasCurrentAttribute(\"href\")?this.expandSelectionAroundCommonAttribute(\"href\"):void 0},d.prototype.expandSelectionAroundCommonAttribute=function(t){var e,n;return e=this.getPosition(),n=this.document.getRangeOfCommonAttributeAtPosition(t,e),this.setSelectedRange(n)},d.prototype.selectionContainsAttachments=function(){var t;return(null!=(t=this.getSelectedAttachments())?t.length:void 0)>0},d.prototype.selectionIsInCursorTarget=function(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())},d.prototype.positionIsCursorTarget=function(t){var e;return(e=this.document.locationFromPosition(t))?this.locationIsCursorTarget(e):void 0},d.prototype.positionIsBlockBreak=function(t){var e;return null!=(e=this.document.getPieceAtPosition(t))?e.isBlockBreak():void 0},d.prototype.getSelectedDocument=function(){var t;return(t=this.getSelectedRange())?this.document.getDocumentAtRange(t):void 0},d.prototype.getSelectedAttachments=function(){var t;return null!=(t=this.getSelectedDocument())?t.getAttachments():void 0},d.prototype.getAttachments=function(){return this.attachments.slice(0)},d.prototype.refreshAttachments=function(){var t,e,n,i,o,r,s,a,u,c,h,p;for(n=this.document.getAttachments(),a=l(this.attachments,n),t=a.added,h=a.removed,this.attachments=n,i=0,r=h.length;r>i;i++)e=h[i],e.delegate=null,null!=(u=this.delegate)&&\"function\"==typeof u.compositionDidRemoveAttachment&&u.compositionDidRemoveAttachment(e);for(p=[],o=0,s=t.length;s>o;o++)e=t[o],e.delegate=this,p.push(null!=(c=this.delegate)&&\"function\"==typeof c.compositionDidAddAttachment?c.compositionDidAddAttachment(e):void 0);return p},d.prototype.attachmentDidChangeAttributes=function(t){var e;return this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidEditAttachment?e.compositionDidEditAttachment(t):void 0},d.prototype.attachmentDidChangePreviewURL=function(t){var e;return this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidChangeAttachmentPreviewURL?e.compositionDidChangeAttachmentPreviewURL(t):void 0},d.prototype.editAttachment=function(t,e){var n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null!=(n=this.delegate)&&\"function\"==typeof n.compositionDidStartEditingAttachment?n.compositionDidStartEditingAttachment(this.editingAttachment,e):void 0},d.prototype.stopEditingAttachment=function(){var t;if(this.editingAttachment)return null!=(t=this.delegate)&&\"function\"==typeof t.compositionDidStopEditingAttachment&&t.compositionDidStopEditingAttachment(this.editingAttachment),this.editingAttachment=null},d.prototype.updateAttributesForAttachment=function(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))},d.prototype.removeAttributeForAttachment=function(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))},d.prototype.breakFormattedBlock=function(t){var n,i,o,r,s;return i=t.document,n=t.block,r=t.startPosition,s=[r-1,r],n.getBlockBreakPosition()===t.startLocation.offset?(n.breaksOnReturn()&&\"\\n\"===t.nextCharacter?r+=1:i=i.removeTextAtRange(s),s=[r,r]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?s=[r-1,r+1]:(s=[r,r+1],r+=1):t.startLocation.offset-1!==0&&(r+=1),o=new e.Document([n.removeLastAttribute().copyWithoutText()]),this.setDocument(i.insertDocumentAtRange(o,s)),this.setSelection(r)},d.prototype.getPreviousBlock=function(){var t,e;return(e=this.getLocationRange())&&(t=e[0].index,t>0)?this.document.getBlockAtIndex(t-1):void 0},d.prototype.getBlock=function(){var t;return(t=this.getLocationRange())?this.document.getBlockAtIndex(t[0].index):void 0},d.prototype.getAttachmentAtRange=function(t){var n;return n=this.document.getDocumentAtRange(t),n.toString()===e.OBJECT_REPLACEMENT_CHARACTER+\"\\n\"?n.getAttachments()[0]:void 0},d.prototype.notifyDelegateOfCurrentAttributesChange=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.compositionDidChangeCurrentAttributes?t.compositionDidChangeCurrentAttributes(this.currentAttributes):void 0},d.prototype.notifyDelegateOfInsertionAtRange=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidPerformInsertionAtRange?e.compositionDidPerformInsertionAtRange(t):void 0},d.prototype.translateUTF16PositionFromOffset=function(t,e){var n,i;return i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t),i.offsetToUCS2Offset(n+e)},d}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.UndoManager=function(e){function n(t){this.composition=t,this.undoEntries=[],this.redoEntries=[]}var i;return t(n,e),n.prototype.recordUndoEntry=function(t,e){var n,o,r,s,a;return s=null!=e?e:{},o=s.context,n=s.consolidatable,r=this.undoEntries.slice(-1)[0],n&&i(r,t,o)?void 0:(a=this.createEntry({description:t,context:o}),this.undoEntries.push(a),this.redoEntries=[])},n.prototype.undo=function(){var t,e;return(e=this.undoEntries.pop())?(t=this.createEntry(e),this.redoEntries.push(t),this.composition.loadSnapshot(e.snapshot)):void 0},n.prototype.redo=function(){var t,e;return(t=this.redoEntries.pop())?(e=this.createEntry(t),this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)):void 0},n.prototype.canUndo=function(){return this.undoEntries.length>0},n.prototype.canRedo=function(){return this.redoEntries.length>0},n.prototype.createEntry=function(t){var e,n,i;return i=null!=t?t:{},n=i.description,e=i.context,{description:null!=n?n.toString():void 0,context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}},i=function(t,e,n){return(null!=t?t.description:void 0)===(null!=e?e.toString():void 0)&&(null!=t?t.context:void 0)===JSON.stringify(n)},n}(e.BasicObject)}.call(this),function(){var t;e.attachmentGalleryFilter=function(e){var n;return n=new t(e),n.perform(),n.getSnapshot()},t=function(){function t(t){this.document=t.document,this.selectedRange=t.selectedRange}var e,n,i;return e=\"attachmentGallery\",n=\"presentation\",i=\"gallery\",t.prototype.perform=function(){return this.removeBlockAttribute(),this.applyBlockAttribute()},t.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.selectedRange}},t.prototype.removeBlockAttribute=function(){var t,n,i,o,r;for(o=this.findRangesOfBlocks(),r=[],t=0,n=o.length;n>t;t++)i=o[t],r.push(this.document=this.document.removeAttributeAtRange(e,i));return r},t.prototype.applyBlockAttribute=function(){var t,n,i,o,r,s;for(i=0,r=this.findRangesOfPieces(),s=[],t=0,n=r.length;n>t;t++)o=r[t],o[1]-o[0]>1&&(o[0]+=i,o[1]+=i,\"\\n\"!==this.document.getCharacterAtPosition(o[1])&&(this.document=this.document.insertBlockBreakAtRange(o[1]),o[1]<this.selectedRange[1]&&this.moveSelectedRangeForward(),o[1]++,i++),0!==o[0]&&\"\\n\"!==this.document.getCharacterAtPosition(o[0]-1)&&(this.document=this.document.insertBlockBreakAtRange(o[0]),o[0]<this.selectedRange[0]&&this.moveSelectedRangeForward(),o[0]++,i++),s.push(this.document=this.document.applyBlockAttributeAtRange(e,!0,o)));return s},t.prototype.findRangesOfBlocks=function(){return this.document.findRangesForBlockAttribute(e)},t.prototype.findRangesOfPieces=function(){return this.document.findRangesForTextAttribute(n,{withValue:i})},t.prototype.moveSelectedRangeForward=function(){return this.selectedRange[0]+=1,this.selectedRange[1]+=1},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Editor=function(){function n(n,o,r){this.composition=n,this.selectionManager=o,this.element=r,this.insertFiles=t(this.insertFiles,this),this.undoManager=new e.UndoManager(this.composition),this.filters=i.slice(0)}var i;return i=[e.attachmentGalleryFilter],n.prototype.loadDocument=function(t){return this.loadSnapshot({document:t,selectedRange:[0,0]})},n.prototype.loadHTML=function(t){return null==t&&(t=\"\"),this.loadDocument(e.Document.fromHTML(t,{referenceElement:this.element}))},n.prototype.loadJSON=function(t){var n,i;return n=t.document,i=t.selectedRange,n=e.Document.fromJSON(n),this.loadSnapshot({document:n,selectedRange:i})},n.prototype.loadSnapshot=function(t){return this.undoManager=new e.UndoManager(this.composition),this.composition.loadSnapshot(t)},n.prototype.getDocument=function(){return this.composition.document},n.prototype.getSelectedDocument=function(){return this.composition.getSelectedDocument()},n.prototype.getSnapshot=function(){return this.composition.getSnapshot()},n.prototype.toJSON=function(){return this.getSnapshot()},n.prototype.deleteInDirection=function(t){return this.composition.deleteInDirection(t)},n.prototype.insertAttachment=function(t){return this.composition.insertAttachment(t)},n.prototype.insertAttachments=function(t){return this.composition.insertAttachments(t)},n.prototype.insertDocument=function(t){return this.composition.insertDocument(t)},n.prototype.insertFile=function(t){return this.composition.insertFile(t)},n.prototype.insertFiles=function(t){return this.composition.insertFiles(t)},n.prototype.insertHTML=function(t){return this.composition.insertHTML(t)},n.prototype.insertString=function(t){return this.composition.insertString(t)},n.prototype.insertText=function(t){return this.composition.insertText(t)},n.prototype.insertLineBreak=function(){return this.composition.insertLineBreak()},n.prototype.getSelectedRange=function(){return this.composition.getSelectedRange()},n.prototype.getPosition=function(){return this.composition.getPosition()},n.prototype.getClientRectAtPosition=function(t){var e;return e=this.getDocument().locationRangeFromRange([t,t+1]),this.selectionManager.getClientRectAtLocationRange(e)},n.prototype.expandSelectionInDirection=function(t){return this.composition.expandSelectionInDirection(t)},n.prototype.moveCursorInDirection=function(t){return this.composition.moveCursorInDirection(t)},n.prototype.setSelectedRange=function(t){return this.composition.setSelectedRange(t)},n.prototype.activateAttribute=function(t,e){return null==e&&(e=!0),this.composition.setCurrentAttribute(t,e)},n.prototype.attributeIsActive=function(t){return this.composition.hasCurrentAttribute(t)},n.prototype.canActivateAttribute=function(t){return this.composition.canSetCurrentAttribute(t)},n.prototype.deactivateAttribute=function(t){return this.composition.removeCurrentAttribute(t)},n.prototype.canDecreaseNestingLevel=function(){return this.composition.canDecreaseNestingLevel()},n.prototype.canIncreaseNestingLevel=function(){return this.composition.canIncreaseNestingLevel()},n.prototype.decreaseNestingLevel=function(){return this.canDecreaseNestingLevel()?this.composition.decreaseNestingLevel():void 0},n.prototype.increaseNestingLevel=function(){return this.canIncreaseNestingLevel()?this.composition.increaseNestingLevel():void 0},n.prototype.canRedo=function(){return this.undoManager.canRedo()},n.prototype.canUndo=function(){return this.undoManager.canUndo()},n.prototype.recordUndoEntry=function(t,e){var n,i,o;return o=null!=e?e:{},i=o.context,n=o.consolidatable,this.undoManager.recordUndoEntry(t,{context:i,consolidatable:n})},n.prototype.redo=function(){return this.canRedo()?this.undoManager.redo():void 0},n.prototype.undo=function(){return this.canUndo()?this.undoManager.undo():void 0},n}()}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ManagedAttachment=function(e){function n(t,e){var n;this.attachmentManager=t,this.attachment=e,n=this.attachment,this.id=n.id,this.file=n.file}return t(n,e),n.prototype.remove=function(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)},n.proxyMethod(\"attachment.getAttribute\"),n.proxyMethod(\"attachment.hasAttribute\"),n.proxyMethod(\"attachment.setAttribute\"),n.proxyMethod(\"attachment.getAttributes\"),n.proxyMethod(\"attachment.setAttributes\"),n.proxyMethod(\"attachment.isPending\"),n.proxyMethod(\"attachment.isPreviewable\"),n.proxyMethod(\"attachment.getURL\"),n.proxyMethod(\"attachment.getHref\"),n.proxyMethod(\"attachment.getFilename\"),n.proxyMethod(\"attachment.getFilesize\"),n.proxyMethod(\"attachment.getFormattedFilesize\"),n.proxyMethod(\"attachment.getExtension\"),n.proxyMethod(\"attachment.getContentType\"),n.proxyMethod(\"attachment.getFile\"),n.proxyMethod(\"attachment.setFile\"),n.proxyMethod(\"attachment.releaseFile\"),n.proxyMethod(\"attachment.getUploadProgress\"),n.proxyMethod(\"attachment.setUploadProgress\"),n}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.AttachmentManager=function(n){function i(t){var e,n,i;for(null==t&&(t=[]),this.managedAttachments={},n=0,i=t.length;i>n;n++)e=t[n],this.manageAttachment(e)}return t(i,n),i.prototype.getAttachments=function(){var t,e,n,i;n=this.managedAttachments,i=[];for(e in n)t=n[e],i.push(t);return i},i.prototype.manageAttachment=function(t){var n,i;return null!=(n=this.managedAttachments)[i=t.id]?n[i]:n[i]=new e.ManagedAttachment(this,t)},i.prototype.attachmentIsManaged=function(t){return t.id in this.managedAttachments},i.prototype.requestRemovalOfAttachment=function(t){var e;return this.attachmentIsManaged(t)&&null!=(e=this.delegate)&&\"function\"==typeof e.attachmentManagerDidRequestRemovalOfAttachment?e.attachmentManagerDidRequestRemovalOfAttachment(t):void 0},i.prototype.unmanageAttachment=function(t){var e;return e=this.managedAttachments[t.id],delete this.managedAttachments[t.id],e},i}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h;t=e.elementContainsNode,n=e.findChildIndexOfNode,r=e.nodeIsBlockStart,s=e.nodeIsBlockStartComment,o=e.nodeIsBlockContainer,a=e.nodeIsCursorTarget,u=e.nodeIsEmptyTextNode,c=e.nodeIsTextNode,i=e.nodeIsAttachmentElement,l=e.tagName,h=e.walkTree,e.LocationMapper=function(){function e(t){this.element=t\n}var p,d,f,g;return e.prototype.findLocationFromContainerAndOffset=function(e,i,o){var s,u,l,p,g,m,v;for(m=(null!=o?o:{strict:!0}).strict,u=0,l=!1,p={index:0,offset:0},(s=this.findAttachmentElementParentForNode(e))&&(e=s.parentNode,i=n(s)),v=h(this.element,{usingFilter:f});v.nextNode();){if(g=v.currentNode,g===e&&c(e)){a(g)||(p.offset+=i);break}if(g.parentNode===e){if(u++===i)break}else if(!t(e,g)&&u>0)break;r(g,{strict:m})?(l&&p.index++,p.offset=0,l=!0):p.offset+=d(g)}return p},e.prototype.findContainerAndOffsetFromLocation=function(t){var e,i,s,u,l;if(0===t.index&&0===t.offset){for(e=this.element,u=0;e.firstChild;)if(e=e.firstChild,o(e)){u=1;break}return[e,u]}if(l=this.findNodeAndOffsetFromLocation(t),i=l[0],s=l[1],i){if(c(i))0===d(i)?(e=i.parentNode.parentNode,u=n(i.parentNode),a(i,{name:\"right\"})&&u++):(e=i,u=t.offset-s);else{if(e=i.parentNode,!r(i.previousSibling)&&!o(e))for(;i===e.lastChild&&(i=e,e=e.parentNode,!o(e)););u=n(i),0!==t.offset&&u++}return[e,u]}},e.prototype.findNodeAndOffsetFromLocation=function(t){var e,n,i,o,r,s,u,l;for(u=0,l=this.getSignificantNodesForIndex(t.index),n=0,i=l.length;i>n;n++){if(e=l[n],o=d(e),t.offset<=u+o)if(c(e)){if(r=e,s=u,t.offset===s&&a(r))break}else r||(r=e,s=u);if(u+=o,u>t.offset)break}return[r,s]},e.prototype.findAttachmentElementParentForNode=function(t){for(;t&&t!==this.element;){if(i(t))return t;t=t.parentNode}},e.prototype.getSignificantNodesForIndex=function(t){var e,n,i,o,r;for(i=[],r=h(this.element,{usingFilter:p}),o=!1;r.nextNode();)if(n=r.currentNode,s(n)){if(\"undefined\"!=typeof e&&null!==e?e++:e=0,e===t)o=!0;else if(o)break}else o&&i.push(n);return i},d=function(t){var e;return t.nodeType===Node.TEXT_NODE?a(t)?0:(e=t.textContent,e.length):\"br\"===l(t)||i(t)?1:0},p=function(t){return g(t)===NodeFilter.FILTER_ACCEPT?f(t):NodeFilter.FILTER_REJECT},g=function(t){return u(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},f=function(t){return i(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},e}()}.call(this),function(){var t,n,i=[].slice;t=e.getDOMRange,n=e.setDOMRange,e.PointMapper=function(){function e(){}return e.prototype.createDOMRangeFromPoint=function(e){var i,o,r,s,a,u,c,l;if(c=e.x,l=e.y,document.caretPositionFromPoint)return a=document.caretPositionFromPoint(c,l),r=a.offsetNode,o=a.offset,i=document.createRange(),i.setStart(r,o),i;if(document.caretRangeFromPoint)return document.caretRangeFromPoint(c,l);if(document.body.createTextRange){s=t();try{u=document.body.createTextRange(),u.moveToPoint(c,l),u.select()}catch(h){}return i=t(),n(s),i}},e.prototype.getClientRectsForDOMRange=function(t){var e,n,o;return n=i.call(t.getClientRects()),o=n[0],e=n[n.length-1],[o,e]},e}()}.call(this),function(){var t,n=function(t,e){return function(){return t.apply(e,arguments)}},i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty,r=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.getDOMRange,e.SelectionChangeObserver=function(e){function o(){this.run=n(this.run,this),this.update=n(this.update,this),this.selectionManagers=[]}var s;return i(o,e),o.prototype.start=function(){return this.started?void 0:(this.started=!0,\"onselectionchange\"in document?document.addEventListener(\"selectionchange\",this.update,!0):this.run())},o.prototype.stop=function(){return this.started?(this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)):void 0},o.prototype.registerSelectionManager=function(t){return r.call(this.selectionManagers,t)<0?(this.selectionManagers.push(t),this.start()):void 0},o.prototype.unregisterSelectionManager=function(t){var e;return this.selectionManagers=function(){var n,i,o,r;for(o=this.selectionManagers,r=[],n=0,i=o.length;i>n;n++)e=o[n],e!==t&&r.push(e);return r}.call(this),0===this.selectionManagers.length?this.stop():void 0},o.prototype.notifySelectionManagersOfSelectionChange=function(){var t,e,n,i,o;for(n=this.selectionManagers,i=[],t=0,e=n.length;e>t;t++)o=n[t],i.push(o.selectionDidChange());return i},o.prototype.update=function(){var e;return e=t(),s(e,this.domRange)?void 0:(this.domRange=e,this.notifySelectionManagersOfSelectionChange())},o.prototype.reset=function(){return this.domRange=null,this.update()},o.prototype.run=function(){return this.started?(this.update(),requestAnimationFrame(this.run)):void 0},s=function(t,e){return(null!=t?t.startContainer:void 0)===(null!=e?e.startContainer:void 0)&&(null!=t?t.startOffset:void 0)===(null!=e?e.startOffset:void 0)&&(null!=t?t.endContainer:void 0)===(null!=e?e.endContainer:void 0)&&(null!=t?t.endOffset:void 0)===(null!=e?e.endOffset:void 0)},o}(e.BasicObject),null==e.selectionChangeObserver&&(e.selectionChangeObserver=new e.SelectionChangeObserver)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h=function(t,e){return function(){return t.apply(e,arguments)}},p=function(t,e){function n(){this.constructor=t}for(var i in e)d.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty;i=e.getDOMSelection,n=e.getDOMRange,l=e.setDOMRange,t=e.elementContainsNode,s=e.nodeIsCursorTarget,r=e.innerElementIsActive,o=e.handleEvent,a=e.normalizeRange,u=e.rangeIsCollapsed,c=e.rangesAreEqual,e.SelectionManager=function(d){function f(t){this.element=t,this.selectionDidChange=h(this.selectionDidChange,this),this.didMouseDown=h(this.didMouseDown,this),this.locationMapper=new e.LocationMapper(this.element),this.pointMapper=new e.PointMapper,this.lockCount=0,o(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}return p(f,d),f.prototype.getLocationRange=function(t){var e,i;return null==t&&(t={}),e=t.strict===!1?this.createLocationRangeFromDOMRange(n(),{strict:!1}):t.ignoreLock?this.currentLocationRange:null!=(i=this.lockedLocationRange)?i:this.currentLocationRange},f.prototype.setLocationRange=function(t){var e;if(!this.lockedLocationRange)return t=a(t),(e=this.createDOMRangeFromLocationRange(t))?(l(e),this.updateCurrentLocationRange(t)):void 0},f.prototype.setLocationRangeFromPointRange=function(t){var e,n;return t=a(t),n=this.getLocationAtPoint(t[0]),e=this.getLocationAtPoint(t[1]),this.setLocationRange([n,e])},f.prototype.getClientRectAtLocationRange=function(t){var e;return(e=this.createDOMRangeFromLocationRange(t))?this.getClientRectsForDOMRange(e)[1]:void 0},f.prototype.locationIsCursorTarget=function(t){var e,n,i;return i=this.findNodeAndOffsetFromLocation(t),e=i[0],n=i[1],s(e)},f.prototype.lock=function(){return 0===this.lockCount++?(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange()):void 0},f.prototype.unlock=function(){var t;return 0===--this.lockCount&&(t=this.lockedLocationRange,this.lockedLocationRange=null,null!=t)?this.setLocationRange(t):void 0},f.prototype.clearSelection=function(){var t;return null!=(t=i())?t.removeAllRanges():void 0},f.prototype.selectionIsCollapsed=function(){var t;return(null!=(t=n())?t.collapsed:void 0)===!0},f.prototype.selectionIsExpanded=function(){return!this.selectionIsCollapsed()},f.prototype.createLocationRangeFromDOMRange=function(t,e){var n,i;if(null!=t&&this.domRangeWithinElement(t)&&(i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e)))return t.collapsed||(n=this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e)),a([i,n])},f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"),f.prototype.didMouseDown=function(){return this.pauseTemporarily()},f.prototype.pauseTemporarily=function(){var e,n,i,r;return this.paused=!0,n=function(e){return function(){var n,o,s;for(e.paused=!1,clearTimeout(r),o=0,s=i.length;s>o;o++)n=i[o],n.destroy();return t(document,e.element)?e.selectionDidChange():void 0}}(this),r=setTimeout(n,200),i=function(){var t,i,r,s;for(r=[\"mousemove\",\"keydown\"],s=[],t=0,i=r.length;i>t;t++)e=r[t],s.push(o(e,{onElement:document,withCallback:n}));return s}()},f.prototype.selectionDidChange=function(){return this.paused||r(this.element)?void 0:this.updateCurrentLocationRange()},f.prototype.updateCurrentLocationRange=function(t){var e;return(null!=t?t:t=this.createLocationRangeFromDOMRange(n()))&&!c(t,this.currentLocationRange)?(this.currentLocationRange=t,null!=(e=this.delegate)&&\"function\"==typeof e.locationRangeDidChange?e.locationRangeDidChange(this.currentLocationRange.slice(0)):void 0):void 0},f.prototype.createDOMRangeFromLocationRange=function(t){var e,n,i,o;return i=this.findContainerAndOffsetFromLocation(t[0]),n=u(t)?i:null!=(o=this.findContainerAndOffsetFromLocation(t[1]))?o:i,null!=i&&null!=n?(e=document.createRange(),e.setStart.apply(e,i),e.setEnd.apply(e,n),e):void 0},f.prototype.getLocationAtPoint=function(t){var e,n;return(e=this.createDOMRangeFromPoint(t))&&null!=(n=this.createLocationRangeFromDOMRange(e))?n[0]:void 0},f.prototype.domRangeWithinElement=function(e){return e.collapsed?t(this.element,e.startContainer):t(this.element,e.startContainer)&&t(this.element,e.endContainer)},f}(e.BasicObject)}.call(this),function(){var t,n,i,o,r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].slice;i=e.rangeIsCollapsed,o=e.rangesAreEqual,n=e.objectsAreEqual,t=e.getBlockConfig,e.EditorController=function(s){function u(t){var n,i;this.editorElement=t.editorElement,n=t.document,i=t.html,this.selectionManager=new e.SelectionManager(this.editorElement),this.selectionManager.delegate=this,this.composition=new e.Composition,this.composition.delegate=this,this.attachmentManager=new e.AttachmentManager(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=new(e[\"Level\"+e.config.input.getLevel()+\"InputController\"])(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new e.CompositionController(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new e.ToolbarController(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new e.Editor(this.composition,this.selectionManager,this.editorElement),null!=n?this.editor.loadDocument(n):this.editor.loadHTML(i)}var c;return r(u,s),u.prototype.registerSelectionManager=function(){return e.selectionChangeObserver.registerSelectionManager(this.selectionManager)},u.prototype.unregisterSelectionManager=function(){return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager)},u.prototype.render=function(){return this.compositionController.render()},u.prototype.reparse=function(){return this.composition.replaceHTML(this.editorElement.innerHTML)},u.prototype.compositionDidChangeDocument=function(){return this.notifyEditorElement(\"document-change\"),this.handlingInput?void 0:this.render()},u.prototype.compositionDidChangeCurrentAttributes=function(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})},u.prototype.compositionDidPerformInsertionAtRange=function(t){return this.pasting?this.pastedRange=t:void 0},u.prototype.compositionShouldAcceptFile=function(t){return this.notifyEditorElement(\"file-accept\",{file:t})},u.prototype.compositionDidAddAttachment=function(t){var e;return e=this.attachmentManager.manageAttachment(t),this.notifyEditorElement(\"attachment-add\",{attachment:e})},u.prototype.compositionDidEditAttachment=function(t){var e;return this.compositionController.rerenderViewForObject(t),e=this.attachmentManager.manageAttachment(t),this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")},u.prototype.compositionDidChangeAttachmentPreviewURL=function(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")},u.prototype.compositionDidRemoveAttachment=function(t){var e;return e=this.attachmentManager.unmanageAttachment(t),this.notifyEditorElement(\"attachment-remove\",{attachment:e})},u.prototype.compositionDidStartEditingAttachment=function(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)},u.prototype.compositionDidStopEditingAttachment=function(){return this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null},u.prototype.compositionDidRequestChangingSelectionToLocationRange=function(t){return!this.loadingSnapshot||this.isFocused()?(this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()):void 0},u.prototype.compositionWillLoadSnapshot=function(){return this.loadingSnapshot=!0},u.prototype.compositionDidLoadSnapshot=function(){return this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1},u.prototype.getSelectionManager=function(){return this.selectionManager},u.proxyMethod(\"getSelectionManager().setLocationRange\"),u.proxyMethod(\"getSelectionManager().getLocationRange\"),u.prototype.attachmentManagerDidRequestRemovalOfAttachment=function(t){return this.removeAttachment(t)},u.prototype.compositionControllerWillSyncDocumentView=function(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()},u.prototype.compositionControllerDidSyncDocumentView=function(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")},u.prototype.compositionControllerDidRender=function(){return null!=this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision},u.prototype.compositionControllerDidFocus=function(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")},u.prototype.compositionControllerDidBlur=function(){return this.notifyEditorElement(\"blur\")},u.prototype.compositionControllerDidSelectAttachment=function(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)},u.prototype.compositionControllerDidRequestDeselectingAttachment=function(t){var e,n;return e=null!=(n=this.attachmentLocationRange)?n:this.composition.document.getLocationRangeOfAttachment(t),this.selectionManager.setLocationRange(e[1])},u.prototype.compositionControllerWillUpdateAttachment=function(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})},u.prototype.compositionControllerDidRequestRemovalOfAttachment=function(t){return this.removeAttachment(t)},u.prototype.inputControllerWillHandleInput=function(){return this.handlingInput=!0,this.requestedRender=!1},u.prototype.inputControllerDidRequestRender=function(){return this.requestedRender=!0},u.prototype.inputControllerDidHandleInput=function(){return this.handlingInput=!1,this.requestedRender?(this.requestedRender=!1,this.render()):void 0},u.prototype.inputControllerDidAllowUnhandledInput=function(){return this.notifyEditorElement(\"change\")},u.prototype.inputControllerDidRequestReparse=function(){return this.reparse()},u.prototype.inputControllerWillPerformTyping=function(){return this.recordTypingUndoEntry()},u.prototype.inputControllerWillPerformFormatting=function(t){return this.recordFormattingUndoEntry(t)},u.prototype.inputControllerWillCutText=function(){return this.editor.recordUndoEntry(\"Cut\")},u.prototype.inputControllerWillPaste=function(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})},u.prototype.inputControllerDidPaste=function(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})},u.prototype.inputControllerWillMoveText=function(){return this.editor.recordUndoEntry(\"Move\")},u.prototype.inputControllerWillAttachFiles=function(){return this.editor.recordUndoEntry(\"Drop Files\")},u.prototype.inputControllerWillPerformUndo=function(){return this.editor.undo()},u.prototype.inputControllerWillPerformRedo=function(){return this.editor.redo()},u.prototype.inputControllerDidReceiveKeyboardCommand=function(t){return this.toolbarController.applyKeyboardCommand(t)},u.prototype.inputControllerDidStartDrag=function(){return this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()},u.prototype.inputControllerDidReceiveDragOverPoint=function(t){return this.selectionManager.setLocationRangeFromPointRange(t)},u.prototype.inputControllerDidCancelDrag=function(){return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null},u.prototype.locationRangeDidChange=function(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!o(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")},u.prototype.toolbarDidClickButton=function(){return this.getLocationRange()?void 0:this.setLocationRange({index:0,offset:0})},u.prototype.toolbarDidInvokeAction=function(t){return this.invokeAction(t)},u.prototype.toolbarDidToggleAttribute=function(t){return this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarDidUpdateAttribute=function(t,e){return this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarDidRemoveAttribute=function(t){return this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarWillShowDialog=function(){return this.composition.expandSelectionForEditing(),this.freezeSelection()},u.prototype.toolbarDidShowDialog=function(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})},u.prototype.toolbarDidHideDialog=function(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})},u.prototype.freezeSelection=function(){return this.selectionFrozen?void 0:(this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render())},u.prototype.thawSelection=function(){return this.selectionFrozen?(this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()):void 0},u.prototype.actions={undo:{test:function(){return this.editor.canUndo()},perform:function(){return this.editor.undo()}},redo:{test:function(){return this.editor.canRedo()},perform:function(){return this.editor.redo()}},link:{test:function(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test:function(){return this.editor.canIncreaseNestingLevel()},perform:function(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test:function(){return this.editor.canDecreaseNestingLevel()},perform:function(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:function(){return!0},perform:function(){return e.config.input.pickFiles(this.editor.insertFiles)}}},u.prototype.canInvokeAction=function(t){var e,n;return this.actionIsExternal(t)?!0:!!(null!=(e=this.actions[t])&&null!=(n=e.test)?n.call(this):void 0)},u.prototype.invokeAction=function(t){var e,n;return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t}):null!=(e=this.actions[t])&&null!=(n=e.perform)?n.call(this):void 0},u.prototype.actionIsExternal=function(t){return/^x-./.test(t)},u.prototype.getCurrentActions=function(){var t,e;e={};for(t in this.actions)e[t]=this.canInvokeAction(t);return e},u.prototype.updateCurrentActions=function(){var t;return t=this.getCurrentActions(),n(t,this.currentActions)?void 0:(this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions}))},u.prototype.runEditorFilters=function(){var t,e,n,i,o,r,s,a;for(a=this.composition.getSnapshot(),o=this.editor.filters,n=0,i=o.length;i>n;n++)e=o[n],t=a.document,s=a.selectedRange,a=null!=(r=e.call(this.editor,a))?r:{},null==a.document&&(a.document=t),null==a.selectedRange&&(a.selectedRange=s);return c(a,this.composition.getSnapshot())?void 0:this.composition.loadSnapshot(a)},c=function(t,e){return o(t.selectedRange,e.selectedRange)&&t.document.isEqualTo(e.document)},u.prototype.updateInputElement=function(){var t,n;return t=this.compositionController.getSerializableElement(),n=e.serializeToContentType(t,\"text/html\"),this.editorElement.setInputElementValue(n)},u.prototype.notifyEditorElement=function(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)},u.prototype.removeAttachment=function(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()},u.prototype.recordFormattingUndoEntry=function(e){var n,o;return n=t(e),o=this.selectionManager.getLocationRange(),n||!i(o)?this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0}):void 0},u.prototype.recordTypingUndoEntry=function(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})},u.prototype.getUndoContext=function(){var t;return t=1<=arguments.length?a.call(arguments,0):[],[this.getLocationContext(),this.getTimeContext()].concat(a.call(t))},u.prototype.getLocationContext=function(){var t;return t=this.selectionManager.getLocationRange(),i(t)?t[0].index:t},u.prototype.getTimeContext=function(){return e.config.undoInterval>0?Math.floor((new Date).getTime()/e.config.undoInterval):0},u.prototype.isFocused=function(){var t;return this.editorElement===(null!=(t=this.editorElement.ownerDocument)?t.activeElement:void 0)},u.prototype.isFocusedInvisibly=function(){return this.isFocused()&&!this.getLocationRange()},u}(e.Controller)}.call(this),function(){var t,n,i,o,r,s,a,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};n=e.browser,s=e.makeElement,a=e.triggerEvent,o=e.handleEvent,r=e.handleEventOnce,i=e.findClosestElementFromNode,t=e.AttachmentView.attachmentSelector,e.registerElement(\"trix-editor\",function(){var c,l,h,p,d,f,g,m,v;return g=0,l=function(t){return!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t?t.focus():void 0},m=function(t){return t.hasAttribute(\"contenteditable\")?void 0:(t.setAttribute(\"contenteditable\",\"\"),r(\"focus\",{onElement:t,withCallback:function(){return h(t)}}))},h=function(t){return d(t),v(t)},d=function(t){return(\"function\"==typeof document.queryCommandSupported?document.queryCommandSupported(\"enableObjectResizing\"):void 0)?(document.execCommand(\"enableObjectResizing\",!1,!1),o(\"mscontrolselect\",{onElement:t,preventDefault:!0})):void 0},v=function(){var t;return(\"function\"==typeof document.queryCommandSupported?document.queryCommandSupported(\"DefaultParagraphSeparator\"):void 0)&&(t=e.config.blockAttributes[\"default\"].tagName,\"div\"===t||\"p\"===t)?document.execCommand(\"DefaultParagraphSeparator\",!1,t):void 0},c=function(t){return t.hasAttribute(\"role\")?void 0:t.setAttribute(\"role\",\"textbox\")},f=function(t){var e;if(!t.hasAttribute(\"aria-label\")&&!t.hasAttribute(\"aria-labelledby\"))return(e=function(){var e,n,i;return i=function(){var n,i,o,r;for(o=t.labels,r=[],n=0,i=o.length;i>n;n++)e=o[n],e.contains(t)||r.push(e.textContent);return r}(),(n=i.join(\" \"))?t.setAttribute(\"aria-label\",n):t.removeAttribute(\"aria-label\")})(),o(\"focus\",{onElement:t,withCallback:e})},p=function(){return n.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"}}(),{defaultCSS:\"%t {\\n  display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n  content: attr(placeholder);\\n  color: graytext;\\n  cursor: text;\\n  pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n  cursor: text;\\n}\\n\\n%t img {\\n  max-width: 100%;\\n  height: auto;\\n}\\n\\n%t \"+t+\" figcaption textarea {\\n  resize: none;\\n}\\n\\n%t \"+t+\" figcaption textarea.trix-autoresize-clone {\\n  position: absolute;\\n  left: -9999px;\\n  max-height: 0px;\\n}\\n\\n%t \"+t+\" figcaption[data-trix-placeholder]:empty::before {\\n  content: attr(data-trix-placeholder);\\n  color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n  display: \"+p.display+\" !important;\\n  width: \"+p.width+\" !important;\\n  padding: 0 !important;\\n  margin: 0 !important;\\n  border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n  vertical-align: top !important;\\n  margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n  vertical-align: bottom !important;\\n  margin-right: -1px !important;\\n}\",trixId:{get:function(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++g),this.trixId)}},labels:{get:function(){var t,e,n;return e=[],this.id&&this.ownerDocument&&e.push.apply(e,this.ownerDocument.querySelectorAll(\"label[for='\"+this.id+\"']\")),(t=i(this,{matchingSelector:\"label\"}))&&((n=t.control)===this||null===n)&&e.push(t),e}},toolbarElement:{get:function(){var t,e,n;return this.hasAttribute(\"toolbar\")?null!=(e=this.ownerDocument)?e.getElementById(this.getAttribute(\"toolbar\")):void 0:this.parentNode?(n=\"trix-toolbar-\"+this.trixId,this.setAttribute(\"toolbar\",n),t=s(\"trix-toolbar\",{id:n}),this.parentNode.insertBefore(t,this),t):void 0}},inputElement:{get:function(){var t,e,n;return this.hasAttribute(\"input\")?null!=(n=this.ownerDocument)?n.getElementById(this.getAttribute(\"input\")):void 0:this.parentNode?(e=\"trix-input-\"+this.trixId,this.setAttribute(\"input\",e),t=s(\"input\",{type:\"hidden\",id:e}),this.parentNode.insertBefore(t,this.nextElementSibling),t):void 0}},editor:{get:function(){var t;return null!=(t=this.editorController)?t.editor:void 0}},name:{get:function(){var t;return null!=(t=this.inputElement)?t.name:void 0}},value:{get:function(){var t;return null!=(t=this.inputElement)?t.value:void 0},set:function(t){var e;return this.defaultValue=t,null!=(e=this.editor)?e.loadHTML(this.defaultValue):void 0}},notify:function(t,e){return this.editorController?a(\"trix-\"+t,{onElement:this,attributes:e}):void 0},setInputElementValue:function(t){var e;return null!=(e=this.inputElement)?e.value=t:void 0},initialize:function(){return this.hasAttribute(\"data-trix-internal\")?void 0:(m(this),c(this),f(this))},connect:function(){return this.hasAttribute(\"data-trix-internal\")?void 0:(this.editorController||(a(\"trix-before-initialize\",{onElement:this}),this.editorController=new e.EditorController({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame(function(t){return function(){return a(\"trix-initialize\",{onElement:t})}}(this))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),l(this))},disconnect:function(){var t;return null!=(t=this.editorController)&&t.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()},registerResetListener:function(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener(\"reset\",this.resetListener,!1)},unregisterResetListener:function(){return window.removeEventListener(\"reset\",this.resetListener,!1)},registerClickListener:function(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener(\"click\",this.clickListener,!1)},unregisterClickListener:function(){return window.removeEventListener(\"click\",this.clickListener,!1)},resetBubbled:function(t){var e;if(!t.defaultPrevented&&t.target===(null!=(e=this.inputElement)?e.form:void 0))return this.reset()},clickBubbled:function(t){var e;if(!(t.defaultPrevented||this.contains(t.target)||!(e=i(t.target,{matchingSelector:\"label\"}))||u.call(this.labels,e)<0))return this.focus()},reset:function(){return this.value=this.defaultValue}}}())}.call(this),function(){}.call(this)}).call(this),\"object\"==typeof module&&module.exports?module.exports=e:\"function\"==typeof define&&define.amd&&define(e)}.call(this);", "/*\nTurbo 7.3.0\nCopyright \u00A9 2023 37signals LLC\n */\n(function () {\n    if (window.Reflect === undefined ||\n        window.customElements === undefined ||\n        window.customElements.polyfillWrapFlushCallback) {\n        return;\n    }\n    const BuiltInHTMLElement = HTMLElement;\n    const wrapperForTheName = {\n        HTMLElement: function HTMLElement() {\n            return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n        },\n    };\n    window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n    HTMLElement.prototype = BuiltInHTMLElement.prototype;\n    HTMLElement.prototype.constructor = HTMLElement;\n    Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n  if (typeof prototype.requestSubmit == \"function\") return\n\n  prototype.requestSubmit = function(submitter) {\n    if (submitter) {\n      validateSubmitter(submitter, this);\n      submitter.click();\n    } else {\n      submitter = document.createElement(\"input\");\n      submitter.type = \"submit\";\n      submitter.hidden = true;\n      this.appendChild(submitter);\n      submitter.click();\n      this.removeChild(submitter);\n    }\n  };\n\n  function validateSubmitter(submitter, form) {\n    submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n    submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n    submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n  }\n\n  function raise(errorConstructor, message, name) {\n    throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n  }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n    const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n    const candidate = element ? element.closest(\"input, button\") : null;\n    return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n    const submitter = findSubmitterFromClickTarget(event.target);\n    if (submitter && submitter.form) {\n        submittersByForm.set(submitter.form, submitter);\n    }\n}\n(function () {\n    if (\"submitter\" in Event.prototype)\n        return;\n    let prototype = window.Event.prototype;\n    if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n        prototype = window.SubmitEvent.prototype;\n    }\n    else if (\"SubmitEvent\" in window) {\n        return;\n    }\n    addEventListener(\"click\", clickCaptured, true);\n    Object.defineProperty(prototype, \"submitter\", {\n        get() {\n            if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n                return submittersByForm.get(this.target);\n            }\n        },\n    });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n    FrameLoadingStyle[\"eager\"] = \"eager\";\n    FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n    static get observedAttributes() {\n        return [\"disabled\", \"complete\", \"loading\", \"src\"];\n    }\n    constructor() {\n        super();\n        this.loaded = Promise.resolve();\n        this.delegate = new FrameElement.delegateConstructor(this);\n    }\n    connectedCallback() {\n        this.delegate.connect();\n    }\n    disconnectedCallback() {\n        this.delegate.disconnect();\n    }\n    reload() {\n        return this.delegate.sourceURLReloaded();\n    }\n    attributeChangedCallback(name) {\n        if (name == \"loading\") {\n            this.delegate.loadingStyleChanged();\n        }\n        else if (name == \"complete\") {\n            this.delegate.completeChanged();\n        }\n        else if (name == \"src\") {\n            this.delegate.sourceURLChanged();\n        }\n        else {\n            this.delegate.disabledChanged();\n        }\n    }\n    get src() {\n        return this.getAttribute(\"src\");\n    }\n    set src(value) {\n        if (value) {\n            this.setAttribute(\"src\", value);\n        }\n        else {\n            this.removeAttribute(\"src\");\n        }\n    }\n    get loading() {\n        return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n    }\n    set loading(value) {\n        if (value) {\n            this.setAttribute(\"loading\", value);\n        }\n        else {\n            this.removeAttribute(\"loading\");\n        }\n    }\n    get disabled() {\n        return this.hasAttribute(\"disabled\");\n    }\n    set disabled(value) {\n        if (value) {\n            this.setAttribute(\"disabled\", \"\");\n        }\n        else {\n            this.removeAttribute(\"disabled\");\n        }\n    }\n    get autoscroll() {\n        return this.hasAttribute(\"autoscroll\");\n    }\n    set autoscroll(value) {\n        if (value) {\n            this.setAttribute(\"autoscroll\", \"\");\n        }\n        else {\n            this.removeAttribute(\"autoscroll\");\n        }\n    }\n    get complete() {\n        return !this.delegate.isLoading;\n    }\n    get isActive() {\n        return this.ownerDocument === document && !this.isPreview;\n    }\n    get isPreview() {\n        var _a, _b;\n        return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n    }\n}\nfunction frameLoadingStyleFromString(style) {\n    switch (style.toLowerCase()) {\n        case \"lazy\":\n            return FrameLoadingStyle.lazy;\n        default:\n            return FrameLoadingStyle.eager;\n    }\n}\n\nfunction expandURL(locatable) {\n    return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n    let anchorMatch;\n    if (url.hash) {\n        return url.hash.slice(1);\n    }\n    else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n        return anchorMatch[1];\n    }\n}\nfunction getAction(form, submitter) {\n    const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n    return expandURL(action);\n}\nfunction getExtension(url) {\n    return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n    return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n    const prefix = getPrefix(url);\n    return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n    return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n    const anchor = getAnchor(url);\n    return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n    return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n    return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n    return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n    return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n    return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n    return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n    constructor(response) {\n        this.response = response;\n    }\n    get succeeded() {\n        return this.response.ok;\n    }\n    get failed() {\n        return !this.succeeded;\n    }\n    get clientError() {\n        return this.statusCode >= 400 && this.statusCode <= 499;\n    }\n    get serverError() {\n        return this.statusCode >= 500 && this.statusCode <= 599;\n    }\n    get redirected() {\n        return this.response.redirected;\n    }\n    get location() {\n        return expandURL(this.response.url);\n    }\n    get isHTML() {\n        return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n    }\n    get statusCode() {\n        return this.response.status;\n    }\n    get contentType() {\n        return this.header(\"Content-Type\");\n    }\n    get responseText() {\n        return this.response.clone().text();\n    }\n    get responseHTML() {\n        if (this.isHTML) {\n            return this.response.clone().text();\n        }\n        else {\n            return Promise.resolve(undefined);\n        }\n    }\n    header(name) {\n        return this.response.headers.get(name);\n    }\n}\n\nfunction activateScriptElement(element) {\n    if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n        return element;\n    }\n    else {\n        const createdScriptElement = document.createElement(\"script\");\n        const cspNonce = getMetaContent(\"csp-nonce\");\n        if (cspNonce) {\n            createdScriptElement.nonce = cspNonce;\n        }\n        createdScriptElement.textContent = element.textContent;\n        createdScriptElement.async = false;\n        copyElementAttributes(createdScriptElement, element);\n        return createdScriptElement;\n    }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n    for (const { name, value } of sourceElement.attributes) {\n        destinationElement.setAttribute(name, value);\n    }\n}\nfunction createDocumentFragment(html) {\n    const template = document.createElement(\"template\");\n    template.innerHTML = html;\n    return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n    const event = new CustomEvent(eventName, {\n        cancelable,\n        bubbles: true,\n        composed: true,\n        detail,\n    });\n    if (target && target.isConnected) {\n        target.dispatchEvent(event);\n    }\n    else {\n        document.documentElement.dispatchEvent(event);\n    }\n    return event;\n}\nfunction nextAnimationFrame() {\n    return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n    return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n    return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n    return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n    const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n    const match = lines[0].match(/^\\s+/);\n    const indent = match ? match[0].length : 0;\n    return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n    return strings.reduce((result, string, i) => {\n        const value = values[i] == undefined ? \"\" : values[i];\n        return result + string + value;\n    }, \"\");\n}\nfunction uuid() {\n    return Array.from({ length: 36 })\n        .map((_, i) => {\n        if (i == 8 || i == 13 || i == 18 || i == 23) {\n            return \"-\";\n        }\n        else if (i == 14) {\n            return \"4\";\n        }\n        else if (i == 19) {\n            return (Math.floor(Math.random() * 4) + 8).toString(16);\n        }\n        else {\n            return Math.floor(Math.random() * 15).toString(16);\n        }\n    })\n        .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n    for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n        if (typeof value == \"string\")\n            return value;\n    }\n    return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n    return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.setAttribute(\"busy\", \"\");\n        }\n        element.setAttribute(\"aria-busy\", \"true\");\n    }\n}\nfunction clearBusyState(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.removeAttribute(\"busy\");\n        }\n        element.removeAttribute(\"aria-busy\");\n    }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n    return new Promise((resolve) => {\n        const onComplete = () => {\n            element.removeEventListener(\"error\", onComplete);\n            element.removeEventListener(\"load\", onComplete);\n            resolve();\n        };\n        element.addEventListener(\"load\", onComplete, { once: true });\n        element.addEventListener(\"error\", onComplete, { once: true });\n        setTimeout(resolve, timeoutInMilliseconds);\n    });\n}\nfunction getHistoryMethodForAction(action) {\n    switch (action) {\n        case \"replace\":\n            return history.replaceState;\n        case \"advance\":\n        case \"restore\":\n            return history.pushState;\n    }\n}\nfunction isAction(action) {\n    return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\nfunction getVisitAction(...elements) {\n    const action = getAttribute(\"data-turbo-action\", ...elements);\n    return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n    return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n    const element = getMetaElement(name);\n    return element && element.content;\n}\nfunction setMetaContent(name, content) {\n    let element = getMetaElement(name);\n    if (!element) {\n        element = document.createElement(\"meta\");\n        element.setAttribute(\"name\", name);\n        document.head.appendChild(element);\n    }\n    element.setAttribute(\"content\", content);\n    return element;\n}\nfunction findClosestRecursively(element, selector) {\n    var _a;\n    if (element instanceof Element) {\n        return (element.closest(selector) ||\n            findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector));\n    }\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n    FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n    FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n    FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n    FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n    FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n    switch (method.toLowerCase()) {\n        case \"get\":\n            return FetchMethod.get;\n        case \"post\":\n            return FetchMethod.post;\n        case \"put\":\n            return FetchMethod.put;\n        case \"patch\":\n            return FetchMethod.patch;\n        case \"delete\":\n            return FetchMethod.delete;\n    }\n}\nclass FetchRequest {\n    constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n        this.abortController = new AbortController();\n        this.resolveRequestPromise = (_value) => { };\n        this.delegate = delegate;\n        this.method = method;\n        this.headers = this.defaultHeaders;\n        this.body = body;\n        this.url = location;\n        this.target = target;\n    }\n    get location() {\n        return this.url;\n    }\n    get params() {\n        return this.url.searchParams;\n    }\n    get entries() {\n        return this.body ? Array.from(this.body.entries()) : [];\n    }\n    cancel() {\n        this.abortController.abort();\n    }\n    async perform() {\n        const { fetchOptions } = this;\n        this.delegate.prepareRequest(this);\n        await this.allowRequestToBeIntercepted(fetchOptions);\n        try {\n            this.delegate.requestStarted(this);\n            const response = await fetch(this.url.href, fetchOptions);\n            return await this.receive(response);\n        }\n        catch (error) {\n            if (error.name !== \"AbortError\") {\n                if (this.willDelegateErrorHandling(error)) {\n                    this.delegate.requestErrored(this, error);\n                }\n                throw error;\n            }\n        }\n        finally {\n            this.delegate.requestFinished(this);\n        }\n    }\n    async receive(response) {\n        const fetchResponse = new FetchResponse(response);\n        const event = dispatch(\"turbo:before-fetch-response\", {\n            cancelable: true,\n            detail: { fetchResponse },\n            target: this.target,\n        });\n        if (event.defaultPrevented) {\n            this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n        }\n        else if (fetchResponse.succeeded) {\n            this.delegate.requestSucceededWithResponse(this, fetchResponse);\n        }\n        else {\n            this.delegate.requestFailedWithResponse(this, fetchResponse);\n        }\n        return fetchResponse;\n    }\n    get fetchOptions() {\n        var _a;\n        return {\n            method: FetchMethod[this.method].toUpperCase(),\n            credentials: \"same-origin\",\n            headers: this.headers,\n            redirect: \"follow\",\n            body: this.isSafe ? null : this.body,\n            signal: this.abortSignal,\n            referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n        };\n    }\n    get defaultHeaders() {\n        return {\n            Accept: \"text/html, application/xhtml+xml\",\n        };\n    }\n    get isSafe() {\n        return this.method === FetchMethod.get;\n    }\n    get abortSignal() {\n        return this.abortController.signal;\n    }\n    acceptResponseType(mimeType) {\n        this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n    }\n    async allowRequestToBeIntercepted(fetchOptions) {\n        const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n        const event = dispatch(\"turbo:before-fetch-request\", {\n            cancelable: true,\n            detail: {\n                fetchOptions,\n                url: this.url,\n                resume: this.resolveRequestPromise,\n            },\n            target: this.target,\n        });\n        if (event.defaultPrevented)\n            await requestInterception;\n    }\n    willDelegateErrorHandling(error) {\n        const event = dispatch(\"turbo:fetch-request-error\", {\n            target: this.target,\n            cancelable: true,\n            detail: { request: this, error: error },\n        });\n        return !event.defaultPrevented;\n    }\n}\n\nclass AppearanceObserver {\n    constructor(delegate, element) {\n        this.started = false;\n        this.intersect = (entries) => {\n            const lastEntry = entries.slice(-1)[0];\n            if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n                this.delegate.elementAppearedInViewport(this.element);\n            }\n        };\n        this.delegate = delegate;\n        this.element = element;\n        this.intersectionObserver = new IntersectionObserver(this.intersect);\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.intersectionObserver.observe(this.element);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.intersectionObserver.unobserve(this.element);\n        }\n    }\n}\n\nclass StreamMessage {\n    static wrap(message) {\n        if (typeof message == \"string\") {\n            return new this(createDocumentFragment(message));\n        }\n        else {\n            return message;\n        }\n    }\n    constructor(fragment) {\n        this.fragment = importStreamElements(fragment);\n    }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n    for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n        const streamElement = document.importNode(element, true);\n        for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n            inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n        }\n        element.replaceWith(streamElement);\n    }\n    return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n    FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n    FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n    FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n    FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n    FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n    FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n    FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n    FormEnctype[\"multipart\"] = \"multipart/form-data\";\n    FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n    switch (encoding.toLowerCase()) {\n        case FormEnctype.multipart:\n            return FormEnctype.multipart;\n        case FormEnctype.plain:\n            return FormEnctype.plain;\n        default:\n            return FormEnctype.urlEncoded;\n    }\n}\nclass FormSubmission {\n    static confirmMethod(message, _element, _submitter) {\n        return Promise.resolve(confirm(message));\n    }\n    constructor(delegate, formElement, submitter, mustRedirect = false) {\n        this.state = FormSubmissionState.initialized;\n        this.delegate = delegate;\n        this.formElement = formElement;\n        this.submitter = submitter;\n        this.formData = buildFormData(formElement, submitter);\n        this.location = expandURL(this.action);\n        if (this.method == FetchMethod.get) {\n            mergeFormDataEntries(this.location, [...this.body.entries()]);\n        }\n        this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n        this.mustRedirect = mustRedirect;\n    }\n    get method() {\n        var _a;\n        const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n        return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n    }\n    get action() {\n        var _a;\n        const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n        if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n            return this.submitter.getAttribute(\"formaction\") || \"\";\n        }\n        else {\n            return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n        }\n    }\n    get body() {\n        if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n            return new URLSearchParams(this.stringFormData);\n        }\n        else {\n            return this.formData;\n        }\n    }\n    get enctype() {\n        var _a;\n        return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n    }\n    get isSafe() {\n        return this.fetchRequest.isSafe;\n    }\n    get stringFormData() {\n        return [...this.formData].reduce((entries, [name, value]) => {\n            return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n        }, []);\n    }\n    async start() {\n        const { initialized, requesting } = FormSubmissionState;\n        const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n        if (typeof confirmationMessage === \"string\") {\n            const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n            if (!answer) {\n                return;\n            }\n        }\n        if (this.state == initialized) {\n            this.state = requesting;\n            return this.fetchRequest.perform();\n        }\n    }\n    stop() {\n        const { stopping, stopped } = FormSubmissionState;\n        if (this.state != stopping && this.state != stopped) {\n            this.state = stopping;\n            this.fetchRequest.cancel();\n            return true;\n        }\n    }\n    prepareRequest(request) {\n        if (!request.isSafe) {\n            const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n            if (token) {\n                request.headers[\"X-CSRF-Token\"] = token;\n            }\n        }\n        if (this.requestAcceptsTurboStreamResponse(request)) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted(_request) {\n        var _a;\n        this.state = FormSubmissionState.waiting;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n        this.setSubmitsWith();\n        dispatch(\"turbo:submit-start\", {\n            target: this.formElement,\n            detail: { formSubmission: this },\n        });\n        this.delegate.formSubmissionStarted(this);\n    }\n    requestPreventedHandlingResponse(request, response) {\n        this.result = { success: response.succeeded, fetchResponse: response };\n    }\n    requestSucceededWithResponse(request, response) {\n        if (response.clientError || response.serverError) {\n            this.delegate.formSubmissionFailedWithResponse(this, response);\n        }\n        else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n            const error = new Error(\"Form responses must redirect to another location\");\n            this.delegate.formSubmissionErrored(this, error);\n        }\n        else {\n            this.state = FormSubmissionState.receiving;\n            this.result = { success: true, fetchResponse: response };\n            this.delegate.formSubmissionSucceededWithResponse(this, response);\n        }\n    }\n    requestFailedWithResponse(request, response) {\n        this.result = { success: false, fetchResponse: response };\n        this.delegate.formSubmissionFailedWithResponse(this, response);\n    }\n    requestErrored(request, error) {\n        this.result = { success: false, error };\n        this.delegate.formSubmissionErrored(this, error);\n    }\n    requestFinished(_request) {\n        var _a;\n        this.state = FormSubmissionState.stopped;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n        this.resetSubmitterText();\n        dispatch(\"turbo:submit-end\", {\n            target: this.formElement,\n            detail: Object.assign({ formSubmission: this }, this.result),\n        });\n        this.delegate.formSubmissionFinished(this);\n    }\n    setSubmitsWith() {\n        if (!this.submitter || !this.submitsWith)\n            return;\n        if (this.submitter.matches(\"button\")) {\n            this.originalSubmitText = this.submitter.innerHTML;\n            this.submitter.innerHTML = this.submitsWith;\n        }\n        else if (this.submitter.matches(\"input\")) {\n            const input = this.submitter;\n            this.originalSubmitText = input.value;\n            input.value = this.submitsWith;\n        }\n    }\n    resetSubmitterText() {\n        if (!this.submitter || !this.originalSubmitText)\n            return;\n        if (this.submitter.matches(\"button\")) {\n            this.submitter.innerHTML = this.originalSubmitText;\n        }\n        else if (this.submitter.matches(\"input\")) {\n            const input = this.submitter;\n            input.value = this.originalSubmitText;\n        }\n    }\n    requestMustRedirect(request) {\n        return !request.isSafe && this.mustRedirect;\n    }\n    requestAcceptsTurboStreamResponse(request) {\n        return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n    }\n    get submitsWith() {\n        var _a;\n        return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"data-turbo-submits-with\");\n    }\n}\nfunction buildFormData(formElement, submitter) {\n    const formData = new FormData(formElement);\n    const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n    const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n    if (name) {\n        formData.append(name, value || \"\");\n    }\n    return formData;\n}\nfunction getCookieValue(cookieName) {\n    if (cookieName != null) {\n        const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n        const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n        if (cookie) {\n            const value = cookie.split(\"=\").slice(1).join(\"=\");\n            return value ? decodeURIComponent(value) : undefined;\n        }\n    }\n}\nfunction responseSucceededWithoutRedirect(response) {\n    return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n    const searchParams = new URLSearchParams();\n    for (const [name, value] of entries) {\n        if (value instanceof File)\n            continue;\n        searchParams.append(name, value);\n    }\n    url.search = searchParams.toString();\n    return url;\n}\n\nclass Snapshot {\n    constructor(element) {\n        this.element = element;\n    }\n    get activeElement() {\n        return this.element.ownerDocument.activeElement;\n    }\n    get children() {\n        return [...this.element.children];\n    }\n    hasAnchor(anchor) {\n        return this.getElementForAnchor(anchor) != null;\n    }\n    getElementForAnchor(anchor) {\n        return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n    }\n    get isConnected() {\n        return this.element.isConnected;\n    }\n    get firstAutofocusableElement() {\n        const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n        for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n            if (element.closest(inertDisabledOrHidden) == null)\n                return element;\n            else\n                continue;\n        }\n        return null;\n    }\n    get permanentElements() {\n        return queryPermanentElementsAll(this.element);\n    }\n    getPermanentElementById(id) {\n        return getPermanentElementById(this.element, id);\n    }\n    getPermanentElementMapForSnapshot(snapshot) {\n        const permanentElementMap = {};\n        for (const currentPermanentElement of this.permanentElements) {\n            const { id } = currentPermanentElement;\n            const newPermanentElement = snapshot.getPermanentElementById(id);\n            if (newPermanentElement) {\n                permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n            }\n        }\n        return permanentElementMap;\n    }\n}\nfunction getPermanentElementById(node, id) {\n    return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n    return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n    constructor(delegate, eventTarget) {\n        this.started = false;\n        this.submitCaptured = () => {\n            this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n            this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n        };\n        this.submitBubbled = ((event) => {\n            if (!event.defaultPrevented) {\n                const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n                const submitter = event.submitter || undefined;\n                if (form &&\n                    submissionDoesNotDismissDialog(form, submitter) &&\n                    submissionDoesNotTargetIFrame(form, submitter) &&\n                    this.delegate.willSubmitForm(form, submitter)) {\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n                    this.delegate.formSubmitted(form, submitter);\n                }\n            }\n        });\n        this.delegate = delegate;\n        this.eventTarget = eventTarget;\n    }\n    start() {\n        if (!this.started) {\n            this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n            this.started = false;\n        }\n    }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n    const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n    return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n    if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute(\"formtarget\")) || form.hasAttribute(\"target\")) {\n        const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n        for (const element of document.getElementsByName(target)) {\n            if (element instanceof HTMLIFrameElement)\n                return false;\n        }\n        return true;\n    }\n    else {\n        return true;\n    }\n}\n\nclass View {\n    constructor(delegate, element) {\n        this.resolveRenderPromise = (_value) => { };\n        this.resolveInterceptionPromise = (_value) => { };\n        this.delegate = delegate;\n        this.element = element;\n    }\n    scrollToAnchor(anchor) {\n        const element = this.snapshot.getElementForAnchor(anchor);\n        if (element) {\n            this.scrollToElement(element);\n            this.focusElement(element);\n        }\n        else {\n            this.scrollToPosition({ x: 0, y: 0 });\n        }\n    }\n    scrollToAnchorFromLocation(location) {\n        this.scrollToAnchor(getAnchor(location));\n    }\n    scrollToElement(element) {\n        element.scrollIntoView();\n    }\n    focusElement(element) {\n        if (element instanceof HTMLElement) {\n            if (element.hasAttribute(\"tabindex\")) {\n                element.focus();\n            }\n            else {\n                element.setAttribute(\"tabindex\", \"-1\");\n                element.focus();\n                element.removeAttribute(\"tabindex\");\n            }\n        }\n    }\n    scrollToPosition({ x, y }) {\n        this.scrollRoot.scrollTo(x, y);\n    }\n    scrollToTop() {\n        this.scrollToPosition({ x: 0, y: 0 });\n    }\n    get scrollRoot() {\n        return window;\n    }\n    async render(renderer) {\n        const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n        if (shouldRender) {\n            try {\n                this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n                this.renderer = renderer;\n                await this.prepareToRenderSnapshot(renderer);\n                const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n                const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n                const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n                if (!immediateRender)\n                    await renderInterception;\n                await this.renderSnapshot(renderer);\n                this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n                this.delegate.preloadOnLoadLinksForView(this.element);\n                this.finishRenderingSnapshot(renderer);\n            }\n            finally {\n                delete this.renderer;\n                this.resolveRenderPromise(undefined);\n                delete this.renderPromise;\n            }\n        }\n        else {\n            this.invalidate(renderer.reloadReason);\n        }\n    }\n    invalidate(reason) {\n        this.delegate.viewInvalidated(reason);\n    }\n    async prepareToRenderSnapshot(renderer) {\n        this.markAsPreview(renderer.isPreview);\n        await renderer.prepareToRender();\n    }\n    markAsPreview(isPreview) {\n        if (isPreview) {\n            this.element.setAttribute(\"data-turbo-preview\", \"\");\n        }\n        else {\n            this.element.removeAttribute(\"data-turbo-preview\");\n        }\n    }\n    async renderSnapshot(renderer) {\n        await renderer.render();\n    }\n    finishRenderingSnapshot(renderer) {\n        renderer.finishRendering();\n    }\n}\n\nclass FrameView extends View {\n    missing() {\n        this.element.innerHTML = `<strong class=\"turbo-frame-error\">Content missing</strong>`;\n    }\n    get snapshot() {\n        return new Snapshot(this.element);\n    }\n}\n\nclass LinkInterceptor {\n    constructor(delegate, element) {\n        this.clickBubbled = (event) => {\n            if (this.respondsToEventTarget(event.target)) {\n                this.clickEvent = event;\n            }\n            else {\n                delete this.clickEvent;\n            }\n        };\n        this.linkClicked = ((event) => {\n            if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n                if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n                    this.clickEvent.preventDefault();\n                    event.preventDefault();\n                    this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n                }\n            }\n            delete this.clickEvent;\n        });\n        this.willVisit = ((_event) => {\n            delete this.clickEvent;\n        });\n        this.delegate = delegate;\n        this.element = element;\n    }\n    start() {\n        this.element.addEventListener(\"click\", this.clickBubbled);\n        document.addEventListener(\"turbo:click\", this.linkClicked);\n        document.addEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    stop() {\n        this.element.removeEventListener(\"click\", this.clickBubbled);\n        document.removeEventListener(\"turbo:click\", this.linkClicked);\n        document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    respondsToEventTarget(target) {\n        const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n        return element && element.closest(\"turbo-frame, html\") == this.element;\n    }\n}\n\nclass LinkClickObserver {\n    constructor(delegate, eventTarget) {\n        this.started = false;\n        this.clickCaptured = () => {\n            this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n            this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n        };\n        this.clickBubbled = (event) => {\n            if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n                const target = (event.composedPath && event.composedPath()[0]) || event.target;\n                const link = this.findLinkFromClickTarget(target);\n                if (link && doesNotTargetIFrame(link)) {\n                    const location = this.getLocationForLink(link);\n                    if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n                        event.preventDefault();\n                        this.delegate.followedLinkToLocation(link, location);\n                    }\n                }\n            }\n        };\n        this.delegate = delegate;\n        this.eventTarget = eventTarget;\n    }\n    start() {\n        if (!this.started) {\n            this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n            this.started = false;\n        }\n    }\n    clickEventIsSignificant(event) {\n        return !((event.target && event.target.isContentEditable) ||\n            event.defaultPrevented ||\n            event.which > 1 ||\n            event.altKey ||\n            event.ctrlKey ||\n            event.metaKey ||\n            event.shiftKey);\n    }\n    findLinkFromClickTarget(target) {\n        return findClosestRecursively(target, \"a[href]:not([target^=_]):not([download])\");\n    }\n    getLocationForLink(link) {\n        return expandURL(link.getAttribute(\"href\") || \"\");\n    }\n}\nfunction doesNotTargetIFrame(anchor) {\n    if (anchor.hasAttribute(\"target\")) {\n        for (const element of document.getElementsByName(anchor.target)) {\n            if (element instanceof HTMLIFrameElement)\n                return false;\n        }\n        return true;\n    }\n    else {\n        return true;\n    }\n}\n\nclass FormLinkClickObserver {\n    constructor(delegate, element) {\n        this.delegate = delegate;\n        this.linkInterceptor = new LinkClickObserver(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n    }\n    willFollowLinkToLocation(link, location, originalEvent) {\n        return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n            link.hasAttribute(\"data-turbo-method\"));\n    }\n    followedLinkToLocation(link, location) {\n        const form = document.createElement(\"form\");\n        const type = \"hidden\";\n        for (const [name, value] of location.searchParams) {\n            form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n        }\n        const action = Object.assign(location, { search: \"\" });\n        form.setAttribute(\"data-turbo\", \"true\");\n        form.setAttribute(\"action\", action.href);\n        form.setAttribute(\"hidden\", \"\");\n        const method = link.getAttribute(\"data-turbo-method\");\n        if (method)\n            form.setAttribute(\"method\", method);\n        const turboFrame = link.getAttribute(\"data-turbo-frame\");\n        if (turboFrame)\n            form.setAttribute(\"data-turbo-frame\", turboFrame);\n        const turboAction = getVisitAction(link);\n        if (turboAction)\n            form.setAttribute(\"data-turbo-action\", turboAction);\n        const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n        if (turboConfirm)\n            form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n        const turboStream = link.hasAttribute(\"data-turbo-stream\");\n        if (turboStream)\n            form.setAttribute(\"data-turbo-stream\", \"\");\n        this.delegate.submittedFormLinkToLocation(link, location, form);\n        document.body.appendChild(form);\n        form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n        requestAnimationFrame(() => form.requestSubmit());\n    }\n}\n\nclass Bardo {\n    static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n        const bardo = new this(delegate, permanentElementMap);\n        bardo.enter();\n        await callback();\n        bardo.leave();\n    }\n    constructor(delegate, permanentElementMap) {\n        this.delegate = delegate;\n        this.permanentElementMap = permanentElementMap;\n    }\n    enter() {\n        for (const id in this.permanentElementMap) {\n            const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n            this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n            this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n        }\n    }\n    leave() {\n        for (const id in this.permanentElementMap) {\n            const [currentPermanentElement] = this.permanentElementMap[id];\n            this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n            this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n            this.delegate.leavingBardo(currentPermanentElement);\n        }\n    }\n    replaceNewPermanentElementWithPlaceholder(permanentElement) {\n        const placeholder = createPlaceholderForPermanentElement(permanentElement);\n        permanentElement.replaceWith(placeholder);\n    }\n    replaceCurrentPermanentElementWithClone(permanentElement) {\n        const clone = permanentElement.cloneNode(true);\n        permanentElement.replaceWith(clone);\n    }\n    replacePlaceholderWithPermanentElement(permanentElement) {\n        const placeholder = this.getPlaceholderById(permanentElement.id);\n        placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n    }\n    getPlaceholderById(id) {\n        return this.placeholders.find((element) => element.content == id);\n    }\n    get placeholders() {\n        return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n    }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n    const element = document.createElement(\"meta\");\n    element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n    element.setAttribute(\"content\", permanentElement.id);\n    return element;\n}\n\nclass Renderer {\n    constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n        this.activeElement = null;\n        this.currentSnapshot = currentSnapshot;\n        this.newSnapshot = newSnapshot;\n        this.isPreview = isPreview;\n        this.willRender = willRender;\n        this.renderElement = renderElement;\n        this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n    }\n    get shouldRender() {\n        return true;\n    }\n    get reloadReason() {\n        return;\n    }\n    prepareToRender() {\n        return;\n    }\n    finishRendering() {\n        if (this.resolvingFunctions) {\n            this.resolvingFunctions.resolve();\n            delete this.resolvingFunctions;\n        }\n    }\n    async preservingPermanentElements(callback) {\n        await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n    }\n    focusFirstAutofocusableElement() {\n        const element = this.connectedSnapshot.firstAutofocusableElement;\n        if (elementIsFocusable(element)) {\n            element.focus();\n        }\n    }\n    enteringBardo(currentPermanentElement) {\n        if (this.activeElement)\n            return;\n        if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n            this.activeElement = this.currentSnapshot.activeElement;\n        }\n    }\n    leavingBardo(currentPermanentElement) {\n        if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n            this.activeElement.focus();\n            this.activeElement = null;\n        }\n    }\n    get connectedSnapshot() {\n        return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n    }\n    get currentElement() {\n        return this.currentSnapshot.element;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    get permanentElementMap() {\n        return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n    }\n}\nfunction elementIsFocusable(element) {\n    return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        var _a;\n        const destinationRange = document.createRange();\n        destinationRange.selectNodeContents(currentElement);\n        destinationRange.deleteContents();\n        const frameElement = newElement;\n        const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n        if (sourceRange) {\n            sourceRange.selectNodeContents(frameElement);\n            currentElement.appendChild(sourceRange.extractContents());\n        }\n    }\n    constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n        super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n        this.delegate = delegate;\n    }\n    get shouldRender() {\n        return true;\n    }\n    async render() {\n        await nextAnimationFrame();\n        this.preservingPermanentElements(() => {\n            this.loadFrameElement();\n        });\n        this.scrollFrameIntoView();\n        await nextAnimationFrame();\n        this.focusFirstAutofocusableElement();\n        await nextAnimationFrame();\n        this.activateScriptElements();\n    }\n    loadFrameElement() {\n        this.delegate.willRenderFrame(this.currentElement, this.newElement);\n        this.renderElement(this.currentElement, this.newElement);\n    }\n    scrollFrameIntoView() {\n        if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n            const element = this.currentElement.firstElementChild;\n            const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n            const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n            if (element) {\n                element.scrollIntoView({ block, behavior });\n                return true;\n            }\n        }\n        return false;\n    }\n    activateScriptElements() {\n        for (const inertScriptElement of this.newScriptElements) {\n            const activatedScriptElement = activateScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    get newScriptElements() {\n        return this.currentElement.querySelectorAll(\"script\");\n    }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n    if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n        return value;\n    }\n    else {\n        return defaultValue;\n    }\n}\nfunction readScrollBehavior(value, defaultValue) {\n    if (value == \"auto\" || value == \"smooth\") {\n        return value;\n    }\n    else {\n        return defaultValue;\n    }\n}\n\nclass ProgressBar {\n    static get defaultCSS() {\n        return unindent `\n      .turbo-progress-bar {\n        position: fixed;\n        display: block;\n        top: 0;\n        left: 0;\n        height: 3px;\n        background: #0076ff;\n        z-index: 2147483647;\n        transition:\n          width ${ProgressBar.animationDuration}ms ease-out,\n          opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n        transform: translate3d(0, 0, 0);\n      }\n    `;\n    }\n    constructor() {\n        this.hiding = false;\n        this.value = 0;\n        this.visible = false;\n        this.trickle = () => {\n            this.setValue(this.value + Math.random() / 100);\n        };\n        this.stylesheetElement = this.createStylesheetElement();\n        this.progressElement = this.createProgressElement();\n        this.installStylesheetElement();\n        this.setValue(0);\n    }\n    show() {\n        if (!this.visible) {\n            this.visible = true;\n            this.installProgressElement();\n            this.startTrickling();\n        }\n    }\n    hide() {\n        if (this.visible && !this.hiding) {\n            this.hiding = true;\n            this.fadeProgressElement(() => {\n                this.uninstallProgressElement();\n                this.stopTrickling();\n                this.visible = false;\n                this.hiding = false;\n            });\n        }\n    }\n    setValue(value) {\n        this.value = value;\n        this.refresh();\n    }\n    installStylesheetElement() {\n        document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n    }\n    installProgressElement() {\n        this.progressElement.style.width = \"0\";\n        this.progressElement.style.opacity = \"1\";\n        document.documentElement.insertBefore(this.progressElement, document.body);\n        this.refresh();\n    }\n    fadeProgressElement(callback) {\n        this.progressElement.style.opacity = \"0\";\n        setTimeout(callback, ProgressBar.animationDuration * 1.5);\n    }\n    uninstallProgressElement() {\n        if (this.progressElement.parentNode) {\n            document.documentElement.removeChild(this.progressElement);\n        }\n    }\n    startTrickling() {\n        if (!this.trickleInterval) {\n            this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n        }\n    }\n    stopTrickling() {\n        window.clearInterval(this.trickleInterval);\n        delete this.trickleInterval;\n    }\n    refresh() {\n        requestAnimationFrame(() => {\n            this.progressElement.style.width = `${10 + this.value * 90}%`;\n        });\n    }\n    createStylesheetElement() {\n        const element = document.createElement(\"style\");\n        element.type = \"text/css\";\n        element.textContent = ProgressBar.defaultCSS;\n        if (this.cspNonce) {\n            element.nonce = this.cspNonce;\n        }\n        return element;\n    }\n    createProgressElement() {\n        const element = document.createElement(\"div\");\n        element.className = \"turbo-progress-bar\";\n        return element;\n    }\n    get cspNonce() {\n        return getMetaContent(\"csp-nonce\");\n    }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n    constructor() {\n        super(...arguments);\n        this.detailsByOuterHTML = this.children\n            .filter((element) => !elementIsNoscript(element))\n            .map((element) => elementWithoutNonce(element))\n            .reduce((result, element) => {\n            const { outerHTML } = element;\n            const details = outerHTML in result\n                ? result[outerHTML]\n                : {\n                    type: elementType(element),\n                    tracked: elementIsTracked(element),\n                    elements: [],\n                };\n            return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n        }, {});\n    }\n    get trackedElementSignature() {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n            .join(\"\");\n    }\n    getScriptElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n    }\n    getStylesheetElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n    }\n    getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n            .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n            .filter(({ type }) => type == matchedType)\n            .map(({ elements: [element] }) => element);\n    }\n    get provisionalElements() {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n            if (type == null && !tracked) {\n                return [...result, ...elements];\n            }\n            else if (elements.length > 1) {\n                return [...result, ...elements.slice(1)];\n            }\n            else {\n                return result;\n            }\n        }, []);\n    }\n    getMetaValue(name) {\n        const element = this.findMetaElementByName(name);\n        return element ? element.getAttribute(\"content\") : null;\n    }\n    findMetaElementByName(name) {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n            return elementIsMetaElementWithName(element, name) ? element : result;\n        }, undefined);\n    }\n}\nfunction elementType(element) {\n    if (elementIsScript(element)) {\n        return \"script\";\n    }\n    else if (elementIsStylesheet(element)) {\n        return \"stylesheet\";\n    }\n}\nfunction elementIsTracked(element) {\n    return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n    const tagName = element.localName;\n    return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n    const tagName = element.localName;\n    return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n    const tagName = element.localName;\n    return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n    const tagName = element.localName;\n    return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n    if (element.hasAttribute(\"nonce\")) {\n        element.setAttribute(\"nonce\", \"\");\n    }\n    return element;\n}\n\nclass PageSnapshot extends Snapshot {\n    static fromHTMLString(html = \"\") {\n        return this.fromDocument(parseHTMLDocument(html));\n    }\n    static fromElement(element) {\n        return this.fromDocument(element.ownerDocument);\n    }\n    static fromDocument({ head, body }) {\n        return new this(body, new HeadSnapshot(head));\n    }\n    constructor(element, headSnapshot) {\n        super(element);\n        this.headSnapshot = headSnapshot;\n    }\n    clone() {\n        const clonedElement = this.element.cloneNode(true);\n        const selectElements = this.element.querySelectorAll(\"select\");\n        const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n        for (const [index, source] of selectElements.entries()) {\n            const clone = clonedSelectElements[index];\n            for (const option of clone.selectedOptions)\n                option.selected = false;\n            for (const option of source.selectedOptions)\n                clone.options[option.index].selected = true;\n        }\n        for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n            clonedPasswordInput.value = \"\";\n        }\n        return new PageSnapshot(clonedElement, this.headSnapshot);\n    }\n    get headElement() {\n        return this.headSnapshot.element;\n    }\n    get rootLocation() {\n        var _a;\n        const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n    get cacheControlValue() {\n        return this.getSetting(\"cache-control\");\n    }\n    get isPreviewable() {\n        return this.cacheControlValue != \"no-preview\";\n    }\n    get isCacheable() {\n        return this.cacheControlValue != \"no-cache\";\n    }\n    get isVisitable() {\n        return this.getSetting(\"visit-control\") != \"reload\";\n    }\n    getSetting(name) {\n        return this.headSnapshot.getMetaValue(`turbo-${name}`);\n    }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n    TimingMetric[\"visitStart\"] = \"visitStart\";\n    TimingMetric[\"requestStart\"] = \"requestStart\";\n    TimingMetric[\"requestEnd\"] = \"requestEnd\";\n    TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n    VisitState[\"initialized\"] = \"initialized\";\n    VisitState[\"started\"] = \"started\";\n    VisitState[\"canceled\"] = \"canceled\";\n    VisitState[\"failed\"] = \"failed\";\n    VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n    action: \"advance\",\n    historyChanged: false,\n    visitCachedSnapshot: () => { },\n    willRender: true,\n    updateHistory: true,\n    shouldCacheSnapshot: true,\n    acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n    SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n    SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n    SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n    constructor(delegate, location, restorationIdentifier, options = {}) {\n        this.identifier = uuid();\n        this.timingMetrics = {};\n        this.followedRedirect = false;\n        this.historyChanged = false;\n        this.scrolled = false;\n        this.shouldCacheSnapshot = true;\n        this.acceptsStreamResponse = false;\n        this.snapshotCached = false;\n        this.state = VisitState.initialized;\n        this.delegate = delegate;\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier || uuid();\n        const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n        this.action = action;\n        this.historyChanged = historyChanged;\n        this.referrer = referrer;\n        this.snapshot = snapshot;\n        this.snapshotHTML = snapshotHTML;\n        this.response = response;\n        this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n        this.visitCachedSnapshot = visitCachedSnapshot;\n        this.willRender = willRender;\n        this.updateHistory = updateHistory;\n        this.scrolled = !willRender;\n        this.shouldCacheSnapshot = shouldCacheSnapshot;\n        this.acceptsStreamResponse = acceptsStreamResponse;\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    get restorationData() {\n        return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n    }\n    get silent() {\n        return this.isSamePage;\n    }\n    start() {\n        if (this.state == VisitState.initialized) {\n            this.recordTimingMetric(TimingMetric.visitStart);\n            this.state = VisitState.started;\n            this.adapter.visitStarted(this);\n            this.delegate.visitStarted(this);\n        }\n    }\n    cancel() {\n        if (this.state == VisitState.started) {\n            if (this.request) {\n                this.request.cancel();\n            }\n            this.cancelRender();\n            this.state = VisitState.canceled;\n        }\n    }\n    complete() {\n        if (this.state == VisitState.started) {\n            this.recordTimingMetric(TimingMetric.visitEnd);\n            this.state = VisitState.completed;\n            this.followRedirect();\n            if (!this.followedRedirect) {\n                this.adapter.visitCompleted(this);\n                this.delegate.visitCompleted(this);\n            }\n        }\n    }\n    fail() {\n        if (this.state == VisitState.started) {\n            this.state = VisitState.failed;\n            this.adapter.visitFailed(this);\n        }\n    }\n    changeHistory() {\n        var _a;\n        if (!this.historyChanged && this.updateHistory) {\n            const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n            const method = getHistoryMethodForAction(actionForHistory);\n            this.history.update(method, this.location, this.restorationIdentifier);\n            this.historyChanged = true;\n        }\n    }\n    issueRequest() {\n        if (this.hasPreloadedResponse()) {\n            this.simulateRequest();\n        }\n        else if (this.shouldIssueRequest() && !this.request) {\n            this.request = new FetchRequest(this, FetchMethod.get, this.location);\n            this.request.perform();\n        }\n    }\n    simulateRequest() {\n        if (this.response) {\n            this.startRequest();\n            this.recordResponse();\n            this.finishRequest();\n        }\n    }\n    startRequest() {\n        this.recordTimingMetric(TimingMetric.requestStart);\n        this.adapter.visitRequestStarted(this);\n    }\n    recordResponse(response = this.response) {\n        this.response = response;\n        if (response) {\n            const { statusCode } = response;\n            if (isSuccessful(statusCode)) {\n                this.adapter.visitRequestCompleted(this);\n            }\n            else {\n                this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n            }\n        }\n    }\n    finishRequest() {\n        this.recordTimingMetric(TimingMetric.requestEnd);\n        this.adapter.visitRequestFinished(this);\n    }\n    loadResponse() {\n        if (this.response) {\n            const { statusCode, responseHTML } = this.response;\n            this.render(async () => {\n                if (this.shouldCacheSnapshot)\n                    this.cacheSnapshot();\n                if (this.view.renderPromise)\n                    await this.view.renderPromise;\n                if (isSuccessful(statusCode) && responseHTML != null) {\n                    await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n                    this.performScroll();\n                    this.adapter.visitRendered(this);\n                    this.complete();\n                }\n                else {\n                    await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n                    this.adapter.visitRendered(this);\n                    this.fail();\n                }\n            });\n        }\n    }\n    getCachedSnapshot() {\n        const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n        if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n            if (this.action == \"restore\" || snapshot.isPreviewable) {\n                return snapshot;\n            }\n        }\n    }\n    getPreloadedSnapshot() {\n        if (this.snapshotHTML) {\n            return PageSnapshot.fromHTMLString(this.snapshotHTML);\n        }\n    }\n    hasCachedSnapshot() {\n        return this.getCachedSnapshot() != null;\n    }\n    loadCachedSnapshot() {\n        const snapshot = this.getCachedSnapshot();\n        if (snapshot) {\n            const isPreview = this.shouldIssueRequest();\n            this.render(async () => {\n                this.cacheSnapshot();\n                if (this.isSamePage) {\n                    this.adapter.visitRendered(this);\n                }\n                else {\n                    if (this.view.renderPromise)\n                        await this.view.renderPromise;\n                    await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n                    this.performScroll();\n                    this.adapter.visitRendered(this);\n                    if (!isPreview) {\n                        this.complete();\n                    }\n                }\n            });\n        }\n    }\n    followRedirect() {\n        var _a;\n        if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n            this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n                action: \"replace\",\n                response: this.response,\n                shouldCacheSnapshot: false,\n                willRender: false,\n            });\n            this.followedRedirect = true;\n        }\n    }\n    goToSamePageAnchor() {\n        if (this.isSamePage) {\n            this.render(async () => {\n                this.cacheSnapshot();\n                this.performScroll();\n                this.changeHistory();\n                this.adapter.visitRendered(this);\n            });\n        }\n    }\n    prepareRequest(request) {\n        if (this.acceptsStreamResponse) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted() {\n        this.startRequest();\n    }\n    requestPreventedHandlingResponse(_request, _response) { }\n    async requestSucceededWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({\n                statusCode: SystemStatusCode.contentTypeMismatch,\n                redirected,\n            });\n        }\n        else {\n            this.redirectedToLocation = response.redirected ? response.location : undefined;\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    async requestFailedWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({\n                statusCode: SystemStatusCode.contentTypeMismatch,\n                redirected,\n            });\n        }\n        else {\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    requestErrored(_request, _error) {\n        this.recordResponse({\n            statusCode: SystemStatusCode.networkFailure,\n            redirected: false,\n        });\n    }\n    requestFinished() {\n        this.finishRequest();\n    }\n    performScroll() {\n        if (!this.scrolled && !this.view.forceReloaded) {\n            if (this.action == \"restore\") {\n                this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            else {\n                this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            if (this.isSamePage) {\n                this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n            }\n            this.scrolled = true;\n        }\n    }\n    scrollToRestoredPosition() {\n        const { scrollPosition } = this.restorationData;\n        if (scrollPosition) {\n            this.view.scrollToPosition(scrollPosition);\n            return true;\n        }\n    }\n    scrollToAnchor() {\n        const anchor = getAnchor(this.location);\n        if (anchor != null) {\n            this.view.scrollToAnchor(anchor);\n            return true;\n        }\n    }\n    recordTimingMetric(metric) {\n        this.timingMetrics[metric] = new Date().getTime();\n    }\n    getTimingMetrics() {\n        return Object.assign({}, this.timingMetrics);\n    }\n    getHistoryMethodForAction(action) {\n        switch (action) {\n            case \"replace\":\n                return history.replaceState;\n            case \"advance\":\n            case \"restore\":\n                return history.pushState;\n        }\n    }\n    hasPreloadedResponse() {\n        return typeof this.response == \"object\";\n    }\n    shouldIssueRequest() {\n        if (this.isSamePage) {\n            return false;\n        }\n        else if (this.action == \"restore\") {\n            return !this.hasCachedSnapshot();\n        }\n        else {\n            return this.willRender;\n        }\n    }\n    cacheSnapshot() {\n        if (!this.snapshotCached) {\n            this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n            this.snapshotCached = true;\n        }\n    }\n    async render(callback) {\n        this.cancelRender();\n        await new Promise((resolve) => {\n            this.frame = requestAnimationFrame(() => resolve());\n        });\n        await callback();\n        delete this.frame;\n    }\n    cancelRender() {\n        if (this.frame) {\n            cancelAnimationFrame(this.frame);\n            delete this.frame;\n        }\n    }\n}\nfunction isSuccessful(statusCode) {\n    return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n    constructor(session) {\n        this.progressBar = new ProgressBar();\n        this.showProgressBar = () => {\n            this.progressBar.show();\n        };\n        this.session = session;\n    }\n    visitProposedToLocation(location, options) {\n        this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n    }\n    visitStarted(visit) {\n        this.location = visit.location;\n        visit.loadCachedSnapshot();\n        visit.issueRequest();\n        visit.goToSamePageAnchor();\n    }\n    visitRequestStarted(visit) {\n        this.progressBar.setValue(0);\n        if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n            this.showVisitProgressBarAfterDelay();\n        }\n        else {\n            this.showProgressBar();\n        }\n    }\n    visitRequestCompleted(visit) {\n        visit.loadResponse();\n    }\n    visitRequestFailedWithStatusCode(visit, statusCode) {\n        switch (statusCode) {\n            case SystemStatusCode.networkFailure:\n            case SystemStatusCode.timeoutFailure:\n            case SystemStatusCode.contentTypeMismatch:\n                return this.reload({\n                    reason: \"request_failed\",\n                    context: {\n                        statusCode,\n                    },\n                });\n            default:\n                return visit.loadResponse();\n        }\n    }\n    visitRequestFinished(_visit) {\n        this.progressBar.setValue(1);\n        this.hideVisitProgressBar();\n    }\n    visitCompleted(_visit) { }\n    pageInvalidated(reason) {\n        this.reload(reason);\n    }\n    visitFailed(_visit) { }\n    visitRendered(_visit) { }\n    formSubmissionStarted(_formSubmission) {\n        this.progressBar.setValue(0);\n        this.showFormProgressBarAfterDelay();\n    }\n    formSubmissionFinished(_formSubmission) {\n        this.progressBar.setValue(1);\n        this.hideFormProgressBar();\n    }\n    showVisitProgressBarAfterDelay() {\n        this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n    }\n    hideVisitProgressBar() {\n        this.progressBar.hide();\n        if (this.visitProgressBarTimeout != null) {\n            window.clearTimeout(this.visitProgressBarTimeout);\n            delete this.visitProgressBarTimeout;\n        }\n    }\n    showFormProgressBarAfterDelay() {\n        if (this.formProgressBarTimeout == null) {\n            this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n        }\n    }\n    hideFormProgressBar() {\n        this.progressBar.hide();\n        if (this.formProgressBarTimeout != null) {\n            window.clearTimeout(this.formProgressBarTimeout);\n            delete this.formProgressBarTimeout;\n        }\n    }\n    reload(reason) {\n        var _a;\n        dispatch(\"turbo:reload\", { detail: reason });\n        window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n    }\n    get navigator() {\n        return this.session.navigator;\n    }\n}\n\nclass CacheObserver {\n    constructor() {\n        this.selector = \"[data-turbo-temporary]\";\n        this.deprecatedSelector = \"[data-turbo-cache=false]\";\n        this.started = false;\n        this.removeTemporaryElements = ((_event) => {\n            for (const element of this.temporaryElements) {\n                element.remove();\n            }\n        });\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n        }\n    }\n    get temporaryElements() {\n        return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];\n    }\n    get temporaryElementsWithDeprecation() {\n        const elements = document.querySelectorAll(this.deprecatedSelector);\n        if (elements.length) {\n            console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);\n        }\n        return [...elements];\n    }\n}\n\nclass FrameRedirector {\n    constructor(session, element) {\n        this.session = session;\n        this.element = element;\n        this.linkInterceptor = new LinkInterceptor(this, element);\n        this.formSubmitObserver = new FormSubmitObserver(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n        this.formSubmitObserver.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n        this.formSubmitObserver.stop();\n    }\n    shouldInterceptLinkClick(element, _location, _event) {\n        return this.shouldRedirect(element);\n    }\n    linkClickIntercepted(element, url, event) {\n        const frame = this.findFrameElement(element);\n        if (frame) {\n            frame.delegate.linkClickIntercepted(element, url, event);\n        }\n    }\n    willSubmitForm(element, submitter) {\n        return (element.closest(\"turbo-frame\") == null &&\n            this.shouldSubmit(element, submitter) &&\n            this.shouldRedirect(element, submitter));\n    }\n    formSubmitted(element, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        if (frame) {\n            frame.delegate.formSubmitted(element, submitter);\n        }\n    }\n    shouldSubmit(form, submitter) {\n        var _a;\n        const action = getAction(form, submitter);\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n        return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n    }\n    shouldRedirect(element, submitter) {\n        const isNavigatable = element instanceof HTMLFormElement\n            ? this.session.submissionIsNavigatable(element, submitter)\n            : this.session.elementIsNavigatable(element);\n        if (isNavigatable) {\n            const frame = this.findFrameElement(element, submitter);\n            return frame ? frame != element.closest(\"turbo-frame\") : false;\n        }\n        else {\n            return false;\n        }\n    }\n    findFrameElement(element, submitter) {\n        const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n        if (id && id != \"_top\") {\n            const frame = this.element.querySelector(`#${id}:not([disabled])`);\n            if (frame instanceof FrameElement) {\n                return frame;\n            }\n        }\n    }\n}\n\nclass History {\n    constructor(delegate) {\n        this.restorationIdentifier = uuid();\n        this.restorationData = {};\n        this.started = false;\n        this.pageLoaded = false;\n        this.onPopState = (event) => {\n            if (this.shouldHandlePopState()) {\n                const { turbo } = event.state || {};\n                if (turbo) {\n                    this.location = new URL(window.location.href);\n                    const { restorationIdentifier } = turbo;\n                    this.restorationIdentifier = restorationIdentifier;\n                    this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n                }\n            }\n        };\n        this.onPageLoad = async (_event) => {\n            await nextMicrotask();\n            this.pageLoaded = true;\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"popstate\", this.onPopState, false);\n            addEventListener(\"load\", this.onPageLoad, false);\n            this.started = true;\n            this.replace(new URL(window.location.href));\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"popstate\", this.onPopState, false);\n            removeEventListener(\"load\", this.onPageLoad, false);\n            this.started = false;\n        }\n    }\n    push(location, restorationIdentifier) {\n        this.update(history.pushState, location, restorationIdentifier);\n    }\n    replace(location, restorationIdentifier) {\n        this.update(history.replaceState, location, restorationIdentifier);\n    }\n    update(method, location, restorationIdentifier = uuid()) {\n        const state = { turbo: { restorationIdentifier } };\n        method.call(history, state, \"\", location.href);\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier;\n    }\n    getRestorationDataForIdentifier(restorationIdentifier) {\n        return this.restorationData[restorationIdentifier] || {};\n    }\n    updateRestorationData(additionalData) {\n        const { restorationIdentifier } = this;\n        const restorationData = this.restorationData[restorationIdentifier];\n        this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n    }\n    assumeControlOfScrollRestoration() {\n        var _a;\n        if (!this.previousScrollRestoration) {\n            this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n            history.scrollRestoration = \"manual\";\n        }\n    }\n    relinquishControlOfScrollRestoration() {\n        if (this.previousScrollRestoration) {\n            history.scrollRestoration = this.previousScrollRestoration;\n            delete this.previousScrollRestoration;\n        }\n    }\n    shouldHandlePopState() {\n        return this.pageIsLoaded();\n    }\n    pageIsLoaded() {\n        return this.pageLoaded || document.readyState == \"complete\";\n    }\n}\n\nclass Navigator {\n    constructor(delegate) {\n        this.delegate = delegate;\n    }\n    proposeVisit(location, options = {}) {\n        if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n            if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n                this.delegate.visitProposedToLocation(location, options);\n            }\n            else {\n                window.location.href = location.toString();\n            }\n        }\n    }\n    startVisit(locatable, restorationIdentifier, options = {}) {\n        this.stop();\n        this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n        this.currentVisit.start();\n    }\n    submitForm(form, submitter) {\n        this.stop();\n        this.formSubmission = new FormSubmission(this, form, submitter, true);\n        this.formSubmission.start();\n    }\n    stop() {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n            delete this.formSubmission;\n        }\n        if (this.currentVisit) {\n            this.currentVisit.cancel();\n            delete this.currentVisit;\n        }\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    formSubmissionStarted(formSubmission) {\n        if (typeof this.adapter.formSubmissionStarted === \"function\") {\n            this.adapter.formSubmissionStarted(formSubmission);\n        }\n    }\n    async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n        if (formSubmission == this.formSubmission) {\n            const responseHTML = await fetchResponse.responseHTML;\n            if (responseHTML) {\n                const shouldCacheSnapshot = formSubmission.isSafe;\n                if (!shouldCacheSnapshot) {\n                    this.view.clearSnapshotCache();\n                }\n                const { statusCode, redirected } = fetchResponse;\n                const action = this.getActionForFormSubmission(formSubmission);\n                const visitOptions = {\n                    action,\n                    shouldCacheSnapshot,\n                    response: { statusCode, responseHTML, redirected },\n                };\n                this.proposeVisit(fetchResponse.location, visitOptions);\n            }\n        }\n    }\n    async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        const responseHTML = await fetchResponse.responseHTML;\n        if (responseHTML) {\n            const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n            if (fetchResponse.serverError) {\n                await this.view.renderError(snapshot, this.currentVisit);\n            }\n            else {\n                await this.view.renderPage(snapshot, false, true, this.currentVisit);\n            }\n            this.view.scrollToTop();\n            this.view.clearSnapshotCache();\n        }\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished(formSubmission) {\n        if (typeof this.adapter.formSubmissionFinished === \"function\") {\n            this.adapter.formSubmissionFinished(formSubmission);\n        }\n    }\n    visitStarted(visit) {\n        this.delegate.visitStarted(visit);\n    }\n    visitCompleted(visit) {\n        this.delegate.visitCompleted(visit);\n    }\n    locationWithActionIsSamePage(location, action) {\n        const anchor = getAnchor(location);\n        const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n        const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n        return (action !== \"replace\" &&\n            getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n            (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    getActionForFormSubmission({ submitter, formElement }) {\n        return getVisitAction(submitter, formElement) || \"advance\";\n    }\n}\n\nvar PageStage;\n(function (PageStage) {\n    PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n    PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n    PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n    PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n    constructor(delegate) {\n        this.stage = PageStage.initial;\n        this.started = false;\n        this.interpretReadyState = () => {\n            const { readyState } = this;\n            if (readyState == \"interactive\") {\n                this.pageIsInteractive();\n            }\n            else if (readyState == \"complete\") {\n                this.pageIsComplete();\n            }\n        };\n        this.pageWillUnload = () => {\n            this.delegate.pageWillUnload();\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            if (this.stage == PageStage.initial) {\n                this.stage = PageStage.loading;\n            }\n            document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n            addEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n            removeEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = false;\n        }\n    }\n    pageIsInteractive() {\n        if (this.stage == PageStage.loading) {\n            this.stage = PageStage.interactive;\n            this.delegate.pageBecameInteractive();\n        }\n    }\n    pageIsComplete() {\n        this.pageIsInteractive();\n        if (this.stage == PageStage.interactive) {\n            this.stage = PageStage.complete;\n            this.delegate.pageLoaded();\n        }\n    }\n    get readyState() {\n        return document.readyState;\n    }\n}\n\nclass ScrollObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.onScroll = () => {\n            this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"scroll\", this.onScroll, false);\n            this.onScroll();\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"scroll\", this.onScroll, false);\n            this.started = false;\n        }\n    }\n    updatePosition(position) {\n        this.delegate.scrollPositionChanged(position);\n    }\n}\n\nclass StreamMessageRenderer {\n    render({ fragment }) {\n        Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n    }\n    enteringBardo(currentPermanentElement, newPermanentElement) {\n        newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n    }\n    leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n    const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n    const permanentElementMap = {};\n    for (const permanentElementInDocument of permanentElementsInDocument) {\n        const { id } = permanentElementInDocument;\n        for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n            const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n            if (elementInStream) {\n                permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n            }\n        }\n    }\n    return permanentElementMap;\n}\n\nclass StreamObserver {\n    constructor(delegate) {\n        this.sources = new Set();\n        this.started = false;\n        this.inspectFetchResponse = ((event) => {\n            const response = fetchResponseFromEvent(event);\n            if (response && fetchResponseIsStream(response)) {\n                event.preventDefault();\n                this.receiveMessageResponse(response);\n            }\n        });\n        this.receiveMessageEvent = (event) => {\n            if (this.started && typeof event.data == \"string\") {\n                this.receiveMessageHTML(event.data);\n            }\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    connectStreamSource(source) {\n        if (!this.streamSourceIsConnected(source)) {\n            this.sources.add(source);\n            source.addEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    disconnectStreamSource(source) {\n        if (this.streamSourceIsConnected(source)) {\n            this.sources.delete(source);\n            source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    streamSourceIsConnected(source) {\n        return this.sources.has(source);\n    }\n    async receiveMessageResponse(response) {\n        const html = await response.responseHTML;\n        if (html) {\n            this.receiveMessageHTML(html);\n        }\n    }\n    receiveMessageHTML(html) {\n        this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n    }\n}\nfunction fetchResponseFromEvent(event) {\n    var _a;\n    const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n    if (fetchResponse instanceof FetchResponse) {\n        return fetchResponse;\n    }\n}\nfunction fetchResponseIsStream(response) {\n    var _a;\n    const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n    return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        const { documentElement, body } = document;\n        documentElement.replaceChild(newElement, body);\n    }\n    async render() {\n        this.replaceHeadAndBody();\n        this.activateScriptElements();\n    }\n    replaceHeadAndBody() {\n        const { documentElement, head } = document;\n        documentElement.replaceChild(this.newHead, head);\n        this.renderElement(this.currentElement, this.newElement);\n    }\n    activateScriptElements() {\n        for (const replaceableElement of this.scriptElements) {\n            const parentNode = replaceableElement.parentNode;\n            if (parentNode) {\n                const element = activateScriptElement(replaceableElement);\n                parentNode.replaceChild(element, replaceableElement);\n            }\n        }\n    }\n    get newHead() {\n        return this.newSnapshot.headSnapshot.element;\n    }\n    get scriptElements() {\n        return document.documentElement.querySelectorAll(\"script\");\n    }\n}\n\nclass PageRenderer extends Renderer {\n    static renderElement(currentElement, newElement) {\n        if (document.body && newElement instanceof HTMLBodyElement) {\n            document.body.replaceWith(newElement);\n        }\n        else {\n            document.documentElement.appendChild(newElement);\n        }\n    }\n    get shouldRender() {\n        return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n    }\n    get reloadReason() {\n        if (!this.newSnapshot.isVisitable) {\n            return {\n                reason: \"turbo_visit_control_is_reload\",\n            };\n        }\n        if (!this.trackedElementsAreIdentical) {\n            return {\n                reason: \"tracked_element_mismatch\",\n            };\n        }\n    }\n    async prepareToRender() {\n        await this.mergeHead();\n    }\n    async render() {\n        if (this.willRender) {\n            await this.replaceBody();\n        }\n    }\n    finishRendering() {\n        super.finishRendering();\n        if (!this.isPreview) {\n            this.focusFirstAutofocusableElement();\n        }\n    }\n    get currentHeadSnapshot() {\n        return this.currentSnapshot.headSnapshot;\n    }\n    get newHeadSnapshot() {\n        return this.newSnapshot.headSnapshot;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    async mergeHead() {\n        const mergedHeadElements = this.mergeProvisionalElements();\n        const newStylesheetElements = this.copyNewHeadStylesheetElements();\n        this.copyNewHeadScriptElements();\n        await mergedHeadElements;\n        await newStylesheetElements;\n    }\n    async replaceBody() {\n        await this.preservingPermanentElements(async () => {\n            this.activateNewBody();\n            await this.assignNewBody();\n        });\n    }\n    get trackedElementsAreIdentical() {\n        return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n    }\n    async copyNewHeadStylesheetElements() {\n        const loadingElements = [];\n        for (const element of this.newHeadStylesheetElements) {\n            loadingElements.push(waitForLoad(element));\n            document.head.appendChild(element);\n        }\n        await Promise.all(loadingElements);\n    }\n    copyNewHeadScriptElements() {\n        for (const element of this.newHeadScriptElements) {\n            document.head.appendChild(activateScriptElement(element));\n        }\n    }\n    async mergeProvisionalElements() {\n        const newHeadElements = [...this.newHeadProvisionalElements];\n        for (const element of this.currentHeadProvisionalElements) {\n            if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n                document.head.removeChild(element);\n            }\n        }\n        for (const element of newHeadElements) {\n            document.head.appendChild(element);\n        }\n    }\n    isCurrentElementInElementList(element, elementList) {\n        for (const [index, newElement] of elementList.entries()) {\n            if (element.tagName == \"TITLE\") {\n                if (newElement.tagName != \"TITLE\") {\n                    continue;\n                }\n                if (element.innerHTML == newElement.innerHTML) {\n                    elementList.splice(index, 1);\n                    return true;\n                }\n            }\n            if (newElement.isEqualNode(element)) {\n                elementList.splice(index, 1);\n                return true;\n            }\n        }\n        return false;\n    }\n    removeCurrentHeadProvisionalElements() {\n        for (const element of this.currentHeadProvisionalElements) {\n            document.head.removeChild(element);\n        }\n    }\n    copyNewHeadProvisionalElements() {\n        for (const element of this.newHeadProvisionalElements) {\n            document.head.appendChild(element);\n        }\n    }\n    activateNewBody() {\n        document.adoptNode(this.newElement);\n        this.activateNewBodyScriptElements();\n    }\n    activateNewBodyScriptElements() {\n        for (const inertScriptElement of this.newBodyScriptElements) {\n            const activatedScriptElement = activateScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    async assignNewBody() {\n        await this.renderElement(this.currentElement, this.newElement);\n    }\n    get newHeadStylesheetElements() {\n        return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get newHeadScriptElements() {\n        return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get currentHeadProvisionalElements() {\n        return this.currentHeadSnapshot.provisionalElements;\n    }\n    get newHeadProvisionalElements() {\n        return this.newHeadSnapshot.provisionalElements;\n    }\n    get newBodyScriptElements() {\n        return this.newElement.querySelectorAll(\"script\");\n    }\n}\n\nclass SnapshotCache {\n    constructor(size) {\n        this.keys = [];\n        this.snapshots = {};\n        this.size = size;\n    }\n    has(location) {\n        return toCacheKey(location) in this.snapshots;\n    }\n    get(location) {\n        if (this.has(location)) {\n            const snapshot = this.read(location);\n            this.touch(location);\n            return snapshot;\n        }\n    }\n    put(location, snapshot) {\n        this.write(location, snapshot);\n        this.touch(location);\n        return snapshot;\n    }\n    clear() {\n        this.snapshots = {};\n    }\n    read(location) {\n        return this.snapshots[toCacheKey(location)];\n    }\n    write(location, snapshot) {\n        this.snapshots[toCacheKey(location)] = snapshot;\n    }\n    touch(location) {\n        const key = toCacheKey(location);\n        const index = this.keys.indexOf(key);\n        if (index > -1)\n            this.keys.splice(index, 1);\n        this.keys.unshift(key);\n        this.trim();\n    }\n    trim() {\n        for (const key of this.keys.splice(this.size)) {\n            delete this.snapshots[key];\n        }\n    }\n}\n\nclass PageView extends View {\n    constructor() {\n        super(...arguments);\n        this.snapshotCache = new SnapshotCache(10);\n        this.lastRenderedLocation = new URL(location.href);\n        this.forceReloaded = false;\n    }\n    renderPage(snapshot, isPreview = false, willRender = true, visit) {\n        const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n        if (!renderer.shouldRender) {\n            this.forceReloaded = true;\n        }\n        else {\n            visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n        }\n        return this.render(renderer);\n    }\n    renderError(snapshot, visit) {\n        visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n        const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n        return this.render(renderer);\n    }\n    clearSnapshotCache() {\n        this.snapshotCache.clear();\n    }\n    async cacheSnapshot(snapshot = this.snapshot) {\n        if (snapshot.isCacheable) {\n            this.delegate.viewWillCacheSnapshot();\n            const { lastRenderedLocation: location } = this;\n            await nextEventLoopTick();\n            const cachedSnapshot = snapshot.clone();\n            this.snapshotCache.put(location, cachedSnapshot);\n            return cachedSnapshot;\n        }\n    }\n    getCachedSnapshotForLocation(location) {\n        return this.snapshotCache.get(location);\n    }\n    get snapshot() {\n        return PageSnapshot.fromElement(this.element);\n    }\n}\n\nclass Preloader {\n    constructor(delegate) {\n        this.selector = \"a[data-turbo-preload]\";\n        this.delegate = delegate;\n    }\n    get snapshotCache() {\n        return this.delegate.navigator.view.snapshotCache;\n    }\n    start() {\n        if (document.readyState === \"loading\") {\n            return document.addEventListener(\"DOMContentLoaded\", () => {\n                this.preloadOnLoadLinksForView(document.body);\n            });\n        }\n        else {\n            this.preloadOnLoadLinksForView(document.body);\n        }\n    }\n    preloadOnLoadLinksForView(element) {\n        for (const link of element.querySelectorAll(this.selector)) {\n            this.preloadURL(link);\n        }\n    }\n    async preloadURL(link) {\n        const location = new URL(link.href);\n        if (this.snapshotCache.has(location)) {\n            return;\n        }\n        try {\n            const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n            const responseText = await response.text();\n            const snapshot = PageSnapshot.fromHTMLString(responseText);\n            this.snapshotCache.put(location, snapshot);\n        }\n        catch (_) {\n        }\n    }\n}\n\nclass Session {\n    constructor() {\n        this.navigator = new Navigator(this);\n        this.history = new History(this);\n        this.preloader = new Preloader(this);\n        this.view = new PageView(this, document.documentElement);\n        this.adapter = new BrowserAdapter(this);\n        this.pageObserver = new PageObserver(this);\n        this.cacheObserver = new CacheObserver();\n        this.linkClickObserver = new LinkClickObserver(this, window);\n        this.formSubmitObserver = new FormSubmitObserver(this, document);\n        this.scrollObserver = new ScrollObserver(this);\n        this.streamObserver = new StreamObserver(this);\n        this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n        this.frameRedirector = new FrameRedirector(this, document.documentElement);\n        this.streamMessageRenderer = new StreamMessageRenderer();\n        this.drive = true;\n        this.enabled = true;\n        this.progressBarDelay = 500;\n        this.started = false;\n        this.formMode = \"on\";\n    }\n    start() {\n        if (!this.started) {\n            this.pageObserver.start();\n            this.cacheObserver.start();\n            this.formLinkClickObserver.start();\n            this.linkClickObserver.start();\n            this.formSubmitObserver.start();\n            this.scrollObserver.start();\n            this.streamObserver.start();\n            this.frameRedirector.start();\n            this.history.start();\n            this.preloader.start();\n            this.started = true;\n            this.enabled = true;\n        }\n    }\n    disable() {\n        this.enabled = false;\n    }\n    stop() {\n        if (this.started) {\n            this.pageObserver.stop();\n            this.cacheObserver.stop();\n            this.formLinkClickObserver.stop();\n            this.linkClickObserver.stop();\n            this.formSubmitObserver.stop();\n            this.scrollObserver.stop();\n            this.streamObserver.stop();\n            this.frameRedirector.stop();\n            this.history.stop();\n            this.started = false;\n        }\n    }\n    registerAdapter(adapter) {\n        this.adapter = adapter;\n    }\n    visit(location, options = {}) {\n        const frameElement = options.frame ? document.getElementById(options.frame) : null;\n        if (frameElement instanceof FrameElement) {\n            frameElement.src = location.toString();\n            frameElement.loaded;\n        }\n        else {\n            this.navigator.proposeVisit(expandURL(location), options);\n        }\n    }\n    connectStreamSource(source) {\n        this.streamObserver.connectStreamSource(source);\n    }\n    disconnectStreamSource(source) {\n        this.streamObserver.disconnectStreamSource(source);\n    }\n    renderStreamMessage(message) {\n        this.streamMessageRenderer.render(StreamMessage.wrap(message));\n    }\n    clearCache() {\n        this.view.clearSnapshotCache();\n    }\n    setProgressBarDelay(delay) {\n        this.progressBarDelay = delay;\n    }\n    setFormMode(mode) {\n        this.formMode = mode;\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n        if (this.enabled) {\n            this.navigator.startVisit(location, restorationIdentifier, {\n                action: \"restore\",\n                historyChanged: true,\n            });\n        }\n        else {\n            this.adapter.pageInvalidated({\n                reason: \"turbo_disabled\",\n            });\n        }\n    }\n    scrollPositionChanged(position) {\n        this.history.updateRestorationData({ scrollPosition: position });\n    }\n    willSubmitFormLinkToLocation(link, location) {\n        return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n    }\n    submittedFormLinkToLocation() { }\n    willFollowLinkToLocation(link, location, event) {\n        return (this.elementIsNavigatable(link) &&\n            locationIsVisitable(location, this.snapshot.rootLocation) &&\n            this.applicationAllowsFollowingLinkToLocation(link, location, event));\n    }\n    followedLinkToLocation(link, location) {\n        const action = this.getActionForLink(link);\n        const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n        this.visit(location.href, { action, acceptsStreamResponse });\n    }\n    allowsVisitingLocationWithAction(location, action) {\n        return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n    }\n    visitProposedToLocation(location, options) {\n        extendURLWithDeprecatedProperties(location);\n        this.adapter.visitProposedToLocation(location, options);\n    }\n    visitStarted(visit) {\n        if (!visit.acceptsStreamResponse) {\n            markAsBusy(document.documentElement);\n        }\n        extendURLWithDeprecatedProperties(visit.location);\n        if (!visit.silent) {\n            this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n        }\n    }\n    visitCompleted(visit) {\n        clearBusyState(document.documentElement);\n        this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n    }\n    locationWithActionIsSamePage(location, action) {\n        return this.navigator.locationWithActionIsSamePage(location, action);\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n    }\n    willSubmitForm(form, submitter) {\n        const action = getAction(form, submitter);\n        return (this.submissionIsNavigatable(form, submitter) &&\n            locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n    }\n    formSubmitted(form, submitter) {\n        this.navigator.submitForm(form, submitter);\n    }\n    pageBecameInteractive() {\n        this.view.lastRenderedLocation = this.location;\n        this.notifyApplicationAfterPageLoad();\n    }\n    pageLoaded() {\n        this.history.assumeControlOfScrollRestoration();\n    }\n    pageWillUnload() {\n        this.history.relinquishControlOfScrollRestoration();\n    }\n    receivedMessageFromStream(message) {\n        this.renderStreamMessage(message);\n    }\n    viewWillCacheSnapshot() {\n        var _a;\n        if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n            this.notifyApplicationBeforeCachingSnapshot();\n        }\n    }\n    allowsImmediateRender({ element }, options) {\n        const event = this.notifyApplicationBeforeRender(element, options);\n        const { defaultPrevented, detail: { render }, } = event;\n        if (this.view.renderer && render) {\n            this.view.renderer.renderElement = render;\n        }\n        return !defaultPrevented;\n    }\n    viewRenderedSnapshot(_snapshot, _isPreview) {\n        this.view.lastRenderedLocation = this.history.location;\n        this.notifyApplicationAfterRender();\n    }\n    preloadOnLoadLinksForView(element) {\n        this.preloader.preloadOnLoadLinksForView(element);\n    }\n    viewInvalidated(reason) {\n        this.adapter.pageInvalidated(reason);\n    }\n    frameLoaded(frame) {\n        this.notifyApplicationAfterFrameLoad(frame);\n    }\n    frameRendered(fetchResponse, frame) {\n        this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n    }\n    applicationAllowsFollowingLinkToLocation(link, location, ev) {\n        const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n        return !event.defaultPrevented;\n    }\n    applicationAllowsVisitingLocation(location) {\n        const event = this.notifyApplicationBeforeVisitingLocation(location);\n        return !event.defaultPrevented;\n    }\n    notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n        return dispatch(\"turbo:click\", {\n            target: link,\n            detail: { url: location.href, originalEvent: event },\n            cancelable: true,\n        });\n    }\n    notifyApplicationBeforeVisitingLocation(location) {\n        return dispatch(\"turbo:before-visit\", {\n            detail: { url: location.href },\n            cancelable: true,\n        });\n    }\n    notifyApplicationAfterVisitingLocation(location, action) {\n        return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n    }\n    notifyApplicationBeforeCachingSnapshot() {\n        return dispatch(\"turbo:before-cache\");\n    }\n    notifyApplicationBeforeRender(newBody, options) {\n        return dispatch(\"turbo:before-render\", {\n            detail: Object.assign({ newBody }, options),\n            cancelable: true,\n        });\n    }\n    notifyApplicationAfterRender() {\n        return dispatch(\"turbo:render\");\n    }\n    notifyApplicationAfterPageLoad(timing = {}) {\n        return dispatch(\"turbo:load\", {\n            detail: { url: this.location.href, timing },\n        });\n    }\n    notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n        dispatchEvent(new HashChangeEvent(\"hashchange\", {\n            oldURL: oldURL.toString(),\n            newURL: newURL.toString(),\n        }));\n    }\n    notifyApplicationAfterFrameLoad(frame) {\n        return dispatch(\"turbo:frame-load\", { target: frame });\n    }\n    notifyApplicationAfterFrameRender(fetchResponse, frame) {\n        return dispatch(\"turbo:frame-render\", {\n            detail: { fetchResponse },\n            target: frame,\n            cancelable: true,\n        });\n    }\n    submissionIsNavigatable(form, submitter) {\n        if (this.formMode == \"off\") {\n            return false;\n        }\n        else {\n            const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n            if (this.formMode == \"optin\") {\n                return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n            }\n            else {\n                return submitterIsNavigatable && this.elementIsNavigatable(form);\n            }\n        }\n    }\n    elementIsNavigatable(element) {\n        const container = findClosestRecursively(element, \"[data-turbo]\");\n        const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n        if (this.drive || withinFrame) {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") != \"false\";\n            }\n            else {\n                return true;\n            }\n        }\n        else {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") == \"true\";\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    getActionForLink(link) {\n        return getVisitAction(link) || \"advance\";\n    }\n    get snapshot() {\n        return this.view.snapshot;\n    }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n    Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n    absoluteURL: {\n        get() {\n            return this.toString();\n        },\n    },\n};\n\nclass Cache {\n    constructor(session) {\n        this.session = session;\n    }\n    clear() {\n        this.session.clearCache();\n    }\n    resetCacheControl() {\n        this.setCacheControl(\"\");\n    }\n    exemptPageFromCache() {\n        this.setCacheControl(\"no-cache\");\n    }\n    exemptPageFromPreview() {\n        this.setCacheControl(\"no-preview\");\n    }\n    setCacheControl(value) {\n        setMetaContent(\"turbo-cache-control\", value);\n    }\n}\n\nconst StreamActions = {\n    after() {\n        this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n    },\n    append() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach((e) => e.append(this.templateContent));\n    },\n    before() {\n        this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n    },\n    prepend() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach((e) => e.prepend(this.templateContent));\n    },\n    remove() {\n        this.targetElements.forEach((e) => e.remove());\n    },\n    replace() {\n        this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n    },\n    update() {\n        this.targetElements.forEach((targetElement) => {\n            targetElement.innerHTML = \"\";\n            targetElement.append(this.templateContent);\n        });\n    },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n    session.start();\n}\nfunction registerAdapter(adapter) {\n    session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n    session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n    session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n    session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n    session.renderStreamMessage(message);\n}\nfunction clearCache() {\n    console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n    session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n    session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n    FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n    session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    navigator: navigator$1,\n    session: session,\n    cache: cache,\n    PageRenderer: PageRenderer,\n    PageSnapshot: PageSnapshot,\n    FrameRenderer: FrameRenderer,\n    start: start,\n    registerAdapter: registerAdapter,\n    visit: visit,\n    connectStreamSource: connectStreamSource,\n    disconnectStreamSource: disconnectStreamSource,\n    renderStreamMessage: renderStreamMessage,\n    clearCache: clearCache,\n    setProgressBarDelay: setProgressBarDelay,\n    setConfirmMethod: setConfirmMethod,\n    setFormMode: setFormMode,\n    StreamActions: StreamActions\n});\n\nclass TurboFrameMissingError extends Error {\n}\n\nclass FrameController {\n    constructor(element) {\n        this.fetchResponseLoaded = (_fetchResponse) => { };\n        this.currentFetchRequest = null;\n        this.resolveVisitPromise = () => { };\n        this.connected = false;\n        this.hasBeenLoaded = false;\n        this.ignoredAttributes = new Set();\n        this.action = null;\n        this.visitCachedSnapshot = ({ element }) => {\n            const frame = element.querySelector(\"#\" + this.element.id);\n            if (frame && this.previousFrameElement) {\n                frame.replaceChildren(...this.previousFrameElement.children);\n            }\n            delete this.previousFrameElement;\n        };\n        this.element = element;\n        this.view = new FrameView(this, this.element);\n        this.appearanceObserver = new AppearanceObserver(this, this.element);\n        this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n        this.linkInterceptor = new LinkInterceptor(this, this.element);\n        this.restorationIdentifier = uuid();\n        this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n    }\n    connect() {\n        if (!this.connected) {\n            this.connected = true;\n            if (this.loadingStyle == FrameLoadingStyle.lazy) {\n                this.appearanceObserver.start();\n            }\n            else {\n                this.loadSourceURL();\n            }\n            this.formLinkClickObserver.start();\n            this.linkInterceptor.start();\n            this.formSubmitObserver.start();\n        }\n    }\n    disconnect() {\n        if (this.connected) {\n            this.connected = false;\n            this.appearanceObserver.stop();\n            this.formLinkClickObserver.stop();\n            this.linkInterceptor.stop();\n            this.formSubmitObserver.stop();\n        }\n    }\n    disabledChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLChanged() {\n        if (this.isIgnoringChangesTo(\"src\"))\n            return;\n        if (this.element.isConnected) {\n            this.complete = false;\n        }\n        if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLReloaded() {\n        const { src } = this.element;\n        this.ignoringChangesToAttribute(\"complete\", () => {\n            this.element.removeAttribute(\"complete\");\n        });\n        this.element.src = null;\n        this.element.src = src;\n        return this.element.loaded;\n    }\n    completeChanged() {\n        if (this.isIgnoringChangesTo(\"complete\"))\n            return;\n        this.loadSourceURL();\n    }\n    loadingStyleChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.lazy) {\n            this.appearanceObserver.start();\n        }\n        else {\n            this.appearanceObserver.stop();\n            this.loadSourceURL();\n        }\n    }\n    async loadSourceURL() {\n        if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n            this.element.loaded = this.visit(expandURL(this.sourceURL));\n            this.appearanceObserver.stop();\n            await this.element.loaded;\n            this.hasBeenLoaded = true;\n        }\n    }\n    async loadResponse(fetchResponse) {\n        if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n            this.sourceURL = fetchResponse.response.url;\n        }\n        try {\n            const html = await fetchResponse.responseHTML;\n            if (html) {\n                const document = parseHTMLDocument(html);\n                const pageSnapshot = PageSnapshot.fromDocument(document);\n                if (pageSnapshot.isVisitable) {\n                    await this.loadFrameResponse(fetchResponse, document);\n                }\n                else {\n                    await this.handleUnvisitableFrameResponse(fetchResponse);\n                }\n            }\n        }\n        finally {\n            this.fetchResponseLoaded = () => { };\n        }\n    }\n    elementAppearedInViewport(element) {\n        this.proposeVisitIfNavigatedWithAction(element, element);\n        this.loadSourceURL();\n    }\n    willSubmitFormLinkToLocation(link) {\n        return this.shouldInterceptNavigation(link);\n    }\n    submittedFormLinkToLocation(link, _location, form) {\n        const frame = this.findFrameElement(link);\n        if (frame)\n            form.setAttribute(\"data-turbo-frame\", frame.id);\n    }\n    shouldInterceptLinkClick(element, _location, _event) {\n        return this.shouldInterceptNavigation(element);\n    }\n    linkClickIntercepted(element, location) {\n        this.navigateFrame(element, location);\n    }\n    willSubmitForm(element, submitter) {\n        return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n    }\n    formSubmitted(element, submitter) {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n        }\n        this.formSubmission = new FormSubmission(this, element, submitter);\n        const { fetchRequest } = this.formSubmission;\n        this.prepareRequest(fetchRequest);\n        this.formSubmission.start();\n    }\n    prepareRequest(request) {\n        var _a;\n        request.headers[\"Turbo-Frame\"] = this.id;\n        if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n            request.acceptResponseType(StreamMessage.contentType);\n        }\n    }\n    requestStarted(_request) {\n        markAsBusy(this.element);\n    }\n    requestPreventedHandlingResponse(_request, _response) {\n        this.resolveVisitPromise();\n    }\n    async requestSucceededWithResponse(request, response) {\n        await this.loadResponse(response);\n        this.resolveVisitPromise();\n    }\n    async requestFailedWithResponse(request, response) {\n        await this.loadResponse(response);\n        this.resolveVisitPromise();\n    }\n    requestErrored(request, error) {\n        console.error(error);\n        this.resolveVisitPromise();\n    }\n    requestFinished(_request) {\n        clearBusyState(this.element);\n    }\n    formSubmissionStarted({ formElement }) {\n        markAsBusy(formElement, this.findFrameElement(formElement));\n    }\n    formSubmissionSucceededWithResponse(formSubmission, response) {\n        const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.loadResponse(response);\n        if (!formSubmission.isSafe) {\n            session.clearCache();\n        }\n    }\n    formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        this.element.delegate.loadResponse(fetchResponse);\n        session.clearCache();\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished({ formElement }) {\n        clearBusyState(formElement, this.findFrameElement(formElement));\n    }\n    allowsImmediateRender({ element: newFrame }, options) {\n        const event = dispatch(\"turbo:before-frame-render\", {\n            target: this.element,\n            detail: Object.assign({ newFrame }, options),\n            cancelable: true,\n        });\n        const { defaultPrevented, detail: { render }, } = event;\n        if (this.view.renderer && render) {\n            this.view.renderer.renderElement = render;\n        }\n        return !defaultPrevented;\n    }\n    viewRenderedSnapshot(_snapshot, _isPreview) { }\n    preloadOnLoadLinksForView(element) {\n        session.preloadOnLoadLinksForView(element);\n    }\n    viewInvalidated() { }\n    willRenderFrame(currentElement, _newElement) {\n        this.previousFrameElement = currentElement.cloneNode(true);\n    }\n    async loadFrameResponse(fetchResponse, document) {\n        const newFrameElement = await this.extractForeignFrameElement(document.body);\n        if (newFrameElement) {\n            const snapshot = new Snapshot(newFrameElement);\n            const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n            if (this.view.renderPromise)\n                await this.view.renderPromise;\n            this.changeHistory();\n            await this.view.render(renderer);\n            this.complete = true;\n            session.frameRendered(fetchResponse, this.element);\n            session.frameLoaded(this.element);\n            this.fetchResponseLoaded(fetchResponse);\n        }\n        else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n            this.handleFrameMissingFromResponse(fetchResponse);\n        }\n    }\n    async visit(url) {\n        var _a;\n        const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n        (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n        this.currentFetchRequest = request;\n        return new Promise((resolve) => {\n            this.resolveVisitPromise = () => {\n                this.resolveVisitPromise = () => { };\n                this.currentFetchRequest = null;\n                resolve();\n            };\n            request.perform();\n        });\n    }\n    navigateFrame(element, url, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n        this.withCurrentNavigationElement(element, () => {\n            frame.src = url;\n        });\n    }\n    proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n        this.action = getVisitAction(submitter, element, frame);\n        if (this.action) {\n            const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n            const { visitCachedSnapshot } = frame.delegate;\n            frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n                if (frame.src) {\n                    const { statusCode, redirected } = fetchResponse;\n                    const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n                    const response = { statusCode, redirected, responseHTML };\n                    const options = {\n                        response,\n                        visitCachedSnapshot,\n                        willRender: false,\n                        updateHistory: false,\n                        restorationIdentifier: this.restorationIdentifier,\n                        snapshot: pageSnapshot,\n                    };\n                    if (this.action)\n                        options.action = this.action;\n                    session.visit(frame.src, options);\n                }\n            };\n        }\n    }\n    changeHistory() {\n        if (this.action) {\n            const method = getHistoryMethodForAction(this.action);\n            session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n        }\n    }\n    async handleUnvisitableFrameResponse(fetchResponse) {\n        console.warn(`The response (${fetchResponse.statusCode}) from <turbo-frame id=\"${this.element.id}\"> is performing a full page visit due to turbo-visit-control.`);\n        await this.visitResponse(fetchResponse.response);\n    }\n    willHandleFrameMissingFromResponse(fetchResponse) {\n        this.element.setAttribute(\"complete\", \"\");\n        const response = fetchResponse.response;\n        const visit = async (url, options = {}) => {\n            if (url instanceof Response) {\n                this.visitResponse(url);\n            }\n            else {\n                session.visit(url, options);\n            }\n        };\n        const event = dispatch(\"turbo:frame-missing\", {\n            target: this.element,\n            detail: { response, visit },\n            cancelable: true,\n        });\n        return !event.defaultPrevented;\n    }\n    handleFrameMissingFromResponse(fetchResponse) {\n        this.view.missing();\n        this.throwFrameMissingError(fetchResponse);\n    }\n    throwFrameMissingError(fetchResponse) {\n        const message = `The response (${fetchResponse.statusCode}) did not contain the expected <turbo-frame id=\"${this.element.id}\"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n        throw new TurboFrameMissingError(message);\n    }\n    async visitResponse(response) {\n        const wrapped = new FetchResponse(response);\n        const responseHTML = await wrapped.responseHTML;\n        const { location, redirected, statusCode } = wrapped;\n        return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n    }\n    findFrameElement(element, submitter) {\n        var _a;\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n    }\n    async extractForeignFrameElement(container) {\n        let element;\n        const id = CSS.escape(this.id);\n        try {\n            element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n            if (element) {\n                return element;\n            }\n            element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n            if (element) {\n                await element.loaded;\n                return await this.extractForeignFrameElement(element);\n            }\n        }\n        catch (error) {\n            console.error(error);\n            return new FrameElement();\n        }\n        return null;\n    }\n    formActionIsVisitable(form, submitter) {\n        const action = getAction(form, submitter);\n        return locationIsVisitable(expandURL(action), this.rootLocation);\n    }\n    shouldInterceptNavigation(element, submitter) {\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n            return false;\n        }\n        if (!this.enabled || id == \"_top\") {\n            return false;\n        }\n        if (id) {\n            const frameElement = getFrameElementById(id);\n            if (frameElement) {\n                return !frameElement.disabled;\n            }\n        }\n        if (!session.elementIsNavigatable(element)) {\n            return false;\n        }\n        if (submitter && !session.elementIsNavigatable(submitter)) {\n            return false;\n        }\n        return true;\n    }\n    get id() {\n        return this.element.id;\n    }\n    get enabled() {\n        return !this.element.disabled;\n    }\n    get sourceURL() {\n        if (this.element.src) {\n            return this.element.src;\n        }\n    }\n    set sourceURL(sourceURL) {\n        this.ignoringChangesToAttribute(\"src\", () => {\n            this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n        });\n    }\n    get loadingStyle() {\n        return this.element.loading;\n    }\n    get isLoading() {\n        return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n    }\n    get complete() {\n        return this.element.hasAttribute(\"complete\");\n    }\n    set complete(value) {\n        this.ignoringChangesToAttribute(\"complete\", () => {\n            if (value) {\n                this.element.setAttribute(\"complete\", \"\");\n            }\n            else {\n                this.element.removeAttribute(\"complete\");\n            }\n        });\n    }\n    get isActive() {\n        return this.element.isActive && this.connected;\n    }\n    get rootLocation() {\n        var _a;\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n    isIgnoringChangesTo(attributeName) {\n        return this.ignoredAttributes.has(attributeName);\n    }\n    ignoringChangesToAttribute(attributeName, callback) {\n        this.ignoredAttributes.add(attributeName);\n        callback();\n        this.ignoredAttributes.delete(attributeName);\n    }\n    withCurrentNavigationElement(element, callback) {\n        this.currentNavigationElement = element;\n        callback();\n        delete this.currentNavigationElement;\n    }\n}\nfunction getFrameElementById(id) {\n    if (id != null) {\n        const element = document.getElementById(id);\n        if (element instanceof FrameElement) {\n            return element;\n        }\n    }\n}\nfunction activateElement(element, currentURL) {\n    if (element) {\n        const src = element.getAttribute(\"src\");\n        if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n            throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n        }\n        if (element.ownerDocument !== document) {\n            element = document.importNode(element, true);\n        }\n        if (element instanceof FrameElement) {\n            element.connectedCallback();\n            element.disconnectedCallback();\n            return element;\n        }\n    }\n}\n\nclass StreamElement extends HTMLElement {\n    static async renderElement(newElement) {\n        await newElement.performAction();\n    }\n    async connectedCallback() {\n        try {\n            await this.render();\n        }\n        catch (error) {\n            console.error(error);\n        }\n        finally {\n            this.disconnect();\n        }\n    }\n    async render() {\n        var _a;\n        return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n            const event = this.beforeRenderEvent;\n            if (this.dispatchEvent(event)) {\n                await nextAnimationFrame();\n                await event.detail.render(this);\n            }\n        })()));\n    }\n    disconnect() {\n        try {\n            this.remove();\n        }\n        catch (_a) { }\n    }\n    removeDuplicateTargetChildren() {\n        this.duplicateChildren.forEach((c) => c.remove());\n    }\n    get duplicateChildren() {\n        var _a;\n        const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n        const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n        return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n    }\n    get performAction() {\n        if (this.action) {\n            const actionFunction = StreamActions[this.action];\n            if (actionFunction) {\n                return actionFunction;\n            }\n            this.raise(\"unknown action\");\n        }\n        this.raise(\"action attribute is missing\");\n    }\n    get targetElements() {\n        if (this.target) {\n            return this.targetElementsById;\n        }\n        else if (this.targets) {\n            return this.targetElementsByQuery;\n        }\n        else {\n            this.raise(\"target or targets attribute is missing\");\n        }\n    }\n    get templateContent() {\n        return this.templateElement.content.cloneNode(true);\n    }\n    get templateElement() {\n        if (this.firstElementChild === null) {\n            const template = this.ownerDocument.createElement(\"template\");\n            this.appendChild(template);\n            return template;\n        }\n        else if (this.firstElementChild instanceof HTMLTemplateElement) {\n            return this.firstElementChild;\n        }\n        this.raise(\"first child element must be a <template> element\");\n    }\n    get action() {\n        return this.getAttribute(\"action\");\n    }\n    get target() {\n        return this.getAttribute(\"target\");\n    }\n    get targets() {\n        return this.getAttribute(\"targets\");\n    }\n    raise(message) {\n        throw new Error(`${this.description}: ${message}`);\n    }\n    get description() {\n        var _a, _b;\n        return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n    }\n    get beforeRenderEvent() {\n        return new CustomEvent(\"turbo:before-stream-render\", {\n            bubbles: true,\n            cancelable: true,\n            detail: { newStream: this, render: StreamElement.renderElement },\n        });\n    }\n    get targetElementsById() {\n        var _a;\n        const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n        if (element !== null) {\n            return [element];\n        }\n        else {\n            return [];\n        }\n    }\n    get targetElementsByQuery() {\n        var _a;\n        const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n        if (elements.length !== 0) {\n            return Array.prototype.slice.call(elements);\n        }\n        else {\n            return [];\n        }\n    }\n}\n\nclass StreamSourceElement extends HTMLElement {\n    constructor() {\n        super(...arguments);\n        this.streamSource = null;\n    }\n    connectedCallback() {\n        this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n        connectStreamSource(this.streamSource);\n    }\n    disconnectedCallback() {\n        if (this.streamSource) {\n            disconnectStreamSource(this.streamSource);\n        }\n    }\n    get src() {\n        return this.getAttribute(\"src\") || \"\";\n    }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n    customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n    customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n    customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n    let element = document.currentScript;\n    if (!element)\n        return;\n    if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n        return;\n    element = element.parentElement;\n    while (element) {\n        if (element == document.body) {\n            return console.warn(unindent `\n        You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n        Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n        For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n        \u2014\u2014\n        Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n      `, element.outerHTML);\n        }\n        element = element.parentElement;\n    }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n  return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n  return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n  const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n  return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n  const { subscriptions } = await getConsumer()\n  return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n    if (!obj || typeof obj !== 'object') return obj;\n    if (obj instanceof Date || obj instanceof RegExp) return obj;\n    if (Array.isArray(obj)) return obj.map(walk);\n    return Object.keys(obj).reduce(function (acc, key) {\n        var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n            return '_' + x.toLowerCase();\n        });\n        acc[camel] = walk(obj[key]);\n        return acc;\n    }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n  async connectedCallback() {\n    connectStreamSource(this)\n    this.subscription = await subscribeTo(this.channel, {\n      received: this.dispatchMessageEvent.bind(this),\n      connected: this.subscriptionConnected.bind(this),\n      disconnected: this.subscriptionDisconnected.bind(this)\n    })\n  }\n\n  disconnectedCallback() {\n    disconnectStreamSource(this)\n    if (this.subscription) this.subscription.unsubscribe()\n  }\n\n  dispatchMessageEvent(data) {\n    const event = new MessageEvent(\"message\", { data })\n    return this.dispatchEvent(event)\n  }\n\n  subscriptionConnected() {\n    this.setAttribute(\"connected\", \"\")\n  }\n\n  subscriptionDisconnected() {\n    this.removeAttribute(\"connected\")\n  }\n\n  get channel() {\n    const channel = this.getAttribute(\"channel\")\n    const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n    return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n  }\n}\n\n\nif (customElements.get(\"turbo-cable-stream-source\") === undefined) {\n  customElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n}\n", "export function encodeMethodIntoRequestBody(event) {\n  if (event.target instanceof HTMLFormElement) {\n    const { target: form, detail: { fetchOptions } } = event\n\n    form.addEventListener(\"turbo:submit-start\", ({ detail: { formSubmission: { submitter } } }) => {\n      const body = isBodyInit(fetchOptions.body) ? fetchOptions.body : new URLSearchParams()\n      const method = determineFetchMethod(submitter, body, form)\n\n      if (!/get/i.test(method)) {\n        if (/post/i.test(method)) {\n          body.delete(\"_method\")\n        } else {\n          body.set(\"_method\", method)\n        }\n\n        fetchOptions.method = \"post\"\n      }\n    }, { once: true })\n  }\n}\n\nfunction determineFetchMethod(submitter, body, form) {\n  const formMethod = determineFormMethod(submitter)\n  const overrideMethod = body.get(\"_method\")\n  const method = form.getAttribute(\"method\") || \"get\"\n\n  if (typeof formMethod == \"string\") {\n    return formMethod\n  } else if (typeof overrideMethod == \"string\") {\n    return overrideMethod\n  } else {\n    return method\n  }\n}\n\nfunction determineFormMethod(submitter) {\n  if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) {\n    if (submitter.hasAttribute(\"formmethod\")) {\n      return submitter.formMethod\n    } else {\n      return null\n    }\n  } else {\n    return null\n  }\n}\n\nfunction isBodyInit(body) {\n  return body instanceof FormData || body instanceof URLSearchParams\n}\n", "import \"./cable_stream_source_element\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\nimport { encodeMethodIntoRequestBody } from \"./fetch_requests\"\n\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\n", "/*\nStimulus 3.2.1\nCopyright \u00A9 2023 Basecamp, LLC\n */\nclass EventListener {\n    constructor(eventTarget, eventName, eventOptions) {\n        this.eventTarget = eventTarget;\n        this.eventName = eventName;\n        this.eventOptions = eventOptions;\n        this.unorderedBindings = new Set();\n    }\n    connect() {\n        this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n    }\n    disconnect() {\n        this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n    }\n    bindingConnected(binding) {\n        this.unorderedBindings.add(binding);\n    }\n    bindingDisconnected(binding) {\n        this.unorderedBindings.delete(binding);\n    }\n    handleEvent(event) {\n        const extendedEvent = extendEvent(event);\n        for (const binding of this.bindings) {\n            if (extendedEvent.immediatePropagationStopped) {\n                break;\n            }\n            else {\n                binding.handleEvent(extendedEvent);\n            }\n        }\n    }\n    hasBindings() {\n        return this.unorderedBindings.size > 0;\n    }\n    get bindings() {\n        return Array.from(this.unorderedBindings).sort((left, right) => {\n            const leftIndex = left.index, rightIndex = right.index;\n            return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n        });\n    }\n}\nfunction extendEvent(event) {\n    if (\"immediatePropagationStopped\" in event) {\n        return event;\n    }\n    else {\n        const { stopImmediatePropagation } = event;\n        return Object.assign(event, {\n            immediatePropagationStopped: false,\n            stopImmediatePropagation() {\n                this.immediatePropagationStopped = true;\n                stopImmediatePropagation.call(this);\n            },\n        });\n    }\n}\n\nclass Dispatcher {\n    constructor(application) {\n        this.application = application;\n        this.eventListenerMaps = new Map();\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.eventListeners.forEach((eventListener) => eventListener.connect());\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n        }\n    }\n    get eventListeners() {\n        return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n    }\n    bindingConnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n    }\n    bindingDisconnected(binding, clearEventListeners = false) {\n        this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n        if (clearEventListeners)\n            this.clearEventListenersForBinding(binding);\n    }\n    handleError(error, message, detail = {}) {\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    clearEventListenersForBinding(binding) {\n        const eventListener = this.fetchEventListenerForBinding(binding);\n        if (!eventListener.hasBindings()) {\n            eventListener.disconnect();\n            this.removeMappedEventListenerFor(binding);\n        }\n    }\n    removeMappedEventListenerFor(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        eventListenerMap.delete(cacheKey);\n        if (eventListenerMap.size == 0)\n            this.eventListenerMaps.delete(eventTarget);\n    }\n    fetchEventListenerForBinding(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        return this.fetchEventListener(eventTarget, eventName, eventOptions);\n    }\n    fetchEventListener(eventTarget, eventName, eventOptions) {\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        let eventListener = eventListenerMap.get(cacheKey);\n        if (!eventListener) {\n            eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n            eventListenerMap.set(cacheKey, eventListener);\n        }\n        return eventListener;\n    }\n    createEventListener(eventTarget, eventName, eventOptions) {\n        const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n        if (this.started) {\n            eventListener.connect();\n        }\n        return eventListener;\n    }\n    fetchEventListenerMapForEventTarget(eventTarget) {\n        let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n        if (!eventListenerMap) {\n            eventListenerMap = new Map();\n            this.eventListenerMaps.set(eventTarget, eventListenerMap);\n        }\n        return eventListenerMap;\n    }\n    cacheKey(eventName, eventOptions) {\n        const parts = [eventName];\n        Object.keys(eventOptions)\n            .sort()\n            .forEach((key) => {\n            parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n        });\n        return parts.join(\":\");\n    }\n}\n\nconst defaultActionDescriptorFilters = {\n    stop({ event, value }) {\n        if (value)\n            event.stopPropagation();\n        return true;\n    },\n    prevent({ event, value }) {\n        if (value)\n            event.preventDefault();\n        return true;\n    },\n    self({ event, value, element }) {\n        if (value) {\n            return element === event.target;\n        }\n        else {\n            return true;\n        }\n    },\n};\nconst descriptorPattern = /^(?:(?:([^.]+?)\\+)?(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n    const source = descriptorString.trim();\n    const matches = source.match(descriptorPattern) || [];\n    let eventName = matches[2];\n    let keyFilter = matches[3];\n    if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n        eventName += `.${keyFilter}`;\n        keyFilter = \"\";\n    }\n    return {\n        eventTarget: parseEventTarget(matches[4]),\n        eventName,\n        eventOptions: matches[7] ? parseEventOptions(matches[7]) : {},\n        identifier: matches[5],\n        methodName: matches[6],\n        keyFilter: matches[1] || keyFilter,\n    };\n}\nfunction parseEventTarget(eventTargetName) {\n    if (eventTargetName == \"window\") {\n        return window;\n    }\n    else if (eventTargetName == \"document\") {\n        return document;\n    }\n}\nfunction parseEventOptions(eventOptions) {\n    return eventOptions\n        .split(\":\")\n        .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n    if (eventTarget == window) {\n        return \"window\";\n    }\n    else if (eventTarget == document) {\n        return \"document\";\n    }\n}\n\nfunction camelize(value) {\n    return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n    return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n    return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n    return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n    return value.match(/[^\\s]+/g) || [];\n}\n\nfunction isSomething(object) {\n    return object !== null && object !== undefined;\n}\nfunction hasProperty(object, property) {\n    return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nconst allModifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\nclass Action {\n    constructor(element, index, descriptor, schema) {\n        this.element = element;\n        this.index = index;\n        this.eventTarget = descriptor.eventTarget || element;\n        this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n        this.eventOptions = descriptor.eventOptions || {};\n        this.identifier = descriptor.identifier || error(\"missing identifier\");\n        this.methodName = descriptor.methodName || error(\"missing method name\");\n        this.keyFilter = descriptor.keyFilter || \"\";\n        this.schema = schema;\n    }\n    static forToken(token, schema) {\n        return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n    }\n    toString() {\n        const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n        const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n        return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n    }\n    shouldIgnoreKeyboardEvent(event) {\n        if (!this.keyFilter) {\n            return false;\n        }\n        const filters = this.keyFilter.split(\"+\");\n        if (this.keyFilterDissatisfied(event, filters)) {\n            return true;\n        }\n        const standardFilter = filters.filter((key) => !allModifiers.includes(key))[0];\n        if (!standardFilter) {\n            return false;\n        }\n        if (!hasProperty(this.keyMappings, standardFilter)) {\n            error(`contains unknown key filter: ${this.keyFilter}`);\n        }\n        return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n    }\n    shouldIgnoreMouseEvent(event) {\n        if (!this.keyFilter) {\n            return false;\n        }\n        const filters = [this.keyFilter];\n        if (this.keyFilterDissatisfied(event, filters)) {\n            return true;\n        }\n        return false;\n    }\n    get params() {\n        const params = {};\n        const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n        for (const { name, value } of Array.from(this.element.attributes)) {\n            const match = name.match(pattern);\n            const key = match && match[1];\n            if (key) {\n                params[camelize(key)] = typecast(value);\n            }\n        }\n        return params;\n    }\n    get eventTargetName() {\n        return stringifyEventTarget(this.eventTarget);\n    }\n    get keyMappings() {\n        return this.schema.keyMappings;\n    }\n    keyFilterDissatisfied(event, filters) {\n        const [meta, ctrl, alt, shift] = allModifiers.map((modifier) => filters.includes(modifier));\n        return event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift;\n    }\n}\nconst defaultEventNames = {\n    a: () => \"click\",\n    button: () => \"click\",\n    form: () => \"submit\",\n    details: () => \"toggle\",\n    input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n    select: () => \"change\",\n    textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n    const tagName = element.tagName.toLowerCase();\n    if (tagName in defaultEventNames) {\n        return defaultEventNames[tagName](element);\n    }\n}\nfunction error(message) {\n    throw new Error(message);\n}\nfunction typecast(value) {\n    try {\n        return JSON.parse(value);\n    }\n    catch (o_O) {\n        return value;\n    }\n}\n\nclass Binding {\n    constructor(context, action) {\n        this.context = context;\n        this.action = action;\n    }\n    get index() {\n        return this.action.index;\n    }\n    get eventTarget() {\n        return this.action.eventTarget;\n    }\n    get eventOptions() {\n        return this.action.eventOptions;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    handleEvent(event) {\n        const actionEvent = this.prepareActionEvent(event);\n        if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(actionEvent)) {\n            this.invokeWithEvent(actionEvent);\n        }\n    }\n    get eventName() {\n        return this.action.eventName;\n    }\n    get method() {\n        const method = this.controller[this.methodName];\n        if (typeof method == \"function\") {\n            return method;\n        }\n        throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n    }\n    applyEventModifiers(event) {\n        const { element } = this.action;\n        const { actionDescriptorFilters } = this.context.application;\n        const { controller } = this.context;\n        let passes = true;\n        for (const [name, value] of Object.entries(this.eventOptions)) {\n            if (name in actionDescriptorFilters) {\n                const filter = actionDescriptorFilters[name];\n                passes = passes && filter({ name, value, event, element, controller });\n            }\n            else {\n                continue;\n            }\n        }\n        return passes;\n    }\n    prepareActionEvent(event) {\n        return Object.assign(event, { params: this.action.params });\n    }\n    invokeWithEvent(event) {\n        const { target, currentTarget } = event;\n        try {\n            this.method.call(this.controller, event);\n            this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n        }\n        catch (error) {\n            const { identifier, controller, element, index } = this;\n            const detail = { identifier, controller, element, index, event };\n            this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n        }\n    }\n    willBeInvokedByEvent(event) {\n        const eventTarget = event.target;\n        if (event instanceof KeyboardEvent && this.action.shouldIgnoreKeyboardEvent(event)) {\n            return false;\n        }\n        if (event instanceof MouseEvent && this.action.shouldIgnoreMouseEvent(event)) {\n            return false;\n        }\n        if (this.element === eventTarget) {\n            return true;\n        }\n        else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n            return this.scope.containsElement(eventTarget);\n        }\n        else {\n            return this.scope.containsElement(this.action.element);\n        }\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    get methodName() {\n        return this.action.methodName;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nclass ElementObserver {\n    constructor(element, delegate) {\n        this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n        this.element = element;\n        this.started = false;\n        this.delegate = delegate;\n        this.elements = new Set();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.refresh();\n        }\n    }\n    pause(callback) {\n        if (this.started) {\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n        callback();\n        if (!this.started) {\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            const matches = new Set(this.matchElementsInTree());\n            for (const element of Array.from(this.elements)) {\n                if (!matches.has(element)) {\n                    this.removeElement(element);\n                }\n            }\n            for (const element of Array.from(matches)) {\n                this.addElement(element);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        if (mutation.type == \"attributes\") {\n            this.processAttributeChange(mutation.target, mutation.attributeName);\n        }\n        else if (mutation.type == \"childList\") {\n            this.processRemovedNodes(mutation.removedNodes);\n            this.processAddedNodes(mutation.addedNodes);\n        }\n    }\n    processAttributeChange(element, attributeName) {\n        if (this.elements.has(element)) {\n            if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n                this.delegate.elementAttributeChanged(element, attributeName);\n            }\n            else {\n                this.removeElement(element);\n            }\n        }\n        else if (this.matchElement(element)) {\n            this.addElement(element);\n        }\n    }\n    processRemovedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element) {\n                this.processTree(element, this.removeElement);\n            }\n        }\n    }\n    processAddedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element && this.elementIsActive(element)) {\n                this.processTree(element, this.addElement);\n            }\n        }\n    }\n    matchElement(element) {\n        return this.delegate.matchElement(element);\n    }\n    matchElementsInTree(tree = this.element) {\n        return this.delegate.matchElementsInTree(tree);\n    }\n    processTree(tree, processor) {\n        for (const element of this.matchElementsInTree(tree)) {\n            processor.call(this, element);\n        }\n    }\n    elementFromNode(node) {\n        if (node.nodeType == Node.ELEMENT_NODE) {\n            return node;\n        }\n    }\n    elementIsActive(element) {\n        if (element.isConnected != this.element.isConnected) {\n            return false;\n        }\n        else {\n            return this.element.contains(element);\n        }\n    }\n    addElement(element) {\n        if (!this.elements.has(element)) {\n            if (this.elementIsActive(element)) {\n                this.elements.add(element);\n                if (this.delegate.elementMatched) {\n                    this.delegate.elementMatched(element);\n                }\n            }\n        }\n    }\n    removeElement(element) {\n        if (this.elements.has(element)) {\n            this.elements.delete(element);\n            if (this.delegate.elementUnmatched) {\n                this.delegate.elementUnmatched(element);\n            }\n        }\n    }\n}\n\nclass AttributeObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeName = attributeName;\n        this.delegate = delegate;\n        this.elementObserver = new ElementObserver(element, this);\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    get selector() {\n        return `[${this.attributeName}]`;\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    matchElement(element) {\n        return element.hasAttribute(this.attributeName);\n    }\n    matchElementsInTree(tree) {\n        const match = this.matchElement(tree) ? [tree] : [];\n        const matches = Array.from(tree.querySelectorAll(this.selector));\n        return match.concat(matches);\n    }\n    elementMatched(element) {\n        if (this.delegate.elementMatchedAttribute) {\n            this.delegate.elementMatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementUnmatched(element) {\n        if (this.delegate.elementUnmatchedAttribute) {\n            this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementAttributeChanged(element, attributeName) {\n        if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n            this.delegate.elementAttributeValueChanged(element, attributeName);\n        }\n    }\n}\n\nfunction add(map, key, value) {\n    fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n    fetch(map, key).delete(value);\n    prune(map, key);\n}\nfunction fetch(map, key) {\n    let values = map.get(key);\n    if (!values) {\n        values = new Set();\n        map.set(key, values);\n    }\n    return values;\n}\nfunction prune(map, key) {\n    const values = map.get(key);\n    if (values != null && values.size == 0) {\n        map.delete(key);\n    }\n}\n\nclass Multimap {\n    constructor() {\n        this.valuesByKey = new Map();\n    }\n    get keys() {\n        return Array.from(this.valuesByKey.keys());\n    }\n    get values() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n    }\n    get size() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((size, set) => size + set.size, 0);\n    }\n    add(key, value) {\n        add(this.valuesByKey, key, value);\n    }\n    delete(key, value) {\n        del(this.valuesByKey, key, value);\n    }\n    has(key, value) {\n        const values = this.valuesByKey.get(key);\n        return values != null && values.has(value);\n    }\n    hasKey(key) {\n        return this.valuesByKey.has(key);\n    }\n    hasValue(value) {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.some((set) => set.has(value));\n    }\n    getValuesForKey(key) {\n        const values = this.valuesByKey.get(key);\n        return values ? Array.from(values) : [];\n    }\n    getKeysForValue(value) {\n        return Array.from(this.valuesByKey)\n            .filter(([_key, values]) => values.has(value))\n            .map(([key, _values]) => key);\n    }\n}\n\nclass IndexedMultimap extends Multimap {\n    constructor() {\n        super();\n        this.keysByValue = new Map();\n    }\n    get values() {\n        return Array.from(this.keysByValue.keys());\n    }\n    add(key, value) {\n        super.add(key, value);\n        add(this.keysByValue, value, key);\n    }\n    delete(key, value) {\n        super.delete(key, value);\n        del(this.keysByValue, value, key);\n    }\n    hasValue(value) {\n        return this.keysByValue.has(value);\n    }\n    getKeysForValue(value) {\n        const set = this.keysByValue.get(value);\n        return set ? Array.from(set) : [];\n    }\n}\n\nclass SelectorObserver {\n    constructor(element, selector, delegate, details) {\n        this._selector = selector;\n        this.details = details;\n        this.elementObserver = new ElementObserver(element, this);\n        this.delegate = delegate;\n        this.matchesByElement = new Multimap();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    get selector() {\n        return this._selector;\n    }\n    set selector(selector) {\n        this._selector = selector;\n        this.refresh();\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    matchElement(element) {\n        const { selector } = this;\n        if (selector) {\n            const matches = element.matches(selector);\n            if (this.delegate.selectorMatchElement) {\n                return matches && this.delegate.selectorMatchElement(element, this.details);\n            }\n            return matches;\n        }\n        else {\n            return false;\n        }\n    }\n    matchElementsInTree(tree) {\n        const { selector } = this;\n        if (selector) {\n            const match = this.matchElement(tree) ? [tree] : [];\n            const matches = Array.from(tree.querySelectorAll(selector)).filter((match) => this.matchElement(match));\n            return match.concat(matches);\n        }\n        else {\n            return [];\n        }\n    }\n    elementMatched(element) {\n        const { selector } = this;\n        if (selector) {\n            this.selectorMatched(element, selector);\n        }\n    }\n    elementUnmatched(element) {\n        const selectors = this.matchesByElement.getKeysForValue(element);\n        for (const selector of selectors) {\n            this.selectorUnmatched(element, selector);\n        }\n    }\n    elementAttributeChanged(element, _attributeName) {\n        const { selector } = this;\n        if (selector) {\n            const matches = this.matchElement(element);\n            const matchedBefore = this.matchesByElement.has(selector, element);\n            if (matches && !matchedBefore) {\n                this.selectorMatched(element, selector);\n            }\n            else if (!matches && matchedBefore) {\n                this.selectorUnmatched(element, selector);\n            }\n        }\n    }\n    selectorMatched(element, selector) {\n        this.delegate.selectorMatched(element, selector, this.details);\n        this.matchesByElement.add(selector, element);\n    }\n    selectorUnmatched(element, selector) {\n        this.delegate.selectorUnmatched(element, selector, this.details);\n        this.matchesByElement.delete(selector, element);\n    }\n}\n\nclass StringMapObserver {\n    constructor(element, delegate) {\n        this.element = element;\n        this.delegate = delegate;\n        this.started = false;\n        this.stringMap = new Map();\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n            this.refresh();\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            for (const attributeName of this.knownAttributeNames) {\n                this.refreshAttribute(attributeName, null);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        const attributeName = mutation.attributeName;\n        if (attributeName) {\n            this.refreshAttribute(attributeName, mutation.oldValue);\n        }\n    }\n    refreshAttribute(attributeName, oldValue) {\n        const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n        if (key != null) {\n            if (!this.stringMap.has(attributeName)) {\n                this.stringMapKeyAdded(key, attributeName);\n            }\n            const value = this.element.getAttribute(attributeName);\n            if (this.stringMap.get(attributeName) != value) {\n                this.stringMapValueChanged(value, key, oldValue);\n            }\n            if (value == null) {\n                const oldValue = this.stringMap.get(attributeName);\n                this.stringMap.delete(attributeName);\n                if (oldValue)\n                    this.stringMapKeyRemoved(key, attributeName, oldValue);\n            }\n            else {\n                this.stringMap.set(attributeName, value);\n            }\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        if (this.delegate.stringMapKeyAdded) {\n            this.delegate.stringMapKeyAdded(key, attributeName);\n        }\n    }\n    stringMapValueChanged(value, key, oldValue) {\n        if (this.delegate.stringMapValueChanged) {\n            this.delegate.stringMapValueChanged(value, key, oldValue);\n        }\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        if (this.delegate.stringMapKeyRemoved) {\n            this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n        }\n    }\n    get knownAttributeNames() {\n        return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n    }\n    get currentAttributeNames() {\n        return Array.from(this.element.attributes).map((attribute) => attribute.name);\n    }\n    get recordedAttributeNames() {\n        return Array.from(this.stringMap.keys());\n    }\n}\n\nclass TokenListObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeObserver = new AttributeObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.tokensByElement = new Multimap();\n    }\n    get started() {\n        return this.attributeObserver.started;\n    }\n    start() {\n        this.attributeObserver.start();\n    }\n    pause(callback) {\n        this.attributeObserver.pause(callback);\n    }\n    stop() {\n        this.attributeObserver.stop();\n    }\n    refresh() {\n        this.attributeObserver.refresh();\n    }\n    get element() {\n        return this.attributeObserver.element;\n    }\n    get attributeName() {\n        return this.attributeObserver.attributeName;\n    }\n    elementMatchedAttribute(element) {\n        this.tokensMatched(this.readTokensForElement(element));\n    }\n    elementAttributeValueChanged(element) {\n        const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n        this.tokensUnmatched(unmatchedTokens);\n        this.tokensMatched(matchedTokens);\n    }\n    elementUnmatchedAttribute(element) {\n        this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n    }\n    tokensMatched(tokens) {\n        tokens.forEach((token) => this.tokenMatched(token));\n    }\n    tokensUnmatched(tokens) {\n        tokens.forEach((token) => this.tokenUnmatched(token));\n    }\n    tokenMatched(token) {\n        this.delegate.tokenMatched(token);\n        this.tokensByElement.add(token.element, token);\n    }\n    tokenUnmatched(token) {\n        this.delegate.tokenUnmatched(token);\n        this.tokensByElement.delete(token.element, token);\n    }\n    refreshTokensForElement(element) {\n        const previousTokens = this.tokensByElement.getValuesForKey(element);\n        const currentTokens = this.readTokensForElement(element);\n        const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n        if (firstDifferingIndex == -1) {\n            return [[], []];\n        }\n        else {\n            return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n        }\n    }\n    readTokensForElement(element) {\n        const attributeName = this.attributeName;\n        const tokenString = element.getAttribute(attributeName) || \"\";\n        return parseTokenString(tokenString, element, attributeName);\n    }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n    return tokenString\n        .trim()\n        .split(/\\s+/)\n        .filter((content) => content.length)\n        .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n    const length = Math.max(left.length, right.length);\n    return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n    return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n    constructor(element, attributeName, delegate) {\n        this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.parseResultsByToken = new WeakMap();\n        this.valuesByTokenByElement = new WeakMap();\n    }\n    get started() {\n        return this.tokenListObserver.started;\n    }\n    start() {\n        this.tokenListObserver.start();\n    }\n    stop() {\n        this.tokenListObserver.stop();\n    }\n    refresh() {\n        this.tokenListObserver.refresh();\n    }\n    get element() {\n        return this.tokenListObserver.element;\n    }\n    get attributeName() {\n        return this.tokenListObserver.attributeName;\n    }\n    tokenMatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).set(token, value);\n            this.delegate.elementMatchedValue(element, value);\n        }\n    }\n    tokenUnmatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).delete(token);\n            this.delegate.elementUnmatchedValue(element, value);\n        }\n    }\n    fetchParseResultForToken(token) {\n        let parseResult = this.parseResultsByToken.get(token);\n        if (!parseResult) {\n            parseResult = this.parseToken(token);\n            this.parseResultsByToken.set(token, parseResult);\n        }\n        return parseResult;\n    }\n    fetchValuesByTokenForElement(element) {\n        let valuesByToken = this.valuesByTokenByElement.get(element);\n        if (!valuesByToken) {\n            valuesByToken = new Map();\n            this.valuesByTokenByElement.set(element, valuesByToken);\n        }\n        return valuesByToken;\n    }\n    parseToken(token) {\n        try {\n            const value = this.delegate.parseValueForToken(token);\n            return { value };\n        }\n        catch (error) {\n            return { error };\n        }\n    }\n}\n\nclass BindingObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.bindingsByAction = new Map();\n    }\n    start() {\n        if (!this.valueListObserver) {\n            this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n            this.valueListObserver.start();\n        }\n    }\n    stop() {\n        if (this.valueListObserver) {\n            this.valueListObserver.stop();\n            delete this.valueListObserver;\n            this.disconnectAllActions();\n        }\n    }\n    get element() {\n        return this.context.element;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get actionAttribute() {\n        return this.schema.actionAttribute;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get bindings() {\n        return Array.from(this.bindingsByAction.values());\n    }\n    connectAction(action) {\n        const binding = new Binding(this.context, action);\n        this.bindingsByAction.set(action, binding);\n        this.delegate.bindingConnected(binding);\n    }\n    disconnectAction(action) {\n        const binding = this.bindingsByAction.get(action);\n        if (binding) {\n            this.bindingsByAction.delete(action);\n            this.delegate.bindingDisconnected(binding);\n        }\n    }\n    disconnectAllActions() {\n        this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n        this.bindingsByAction.clear();\n    }\n    parseValueForToken(token) {\n        const action = Action.forToken(token, this.schema);\n        if (action.identifier == this.identifier) {\n            return action;\n        }\n    }\n    elementMatchedValue(element, action) {\n        this.connectAction(action);\n    }\n    elementUnmatchedValue(element, action) {\n        this.disconnectAction(action);\n    }\n}\n\nclass ValueObserver {\n    constructor(context, receiver) {\n        this.context = context;\n        this.receiver = receiver;\n        this.stringMapObserver = new StringMapObserver(this.element, this);\n        this.valueDescriptorMap = this.controller.valueDescriptorMap;\n    }\n    start() {\n        this.stringMapObserver.start();\n        this.invokeChangedCallbacksForDefaultValues();\n    }\n    stop() {\n        this.stringMapObserver.stop();\n    }\n    get element() {\n        return this.context.element;\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    getStringMapKeyForAttribute(attributeName) {\n        if (attributeName in this.valueDescriptorMap) {\n            return this.valueDescriptorMap[attributeName].name;\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        const descriptor = this.valueDescriptorMap[attributeName];\n        if (!this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n        }\n    }\n    stringMapValueChanged(value, name, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[name];\n        if (value === null)\n            return;\n        if (oldValue === null) {\n            oldValue = descriptor.writer(descriptor.defaultValue);\n        }\n        this.invokeChangedCallback(name, value, oldValue);\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[key];\n        if (this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n        }\n        else {\n            this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n        }\n    }\n    invokeChangedCallbacksForDefaultValues() {\n        for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n            if (defaultValue != undefined && !this.controller.data.has(key)) {\n                this.invokeChangedCallback(name, writer(defaultValue), undefined);\n            }\n        }\n    }\n    invokeChangedCallback(name, rawValue, rawOldValue) {\n        const changedMethodName = `${name}Changed`;\n        const changedMethod = this.receiver[changedMethodName];\n        if (typeof changedMethod == \"function\") {\n            const descriptor = this.valueDescriptorNameMap[name];\n            try {\n                const value = descriptor.reader(rawValue);\n                let oldValue = rawOldValue;\n                if (rawOldValue) {\n                    oldValue = descriptor.reader(rawOldValue);\n                }\n                changedMethod.call(this.receiver, value, oldValue);\n            }\n            catch (error) {\n                if (error instanceof TypeError) {\n                    error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n                }\n                throw error;\n            }\n        }\n    }\n    get valueDescriptors() {\n        const { valueDescriptorMap } = this;\n        return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n    }\n    get valueDescriptorNameMap() {\n        const descriptors = {};\n        Object.keys(this.valueDescriptorMap).forEach((key) => {\n            const descriptor = this.valueDescriptorMap[key];\n            descriptors[descriptor.name] = descriptor;\n        });\n        return descriptors;\n    }\n    hasValue(attributeName) {\n        const descriptor = this.valueDescriptorNameMap[attributeName];\n        const hasMethodName = `has${capitalize(descriptor.name)}`;\n        return this.receiver[hasMethodName];\n    }\n}\n\nclass TargetObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.targetsByName = new Multimap();\n    }\n    start() {\n        if (!this.tokenListObserver) {\n            this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n            this.tokenListObserver.start();\n        }\n    }\n    stop() {\n        if (this.tokenListObserver) {\n            this.disconnectAllTargets();\n            this.tokenListObserver.stop();\n            delete this.tokenListObserver;\n        }\n    }\n    tokenMatched({ element, content: name }) {\n        if (this.scope.containsElement(element)) {\n            this.connectTarget(element, name);\n        }\n    }\n    tokenUnmatched({ element, content: name }) {\n        this.disconnectTarget(element, name);\n    }\n    connectTarget(element, name) {\n        var _a;\n        if (!this.targetsByName.has(name, element)) {\n            this.targetsByName.add(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n        }\n    }\n    disconnectTarget(element, name) {\n        var _a;\n        if (this.targetsByName.has(name, element)) {\n            this.targetsByName.delete(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n        }\n    }\n    disconnectAllTargets() {\n        for (const name of this.targetsByName.keys) {\n            for (const element of this.targetsByName.getValuesForKey(name)) {\n                this.disconnectTarget(element, name);\n            }\n        }\n    }\n    get attributeName() {\n        return `data-${this.context.identifier}-target`;\n    }\n    get element() {\n        return this.context.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return Array.from(ancestors.reduce((values, constructor) => {\n        getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n        return values;\n    }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return ancestors.reduce((pairs, constructor) => {\n        pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n        return pairs;\n    }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n    const ancestors = [];\n    while (constructor) {\n        ancestors.push(constructor);\n        constructor = Object.getPrototypeOf(constructor);\n    }\n    return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n    constructor(context, delegate) {\n        this.started = false;\n        this.context = context;\n        this.delegate = delegate;\n        this.outletsByName = new Multimap();\n        this.outletElementsByName = new Multimap();\n        this.selectorObserverMap = new Map();\n        this.attributeObserverMap = new Map();\n    }\n    start() {\n        if (!this.started) {\n            this.outletDefinitions.forEach((outletName) => {\n                this.setupSelectorObserverForOutlet(outletName);\n                this.setupAttributeObserverForOutlet(outletName);\n            });\n            this.started = true;\n            this.dependentContexts.forEach((context) => context.refresh());\n        }\n    }\n    refresh() {\n        this.selectorObserverMap.forEach((observer) => observer.refresh());\n        this.attributeObserverMap.forEach((observer) => observer.refresh());\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.disconnectAllOutlets();\n            this.stopSelectorObservers();\n            this.stopAttributeObservers();\n        }\n    }\n    stopSelectorObservers() {\n        if (this.selectorObserverMap.size > 0) {\n            this.selectorObserverMap.forEach((observer) => observer.stop());\n            this.selectorObserverMap.clear();\n        }\n    }\n    stopAttributeObservers() {\n        if (this.attributeObserverMap.size > 0) {\n            this.attributeObserverMap.forEach((observer) => observer.stop());\n            this.attributeObserverMap.clear();\n        }\n    }\n    selectorMatched(element, _selector, { outletName }) {\n        const outlet = this.getOutlet(element, outletName);\n        if (outlet) {\n            this.connectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorUnmatched(element, _selector, { outletName }) {\n        const outlet = this.getOutletFromMap(element, outletName);\n        if (outlet) {\n            this.disconnectOutlet(outlet, element, outletName);\n        }\n    }\n    selectorMatchElement(element, { outletName }) {\n        const selector = this.selector(outletName);\n        const hasOutlet = this.hasOutlet(element, outletName);\n        const hasOutletController = element.matches(`[${this.schema.controllerAttribute}~=${outletName}]`);\n        if (selector) {\n            return hasOutlet && hasOutletController && element.matches(selector);\n        }\n        else {\n            return false;\n        }\n    }\n    elementMatchedAttribute(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    elementAttributeValueChanged(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    elementUnmatchedAttribute(_element, attributeName) {\n        const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n        if (outletName) {\n            this.updateSelectorObserverForOutlet(outletName);\n        }\n    }\n    connectOutlet(outlet, element, outletName) {\n        var _a;\n        if (!this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.add(outletName, outlet);\n            this.outletElementsByName.add(outletName, element);\n            (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n        }\n    }\n    disconnectOutlet(outlet, element, outletName) {\n        var _a;\n        if (this.outletElementsByName.has(outletName, element)) {\n            this.outletsByName.delete(outletName, outlet);\n            this.outletElementsByName.delete(outletName, element);\n            (_a = this.selectorObserverMap\n                .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n        }\n    }\n    disconnectAllOutlets() {\n        for (const outletName of this.outletElementsByName.keys) {\n            for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n                for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n                    this.disconnectOutlet(outlet, element, outletName);\n                }\n            }\n        }\n    }\n    updateSelectorObserverForOutlet(outletName) {\n        const observer = this.selectorObserverMap.get(outletName);\n        if (observer) {\n            observer.selector = this.selector(outletName);\n        }\n    }\n    setupSelectorObserverForOutlet(outletName) {\n        const selector = this.selector(outletName);\n        const selectorObserver = new SelectorObserver(document.body, selector, this, { outletName });\n        this.selectorObserverMap.set(outletName, selectorObserver);\n        selectorObserver.start();\n    }\n    setupAttributeObserverForOutlet(outletName) {\n        const attributeName = this.attributeNameForOutletName(outletName);\n        const attributeObserver = new AttributeObserver(this.scope.element, attributeName, this);\n        this.attributeObserverMap.set(outletName, attributeObserver);\n        attributeObserver.start();\n    }\n    selector(outletName) {\n        return this.scope.outlets.getSelectorForOutletName(outletName);\n    }\n    attributeNameForOutletName(outletName) {\n        return this.scope.schema.outletAttributeForScope(this.identifier, outletName);\n    }\n    getOutletNameFromOutletAttributeName(attributeName) {\n        return this.outletDefinitions.find((outletName) => this.attributeNameForOutletName(outletName) === attributeName);\n    }\n    get outletDependencies() {\n        const dependencies = new Multimap();\n        this.router.modules.forEach((module) => {\n            const constructor = module.definition.controllerConstructor;\n            const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n            outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n        });\n        return dependencies;\n    }\n    get outletDefinitions() {\n        return this.outletDependencies.getKeysForValue(this.identifier);\n    }\n    get dependentControllerIdentifiers() {\n        return this.outletDependencies.getValuesForKey(this.identifier);\n    }\n    get dependentContexts() {\n        const identifiers = this.dependentControllerIdentifiers;\n        return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n    }\n    hasOutlet(element, outletName) {\n        return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n    }\n    getOutlet(element, outletName) {\n        return this.application.getControllerForElementAndIdentifier(element, outletName);\n    }\n    getOutletFromMap(element, outletName) {\n        return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get router() {\n        return this.application.router;\n    }\n}\n\nclass Context {\n    constructor(module, scope) {\n        this.logDebugActivity = (functionName, detail = {}) => {\n            const { identifier, controller, element } = this;\n            detail = Object.assign({ identifier, controller, element }, detail);\n            this.application.logDebugActivity(this.identifier, functionName, detail);\n        };\n        this.module = module;\n        this.scope = scope;\n        this.controller = new module.controllerConstructor(this);\n        this.bindingObserver = new BindingObserver(this, this.dispatcher);\n        this.valueObserver = new ValueObserver(this, this.controller);\n        this.targetObserver = new TargetObserver(this, this);\n        this.outletObserver = new OutletObserver(this, this);\n        try {\n            this.controller.initialize();\n            this.logDebugActivity(\"initialize\");\n        }\n        catch (error) {\n            this.handleError(error, \"initializing controller\");\n        }\n    }\n    connect() {\n        this.bindingObserver.start();\n        this.valueObserver.start();\n        this.targetObserver.start();\n        this.outletObserver.start();\n        try {\n            this.controller.connect();\n            this.logDebugActivity(\"connect\");\n        }\n        catch (error) {\n            this.handleError(error, \"connecting controller\");\n        }\n    }\n    refresh() {\n        this.outletObserver.refresh();\n    }\n    disconnect() {\n        try {\n            this.controller.disconnect();\n            this.logDebugActivity(\"disconnect\");\n        }\n        catch (error) {\n            this.handleError(error, \"disconnecting controller\");\n        }\n        this.outletObserver.stop();\n        this.targetObserver.stop();\n        this.valueObserver.stop();\n        this.bindingObserver.stop();\n    }\n    get application() {\n        return this.module.application;\n    }\n    get identifier() {\n        return this.module.identifier;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get dispatcher() {\n        return this.application.dispatcher;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get parentElement() {\n        return this.element.parentElement;\n    }\n    handleError(error, message, detail = {}) {\n        const { identifier, controller, element } = this;\n        detail = Object.assign({ identifier, controller, element }, detail);\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    targetConnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetConnected`, element);\n    }\n    targetDisconnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n    }\n    outletConnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n    }\n    outletDisconnected(outlet, element, name) {\n        this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n    }\n    invokeControllerMethod(methodName, ...args) {\n        const controller = this.controller;\n        if (typeof controller[methodName] == \"function\") {\n            controller[methodName](...args);\n        }\n    }\n}\n\nfunction bless(constructor) {\n    return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n    const shadowConstructor = extend(constructor);\n    const shadowProperties = getShadowProperties(constructor.prototype, properties);\n    Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n    return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n    const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n    return blessings.reduce((blessedProperties, blessing) => {\n        const properties = blessing(constructor);\n        for (const key in properties) {\n            const descriptor = blessedProperties[key] || {};\n            blessedProperties[key] = Object.assign(descriptor, properties[key]);\n        }\n        return blessedProperties;\n    }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n    return getOwnKeys(properties).reduce((shadowProperties, key) => {\n        const descriptor = getShadowedDescriptor(prototype, properties, key);\n        if (descriptor) {\n            Object.assign(shadowProperties, { [key]: descriptor });\n        }\n        return shadowProperties;\n    }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n    const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n    const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n    if (!shadowedByValue) {\n        const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n        if (shadowingDescriptor) {\n            descriptor.get = shadowingDescriptor.get || descriptor.get;\n            descriptor.set = shadowingDescriptor.set || descriptor.set;\n        }\n        return descriptor;\n    }\n}\nconst getOwnKeys = (() => {\n    if (typeof Object.getOwnPropertySymbols == \"function\") {\n        return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n    }\n    else {\n        return Object.getOwnPropertyNames;\n    }\n})();\nconst extend = (() => {\n    function extendWithReflect(constructor) {\n        function extended() {\n            return Reflect.construct(constructor, arguments, new.target);\n        }\n        extended.prototype = Object.create(constructor.prototype, {\n            constructor: { value: extended },\n        });\n        Reflect.setPrototypeOf(extended, constructor);\n        return extended;\n    }\n    function testReflectExtension() {\n        const a = function () {\n            this.a.call(this);\n        };\n        const b = extendWithReflect(a);\n        b.prototype.a = function () { };\n        return new b();\n    }\n    try {\n        testReflectExtension();\n        return extendWithReflect;\n    }\n    catch (error) {\n        return (constructor) => class extended extends constructor {\n        };\n    }\n})();\n\nfunction blessDefinition(definition) {\n    return {\n        identifier: definition.identifier,\n        controllerConstructor: bless(definition.controllerConstructor),\n    };\n}\n\nclass Module {\n    constructor(application, definition) {\n        this.application = application;\n        this.definition = blessDefinition(definition);\n        this.contextsByScope = new WeakMap();\n        this.connectedContexts = new Set();\n    }\n    get identifier() {\n        return this.definition.identifier;\n    }\n    get controllerConstructor() {\n        return this.definition.controllerConstructor;\n    }\n    get contexts() {\n        return Array.from(this.connectedContexts);\n    }\n    connectContextForScope(scope) {\n        const context = this.fetchContextForScope(scope);\n        this.connectedContexts.add(context);\n        context.connect();\n    }\n    disconnectContextForScope(scope) {\n        const context = this.contextsByScope.get(scope);\n        if (context) {\n            this.connectedContexts.delete(context);\n            context.disconnect();\n        }\n    }\n    fetchContextForScope(scope) {\n        let context = this.contextsByScope.get(scope);\n        if (!context) {\n            context = new Context(this, scope);\n            this.contextsByScope.set(scope, context);\n        }\n        return context;\n    }\n}\n\nclass ClassMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    has(name) {\n        return this.data.has(this.getDataKey(name));\n    }\n    get(name) {\n        return this.getAll(name)[0];\n    }\n    getAll(name) {\n        const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n        return tokenize(tokenString);\n    }\n    getAttributeName(name) {\n        return this.data.getAttributeNameForKey(this.getDataKey(name));\n    }\n    getDataKey(name) {\n        return `${name}-class`;\n    }\n    get data() {\n        return this.scope.data;\n    }\n}\n\nclass DataMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.getAttribute(name);\n    }\n    set(key, value) {\n        const name = this.getAttributeNameForKey(key);\n        this.element.setAttribute(name, value);\n        return this.get(key);\n    }\n    has(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.hasAttribute(name);\n    }\n    delete(key) {\n        if (this.has(key)) {\n            const name = this.getAttributeNameForKey(key);\n            this.element.removeAttribute(name);\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    getAttributeNameForKey(key) {\n        return `data-${this.identifier}-${dasherize(key)}`;\n    }\n}\n\nclass Guide {\n    constructor(logger) {\n        this.warnedKeysByObject = new WeakMap();\n        this.logger = logger;\n    }\n    warn(object, key, message) {\n        let warnedKeys = this.warnedKeysByObject.get(object);\n        if (!warnedKeys) {\n            warnedKeys = new Set();\n            this.warnedKeysByObject.set(object, warnedKeys);\n        }\n        if (!warnedKeys.has(key)) {\n            warnedKeys.add(key);\n            this.logger.warn(message, object);\n        }\n    }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n    return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(targetName) {\n        return this.find(targetName) != null;\n    }\n    find(...targetNames) {\n        return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n    }\n    findAll(...targetNames) {\n        return targetNames.reduce((targets, targetName) => [\n            ...targets,\n            ...this.findAllTargets(targetName),\n            ...this.findAllLegacyTargets(targetName),\n        ], []);\n    }\n    findTarget(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findElement(selector);\n    }\n    findAllTargets(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector);\n    }\n    getSelectorForTargetName(targetName) {\n        const attributeName = this.schema.targetAttributeForScope(this.identifier);\n        return attributeValueContainsToken(attributeName, targetName);\n    }\n    findLegacyTarget(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.deprecate(this.scope.findElement(selector), targetName);\n    }\n    findAllLegacyTargets(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n    }\n    getLegacySelectorForTargetName(targetName) {\n        const targetDescriptor = `${this.identifier}.${targetName}`;\n        return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n    }\n    deprecate(element, targetName) {\n        if (element) {\n            const { identifier } = this;\n            const attributeName = this.schema.targetAttribute;\n            const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n            this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n                `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n        }\n        return element;\n    }\n    get guide() {\n        return this.scope.guide;\n    }\n}\n\nclass OutletSet {\n    constructor(scope, controllerElement) {\n        this.scope = scope;\n        this.controllerElement = controllerElement;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(outletName) {\n        return this.find(outletName) != null;\n    }\n    find(...outletNames) {\n        return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n    }\n    findAll(...outletNames) {\n        return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n    }\n    getSelectorForOutletName(outletName) {\n        const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n        return this.controllerElement.getAttribute(attributeName);\n    }\n    findOutlet(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        if (selector)\n            return this.findElement(selector, outletName);\n    }\n    findAllOutlets(outletName) {\n        const selector = this.getSelectorForOutletName(outletName);\n        return selector ? this.findAllElements(selector, outletName) : [];\n    }\n    findElement(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n    }\n    findAllElements(selector, outletName) {\n        const elements = this.scope.queryElements(selector);\n        return elements.filter((element) => this.matchesElement(element, selector, outletName));\n    }\n    matchesElement(element, selector, outletName) {\n        const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n        return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n    }\n}\n\nclass Scope {\n    constructor(schema, element, identifier, logger) {\n        this.targets = new TargetSet(this);\n        this.classes = new ClassMap(this);\n        this.data = new DataMap(this);\n        this.containsElement = (element) => {\n            return element.closest(this.controllerSelector) === this.element;\n        };\n        this.schema = schema;\n        this.element = element;\n        this.identifier = identifier;\n        this.guide = new Guide(logger);\n        this.outlets = new OutletSet(this.documentScope, element);\n    }\n    findElement(selector) {\n        return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n    }\n    findAllElements(selector) {\n        return [\n            ...(this.element.matches(selector) ? [this.element] : []),\n            ...this.queryElements(selector).filter(this.containsElement),\n        ];\n    }\n    queryElements(selector) {\n        return Array.from(this.element.querySelectorAll(selector));\n    }\n    get controllerSelector() {\n        return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n    }\n    get isDocumentScope() {\n        return this.element === document.documentElement;\n    }\n    get documentScope() {\n        return this.isDocumentScope\n            ? this\n            : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n    }\n}\n\nclass ScopeObserver {\n    constructor(element, schema, delegate) {\n        this.element = element;\n        this.schema = schema;\n        this.delegate = delegate;\n        this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n        this.scopesByIdentifierByElement = new WeakMap();\n        this.scopeReferenceCounts = new WeakMap();\n    }\n    start() {\n        this.valueListObserver.start();\n    }\n    stop() {\n        this.valueListObserver.stop();\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    parseValueForToken(token) {\n        const { element, content: identifier } = token;\n        return this.parseValueForElementAndIdentifier(element, identifier);\n    }\n    parseValueForElementAndIdentifier(element, identifier) {\n        const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n        let scope = scopesByIdentifier.get(identifier);\n        if (!scope) {\n            scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n            scopesByIdentifier.set(identifier, scope);\n        }\n        return scope;\n    }\n    elementMatchedValue(element, value) {\n        const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n        this.scopeReferenceCounts.set(value, referenceCount);\n        if (referenceCount == 1) {\n            this.delegate.scopeConnected(value);\n        }\n    }\n    elementUnmatchedValue(element, value) {\n        const referenceCount = this.scopeReferenceCounts.get(value);\n        if (referenceCount) {\n            this.scopeReferenceCounts.set(value, referenceCount - 1);\n            if (referenceCount == 1) {\n                this.delegate.scopeDisconnected(value);\n            }\n        }\n    }\n    fetchScopesByIdentifierForElement(element) {\n        let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n        if (!scopesByIdentifier) {\n            scopesByIdentifier = new Map();\n            this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n        }\n        return scopesByIdentifier;\n    }\n}\n\nclass Router {\n    constructor(application) {\n        this.application = application;\n        this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n        this.scopesByIdentifier = new Multimap();\n        this.modulesByIdentifier = new Map();\n    }\n    get element() {\n        return this.application.element;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get logger() {\n        return this.application.logger;\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    get modules() {\n        return Array.from(this.modulesByIdentifier.values());\n    }\n    get contexts() {\n        return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n    }\n    start() {\n        this.scopeObserver.start();\n    }\n    stop() {\n        this.scopeObserver.stop();\n    }\n    loadDefinition(definition) {\n        this.unloadIdentifier(definition.identifier);\n        const module = new Module(this.application, definition);\n        this.connectModule(module);\n        const afterLoad = definition.controllerConstructor.afterLoad;\n        if (afterLoad) {\n            afterLoad.call(definition.controllerConstructor, definition.identifier, this.application);\n        }\n    }\n    unloadIdentifier(identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            this.disconnectModule(module);\n        }\n    }\n    getContextForElementAndIdentifier(element, identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            return module.contexts.find((context) => context.element == element);\n        }\n    }\n    proposeToConnectScopeForElementAndIdentifier(element, identifier) {\n        const scope = this.scopeObserver.parseValueForElementAndIdentifier(element, identifier);\n        if (scope) {\n            this.scopeObserver.elementMatchedValue(scope.element, scope);\n        }\n        else {\n            console.error(`Couldn't find or create scope for identifier: \"${identifier}\" and element:`, element);\n        }\n    }\n    handleError(error, message, detail) {\n        this.application.handleError(error, message, detail);\n    }\n    createScopeForElementAndIdentifier(element, identifier) {\n        return new Scope(this.schema, element, identifier, this.logger);\n    }\n    scopeConnected(scope) {\n        this.scopesByIdentifier.add(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.connectContextForScope(scope);\n        }\n    }\n    scopeDisconnected(scope) {\n        this.scopesByIdentifier.delete(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.disconnectContextForScope(scope);\n        }\n    }\n    connectModule(module) {\n        this.modulesByIdentifier.set(module.identifier, module);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.connectContextForScope(scope));\n    }\n    disconnectModule(module) {\n        this.modulesByIdentifier.delete(module.identifier);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach((scope) => module.disconnectContextForScope(scope));\n    }\n}\n\nconst defaultSchema = {\n    controllerAttribute: \"data-controller\",\n    actionAttribute: \"data-action\",\n    targetAttribute: \"data-target\",\n    targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n    outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n    keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\", page_up: \"PageUp\", page_down: \"PageDown\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n    return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n    constructor(element = document.documentElement, schema = defaultSchema) {\n        this.logger = console;\n        this.debug = false;\n        this.logDebugActivity = (identifier, functionName, detail = {}) => {\n            if (this.debug) {\n                this.logFormattedMessage(identifier, functionName, detail);\n            }\n        };\n        this.element = element;\n        this.schema = schema;\n        this.dispatcher = new Dispatcher(this);\n        this.router = new Router(this);\n        this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n    }\n    static start(element, schema) {\n        const application = new this(element, schema);\n        application.start();\n        return application;\n    }\n    async start() {\n        await domReady();\n        this.logDebugActivity(\"application\", \"starting\");\n        this.dispatcher.start();\n        this.router.start();\n        this.logDebugActivity(\"application\", \"start\");\n    }\n    stop() {\n        this.logDebugActivity(\"application\", \"stopping\");\n        this.dispatcher.stop();\n        this.router.stop();\n        this.logDebugActivity(\"application\", \"stop\");\n    }\n    register(identifier, controllerConstructor) {\n        this.load({ identifier, controllerConstructor });\n    }\n    registerActionOption(name, filter) {\n        this.actionDescriptorFilters[name] = filter;\n    }\n    load(head, ...rest) {\n        const definitions = Array.isArray(head) ? head : [head, ...rest];\n        definitions.forEach((definition) => {\n            if (definition.controllerConstructor.shouldLoad) {\n                this.router.loadDefinition(definition);\n            }\n        });\n    }\n    unload(head, ...rest) {\n        const identifiers = Array.isArray(head) ? head : [head, ...rest];\n        identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n    }\n    get controllers() {\n        return this.router.contexts.map((context) => context.controller);\n    }\n    getControllerForElementAndIdentifier(element, identifier) {\n        const context = this.router.getContextForElementAndIdentifier(element, identifier);\n        return context ? context.controller : null;\n    }\n    handleError(error, message, detail) {\n        var _a;\n        this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n        (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n    }\n    logFormattedMessage(identifier, functionName, detail = {}) {\n        detail = Object.assign({ application: this }, detail);\n        this.logger.groupCollapsed(`${identifier} #${functionName}`);\n        this.logger.log(\"details:\", Object.assign({}, detail));\n        this.logger.groupEnd();\n    }\n}\nfunction domReady() {\n    return new Promise((resolve) => {\n        if (document.readyState == \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", () => resolve());\n        }\n        else {\n            resolve();\n        }\n    });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n    const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n    return classes.reduce((properties, classDefinition) => {\n        return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n    }, {});\n}\nfunction propertiesForClassDefinition(key) {\n    return {\n        [`${key}Class`]: {\n            get() {\n                const { classes } = this;\n                if (classes.has(key)) {\n                    return classes.get(key);\n                }\n                else {\n                    const attribute = classes.getAttributeName(key);\n                    throw new Error(`Missing attribute \"${attribute}\"`);\n                }\n            },\n        },\n        [`${key}Classes`]: {\n            get() {\n                return this.classes.getAll(key);\n            },\n        },\n        [`has${capitalize(key)}Class`]: {\n            get() {\n                return this.classes.has(key);\n            },\n        },\n    };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n    const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n    return outlets.reduce((properties, outletDefinition) => {\n        return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n    }, {});\n}\nfunction getOutletController(controller, element, identifier) {\n    return controller.application.getControllerForElementAndIdentifier(element, identifier);\n}\nfunction getControllerAndEnsureConnectedScope(controller, element, outletName) {\n    let outletController = getOutletController(controller, element, outletName);\n    if (outletController)\n        return outletController;\n    controller.application.router.proposeToConnectScopeForElementAndIdentifier(element, outletName);\n    outletController = getOutletController(controller, element, outletName);\n    if (outletController)\n        return outletController;\n}\nfunction propertiesForOutletDefinition(name) {\n    const camelizedName = namespaceCamelize(name);\n    return {\n        [`${camelizedName}Outlet`]: {\n            get() {\n                const outletElement = this.outlets.find(name);\n                const selector = this.outlets.getSelectorForOutletName(name);\n                if (outletElement) {\n                    const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n                    if (outletController)\n                        return outletController;\n                    throw new Error(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`);\n                }\n                throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n            },\n        },\n        [`${camelizedName}Outlets`]: {\n            get() {\n                const outlets = this.outlets.findAll(name);\n                if (outlets.length > 0) {\n                    return outlets\n                        .map((outletElement) => {\n                        const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n                        if (outletController)\n                            return outletController;\n                        console.warn(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`, outletElement);\n                    })\n                        .filter((controller) => controller);\n                }\n                return [];\n            },\n        },\n        [`${camelizedName}OutletElement`]: {\n            get() {\n                const outletElement = this.outlets.find(name);\n                const selector = this.outlets.getSelectorForOutletName(name);\n                if (outletElement) {\n                    return outletElement;\n                }\n                else {\n                    throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n                }\n            },\n        },\n        [`${camelizedName}OutletElements`]: {\n            get() {\n                return this.outlets.findAll(name);\n            },\n        },\n        [`has${capitalize(camelizedName)}Outlet`]: {\n            get() {\n                return this.outlets.has(name);\n            },\n        },\n    };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n    const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n    return targets.reduce((properties, targetDefinition) => {\n        return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n    }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n    return {\n        [`${name}Target`]: {\n            get() {\n                const target = this.targets.find(name);\n                if (target) {\n                    return target;\n                }\n                else {\n                    throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n                }\n            },\n        },\n        [`${name}Targets`]: {\n            get() {\n                return this.targets.findAll(name);\n            },\n        },\n        [`has${capitalize(name)}Target`]: {\n            get() {\n                return this.targets.has(name);\n            },\n        },\n    };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n    const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n    const propertyDescriptorMap = {\n        valueDescriptorMap: {\n            get() {\n                return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n                    const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n                    const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n                    return Object.assign(result, { [attributeName]: valueDescriptor });\n                }, {});\n            },\n        },\n    };\n    return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n        return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n    }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n    const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n    const { key, name, reader: read, writer: write } = definition;\n    return {\n        [name]: {\n            get() {\n                const value = this.data.get(key);\n                if (value !== null) {\n                    return read(value);\n                }\n                else {\n                    return definition.defaultValue;\n                }\n            },\n            set(value) {\n                if (value === undefined) {\n                    this.data.delete(key);\n                }\n                else {\n                    this.data.set(key, write(value));\n                }\n            },\n        },\n        [`has${capitalize(name)}`]: {\n            get() {\n                return this.data.has(key) || definition.hasCustomDefaultValue;\n            },\n        },\n    };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n    return valueDescriptorForTokenAndTypeDefinition({\n        controller,\n        token,\n        typeDefinition,\n    });\n}\nfunction parseValueTypeConstant(constant) {\n    switch (constant) {\n        case Array:\n            return \"array\";\n        case Boolean:\n            return \"boolean\";\n        case Number:\n            return \"number\";\n        case Object:\n            return \"object\";\n        case String:\n            return \"string\";\n    }\n}\nfunction parseValueTypeDefault(defaultValue) {\n    switch (typeof defaultValue) {\n        case \"boolean\":\n            return \"boolean\";\n        case \"number\":\n            return \"number\";\n        case \"string\":\n            return \"string\";\n    }\n    if (Array.isArray(defaultValue))\n        return \"array\";\n    if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n        return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n    const { controller, token, typeObject } = payload;\n    const hasType = isSomething(typeObject.type);\n    const hasDefault = isSomething(typeObject.default);\n    const fullObject = hasType && hasDefault;\n    const onlyType = hasType && !hasDefault;\n    const onlyDefault = !hasType && hasDefault;\n    const typeFromObject = parseValueTypeConstant(typeObject.type);\n    const typeFromDefaultValue = parseValueTypeDefault(payload.typeObject.default);\n    if (onlyType)\n        return typeFromObject;\n    if (onlyDefault)\n        return typeFromDefaultValue;\n    if (typeFromObject !== typeFromDefaultValue) {\n        const propertyPath = controller ? `${controller}.${token}` : token;\n        throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${typeObject.default}\" is of type \"${typeFromDefaultValue}\".`);\n    }\n    if (fullObject)\n        return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n    const { controller, token, typeDefinition } = payload;\n    const typeObject = { controller, token, typeObject: typeDefinition };\n    const typeFromObject = parseValueTypeObject(typeObject);\n    const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n    const typeFromConstant = parseValueTypeConstant(typeDefinition);\n    const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n    if (type)\n        return type;\n    const propertyPath = controller ? `${controller}.${typeDefinition}` : token;\n    throw new Error(`Unknown value type \"${propertyPath}\" for \"${token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n    const constant = parseValueTypeConstant(typeDefinition);\n    if (constant)\n        return defaultValuesByType[constant];\n    const hasDefault = hasProperty(typeDefinition, \"default\");\n    const hasType = hasProperty(typeDefinition, \"type\");\n    const typeObject = typeDefinition;\n    if (hasDefault)\n        return typeObject.default;\n    if (hasType) {\n        const { type } = typeObject;\n        const constantFromType = parseValueTypeConstant(type);\n        if (constantFromType)\n            return defaultValuesByType[constantFromType];\n    }\n    return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n    const { token, typeDefinition } = payload;\n    const key = `${dasherize(token)}-value`;\n    const type = parseValueTypeDefinition(payload);\n    return {\n        type,\n        key,\n        name: camelize(key),\n        get defaultValue() {\n            return defaultValueForDefinition(typeDefinition);\n        },\n        get hasCustomDefaultValue() {\n            return parseValueTypeDefault(typeDefinition) !== undefined;\n        },\n        reader: readers[type],\n        writer: writers[type] || writers.default,\n    };\n}\nconst defaultValuesByType = {\n    get array() {\n        return [];\n    },\n    boolean: false,\n    number: 0,\n    get object() {\n        return {};\n    },\n    string: \"\",\n};\nconst readers = {\n    array(value) {\n        const array = JSON.parse(value);\n        if (!Array.isArray(array)) {\n            throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n        }\n        return array;\n    },\n    boolean(value) {\n        return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n    },\n    number(value) {\n        return Number(value.replace(/_/g, \"\"));\n    },\n    object(value) {\n        const object = JSON.parse(value);\n        if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n            throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n        }\n        return object;\n    },\n    string(value) {\n        return value;\n    },\n};\nconst writers = {\n    default: writeString,\n    array: writeJSON,\n    object: writeJSON,\n};\nfunction writeJSON(value) {\n    return JSON.stringify(value);\n}\nfunction writeString(value) {\n    return `${value}`;\n}\n\nclass Controller {\n    constructor(context) {\n        this.context = context;\n    }\n    static get shouldLoad() {\n        return true;\n    }\n    static afterLoad(_identifier, _application) {\n        return;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get targets() {\n        return this.scope.targets;\n    }\n    get outlets() {\n        return this.scope.outlets;\n    }\n    get classes() {\n        return this.scope.classes;\n    }\n    get data() {\n        return this.scope.data;\n    }\n    initialize() {\n    }\n    connect() {\n    }\n    disconnect() {\n    }\n    dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true, } = {}) {\n        const type = prefix ? `${prefix}:${eventName}` : eventName;\n        const event = new CustomEvent(type, { detail, bubbles, cancelable });\n        target.dispatchEvent(event);\n        return event;\n    }\n}\nController.blessings = [\n    ClassPropertiesBlessing,\n    TargetPropertiesBlessing,\n    ValuePropertiesBlessing,\n    OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\napplication.debug = false\nwindow.Stimulus   = application\n\nexport { application }\n\n\ndocument.addEventListener(\"turbo:load\", () => {\n    const clientLocale = localStorage.getItem('locale')\n    const browserLocale = navigator.language || navigator.userLanguage;\n    if (clientLocale == \"de\" && browserLocale != \"de\" && !window.location.search.includes(\"locale=de\")) {\n        window.location = \"/switch_locale?new_locale=de\";\n    }\n\n    const playEpBtn = document.querySelector('#play-episode-btn')\n    const currentEpisodeElement = document.getElementById('current-episode')\n    if (playEpBtn) {\n        if (currentEpisodeElement) {\n            playEpBtn.classList.remove(\"hidden\")\n        } else {\n            playEpBtn.classList.add(\"hidden\")\n        }\n    }\n})\n\n\nwindow.formatTime = function(time) {\n    const min = Math.floor(time / 60);\n    const sec = Math.floor(time % 60);\n    return min + ':' + ((sec<10) ? ('0' + sec) : sec);\n}", "import \"trix\"\nimport \"@rails/actiontext\"\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  connect() {\n  }\n}", "var sparkMd5 = {\n  exports: {}\n};\n\n(function(module, exports) {\n  (function(factory) {\n    {\n      module.exports = factory();\n    }\n  })((function(undefined$1) {\n    var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n    function md5cycle(x, k) {\n      var a = x[0], b = x[1], c = x[2], d = x[3];\n      a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[10] - 42063 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b ^ c ^ d) + k[5] - 378558 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      x[0] = a + x[0] | 0;\n      x[1] = b + x[1] | 0;\n      x[2] = c + x[2] | 0;\n      x[3] = d + x[3] | 0;\n    }\n    function md5blk(s) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n      }\n      return md5blks;\n    }\n    function md5blk_array(a) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n      }\n      return md5blks;\n    }\n    function md51(s) {\n      var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk(s.substring(i - 64, i)));\n      }\n      s = s.substring(i - 64);\n      length = s.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function md51_array(a) {\n      var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n      }\n      a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n      length = a.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= a[i] << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function rhex(n) {\n      var s = \"\", j;\n      for (j = 0; j < 4; j += 1) {\n        s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n      }\n      return s;\n    }\n    function hex(x) {\n      var i;\n      for (i = 0; i < x.length; i += 1) {\n        x[i] = rhex(x[i]);\n      }\n      return x.join(\"\");\n    }\n    if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n    if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n      (function() {\n        function clamp(val, length) {\n          val = val | 0 || 0;\n          if (val < 0) {\n            return Math.max(val + length, 0);\n          }\n          return Math.min(val, length);\n        }\n        ArrayBuffer.prototype.slice = function(from, to) {\n          var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n          if (to !== undefined$1) {\n            end = clamp(to, length);\n          }\n          if (begin > end) {\n            return new ArrayBuffer(0);\n          }\n          num = end - begin;\n          target = new ArrayBuffer(num);\n          targetArray = new Uint8Array(target);\n          sourceArray = new Uint8Array(this, begin, num);\n          targetArray.set(sourceArray);\n          return target;\n        };\n      })();\n    }\n    function toUtf8(str) {\n      if (/[\\u0080-\\uFFFF]/.test(str)) {\n        str = unescape(encodeURIComponent(str));\n      }\n      return str;\n    }\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n      var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n      for (i = 0; i < length; i += 1) {\n        arr[i] = str.charCodeAt(i);\n      }\n      return returnUInt8Array ? arr : buff;\n    }\n    function arrayBuffer2Utf8Str(buff) {\n      return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n      var result = new Uint8Array(first.byteLength + second.byteLength);\n      result.set(new Uint8Array(first));\n      result.set(new Uint8Array(second), first.byteLength);\n      return returnUInt8Array ? result : result.buffer;\n    }\n    function hexToBinaryString(hex) {\n      var bytes = [], length = hex.length, x;\n      for (x = 0; x < length - 1; x += 2) {\n        bytes.push(parseInt(hex.substr(x, 2), 16));\n      }\n      return String.fromCharCode.apply(String, bytes);\n    }\n    function SparkMD5() {\n      this.reset();\n    }\n    SparkMD5.prototype.append = function(str) {\n      this.appendBinary(toUtf8(str));\n      return this;\n    };\n    SparkMD5.prototype.appendBinary = function(contents) {\n      this._buff += contents;\n      this._length += contents.length;\n      var length = this._buff.length, i;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n      }\n      this._buff = this._buff.substring(i - 64);\n      return this;\n    };\n    SparkMD5.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.prototype.reset = function() {\n      this._buff = \"\";\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.prototype.getState = function() {\n      return {\n        buff: this._buff,\n        length: this._length,\n        hash: this._hash.slice()\n      };\n    };\n    SparkMD5.prototype.setState = function(state) {\n      this._buff = state.buff;\n      this._length = state.length;\n      this._hash = state.hash;\n      return this;\n    };\n    SparkMD5.prototype.destroy = function() {\n      delete this._hash;\n      delete this._buff;\n      delete this._length;\n    };\n    SparkMD5.prototype._finish = function(tail, length) {\n      var i = length, tmp, lo, hi;\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(this._hash, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = this._length * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(this._hash, tail);\n    };\n    SparkMD5.hash = function(str, raw) {\n      return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n    SparkMD5.hashBinary = function(content, raw) {\n      var hash = md51(content), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    SparkMD5.ArrayBuffer = function() {\n      this.reset();\n    };\n    SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n      var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n      this._length += arr.byteLength;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n      }\n      this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff[i] << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.ArrayBuffer.prototype.reset = function() {\n      this._buff = new Uint8Array(0);\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.getState = function() {\n      var state = SparkMD5.prototype.getState.call(this);\n      state.buff = arrayBuffer2Utf8Str(state.buff);\n      return state;\n    };\n    SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n      state.buff = utf8Str2ArrayBuffer(state.buff, true);\n      return SparkMD5.prototype.setState.call(this, state);\n    };\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n    SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n      var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    return SparkMD5;\n  }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n  static create(file, callback) {\n    const instance = new FileChecksum(file);\n    instance.create(callback);\n  }\n  constructor(file) {\n    this.file = file;\n    this.chunkSize = 2097152;\n    this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n    this.chunkIndex = 0;\n  }\n  create(callback) {\n    this.callback = callback;\n    this.md5Buffer = new SparkMD5.ArrayBuffer;\n    this.fileReader = new FileReader;\n    this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n    this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n    this.readNextChunk();\n  }\n  fileReaderDidLoad(event) {\n    this.md5Buffer.append(event.target.result);\n    if (!this.readNextChunk()) {\n      const binaryDigest = this.md5Buffer.end(true);\n      const base64digest = btoa(binaryDigest);\n      this.callback(null, base64digest);\n    }\n  }\n  fileReaderDidError(event) {\n    this.callback(`Error reading ${this.file.name}`);\n  }\n  readNextChunk() {\n    if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n      const start = this.chunkIndex * this.chunkSize;\n      const end = Math.min(start + this.chunkSize, this.file.size);\n      const bytes = fileSlice.call(this.file, start, end);\n      this.fileReader.readAsArrayBuffer(bytes);\n      this.chunkIndex++;\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n\nfunction getMetaValue(name) {\n  const element = findElement(document.head, `meta[name=\"${name}\"]`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nfunction findElements(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  const elements = root.querySelectorAll(selector);\n  return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n  const {disabled: disabled} = element;\n  const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n  const event = document.createEvent(\"Event\");\n  event.initEvent(type, bubbles || true, cancelable || true);\n  event.detail = detail || {};\n  try {\n    element.disabled = false;\n    element.dispatchEvent(event);\n  } finally {\n    element.disabled = disabled;\n  }\n  return event;\n}\n\nfunction toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  } else if (Array.from) {\n    return Array.from(value);\n  } else {\n    return [].slice.call(value);\n  }\n}\n\nclass BlobRecord {\n  constructor(file, checksum, url, customHeaders = {}) {\n    this.file = file;\n    this.attributes = {\n      filename: file.name,\n      content_type: file.type || \"application/octet-stream\",\n      byte_size: file.size,\n      checksum: checksum\n    };\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"POST\", url, true);\n    this.xhr.responseType = \"json\";\n    this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n    this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n    this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n    Object.keys(customHeaders).forEach((headerKey => {\n      this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n    }));\n    const csrfToken = getMetaValue(\"csrf-token\");\n    if (csrfToken != undefined) {\n      this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  get status() {\n    return this.xhr.status;\n  }\n  get response() {\n    const {responseType: responseType, response: response} = this.xhr;\n    if (responseType == \"json\") {\n      return response;\n    } else {\n      return JSON.parse(response);\n    }\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(JSON.stringify({\n      blob: this.attributes\n    }));\n  }\n  requestDidLoad(event) {\n    if (this.status >= 200 && this.status < 300) {\n      const {response: response} = this;\n      const {direct_upload: direct_upload} = response;\n      delete response.direct_upload;\n      this.attributes = response;\n      this.directUploadData = direct_upload;\n      this.callback(null, this.toJSON());\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n  }\n  toJSON() {\n    const result = {};\n    for (const key in this.attributes) {\n      result[key] = this.attributes[key];\n    }\n    return result;\n  }\n}\n\nclass BlobUpload {\n  constructor(blob) {\n    this.blob = blob;\n    this.file = blob.file;\n    const {url: url, headers: headers} = blob.directUploadData;\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"PUT\", url, true);\n    this.xhr.responseType = \"text\";\n    for (const key in headers) {\n      this.xhr.setRequestHeader(key, headers[key]);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(this.file.slice());\n  }\n  requestDidLoad(event) {\n    const {status: status, response: response} = this.xhr;\n    if (status >= 200 && status < 300) {\n      this.callback(null, response);\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n  }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n  constructor(file, url, delegate, customHeaders = {}) {\n    this.id = ++id;\n    this.file = file;\n    this.url = url;\n    this.delegate = delegate;\n    this.customHeaders = customHeaders;\n  }\n  create(callback) {\n    FileChecksum.create(this.file, ((error, checksum) => {\n      if (error) {\n        callback(error);\n        return;\n      }\n      const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n      notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n      blob.create((error => {\n        if (error) {\n          callback(error);\n        } else {\n          const upload = new BlobUpload(blob);\n          notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n          upload.create((error => {\n            if (error) {\n              callback(error);\n            } else {\n              callback(null, blob.toJSON());\n            }\n          }));\n        }\n      }));\n    }));\n  }\n}\n\nfunction notify(object, methodName, ...messages) {\n  if (object && typeof object[methodName] == \"function\") {\n    return object[methodName](...messages);\n  }\n}\n\nclass DirectUploadController {\n  constructor(input, file) {\n    this.input = input;\n    this.file = file;\n    this.directUpload = new DirectUpload(this.file, this.url, this);\n    this.dispatch(\"initialize\");\n  }\n  start(callback) {\n    const hiddenInput = document.createElement(\"input\");\n    hiddenInput.type = \"hidden\";\n    hiddenInput.name = this.input.name;\n    this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n    this.dispatch(\"start\");\n    this.directUpload.create(((error, attributes) => {\n      if (error) {\n        hiddenInput.parentNode.removeChild(hiddenInput);\n        this.dispatchError(error);\n      } else {\n        hiddenInput.value = attributes.signed_id;\n      }\n      this.dispatch(\"end\");\n      callback(error);\n    }));\n  }\n  uploadRequestDidProgress(event) {\n    const progress = event.loaded / event.total * 100;\n    if (progress) {\n      this.dispatch(\"progress\", {\n        progress: progress\n      });\n    }\n  }\n  get url() {\n    return this.input.getAttribute(\"data-direct-upload-url\");\n  }\n  dispatch(name, detail = {}) {\n    detail.file = this.file;\n    detail.id = this.directUpload.id;\n    return dispatchEvent(this.input, `direct-upload:${name}`, {\n      detail: detail\n    });\n  }\n  dispatchError(error) {\n    const event = this.dispatch(\"error\", {\n      error: error\n    });\n    if (!event.defaultPrevented) {\n      alert(error);\n    }\n  }\n  directUploadWillCreateBlobWithXHR(xhr) {\n    this.dispatch(\"before-blob-request\", {\n      xhr: xhr\n    });\n  }\n  directUploadWillStoreFileWithXHR(xhr) {\n    this.dispatch(\"before-storage-request\", {\n      xhr: xhr\n    });\n    xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n  }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n  constructor(form) {\n    this.form = form;\n    this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n  }\n  start(callback) {\n    const controllers = this.createDirectUploadControllers();\n    const startNextController = () => {\n      const controller = controllers.shift();\n      if (controller) {\n        controller.start((error => {\n          if (error) {\n            callback(error);\n            this.dispatch(\"end\");\n          } else {\n            startNextController();\n          }\n        }));\n      } else {\n        callback();\n        this.dispatch(\"end\");\n      }\n    };\n    this.dispatch(\"start\");\n    startNextController();\n  }\n  createDirectUploadControllers() {\n    const controllers = [];\n    this.inputs.forEach((input => {\n      toArray(input.files).forEach((file => {\n        const controller = new DirectUploadController(input, file);\n        controllers.push(controller);\n      }));\n    }));\n    return controllers;\n  }\n  dispatch(name, detail = {}) {\n    return dispatchEvent(this.form, `direct-uploads:${name}`, {\n      detail: detail\n    });\n  }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n  if (!started) {\n    started = true;\n    document.addEventListener(\"click\", didClick, true);\n    document.addEventListener(\"submit\", didSubmitForm, true);\n    document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n  }\n}\n\nfunction didClick(event) {\n  const button = event.target.closest(\"button, input\");\n  if (button && button.type === \"submit\" && button.form) {\n    submitButtonsByForm.set(button.form, button);\n  }\n}\n\nfunction didSubmitForm(event) {\n  handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n  if (event.target.tagName == \"FORM\") {\n    handleFormSubmissionEvent(event);\n  }\n}\n\nfunction handleFormSubmissionEvent(event) {\n  const form = event.target;\n  if (form.hasAttribute(processingAttribute)) {\n    event.preventDefault();\n    return;\n  }\n  const controller = new DirectUploadsController(form);\n  const {inputs: inputs} = controller;\n  if (inputs.length) {\n    event.preventDefault();\n    form.setAttribute(processingAttribute, \"\");\n    inputs.forEach(disable);\n    controller.start((error => {\n      form.removeAttribute(processingAttribute);\n      if (error) {\n        inputs.forEach(enable);\n      } else {\n        submitForm(form);\n      }\n    }));\n  }\n}\n\nfunction submitForm(form) {\n  let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n  if (button) {\n    const {disabled: disabled} = button;\n    button.disabled = false;\n    button.focus();\n    button.click();\n    button.disabled = disabled;\n  } else {\n    button = document.createElement(\"input\");\n    button.type = \"submit\";\n    button.style.display = \"none\";\n    form.appendChild(button);\n    button.click();\n    form.removeChild(button);\n  }\n  submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n  input.disabled = true;\n}\n\nfunction enable(input) {\n  input.disabled = false;\n}\n\nfunction autostart() {\n  if (window.ActiveStorage) {\n    start();\n  }\n}\n\nsetTimeout(autostart, 1);\n\nclass AttachmentUpload {\n  constructor(attachment, element) {\n    this.attachment = attachment;\n    this.element = element;\n    this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n  }\n  start() {\n    this.directUpload.create(this.directUploadDidComplete.bind(this));\n  }\n  directUploadWillStoreFileWithXHR(xhr) {\n    xhr.upload.addEventListener(\"progress\", (event => {\n      const progress = event.loaded / event.total * 100;\n      this.attachment.setUploadProgress(progress);\n    }));\n  }\n  directUploadDidComplete(error, attributes) {\n    if (error) {\n      throw new Error(`Direct upload failed: ${error}`);\n    }\n    this.attachment.setAttributes({\n      sgid: attributes.attachable_sgid,\n      url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n    });\n  }\n  createBlobUrl(signedId, filename) {\n    return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n  }\n  get directUploadUrl() {\n    return this.element.dataset.directUploadUrl;\n  }\n  get blobUrlTemplate() {\n    return this.element.dataset.blobUrlTemplate;\n  }\n}\n\naddEventListener(\"trix-attachment-add\", (event => {\n  const {attachment: attachment, target: target} = event;\n  if (attachment.file) {\n    const upload = new AttachmentUpload(attachment, target);\n    upload.start();\n  }\n}));\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"player\", \"currentTime\", \"title\", \"duration\", \"pause\", \"icon\", \"close\", \"audio\", \"slider\"]\n  static values = { url: String, id: String, title: String}\n\n  connect() {\n    this.audioTarget.onloadedmetadata = function () {\n      this.sliderTarget.max = this.audioTarget.duration\n    }.bind(this)\n\n    this.audioTarget.ontimeupdate = function () {\n      const newValue = this.audioTarget.currentTime / this.audioTarget.duration * 100\n      this.sliderTarget.value = this.audioTarget.currentTime\n      const percentage = this.sliderTarget.value / this.sliderTarget.max * 100 \n      this.sliderTarget.style.background = 'linear-gradient(to right, #000, #000 ' + percentage + '%, rgba(31, 41, 55) ' + percentage + '%, rgba(31, 41, 55) 100%)'\n      this.currentTimeTarget.textContent = formatTime(this.audioTarget.currentTime)\n    }.bind(this)\n\n    this.audioTarget.addEventListener('ended', function () {\n      slider.style.background = \"none\"\n      this.currentTime = 0\n    })\n  }\n\n  idValueChanged() {\n    if(this.idValue !== \"\") {\n      this.startEpisode()\n    }\n  }\n\n  move (event) {\n    this.audioTarget.currentTime = event.target.value\n  }\n\n  formatTime(time) {\n    const min = Math.floor(time % 60);\n    const hours = Math.floor(time / 3600);\n    const sec = Math.floor(time % 60);\n    return hours + ':' + min + ':' + ((sec<10) ? ('0' + sec) : sec);\n  }\n\n  startEpisode() {\n    const currentEpElement = document.getElementById(`episode-${this.idValue}`)\n\n    this.audioTarget.setAttribute('src', currentEpElement.dataset.audioSrc)\n    this.durationTarget.textContent = formatTime(parseInt(currentEpElement.dataset.duration))\n    this.titleTarget.textContent = currentEpElement.dataset.title\n    if (this.playerTarget.classList.contains('hidden')) {\n      this.playerTarget.classList.remove('hidden')\n    }\n    this.iconTarget.attributes.d.value = \"M0 0h6v24H0zM12 0h6v24h-6z\";\n    this.audioTarget.play()\n\n    document.querySelectorAll('.current-episode-btn').forEach( e => { e.classList.add('hidden') })\n  }\n\n  playPause() {\n    if (this.audioTarget.paused) {\n      this.iconTarget.attributes.d.value = \"M0 0h6v24H0zM12 0h6v24h-6z\";\n      this.audioTarget.play()\n    } else {\n      this.iconTarget.attributes.d.value = \"M18 12L0 24V0\";\n      this.audioTarget.pause()\n    }\n  }\n\n  timePlus(event) {\n    const pa = this.audioTarget\n    if (pa.paused) { return }\n    pa.currentTime = pa.currentTime + parseInt(event.currentTarget.dataset.time)\n  }\n\n  close() {\n    this.urlValue = \"\"\n    this.idValue = \"\"\n    this.audioTarget.pause();\n    this.playerTarget.classList.add('hidden')\n    const episode_btn = document.querySelector(`.episode${ window.innerWidth > 768 ? \"-desktop-btn\" : \"-mobile-btn\"}`)\n    if (episode_btn) {\n        episode_btn.classList.remove(\"hidden\")}\n  }\n\n  setSpeed(event) {\n    const pa = this.audioTarget\n    const speed = parseFloat(event.currentTarget.dataset.speed)\n    if (pa.paused) { return }\n    const speedButtons = document.querySelectorAll('.player-speed-buttons')\n\n    speedButtons.forEach(function(el){\n        el.classList.remove('active')\n    })\n    if (pa.playbackRate === speed) {\n        pa.playbackRate = 1\n    } else {\n        pa.playbackRate = speed\n        event.currentTarget.classList.add('active')\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [ \"item\" ]\n\n  toggle () {\n    this.itemTargets.forEach(item => {\n      item.classList.toggle(\"hidden\")\n    })\n  }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"recorder\", \"recordingButton\", \"stopButton\", \"player\", \"audio\", \"start\", \"stop\", \"time\", \"consent\", \"form\", \"fileinput\", \"thanks\", \"loading\"]\n  static classes = [\"recording\"]\n\n  mediaRecorder = null\n  recording = false\n  secondsIntervalId = null\n  blob = null\n\n  incrementSeconds() {\n    let el = document.querySelector('[data-voice_messages-target=\"time\"]')\n    let s = parseInt(el.dataset.seconds)\n    s += 1\n    el.innerHTML = (s-(s%=60))/60+(9<s?':':':0')+s\n    el.dataset.seconds = s\n  }\n\n  send() {  \n    const formData = new FormData(this.formTarget)\n    formData.append('audio', this.blob);\n\n    this.recorderTarget.classList.add('hidden')\n    this.consentTarget.classList.add('hidden')\n    this.loadingTarget.classList.remove('hidden')\n\n    fetch('/voice_messages', {\n      method: 'POST',\n      body: formData\n    })\n    .then(response => {\n      this.loadingTarget.classList.add('hidden')\n      this.thanksTarget.classList.remove('hidden')\n    })\n    .catch(error => {\n      console.log(error)\n    })\n  }\n\n  startRecord() {\n    this.recordingButtonTarget.classList.add(this.recordingClass)\n    this.recordingButtonTarget.innerHTML = \"RECORDING\"\n    this.mediaRecorder.start()\n    this.recording = \"false\"\n    this.timeTarget.dataset.seconds = 0\n    this.secondsIntervalId = setInterval(this.incrementSeconds, 1000)\n  }\n\n  stopRecord() {\n    if (this.recording == false) { return }\n\n    this.recordingButtonTarget.classList.remove(this.recordingClass)\n    this.recordingButtonTarget.innerHTML = \"RECORD (REPLACING)\"\n    this.mediaRecorder.stop()\n    this.recording = false\n    clearInterval(this.secondsIntervalId)\n    this.secondsIntervalId = null\n    this.seconds = 0\n    this.playerTarget.classList.remove(\"hidden\")\n    this.consentTarget.classList.remove('hidden')\n  }\n\n  removeRecord() {\n    this.blob = null\n    this.audioTarget.src = \"\"\n    this.timeTarget.dataset.seconds = 0\n    this.timeTarget.innerHTML = \"0:00\"\n    this.playerTarget.classList.add('hidden')\n    this.consentTarget.classList.add('hidden')\n  }\n\n  setupUpload() {\n    document.querySelectorAll('.setupButtons').forEach(function(b) {b.classList.add('hidden')})\n  }\n\n  setupRecord(event) {\n    document.querySelectorAll('.setupButtons').forEach(function(b) {b.classList.add('hidden')})\n\n    navigator.mediaDevices.getUserMedia({ audio: true }).then(function (mediaStreamObj) { \n        this.mediaRecorder = new MediaRecorder(mediaStreamObj);\n      \n        let dataArray = [];\n        this.mediaRecorder.ondataavailable = function (ev) {\n          dataArray.push(ev.data);\n        }        \n \n        this.mediaRecorder.onstop = function (ev) {\n          this.blob = new Blob(dataArray, { 'type': 'audio/mp3;' })\n          dataArray = []\n          let audioSrc = window.URL.createObjectURL(this.blob)\n          this.audioTarget.src = audioSrc\n        }.bind(this)\n\n        this.recorderTarget.classList.remove(\"hidden\")\n\n      }.bind(this)).catch(function (err) {\n        console.log(err.name, err.message);\n      });\n  }\n\n  connect() {\n    \n  }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [ \"slider\", \"result\", \"serverVoted\", \"counter\" ]\n  connect() {\n    const clientVoted = localStorage.getItem(\"voted_cat1\");\n    if (clientVoted != null) {\n      let voted = clientVoted.split(\",\")\n      if (voted.indexOf(document.getElementById('rform').dataset.trikot) != -1) {\n        window.location = \"/trikots/danke\"\n      }\n      this.counterTarget.innerHTML = clientVoted.split(\",\").length\n      this.serverVotedTarget.value = clientVoted\n    }\n  }\n\n  submit(e) {\n    var clientVoted = localStorage.getItem(\"voted_cat1\");\n    var arr = []\n    if (clientVoted != null) {\n      arr = clientVoted.split(\",\")\n    }\n    arr.push(e.target.dataset.trikot)\n\n    localStorage.setItem(\"voted_cat1\", arr.toString());\n  }\n\n  change() {\n    this.resultTarget.innerText = this.sliderTarget.value \n  }\n  \n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"hamburger\"]\n  \n  connect() {\n    this.close = this.close.bind(this)\n    this.element.querySelectorAll('a').forEach((a) => {\n      a.addEventListener('click',this.close)\n    })\n  }\n\n  close() {\n    document.body.classList.remove('open_modal')\n    this.hamburgerTarget.classList.remove('active')\n    document.getElementById('menu').classList.add('hidden')\n  }\n\n  toggle(e) {\n    document.body.classList.toggle('open_modal')\n    document.getElementById('menu').classList.toggle('hidden')\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [ \"check\", \"submitter\", \"form\", \"wrapper\", \"input\", \"results\" ]\n  field = \"\"\n  timeout = null\n  gender = null\n\n  connect() {\n  }\n\n  show(ev) {\n    this.inputTarget.value = \"\"\n    this.wrapperTarget.classList.remove(\"hidden\")\n    this.inputTarget.focus()\n    this.field = ev.target.dataset.field\n    this.gender = ev.target.dataset.gender\n    if (this.gender === \"Frauen\") {\n      this.formTarget.querySelector('#c').value = \"2\"\n    } else {\n      this.formTarget.querySelector('#c').value = \"1\"\n    }\n  }\n\n  emptyFields() {\n    let empty = 0\n    document.querySelectorAll('.voting_ids').forEach((i) => {\n      if (i.value === \"\") {\n        empty++;\n      }\n    })\n    return empty !== 0\n  }\n\n  accept(ev) {\n    if (ev.target.checked) {\n      if (!this.emptyFields()) {\n        this.submitterTarget.removeAttribute('disabled')\n      }\n    } else {\n      this.submitterTarget.setAttribute('disabled','disabled')\n    }\n  }\n\n  submission(ev) {\n    window.scrollTo(0,0)\n    return true\n  }\n\n  hide() {\n    this.wrapperTarget.classList.add(\"hidden\")\n    this.inputTarget.value = \"\"\n    this.resultsTarget.innerHTML = \"\"\n  }\n\n  select(ev) {\n    let target = null\n    if (ev.target.tagName === \"MARK\") {\n      target = ev.target.parentElement\n    } else {\n      target = ev.target\n    }\n\n    let field = this.element.querySelector(`#${this.field}_field`)\n    if (field) {\n      field.innerText = target.innerText\n      field.parentElement.classList.add(\"bw_bg_yellow\")\n    }\n    let input = this.element.querySelector(`#vote_${this.field}`)\n    if (input) {\n      input.value = target.dataset.pro\n    }\n\n    this.hide()\n    if(!this.emptyFields() && this.checkTarget.checked) {\n      this.submitterTarget.removeAttribute('disabled')\n    }\n  }\n\n  search() {\n    clearTimeout(this.timeout)\n    this.timeout = setTimeout(() => {\n      this.formTarget.requestSubmit()\n    }, 350)\n  }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"search\", \"results\", \"selected\", \"riderIdField\", \"selectedRiderName\", \"selectedRiderTeam\"]\n  \n  connect() {\n\n    this.resultsVisible = false\n    this.handleClickOutside = this.handleClickOutside.bind(this)\n    document.addEventListener('click', this.handleClickOutside)\n    \n    // Check if there's an existing selection\n    if (this.hasRiderIdFieldTarget && this.riderIdFieldTarget.value) {\n      if (this.hasSelectedRiderNameTarget && this.hasSelectedRiderTeamTarget) {\n        this.selectedTarget.classList.remove('hidden')\n      }\n    }\n  }\n  \n  disconnect() {\n    document.removeEventListener('click', this.handleClickOutside)\n  }\n  \n  handleClickOutside(event) {\n    if (this.resultsVisible && !this.element.contains(event.target)) {\n      this.hideResults()\n    }\n  }\n  \n  search() {\n    clearTimeout(this.timeout)\n    \n    const query = this.searchTarget.value.trim()\n    \n    if (query.length < 2) {\n      this.hideResults()\n      return\n    }\n    \n    this.timeout = setTimeout(() => {\n      this.fetchResults(query)\n    }, 250)\n  }\n  \n  fetchResults(query) {\n    let url = `/game/riders/search?query=${encodeURIComponent(query)}`\n    const category = this.element.dataset.riderCategory\n    if (category) {\n      url += `&category=${encodeURIComponent(category)}`\n    }\n    fetch(url, {\n      headers: {\n        Accept: \"text/vnd.turbo-stream.html\"\n      }\n    })\n    .then(response => response.text())\n    .then(html => {\n      const parser = new DOMParser()\n      const doc = parser.parseFromString(html, \"text/html\")\n      const template = doc.querySelector(\"template\")\n      \n      if (template) {\n        this.resultsTarget.innerHTML = template.innerHTML\n        this.showResults()\n      }\n    })\n  }\n  \n  showResults() {\n    this.resultsTarget.classList.remove('hidden')\n    this.resultsVisible = true\n  }\n  \n  hideResults() {\n\n    this.resultsTarget.classList.add('hidden')\n    this.resultsVisible = false\n  }\n  \n  selectRider(event) {\n    const button = event.currentTarget\n    const riderId = button.dataset.riderId\n    const riderName = button.dataset.riderName\n    const riderFirstName = button.dataset.riderFirstName\n    const riderTeam = button.dataset.riderTeam\n    \n    // Set the hidden field value\n    this.riderIdFieldTarget.value = riderId\n    \n    // Update the visible selection\n    this.selectedRiderNameTarget.textContent = riderFirstName + \" \" + riderName\n    this.selectedRiderTeamTarget.textContent = riderTeam\n    \n    // Show the selected section and clear the search input\n    this.selectedTarget.classList.remove('hidden')\n    this.searchTarget.value = ''\n    \n    // Hide results\n    this.hideResults()\n  }\n  \n  clearSelection() {\n    // Clear the hidden field\n    this.riderIdFieldTarget.value = ''\n    \n    // Hide the selected section\n    this.selectedTarget.classList.add('hidden')\n    \n    // Focus the search input\n    this.searchTarget.focus()\n  }\n}", "// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport FormController from \"./form_controller\"\napplication.register(\"form\", FormController)\n\nimport PlayerController from \"./player_controller\"\napplication.register(\"player\", PlayerController)\n\nimport RevealController from \"./reveal_controller\"\napplication.register(\"reveal\", RevealController)\n\nimport VoiceMessagesController from \"./voice_messages_controller\"\napplication.register(\"voice_messages\", VoiceMessagesController)\n\nimport TrikotController from \"./trikot_controller\"\napplication.register(\"trikot\", TrikotController)\n\nimport NavbarController from \"./navbar_controller\"\napplication.register(\"navbar\", NavbarController)\n\nimport VoteController from \"./vote_controller\"\napplication.register(\"vote\", VoteController)\n\nimport RiderSearchController from \"./rider_search_controller\"\napplication.register(\"rider-search\", RiderSearchController)\n", "// Entry point for the build script in your package.json\nimport \"@hotwired/turbo-rails\"\nimport \"./controllers\"\nimport \"trix\"\nimport \"@rails/actiontext\"\nimport \"altcha\"\n", "const DEV = false;\nvar is_array = Array.isArray;\nvar index_of = Array.prototype.indexOf;\nvar includes = Array.prototype.includes;\nvar array_from = Array.from;\nvar object_keys = Object.keys;\nvar define_property = Object.defineProperty;\nvar get_descriptor = Object.getOwnPropertyDescriptor;\nvar get_descriptors = Object.getOwnPropertyDescriptors;\nvar object_prototype = Object.prototype;\nvar array_prototype = Array.prototype;\nvar get_prototype_of = Object.getPrototypeOf;\nvar is_extensible = Object.isExtensible;\nconst noop = () => {\n};\nfunction run_all(arr) {\n  for (var i = 0; i < arr.length; i++) {\n    arr[i]();\n  }\n}\nfunction deferred() {\n  var resolve;\n  var reject;\n  var promise = new Promise((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return { promise, resolve, reject };\n}\nconst DERIVED = 1 << 1;\nconst EFFECT = 1 << 2;\nconst RENDER_EFFECT = 1 << 3;\nconst MANAGED_EFFECT = 1 << 24;\nconst BLOCK_EFFECT = 1 << 4;\nconst BRANCH_EFFECT = 1 << 5;\nconst ROOT_EFFECT = 1 << 6;\nconst BOUNDARY_EFFECT = 1 << 7;\nconst CONNECTED = 1 << 9;\nconst CLEAN = 1 << 10;\nconst DIRTY = 1 << 11;\nconst MAYBE_DIRTY = 1 << 12;\nconst INERT = 1 << 13;\nconst DESTROYED = 1 << 14;\nconst REACTION_RAN = 1 << 15;\nconst DESTROYING = 1 << 25;\nconst EFFECT_TRANSPARENT = 1 << 16;\nconst EAGER_EFFECT = 1 << 17;\nconst HEAD_EFFECT = 1 << 18;\nconst EFFECT_PRESERVED = 1 << 19;\nconst USER_EFFECT = 1 << 20;\nconst WAS_MARKED = 1 << 16;\nconst REACTION_IS_UPDATING = 1 << 21;\nconst ASYNC = 1 << 22;\nconst ERROR_VALUE = 1 << 23;\nconst STATE_SYMBOL = /* @__PURE__ */ Symbol(\"$state\");\nconst LEGACY_PROPS = /* @__PURE__ */ Symbol(\"legacy props\");\nconst LOADING_ATTR_SYMBOL = /* @__PURE__ */ Symbol(\"\");\nconst ATTRIBUTES_CACHE = /* @__PURE__ */ Symbol(\"attributes\");\nconst CLASS_CACHE = /* @__PURE__ */ Symbol(\"class\");\nconst STYLE_CACHE = /* @__PURE__ */ Symbol(\"style\");\nconst TEXT_CACHE = /* @__PURE__ */ Symbol(\"text\");\nconst FORM_RESET_HANDLER = /* @__PURE__ */ Symbol(\"form reset\");\nconst STALE_REACTION = new class StaleReactionError extends Error {\n  name = \"StaleReactionError\";\n  message = \"The reaction that called `getAbortSignal()` was re-run or destroyed\";\n}();\nconst IS_XHTML = (\n  // We gotta write it like this because after downleveling the pure comment may end up in the wrong location\n  !!globalThis.document?.contentType && /* @__PURE__ */ globalThis.document.contentType.includes(\"xml\")\n);\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\nfunction equals(value) {\n  return value === this.v;\n}\nfunction safe_not_equal(a, b) {\n  return a != a ? b == b : a !== b || a !== null && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction safe_equals(value) {\n  return !safe_not_equal(value, this.v);\n}\nfunction lifecycle_outside_component(name) {\n  {\n    throw new Error(`https://svelte.dev/e/lifecycle_outside_component`);\n  }\n}\nfunction async_derived_orphan() {\n  {\n    throw new Error(`https://svelte.dev/e/async_derived_orphan`);\n  }\n}\nfunction effect_in_teardown(rune) {\n  {\n    throw new Error(`https://svelte.dev/e/effect_in_teardown`);\n  }\n}\nfunction effect_in_unowned_derived() {\n  {\n    throw new Error(`https://svelte.dev/e/effect_in_unowned_derived`);\n  }\n}\nfunction effect_orphan(rune) {\n  {\n    throw new Error(`https://svelte.dev/e/effect_orphan`);\n  }\n}\nfunction effect_update_depth_exceeded() {\n  {\n    throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);\n  }\n}\nfunction hydration_failed() {\n  {\n    throw new Error(`https://svelte.dev/e/hydration_failed`);\n  }\n}\nfunction state_descriptors_fixed() {\n  {\n    throw new Error(`https://svelte.dev/e/state_descriptors_fixed`);\n  }\n}\nfunction state_prototype_fixed() {\n  {\n    throw new Error(`https://svelte.dev/e/state_prototype_fixed`);\n  }\n}\nfunction state_unsafe_mutation() {\n  {\n    throw new Error(`https://svelte.dev/e/state_unsafe_mutation`);\n  }\n}\nfunction svelte_boundary_reset_onerror() {\n  {\n    throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`);\n  }\n}\nlet tracing_mode_flag = false;\nconst TEMPLATE_FRAGMENT = 1;\nconst TEMPLATE_USE_IMPORT_NODE = 1 << 1;\nconst HYDRATION_START = \"[\";\nconst HYDRATION_START_ELSE = \"[!\";\nconst HYDRATION_START_FAILED = \"[?\";\nconst HYDRATION_END = \"]\";\nconst HYDRATION_ERROR = {};\nconst UNINITIALIZED = /* @__PURE__ */ Symbol(\"uninitialized\");\nconst NAMESPACE_HTML = \"http://www.w3.org/1999/xhtml\";\nconst NAMESPACE_SVG = \"http://www.w3.org/2000/svg\";\nconst NAMESPACE_MATHML = \"http://www.w3.org/1998/Math/MathML\";\nconst ATTACHMENT_KEY = \"@attach\";\nlet component_context = null;\nfunction set_component_context(context) {\n  component_context = context;\n}\nfunction push(props, runes = false, fn) {\n  component_context = {\n    p: component_context,\n    i: false,\n    c: null,\n    e: null,\n    s: props,\n    x: null,\n    r: (\n      /** @type {Effect} */\n      active_effect\n    ),\n    l: null\n  };\n}\nfunction pop(component2) {\n  var context = (\n    /** @type {ComponentContext} */\n    component_context\n  );\n  var effects = context.e;\n  if (effects !== null) {\n    context.e = null;\n    for (var fn of effects) {\n      create_user_effect(fn);\n    }\n  }\n  if (component2 !== void 0) {\n    context.x = component2;\n  }\n  context.i = true;\n  component_context = context.p;\n  return component2 ?? /** @type {T} */\n  {};\n}\nfunction is_runes() {\n  return true;\n}\nlet micro_tasks = [];\nfunction run_micro_tasks() {\n  var tasks = micro_tasks;\n  micro_tasks = [];\n  run_all(tasks);\n}\nfunction queue_micro_task(fn) {\n  if (micro_tasks.length === 0 && !is_flushing_sync) {\n    var tasks = micro_tasks;\n    queueMicrotask(() => {\n      if (tasks === micro_tasks) run_micro_tasks();\n    });\n  }\n  micro_tasks.push(fn);\n}\nfunction flush_tasks() {\n  while (micro_tasks.length > 0) {\n    run_micro_tasks();\n  }\n}\nfunction derived_inert() {\n  {\n    console.warn(`https://svelte.dev/e/derived_inert`);\n  }\n}\nfunction hydration_mismatch(location2) {\n  {\n    console.warn(`https://svelte.dev/e/hydration_mismatch`);\n  }\n}\nfunction select_multiple_invalid_value() {\n  {\n    console.warn(`https://svelte.dev/e/select_multiple_invalid_value`);\n  }\n}\nfunction svelte_boundary_reset_noop() {\n  {\n    console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`);\n  }\n}\nlet hydrating = false;\nfunction set_hydrating(value) {\n  hydrating = value;\n}\nlet hydrate_node;\nfunction set_hydrate_node(node) {\n  if (node === null) {\n    hydration_mismatch();\n    throw HYDRATION_ERROR;\n  }\n  return hydrate_node = node;\n}\nfunction hydrate_next() {\n  return set_hydrate_node(/* @__PURE__ */ get_next_sibling(hydrate_node));\n}\nfunction reset(node) {\n  if (!hydrating) return;\n  if (/* @__PURE__ */ get_next_sibling(hydrate_node) !== null) {\n    hydration_mismatch();\n    throw HYDRATION_ERROR;\n  }\n  hydrate_node = node;\n}\nfunction next(count = 1) {\n  if (hydrating) {\n    var i = count;\n    var node = hydrate_node;\n    while (i--) {\n      node = /** @type {TemplateNode} */\n      /* @__PURE__ */ get_next_sibling(node);\n    }\n    hydrate_node = node;\n  }\n}\nfunction skip_nodes(remove = true) {\n  var depth = 0;\n  var node = hydrate_node;\n  while (true) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = (\n        /** @type {Comment} */\n        node.data\n      );\n      if (data === HYDRATION_END) {\n        if (depth === 0) return node;\n        depth -= 1;\n      } else if (data === HYDRATION_START || data === HYDRATION_START_ELSE || // \"[1\", \"[2\", etc. for if blocks\n      data[0] === \"[\" && !isNaN(Number(data.slice(1)))) {\n        depth += 1;\n      }\n    }\n    var next2 = (\n      /** @type {TemplateNode} */\n      /* @__PURE__ */ get_next_sibling(node)\n    );\n    if (remove) node.remove();\n    node = next2;\n  }\n}\nfunction read_hydration_instruction(node) {\n  if (!node || node.nodeType !== COMMENT_NODE) {\n    hydration_mismatch();\n    throw HYDRATION_ERROR;\n  }\n  return (\n    /** @type {Comment} */\n    node.data\n  );\n}\nfunction proxy(value) {\n  if (typeof value !== \"object\" || value === null || STATE_SYMBOL in value) {\n    return value;\n  }\n  const prototype = get_prototype_of(value);\n  if (prototype !== object_prototype && prototype !== array_prototype) {\n    return value;\n  }\n  var sources = /* @__PURE__ */ new Map();\n  var is_proxied_array = is_array(value);\n  var version = /* @__PURE__ */ state(0);\n  var parent_version = update_version;\n  var with_parent = (fn) => {\n    if (update_version === parent_version) {\n      return fn();\n    }\n    var reaction = active_reaction;\n    var version2 = update_version;\n    set_active_reaction(null);\n    set_update_version(parent_version);\n    var result = fn();\n    set_active_reaction(reaction);\n    set_update_version(version2);\n    return result;\n  };\n  if (is_proxied_array) {\n    sources.set(\"length\", /* @__PURE__ */ state(\n      /** @type {any[]} */\n      value.length\n    ));\n  }\n  return new Proxy(\n    /** @type {any} */\n    value,\n    {\n      defineProperty(_, prop2, descriptor) {\n        if (!(\"value\" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) {\n          state_descriptors_fixed();\n        }\n        var s = sources.get(prop2);\n        if (s === void 0) {\n          with_parent(() => {\n            var s2 = /* @__PURE__ */ state(descriptor.value);\n            sources.set(prop2, s2);\n            return s2;\n          });\n        } else {\n          set(s, descriptor.value, true);\n        }\n        return true;\n      },\n      deleteProperty(target, prop2) {\n        var s = sources.get(prop2);\n        if (s === void 0) {\n          if (prop2 in target) {\n            const s2 = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));\n            sources.set(prop2, s2);\n            increment(version);\n          }\n        } else {\n          set(s, UNINITIALIZED);\n          increment(version);\n        }\n        return true;\n      },\n      get(target, prop2, receiver) {\n        if (prop2 === STATE_SYMBOL) {\n          return value;\n        }\n        var s = sources.get(prop2);\n        var exists = prop2 in target;\n        if (s === void 0 && (!exists || get_descriptor(target, prop2)?.writable)) {\n          s = with_parent(() => {\n            var p = proxy(exists ? target[prop2] : UNINITIALIZED);\n            var s2 = /* @__PURE__ */ state(p);\n            return s2;\n          });\n          sources.set(prop2, s);\n        }\n        if (s !== void 0) {\n          var v = get(s);\n          return v === UNINITIALIZED ? void 0 : v;\n        }\n        return Reflect.get(target, prop2, receiver);\n      },\n      getOwnPropertyDescriptor(target, prop2) {\n        var descriptor = Reflect.getOwnPropertyDescriptor(target, prop2);\n        if (descriptor && \"value\" in descriptor) {\n          var s = sources.get(prop2);\n          if (s) descriptor.value = get(s);\n        } else if (descriptor === void 0) {\n          var source2 = sources.get(prop2);\n          var value2 = source2?.v;\n          if (source2 !== void 0 && value2 !== UNINITIALIZED) {\n            return {\n              enumerable: true,\n              configurable: true,\n              value: value2,\n              writable: true\n            };\n          }\n        }\n        return descriptor;\n      },\n      has(target, prop2) {\n        if (prop2 === STATE_SYMBOL) {\n          return true;\n        }\n        var s = sources.get(prop2);\n        var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop2);\n        if (s !== void 0 || active_effect !== null && (!has || get_descriptor(target, prop2)?.writable)) {\n          if (s === void 0) {\n            s = with_parent(() => {\n              var p = has ? proxy(target[prop2]) : UNINITIALIZED;\n              var s2 = /* @__PURE__ */ state(p);\n              return s2;\n            });\n            sources.set(prop2, s);\n          }\n          var value2 = get(s);\n          if (value2 === UNINITIALIZED) {\n            return false;\n          }\n        }\n        return has;\n      },\n      set(target, prop2, value2, receiver) {\n        var s = sources.get(prop2);\n        var has = prop2 in target;\n        if (is_proxied_array && prop2 === \"length\") {\n          for (var i = value2; i < /** @type {Source<number>} */\n          s.v; i += 1) {\n            var other_s = sources.get(i + \"\");\n            if (other_s !== void 0) {\n              set(other_s, UNINITIALIZED);\n            } else if (i in target) {\n              other_s = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));\n              sources.set(i + \"\", other_s);\n            }\n          }\n        }\n        if (s === void 0) {\n          if (!has || get_descriptor(target, prop2)?.writable) {\n            s = with_parent(() => /* @__PURE__ */ state(void 0));\n            set(s, proxy(value2));\n            sources.set(prop2, s);\n          }\n        } else {\n          has = s.v !== UNINITIALIZED;\n          var p = with_parent(() => proxy(value2));\n          set(s, p);\n        }\n        var descriptor = Reflect.getOwnPropertyDescriptor(target, prop2);\n        if (descriptor?.set) {\n          descriptor.set.call(receiver, value2);\n        }\n        if (!has) {\n          if (is_proxied_array && typeof prop2 === \"string\") {\n            var ls = (\n              /** @type {Source<number>} */\n              sources.get(\"length\")\n            );\n            var n = Number(prop2);\n            if (Number.isInteger(n) && n >= ls.v) {\n              set(ls, n + 1);\n            }\n          }\n          increment(version);\n        }\n        return true;\n      },\n      ownKeys(target) {\n        get(version);\n        var own_keys = Reflect.ownKeys(target).filter((key3) => {\n          var source3 = sources.get(key3);\n          return source3 === void 0 || source3.v !== UNINITIALIZED;\n        });\n        for (var [key2, source2] of sources) {\n          if (source2.v !== UNINITIALIZED && !(key2 in target)) {\n            own_keys.push(key2);\n          }\n        }\n        return own_keys;\n      },\n      setPrototypeOf() {\n        state_prototype_fixed();\n      }\n    }\n  );\n}\nfunction get_proxied_value(value) {\n  try {\n    if (value !== null && typeof value === \"object\" && STATE_SYMBOL in value) {\n      return value[STATE_SYMBOL];\n    }\n  } catch {\n  }\n  return value;\n}\nfunction is(a, b) {\n  return Object.is(get_proxied_value(a), get_proxied_value(b));\n}\nvar $window;\nvar $document;\nvar is_firefox;\nvar first_child_getter;\nvar next_sibling_getter;\nfunction init_operations() {\n  if ($window !== void 0) {\n    return;\n  }\n  $window = window;\n  $document = document;\n  is_firefox = /Firefox/.test(navigator.userAgent);\n  var element_prototype = Element.prototype;\n  var node_prototype = Node.prototype;\n  var text_prototype = Text.prototype;\n  first_child_getter = get_descriptor(node_prototype, \"firstChild\").get;\n  next_sibling_getter = get_descriptor(node_prototype, \"nextSibling\").get;\n  if (is_extensible(element_prototype)) {\n    element_prototype[CLASS_CACHE] = void 0;\n    element_prototype[ATTRIBUTES_CACHE] = null;\n    element_prototype[STYLE_CACHE] = void 0;\n    element_prototype.__e = void 0;\n  }\n  if (is_extensible(text_prototype)) {\n    text_prototype[TEXT_CACHE] = void 0;\n  }\n}\nfunction create_text(value = \"\") {\n  return document.createTextNode(value);\n}\n// @__NO_SIDE_EFFECTS__\nfunction get_first_child(node) {\n  return (\n    /** @type {TemplateNode | null} */\n    first_child_getter.call(node)\n  );\n}\n// @__NO_SIDE_EFFECTS__\nfunction get_next_sibling(node) {\n  return (\n    /** @type {TemplateNode | null} */\n    next_sibling_getter.call(node)\n  );\n}\nfunction child(node, is_text) {\n  if (!hydrating) {\n    return /* @__PURE__ */ get_first_child(node);\n  }\n  var child2 = /* @__PURE__ */ get_first_child(hydrate_node);\n  if (child2 === null) {\n    child2 = hydrate_node.appendChild(create_text());\n  } else if (is_text && child2.nodeType !== TEXT_NODE) {\n    var text2 = create_text();\n    child2?.before(text2);\n    set_hydrate_node(text2);\n    return text2;\n  }\n  if (is_text) {\n    merge_text_nodes(\n      /** @type {Text} */\n      child2\n    );\n  }\n  set_hydrate_node(child2);\n  return child2;\n}\nfunction first_child(node, is_text = false) {\n  if (!hydrating) {\n    var first = /* @__PURE__ */ get_first_child(node);\n    if (first instanceof Comment && first.data === \"\") return /* @__PURE__ */ get_next_sibling(first);\n    return first;\n  }\n  if (is_text) {\n    if (hydrate_node?.nodeType !== TEXT_NODE) {\n      var text2 = create_text();\n      hydrate_node?.before(text2);\n      set_hydrate_node(text2);\n      return text2;\n    }\n    merge_text_nodes(\n      /** @type {Text} */\n      hydrate_node\n    );\n  }\n  return hydrate_node;\n}\nfunction sibling(node, count = 1, is_text = false) {\n  let next_sibling = hydrating ? hydrate_node : node;\n  var last_sibling;\n  while (count--) {\n    last_sibling = next_sibling;\n    next_sibling = /** @type {TemplateNode} */\n    /* @__PURE__ */ get_next_sibling(next_sibling);\n  }\n  if (!hydrating) {\n    return next_sibling;\n  }\n  if (is_text) {\n    if (next_sibling?.nodeType !== TEXT_NODE) {\n      var text2 = create_text();\n      if (next_sibling === null) {\n        last_sibling?.after(text2);\n      } else {\n        next_sibling.before(text2);\n      }\n      set_hydrate_node(text2);\n      return text2;\n    }\n    merge_text_nodes(\n      /** @type {Text} */\n      next_sibling\n    );\n  }\n  set_hydrate_node(next_sibling);\n  return next_sibling;\n}\nfunction clear_text_content(node) {\n  node.textContent = \"\";\n}\nfunction should_defer_append() {\n  return false;\n}\nfunction create_element(tag, namespace, is2) {\n  let options = void 0;\n  return (\n    /** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */\n    document.createElementNS(namespace ?? NAMESPACE_HTML, tag, options)\n  );\n}\nfunction merge_text_nodes(text2) {\n  if (\n    /** @type {string} */\n    text2.nodeValue.length < 65536\n  ) {\n    return;\n  }\n  let next2 = text2.nextSibling;\n  while (next2 !== null && next2.nodeType === TEXT_NODE) {\n    next2.remove();\n    text2.nodeValue += /** @type {string} */\n    next2.nodeValue;\n    next2 = text2.nextSibling;\n  }\n}\nfunction handle_error(error) {\n  var effect2 = active_effect;\n  if (effect2 === null) {\n    active_reaction.f |= ERROR_VALUE;\n    return error;\n  }\n  if ((effect2.f & REACTION_RAN) === 0 && (effect2.f & EFFECT) === 0) {\n    throw error;\n  }\n  invoke_error_boundary(error, effect2);\n}\nfunction invoke_error_boundary(error, effect2) {\n  while (effect2 !== null) {\n    if ((effect2.f & BOUNDARY_EFFECT) !== 0) {\n      if ((effect2.f & REACTION_RAN) === 0) {\n        throw error;\n      }\n      try {\n        effect2.b.error(error);\n        return;\n      } catch (e) {\n        error = e;\n      }\n    }\n    effect2 = effect2.parent;\n  }\n  throw error;\n}\nconst STATUS_MASK = -7169;\nfunction set_signal_status(signal, status) {\n  signal.f = signal.f & STATUS_MASK | status;\n}\nfunction update_derived_status(derived2) {\n  if ((derived2.f & CONNECTED) !== 0 || derived2.deps === null) {\n    set_signal_status(derived2, CLEAN);\n  } else {\n    set_signal_status(derived2, MAYBE_DIRTY);\n  }\n}\nfunction clear_marked(deps) {\n  if (deps === null) return;\n  for (const dep of deps) {\n    if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {\n      continue;\n    }\n    dep.f ^= WAS_MARKED;\n    clear_marked(\n      /** @type {Derived} */\n      dep.deps\n    );\n  }\n}\nfunction defer_effect(effect2, dirty_effects, maybe_dirty_effects) {\n  if ((effect2.f & DIRTY) !== 0) {\n    dirty_effects.add(effect2);\n  } else if ((effect2.f & MAYBE_DIRTY) !== 0) {\n    maybe_dirty_effects.add(effect2);\n  }\n  clear_marked(effect2.deps);\n  set_signal_status(effect2, CLEAN);\n}\nfunction subscribe_to_store(store2, run, invalidate) {\n  if (store2 == null) {\n    run(void 0);\n    return noop;\n  }\n  const unsub = untrack(\n    () => store2.subscribe(\n      run,\n      // @ts-expect-error\n      invalidate\n    )\n  );\n  return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nconst subscriber_queue = [];\nfunction writable(value, start = noop) {\n  let stop = null;\n  const subscribers = /* @__PURE__ */ new Set();\n  function set2(new_value) {\n    if (safe_not_equal(value, new_value)) {\n      value = new_value;\n      if (stop) {\n        const run_queue = !subscriber_queue.length;\n        for (const subscriber of subscribers) {\n          subscriber[1]();\n          subscriber_queue.push(subscriber, value);\n        }\n        if (run_queue) {\n          for (let i = 0; i < subscriber_queue.length; i += 2) {\n            subscriber_queue[i][0](subscriber_queue[i + 1]);\n          }\n          subscriber_queue.length = 0;\n        }\n      }\n    }\n  }\n  function update(fn) {\n    set2(fn(\n      /** @type {T} */\n      value\n    ));\n  }\n  function subscribe(run, invalidate = noop) {\n    const subscriber = [run, invalidate];\n    subscribers.add(subscriber);\n    if (subscribers.size === 1) {\n      stop = start(set2, update) || noop;\n    }\n    run(\n      /** @type {T} */\n      value\n    );\n    return () => {\n      subscribers.delete(subscriber);\n      if (subscribers.size === 0 && stop) {\n        stop();\n        stop = null;\n      }\n    };\n  }\n  return { set: set2, update, subscribe };\n}\nfunction get$1(store2) {\n  let value;\n  subscribe_to_store(store2, (_) => value = _)();\n  return value;\n}\nlet IS_UNMOUNTED = /* @__PURE__ */ Symbol(\"unmounted\");\nfunction store_get(store2, store_name, stores) {\n  const entry = stores[store_name] ??= {\n    store: null,\n    source: /* @__PURE__ */ mutable_source(void 0),\n    unsubscribe: noop\n  };\n  if (entry.store !== store2 && !(IS_UNMOUNTED in stores)) {\n    entry.unsubscribe();\n    entry.store = store2 ?? null;\n    if (store2 == null) {\n      entry.source.v = void 0;\n      entry.unsubscribe = noop;\n    } else {\n      var is_synchronous_callback = true;\n      entry.unsubscribe = subscribe_to_store(store2, (v) => {\n        if (is_synchronous_callback) {\n          entry.source.v = v;\n        } else {\n          set(entry.source, v);\n        }\n      });\n      is_synchronous_callback = false;\n    }\n  }\n  if (store2 && IS_UNMOUNTED in stores) {\n    return get$1(store2);\n  }\n  return get(entry.source);\n}\nfunction setup_stores() {\n  const stores = {};\n  function cleanup() {\n    teardown(() => {\n      for (var store_name in stores) {\n        const ref = stores[store_name];\n        ref.unsubscribe();\n      }\n      define_property(stores, IS_UNMOUNTED, {\n        enumerable: false,\n        value: true\n      });\n    });\n  }\n  return [stores, cleanup];\n}\nlet first_batch = null;\nlet last_batch = null;\nlet current_batch = null;\nlet previous_batch = null;\nlet batch_values = null;\nlet last_scheduled_effect = null;\nlet is_flushing_sync = false;\nlet is_processing = false;\nlet collected_effects = null;\nlet legacy_updates = null;\nvar flush_count = 0;\nvar source_stacks = /* @__PURE__ */ new Set();\nlet uid = 1;\nclass Batch {\n  id = uid++;\n  /** True as soon as `#process` was called */\n  #started = false;\n  linked = true;\n  /** @type {Batch | null} */\n  #prev = null;\n  /** @type {Batch | null} */\n  #next = null;\n  /** @type {Map<Effect, ReturnType<typeof deferred<any>>>} */\n  async_deriveds = /* @__PURE__ */ new Map();\n  /**\n   * The current values of any signals that are updated in this batch.\n   * Tuple format: [value, is_derived] (note: is_derived is false for deriveds, too, if they were overridden via assignment)\n   * They keys of this map are identical to `this.#previous`\n   * @type {Map<Value, [any, boolean]>}\n   */\n  current = /* @__PURE__ */ new Map();\n  /**\n   * The values of any signals (sources and deriveds) that are updated in this batch _before_ those updates took place.\n   * They keys of this map are identical to `this.#current`\n   * @type {Map<Value, any>}\n   */\n  previous = /* @__PURE__ */ new Map();\n  /**\n   * Async effects which this batch doesn't take into account anymore when calculating blockers,\n   * as it has a value for it already.\n   * @type {Set<Effect>}\n   */\n  unblocked = /* @__PURE__ */ new Set();\n  /**\n   * When the batch is committed (and the DOM is updated), we need to remove old branches\n   * and append new ones by calling the functions added inside (if/each/key/etc) blocks\n   * @type {Set<(batch: Batch) => void>}\n   */\n  #commit_callbacks = /* @__PURE__ */ new Set();\n  /**\n   * If a fork is discarded, we need to destroy any effects that are no longer needed\n   * @type {Set<(batch: Batch) => void>}\n   */\n  #discard_callbacks = /* @__PURE__ */ new Set();\n  /**\n   * Callbacks that should run only when a fork is committed.\n   * @type {Set<(batch: Batch) => void>}\n   */\n  #fork_commit_callbacks = /* @__PURE__ */ new Set();\n  /**\n   * The number of async effects that are currently in flight\n   */\n  #pending = 0;\n  /**\n   * Async effects that are currently in flight, _not_ inside a pending boundary\n   * @type {Map<Effect, number>}\n   */\n  #blocking_pending = /* @__PURE__ */ new Map();\n  /**\n   * A deferred that resolves when the batch is committed, used with `settled()`\n   * TODO replace with Promise.withResolvers once supported widely enough\n   * @type {{ promise: Promise<void>, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}\n   */\n  #deferred = null;\n  /**\n   * The root effects that need to be flushed\n   * @type {Effect[]}\n   */\n  #roots = [];\n  /**\n   * Effects created while this batch was active.\n   * @type {Effect[]}\n   */\n  #new_effects = [];\n  /**\n   * Deferred effects (which run after async work has completed) that are DIRTY\n   * @type {Set<Effect>}\n   */\n  #dirty_effects = /* @__PURE__ */ new Set();\n  /**\n   * Deferred effects that are MAYBE_DIRTY\n   * @type {Set<Effect>}\n   */\n  #maybe_dirty_effects = /* @__PURE__ */ new Set();\n  /**\n   * A map of branches that still exist, but will be destroyed when this batch\n   * is committed \u2014 we skip over these during `process`.\n   * The value contains child effects that were dirty/maybe_dirty before being reset,\n   * so they can be rescheduled if the branch survives.\n   * @type {Map<Effect, { d: Effect[], m: Effect[] }>}\n   */\n  #skipped_branches = /* @__PURE__ */ new Map();\n  /**\n   * Inverse of #skipped_branches which we need to tell prior batches to unskip them when committing\n   * @type {Set<Effect>}\n   */\n  #unskipped_branches = /* @__PURE__ */ new Set();\n  is_fork = false;\n  #decrement_queued = false;\n  #is_deferred() {\n    if (this.is_fork) return true;\n    for (const effect2 of this.#blocking_pending.keys()) {\n      var e = effect2;\n      var skipped = false;\n      while (e.parent !== null) {\n        if (this.#skipped_branches.has(e)) {\n          skipped = true;\n          break;\n        }\n        e = e.parent;\n      }\n      if (!skipped) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * Add an effect to the #skipped_branches map and reset its children\n   * @param {Effect} effect\n   */\n  skip_effect(effect2) {\n    if (!this.#skipped_branches.has(effect2)) {\n      this.#skipped_branches.set(effect2, { d: [], m: [] });\n    }\n    this.#unskipped_branches.delete(effect2);\n  }\n  /**\n   * Remove an effect from the #skipped_branches map and reschedule\n   * any tracked dirty/maybe_dirty child effects\n   * @param {Effect} effect\n   * @param {(e: Effect) => void} callback\n   */\n  unskip_effect(effect2, callback = (e) => this.schedule(e)) {\n    var tracked = this.#skipped_branches.get(effect2);\n    if (tracked) {\n      this.#skipped_branches.delete(effect2);\n      for (var e of tracked.d) {\n        set_signal_status(e, DIRTY);\n        callback(e);\n      }\n      for (e of tracked.m) {\n        set_signal_status(e, MAYBE_DIRTY);\n        callback(e);\n      }\n    }\n    this.#unskipped_branches.add(effect2);\n  }\n  #process() {\n    this.#started = true;\n    if (flush_count++ > 1e3) {\n      this.#unlink();\n      infinite_loop_guard();\n    }\n    if (!this.#is_deferred()) {\n      for (const e of this.#dirty_effects) {\n        this.#maybe_dirty_effects.delete(e);\n        set_signal_status(e, DIRTY);\n        this.schedule(e);\n      }\n      for (const e of this.#maybe_dirty_effects) {\n        set_signal_status(e, MAYBE_DIRTY);\n        this.schedule(e);\n      }\n    }\n    const roots = this.#roots;\n    this.#roots = [];\n    this.apply();\n    var effects = collected_effects = [];\n    var render_effects = [];\n    var updates = legacy_updates = [];\n    for (const root2 of roots) {\n      try {\n        this.#traverse(root2, effects, render_effects);\n      } catch (e) {\n        reset_all(root2);\n        throw e;\n      }\n    }\n    current_batch = null;\n    if (updates.length > 0) {\n      var batch = Batch.ensure();\n      for (const e of updates) {\n        batch.schedule(e);\n      }\n    }\n    collected_effects = null;\n    legacy_updates = null;\n    if (this.#is_deferred()) {\n      this.#defer_effects(render_effects);\n      this.#defer_effects(effects);\n      for (const [e, t] of this.#skipped_branches) {\n        reset_branch(e, t);\n      }\n      if (updates.length > 0) {\n        /** @type {unknown} */\n        current_batch.#process();\n      }\n      return;\n    }\n    const earlier_batch = this.#find_earlier_batch();\n    if (earlier_batch) {\n      earlier_batch.#merge(this);\n      return;\n    }\n    this.#dirty_effects.clear();\n    this.#maybe_dirty_effects.clear();\n    for (const fn of this.#commit_callbacks) fn(this);\n    this.#commit_callbacks.clear();\n    previous_batch = this;\n    flush_queued_effects(render_effects);\n    flush_queued_effects(effects);\n    previous_batch = null;\n    this.#deferred?.resolve();\n    var next_batch = (\n      /** @type {Batch | null} */\n      /** @type {unknown} */\n      current_batch\n    );\n    if (this.linked && this.#pending === 0) {\n      this.#unlink();\n    }\n    if (this.#roots.length > 0) {\n      if (next_batch === null) {\n        next_batch = this;\n        this.#link();\n      }\n      const batch2 = next_batch;\n      batch2.#roots.push(...this.#roots.filter((r2) => !batch2.#roots.includes(r2)));\n    }\n    if (next_batch !== null) {\n      next_batch.#process();\n    }\n  }\n  /**\n   * Traverse the effect tree, executing effects or stashing\n   * them for later execution as appropriate\n   * @param {Effect} root\n   * @param {Effect[]} effects\n   * @param {Effect[]} render_effects\n   */\n  #traverse(root2, effects, render_effects) {\n    root2.f ^= CLEAN;\n    var effect2 = root2.first;\n    while (effect2 !== null) {\n      var flags2 = effect2.f;\n      var is_branch = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;\n      var is_skippable_branch = is_branch && (flags2 & CLEAN) !== 0;\n      var skip = is_skippable_branch || (flags2 & INERT) !== 0 || this.#skipped_branches.has(effect2);\n      if (!skip && effect2.fn !== null) {\n        if (is_branch) {\n          effect2.f ^= CLEAN;\n        } else if ((flags2 & EFFECT) !== 0) {\n          effects.push(effect2);\n        } else if (is_dirty(effect2)) {\n          if ((flags2 & BLOCK_EFFECT) !== 0) this.#maybe_dirty_effects.add(effect2);\n          update_effect(effect2);\n        }\n        var child2 = effect2.first;\n        if (child2 !== null) {\n          effect2 = child2;\n          continue;\n        }\n      }\n      while (effect2 !== null) {\n        var next2 = effect2.next;\n        if (next2 !== null) {\n          effect2 = next2;\n          break;\n        }\n        effect2 = effect2.parent;\n      }\n    }\n  }\n  #find_earlier_batch() {\n    var batch = this.#prev;\n    while (batch !== null) {\n      if (!batch.is_fork) {\n        for (const [value, [, is_derived]] of this.current) {\n          if (batch.current.has(value) && !is_derived) {\n            return batch;\n          }\n        }\n      }\n      batch = batch.#prev;\n    }\n    return null;\n  }\n  /**\n   * @param {Batch} batch\n   */\n  #merge(batch) {\n    for (const [source2, value] of batch.current) {\n      if (!this.previous.has(source2) && batch.previous.has(source2)) {\n        this.previous.set(source2, batch.previous.get(source2));\n      }\n      this.current.set(source2, value);\n    }\n    for (const [effect2, deferred2] of batch.async_deriveds) {\n      const d = this.async_deriveds.get(effect2);\n      if (d) deferred2.promise.then(d.resolve);\n    }\n    const mark = (value) => {\n      var reactions = value.reactions;\n      if (reactions === null) return;\n      for (const reaction of reactions) {\n        var flags2 = reaction.f;\n        if ((flags2 & DERIVED) !== 0) {\n          mark(\n            /** @type {Derived} */\n            reaction\n          );\n        } else {\n          var effect2 = (\n            /** @type {Effect} */\n            reaction\n          );\n          if (flags2 & (ASYNC | BLOCK_EFFECT) && !this.async_deriveds.has(effect2)) {\n            this.#maybe_dirty_effects.delete(effect2);\n            set_signal_status(effect2, DIRTY);\n            this.schedule(effect2);\n          }\n        }\n      }\n    };\n    for (const source2 of this.current.keys()) {\n      mark(source2);\n    }\n    this.oncommit(() => batch.discard());\n    batch.#unlink();\n    current_batch = this;\n    this.#process();\n  }\n  /**\n   * @param {Effect[]} effects\n   */\n  #defer_effects(effects) {\n    for (var i = 0; i < effects.length; i += 1) {\n      defer_effect(effects[i], this.#dirty_effects, this.#maybe_dirty_effects);\n    }\n  }\n  /**\n   * Associate a change to a given source with the current\n   * batch, noting its previous and current values\n   * @param {Value} source\n   * @param {any} value\n   * @param {boolean} [is_derived]\n   */\n  capture(source2, value, is_derived = false) {\n    if (source2.v !== UNINITIALIZED && !this.previous.has(source2)) {\n      this.previous.set(source2, source2.v);\n    }\n    if ((source2.f & ERROR_VALUE) === 0) {\n      this.current.set(source2, [value, is_derived]);\n      batch_values?.set(source2, value);\n    }\n    if (!this.is_fork) {\n      source2.v = value;\n    }\n  }\n  activate() {\n    current_batch = this;\n  }\n  deactivate() {\n    current_batch = null;\n    batch_values = null;\n  }\n  flush() {\n    try {\n      if (DEV) ;\n      is_processing = true;\n      current_batch = this;\n      this.#process();\n    } finally {\n      flush_count = 0;\n      last_scheduled_effect = null;\n      collected_effects = null;\n      legacy_updates = null;\n      is_processing = false;\n      current_batch = null;\n      batch_values = null;\n      old_values.clear();\n    }\n  }\n  discard() {\n    for (const fn of this.#discard_callbacks) fn(this);\n    this.#discard_callbacks.clear();\n    this.#fork_commit_callbacks.clear();\n    this.#unlink();\n  }\n  /**\n   * @param {Effect} effect\n   */\n  register_created_effect(effect2) {\n    this.#new_effects.push(effect2);\n  }\n  #commit() {\n    this.#unlink();\n    for (let batch = first_batch; batch !== null; batch = batch.#next) {\n      var is_earlier = batch.id < this.id;\n      var sources = [];\n      for (const [source3, [value, is_derived]] of this.current) {\n        if (batch.current.has(source3)) {\n          var batch_value = (\n            /** @type {[any, boolean]} */\n            batch.current.get(source3)[0]\n          );\n          if (is_earlier && value !== batch_value) {\n            batch.current.set(source3, [value, is_derived]);\n          } else {\n            continue;\n          }\n        }\n        sources.push(source3);\n      }\n      if (is_earlier) {\n        for (const [effect2, deferred2] of this.async_deriveds) {\n          const d = batch.async_deriveds.get(effect2);\n          if (d) deferred2.promise.then(d.resolve);\n        }\n      }\n      if (!batch.#started) continue;\n      var others = [...batch.current.keys()].filter((s) => !this.current.has(s));\n      if (others.length === 0) {\n        if (is_earlier) {\n          batch.discard();\n        }\n      } else if (sources.length > 0) {\n        if (is_earlier) {\n          for (const unskipped of this.#unskipped_branches) {\n            batch.unskip_effect(unskipped, (e) => {\n              if ((e.f & (BLOCK_EFFECT | ASYNC)) !== 0) {\n                batch.schedule(e);\n              } else {\n                batch.#defer_effects([e]);\n              }\n            });\n          }\n        }\n        batch.activate();\n        var marked = /* @__PURE__ */ new Set();\n        var checked = /* @__PURE__ */ new Map();\n        for (var source2 of sources) {\n          mark_effects(source2, others, marked, checked);\n        }\n        checked = /* @__PURE__ */ new Map();\n        var current_unequal = [...batch.current.keys()].filter(\n          (c) => this.current.has(c) ? (\n            /** @type {[any, boolean]} */\n            this.current.get(c)[0] !== c.v\n          ) : true\n        );\n        if (current_unequal.length > 0) {\n          for (const effect2 of this.#new_effects) {\n            if ((effect2.f & (DESTROYED | INERT | EAGER_EFFECT)) === 0 && depends_on(effect2, current_unequal, checked)) {\n              if ((effect2.f & (ASYNC | BLOCK_EFFECT)) !== 0) {\n                set_signal_status(effect2, DIRTY);\n                batch.schedule(effect2);\n              } else {\n                batch.#dirty_effects.add(effect2);\n              }\n            }\n          }\n        }\n        if (batch.#roots.length > 0) {\n          batch.apply();\n          for (var root2 of batch.#roots) {\n            batch.#traverse(root2, [], []);\n          }\n          batch.#roots = [];\n        }\n        batch.deactivate();\n      }\n    }\n  }\n  /**\n   * @param {boolean} blocking\n   * @param {Effect} effect\n   */\n  increment(blocking, effect2) {\n    this.#pending += 1;\n    if (blocking) {\n      let blocking_pending_count = this.#blocking_pending.get(effect2) ?? 0;\n      this.#blocking_pending.set(effect2, blocking_pending_count + 1);\n    }\n  }\n  /**\n   * @param {boolean} blocking\n   * @param {Effect} effect\n   */\n  decrement(blocking, effect2) {\n    this.#pending -= 1;\n    if (blocking) {\n      let blocking_pending_count = this.#blocking_pending.get(effect2) ?? 0;\n      if (blocking_pending_count === 1) {\n        this.#blocking_pending.delete(effect2);\n      } else {\n        this.#blocking_pending.set(effect2, blocking_pending_count - 1);\n      }\n    }\n    if (this.#decrement_queued) return;\n    this.#decrement_queued = true;\n    queue_micro_task(() => {\n      this.#decrement_queued = false;\n      if (this.linked) {\n        this.flush();\n      }\n    });\n  }\n  /**\n   * @param {Set<Effect>} dirty_effects\n   * @param {Set<Effect>} maybe_dirty_effects\n   */\n  transfer_effects(dirty_effects, maybe_dirty_effects) {\n    for (const e of dirty_effects) {\n      this.#dirty_effects.add(e);\n    }\n    for (const e of maybe_dirty_effects) {\n      this.#maybe_dirty_effects.add(e);\n    }\n    dirty_effects.clear();\n    maybe_dirty_effects.clear();\n  }\n  /** @param {(batch: Batch) => void} fn */\n  oncommit(fn) {\n    this.#commit_callbacks.add(fn);\n  }\n  /** @param {(batch: Batch) => void} fn */\n  ondiscard(fn) {\n    this.#discard_callbacks.add(fn);\n  }\n  /** @param {(batch: Batch) => void} fn */\n  on_fork_commit(fn) {\n    this.#fork_commit_callbacks.add(fn);\n  }\n  run_fork_commit_callbacks() {\n    for (const fn of this.#fork_commit_callbacks) fn(this);\n    this.#fork_commit_callbacks.clear();\n  }\n  settled() {\n    return (this.#deferred ??= deferred()).promise;\n  }\n  static ensure() {\n    if (current_batch === null) {\n      const batch = current_batch = new Batch();\n      batch.#link();\n      if (!is_processing && !is_flushing_sync) {\n        queue_micro_task(() => {\n          if (!batch.#started) {\n            batch.flush();\n          }\n        });\n      }\n    }\n    return current_batch;\n  }\n  apply() {\n    {\n      batch_values = null;\n      return;\n    }\n  }\n  /**\n   *\n   * @param {Effect} effect\n   */\n  schedule(effect2) {\n    last_scheduled_effect = effect2;\n    if (effect2.b?.is_pending && (effect2.f & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0 && (effect2.f & REACTION_RAN) === 0) {\n      effect2.b.defer_effect(effect2);\n      return;\n    }\n    var e = effect2;\n    while (e.parent !== null) {\n      e = e.parent;\n      var flags2 = e.f;\n      if (collected_effects !== null && e === active_effect) {\n        if ((active_reaction === null || (active_reaction.f & DERIVED) === 0) && true) {\n          return;\n        }\n      }\n      if ((flags2 & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {\n        if ((flags2 & CLEAN) === 0) {\n          return;\n        }\n        e.f ^= CLEAN;\n      }\n    }\n    this.#roots.push(e);\n  }\n  #link() {\n    if (last_batch === null) {\n      first_batch = last_batch = this;\n    } else {\n      last_batch.#next = this;\n      this.#prev = last_batch;\n    }\n    last_batch = this;\n  }\n  #unlink() {\n    var prev = this.#prev;\n    var next2 = this.#next;\n    if (prev === null) {\n      first_batch = next2;\n    } else {\n      prev.#next = next2;\n    }\n    if (next2 === null) {\n      last_batch = prev;\n    } else {\n      next2.#prev = prev;\n    }\n    this.linked = false;\n  }\n}\nfunction flushSync(fn) {\n  var was_flushing_sync = is_flushing_sync;\n  is_flushing_sync = true;\n  try {\n    var result;\n    if (fn) ;\n    while (true) {\n      flush_tasks();\n      if (current_batch === null) {\n        return (\n          /** @type {T} */\n          result\n        );\n      }\n      current_batch.flush();\n    }\n  } finally {\n    is_flushing_sync = was_flushing_sync;\n  }\n}\nfunction infinite_loop_guard() {\n  try {\n    effect_update_depth_exceeded();\n  } catch (error) {\n    invoke_error_boundary(error, last_scheduled_effect);\n  }\n}\nlet eager_block_effects = null;\nfunction flush_queued_effects(effects) {\n  var length = effects.length;\n  if (length === 0) return;\n  var i = 0;\n  while (i < length) {\n    var effect2 = effects[i++];\n    if ((effect2.f & (DESTROYED | INERT)) === 0 && is_dirty(effect2)) {\n      eager_block_effects = /* @__PURE__ */ new Set();\n      update_effect(effect2);\n      if (effect2.deps === null && effect2.first === null && effect2.nodes === null && effect2.teardown === null && effect2.ac === null) {\n        unlink_effect(effect2);\n      }\n      if (eager_block_effects?.size > 0) {\n        old_values.clear();\n        for (const e of eager_block_effects) {\n          if ((e.f & (DESTROYED | INERT)) !== 0) continue;\n          const ordered_effects = [e];\n          let ancestor = e.parent;\n          while (ancestor !== null) {\n            if (eager_block_effects.has(ancestor)) {\n              eager_block_effects.delete(ancestor);\n              ordered_effects.push(ancestor);\n            }\n            ancestor = ancestor.parent;\n          }\n          for (let j = ordered_effects.length - 1; j >= 0; j--) {\n            const e2 = ordered_effects[j];\n            if ((e2.f & (DESTROYED | INERT)) !== 0) continue;\n            update_effect(e2);\n          }\n        }\n        eager_block_effects.clear();\n      }\n    }\n  }\n  eager_block_effects = null;\n}\nfunction mark_effects(value, sources, marked, checked) {\n  if (marked.has(value)) return;\n  marked.add(value);\n  if (value.reactions !== null) {\n    for (const reaction of value.reactions) {\n      const flags2 = reaction.f;\n      if ((flags2 & DERIVED) !== 0) {\n        mark_effects(\n          /** @type {Derived} */\n          reaction,\n          sources,\n          marked,\n          checked\n        );\n      } else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags2 & DIRTY) === 0 && depends_on(reaction, sources, checked)) {\n        set_signal_status(reaction, DIRTY);\n        schedule_effect(\n          /** @type {Effect} */\n          reaction\n        );\n      }\n    }\n  }\n}\nfunction depends_on(reaction, sources, checked) {\n  const depends = checked.get(reaction);\n  if (depends !== void 0) return depends;\n  if (reaction.deps !== null) {\n    for (const dep of reaction.deps) {\n      if (includes.call(sources, dep)) {\n        return true;\n      }\n      if ((dep.f & DERIVED) !== 0 && depends_on(\n        /** @type {Derived} */\n        dep,\n        sources,\n        checked\n      )) {\n        checked.set(\n          /** @type {Derived} */\n          dep,\n          true\n        );\n        return true;\n      }\n    }\n  }\n  checked.set(reaction, false);\n  return false;\n}\nfunction schedule_effect(effect2) {\n  current_batch.schedule(effect2);\n}\nfunction reset_branch(effect2, tracked) {\n  if ((effect2.f & BRANCH_EFFECT) !== 0 && (effect2.f & CLEAN) !== 0) {\n    return;\n  }\n  if ((effect2.f & DIRTY) !== 0) {\n    tracked.d.push(effect2);\n  } else if ((effect2.f & MAYBE_DIRTY) !== 0) {\n    tracked.m.push(effect2);\n  }\n  set_signal_status(effect2, CLEAN);\n  var e = effect2.first;\n  while (e !== null) {\n    reset_branch(e, tracked);\n    e = e.next;\n  }\n}\nfunction reset_all(effect2) {\n  set_signal_status(effect2, CLEAN);\n  var e = effect2.first;\n  while (e !== null) {\n    reset_all(e);\n    e = e.next;\n  }\n}\nfunction createSubscriber(start) {\n  let subscribers = 0;\n  let version = source(0);\n  let stop;\n  return () => {\n    if (effect_tracking()) {\n      get(version);\n      render_effect(() => {\n        if (subscribers === 0) {\n          stop = untrack(() => start(() => increment(version)));\n        }\n        subscribers += 1;\n        return () => {\n          queue_micro_task(() => {\n            subscribers -= 1;\n            if (subscribers === 0) {\n              stop?.();\n              stop = void 0;\n              increment(version);\n            }\n          });\n        };\n      });\n    }\n  };\n}\nvar flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED;\nfunction boundary(node, props, children, transform_error) {\n  new Boundary(node, props, children, transform_error);\n}\nclass Boundary {\n  /** @type {Boundary | null} */\n  parent;\n  is_pending = false;\n  /**\n   * API-level transformError transform function. Transforms errors before they reach the `failed` snippet.\n   * Inherited from parent boundary, or defaults to identity.\n   * @type {(error: unknown) => unknown}\n   */\n  transform_error;\n  /** @type {TemplateNode} */\n  #anchor;\n  /** @type {TemplateNode | null} */\n  #hydrate_open = hydrating ? hydrate_node : null;\n  /** @type {BoundaryProps} */\n  #props;\n  /** @type {((anchor: Node) => void)} */\n  #children;\n  /** @type {Effect} */\n  #effect;\n  /** @type {Effect | null} */\n  #main_effect = null;\n  /** @type {Effect | null} */\n  #pending_effect = null;\n  /** @type {Effect | null} */\n  #failed_effect = null;\n  /** @type {DocumentFragment | null} */\n  #offscreen_fragment = null;\n  #local_pending_count = 0;\n  #pending_count = 0;\n  #pending_count_update_queued = false;\n  /** @type {Set<Effect>} */\n  #dirty_effects = /* @__PURE__ */ new Set();\n  /** @type {Set<Effect>} */\n  #maybe_dirty_effects = /* @__PURE__ */ new Set();\n  /**\n   * A source containing the number of pending async deriveds/expressions.\n   * Only created if `$effect.pending()` is used inside the boundary,\n   * otherwise updating the source results in needless `Batch.ensure()`\n   * calls followed by no-op flushes\n   * @type {Source<number> | null}\n   */\n  #effect_pending = null;\n  #effect_pending_subscriber = createSubscriber(() => {\n    this.#effect_pending = source(this.#local_pending_count);\n    return () => {\n      this.#effect_pending = null;\n    };\n  });\n  /**\n   * @param {TemplateNode} node\n   * @param {BoundaryProps} props\n   * @param {((anchor: Node) => void)} children\n   * @param {((error: unknown) => unknown) | undefined} [transform_error]\n   */\n  constructor(node, props, children, transform_error) {\n    this.#anchor = node;\n    this.#props = props;\n    this.#children = (anchor) => {\n      var effect2 = (\n        /** @type {Effect} */\n        active_effect\n      );\n      effect2.b = this;\n      effect2.f |= BOUNDARY_EFFECT;\n      children(anchor);\n    };\n    this.parent = /** @type {Effect} */\n    active_effect.b;\n    this.transform_error = transform_error ?? this.parent?.transform_error ?? ((e) => e);\n    this.#effect = block(() => {\n      if (hydrating) {\n        const comment2 = (\n          /** @type {Comment} */\n          this.#hydrate_open\n        );\n        hydrate_next();\n        const server_rendered_pending = comment2.data === HYDRATION_START_ELSE;\n        const server_rendered_failed = comment2.data.startsWith(HYDRATION_START_FAILED);\n        if (server_rendered_failed) {\n          const serialized_error = JSON.parse(comment2.data.slice(HYDRATION_START_FAILED.length));\n          this.#hydrate_failed_content(serialized_error);\n        } else if (server_rendered_pending) {\n          this.#hydrate_pending_content();\n        } else {\n          this.#hydrate_resolved_content();\n        }\n      } else {\n        this.#render();\n      }\n    }, flags);\n    if (hydrating) {\n      this.#anchor = hydrate_node;\n    }\n  }\n  #hydrate_resolved_content() {\n    try {\n      this.#main_effect = branch(() => this.#children(this.#anchor));\n    } catch (error) {\n      this.error(error);\n    }\n  }\n  /**\n   * @param {unknown} error The deserialized error from the server's hydration comment\n   */\n  #hydrate_failed_content(error) {\n    const failed = this.#props.failed;\n    if (!failed) return;\n    this.#failed_effect = branch(() => {\n      failed(\n        this.#anchor,\n        () => error,\n        () => () => {\n        }\n      );\n    });\n  }\n  #hydrate_pending_content() {\n    const pending = this.#props.pending;\n    if (!pending) return;\n    this.is_pending = true;\n    this.#pending_effect = branch(() => pending(this.#anchor));\n    queue_micro_task(() => {\n      var fragment = this.#offscreen_fragment = document.createDocumentFragment();\n      var anchor = create_text();\n      fragment.append(anchor);\n      this.#main_effect = this.#run(() => {\n        return branch(() => this.#children(anchor));\n      });\n      if (this.#pending_count === 0) {\n        this.#anchor.before(fragment);\n        this.#offscreen_fragment = null;\n        pause_effect(\n          /** @type {Effect} */\n          this.#pending_effect,\n          () => {\n            this.#pending_effect = null;\n          }\n        );\n        this.#resolve(\n          /** @type {Batch} */\n          current_batch\n        );\n      }\n    });\n  }\n  #render() {\n    try {\n      this.is_pending = this.has_pending_snippet();\n      this.#pending_count = 0;\n      this.#local_pending_count = 0;\n      this.#main_effect = branch(() => {\n        this.#children(this.#anchor);\n      });\n      if (this.#pending_count > 0) {\n        var fragment = this.#offscreen_fragment = document.createDocumentFragment();\n        move_effect(this.#main_effect, fragment);\n        const pending = (\n          /** @type {(anchor: Node) => void} */\n          this.#props.pending\n        );\n        this.#pending_effect = branch(() => pending(this.#anchor));\n      } else {\n        this.#resolve(\n          /** @type {Batch} */\n          current_batch\n        );\n      }\n    } catch (error) {\n      this.error(error);\n    }\n  }\n  /**\n   * @param {Batch} batch\n   */\n  #resolve(batch) {\n    this.is_pending = false;\n    batch.transfer_effects(this.#dirty_effects, this.#maybe_dirty_effects);\n  }\n  /**\n   * Defer an effect inside a pending boundary until the boundary resolves\n   * @param {Effect} effect\n   */\n  defer_effect(effect2) {\n    defer_effect(effect2, this.#dirty_effects, this.#maybe_dirty_effects);\n  }\n  /**\n   * Returns `false` if the effect exists inside a boundary whose pending snippet is shown\n   * @returns {boolean}\n   */\n  is_rendered() {\n    return !this.is_pending && (!this.parent || this.parent.is_rendered());\n  }\n  has_pending_snippet() {\n    return !!this.#props.pending;\n  }\n  /**\n   * @template T\n   * @param {() => T} fn\n   */\n  #run(fn) {\n    var previous_effect = active_effect;\n    var previous_reaction = active_reaction;\n    var previous_ctx = component_context;\n    set_active_effect(this.#effect);\n    set_active_reaction(this.#effect);\n    set_component_context(this.#effect.ctx);\n    try {\n      Batch.ensure();\n      return fn();\n    } catch (e) {\n      handle_error(e);\n      return null;\n    } finally {\n      set_active_effect(previous_effect);\n      set_active_reaction(previous_reaction);\n      set_component_context(previous_ctx);\n    }\n  }\n  /**\n   * Updates the pending count associated with the currently visible pending snippet,\n   * if any, such that we can replace the snippet with content once work is done\n   * @param {1 | -1} d\n   * @param {Batch} batch\n   */\n  #update_pending_count(d, batch) {\n    if (!this.has_pending_snippet()) {\n      if (this.parent) {\n        this.parent.#update_pending_count(d, batch);\n      }\n      return;\n    }\n    this.#pending_count += d;\n    if (this.#pending_count === 0) {\n      this.#resolve(batch);\n      if (this.#pending_effect) {\n        pause_effect(this.#pending_effect, () => {\n          this.#pending_effect = null;\n        });\n      }\n      if (this.#offscreen_fragment) {\n        this.#anchor.before(this.#offscreen_fragment);\n        this.#offscreen_fragment = null;\n      }\n    }\n  }\n  /**\n   * Update the source that powers `$effect.pending()` inside this boundary,\n   * and controls when the current `pending` snippet (if any) is removed.\n   * Do not call from inside the class\n   * @param {1 | -1} d\n   * @param {Batch} batch\n   */\n  update_pending_count(d, batch) {\n    this.#update_pending_count(d, batch);\n    this.#local_pending_count += d;\n    if (!this.#effect_pending || this.#pending_count_update_queued) return;\n    this.#pending_count_update_queued = true;\n    queue_micro_task(() => {\n      this.#pending_count_update_queued = false;\n      if (this.#effect_pending) {\n        internal_set(this.#effect_pending, this.#local_pending_count);\n      }\n    });\n  }\n  get_effect_pending() {\n    this.#effect_pending_subscriber();\n    return get(\n      /** @type {Source<number>} */\n      this.#effect_pending\n    );\n  }\n  /** @param {unknown} error */\n  error(error) {\n    if (!this.#props.onerror && !this.#props.failed) {\n      throw error;\n    }\n    if (current_batch?.is_fork) {\n      if (this.#main_effect) current_batch.skip_effect(this.#main_effect);\n      if (this.#pending_effect) current_batch.skip_effect(this.#pending_effect);\n      if (this.#failed_effect) current_batch.skip_effect(this.#failed_effect);\n      current_batch.on_fork_commit(() => {\n        this.#handle_error(error);\n      });\n    } else {\n      this.#handle_error(error);\n    }\n  }\n  /**\n   * @param {unknown} error\n   */\n  #handle_error(error) {\n    if (this.#main_effect) {\n      destroy_effect(this.#main_effect);\n      this.#main_effect = null;\n    }\n    if (this.#pending_effect) {\n      destroy_effect(this.#pending_effect);\n      this.#pending_effect = null;\n    }\n    if (this.#failed_effect) {\n      destroy_effect(this.#failed_effect);\n      this.#failed_effect = null;\n    }\n    if (hydrating) {\n      set_hydrate_node(\n        /** @type {TemplateNode} */\n        this.#hydrate_open\n      );\n      next();\n      set_hydrate_node(skip_nodes());\n    }\n    var onerror = this.#props.onerror;\n    let failed = this.#props.failed;\n    var did_reset = false;\n    var calling_on_error = false;\n    const reset2 = () => {\n      if (did_reset) {\n        svelte_boundary_reset_noop();\n        return;\n      }\n      did_reset = true;\n      if (calling_on_error) {\n        svelte_boundary_reset_onerror();\n      }\n      if (this.#failed_effect !== null) {\n        pause_effect(this.#failed_effect, () => {\n          this.#failed_effect = null;\n        });\n      }\n      this.#run(() => {\n        this.#render();\n      });\n    };\n    const handle_error_result = (transformed_error) => {\n      try {\n        calling_on_error = true;\n        onerror?.(transformed_error, reset2);\n        calling_on_error = false;\n      } catch (error2) {\n        invoke_error_boundary(error2, this.#effect && this.#effect.parent);\n      }\n      if (failed) {\n        this.#failed_effect = this.#run(() => {\n          try {\n            return branch(() => {\n              var effect2 = (\n                /** @type {Effect} */\n                active_effect\n              );\n              effect2.b = this;\n              effect2.f |= BOUNDARY_EFFECT;\n              failed(\n                this.#anchor,\n                () => transformed_error,\n                () => reset2\n              );\n            });\n          } catch (error2) {\n            invoke_error_boundary(\n              error2,\n              /** @type {Effect} */\n              this.#effect.parent\n            );\n            return null;\n          }\n        });\n      }\n    };\n    queue_micro_task(() => {\n      var result;\n      try {\n        result = this.transform_error(error);\n      } catch (e) {\n        invoke_error_boundary(e, this.#effect && this.#effect.parent);\n        return;\n      }\n      if (result !== null && typeof result === \"object\" && typeof /** @type {any} */\n      result.then === \"function\") {\n        result.then(\n          handle_error_result,\n          /** @param {unknown} e */\n          (e) => invoke_error_boundary(e, this.#effect && this.#effect.parent)\n        );\n      } else {\n        handle_error_result(result);\n      }\n    });\n  }\n}\nfunction flatten(blockers, sync, async, fn) {\n  const d = derived;\n  var pending = blockers.filter((b) => !b.settled);\n  if (async.length === 0 && pending.length === 0) {\n    fn(sync.map(d));\n    return;\n  }\n  var parent = (\n    /** @type {Effect} */\n    active_effect\n  );\n  var restore = capture();\n  var blocker_promise = pending.length === 1 ? pending[0].promise : pending.length > 1 ? Promise.all(pending.map((b) => b.promise)) : null;\n  function finish(values) {\n    if ((parent.f & DESTROYED) !== 0) {\n      return;\n    }\n    restore();\n    try {\n      fn(values);\n    } catch (error) {\n      invoke_error_boundary(error, parent);\n    }\n    unset_context();\n  }\n  var decrement_pending = increment_pending();\n  if (async.length === 0) {\n    blocker_promise.then(() => finish(sync.map(d))).finally(decrement_pending);\n    return;\n  }\n  function run() {\n    Promise.all(async.map((expression) => /* @__PURE__ */ async_derived(expression))).then((result) => finish([...sync.map(d), ...result])).catch((error) => invoke_error_boundary(error, parent)).finally(decrement_pending);\n  }\n  if (blocker_promise) {\n    blocker_promise.then(() => {\n      restore();\n      run();\n      unset_context();\n    });\n  } else {\n    run();\n  }\n}\nfunction capture() {\n  var previous_effect = (\n    /** @type {Effect} */\n    active_effect\n  );\n  var previous_reaction = active_reaction;\n  var previous_component_context = component_context;\n  var previous_batch2 = (\n    /** @type {Batch} */\n    current_batch\n  );\n  return function restore(activate_batch = true) {\n    set_active_effect(previous_effect);\n    set_active_reaction(previous_reaction);\n    set_component_context(previous_component_context);\n    if (activate_batch && (previous_effect.f & DESTROYED) === 0) {\n      previous_batch2?.activate();\n      previous_batch2?.apply();\n    }\n  };\n}\nfunction unset_context(deactivate_batch = true) {\n  set_active_effect(null);\n  set_active_reaction(null);\n  set_component_context(null);\n  if (deactivate_batch) current_batch?.deactivate();\n}\nfunction increment_pending() {\n  var effect2 = (\n    /** @type {Effect} */\n    active_effect\n  );\n  var boundary2 = (\n    /** @type {Boundary} */\n    effect2.b\n  );\n  var batch = (\n    /** @type {Batch} */\n    current_batch\n  );\n  var blocking = boundary2.is_rendered();\n  boundary2.update_pending_count(1, batch);\n  batch.increment(blocking, effect2);\n  return () => {\n    boundary2.update_pending_count(-1, batch);\n    batch.decrement(blocking, effect2);\n  };\n}\n// @__NO_SIDE_EFFECTS__\nfunction derived(fn) {\n  var flags2 = DERIVED | DIRTY;\n  if (active_effect !== null) {\n    active_effect.f |= EFFECT_PRESERVED;\n  }\n  const signal = {\n    ctx: component_context,\n    deps: null,\n    effects: null,\n    equals,\n    f: flags2,\n    fn,\n    reactions: null,\n    rv: 0,\n    v: (\n      /** @type {V} */\n      UNINITIALIZED\n    ),\n    wv: 0,\n    parent: active_effect,\n    ac: null\n  };\n  return signal;\n}\nconst OBSOLETE = /* @__PURE__ */ Symbol(\"obsolete\");\n// @__NO_SIDE_EFFECTS__\nfunction async_derived(fn, label, location2) {\n  let parent = (\n    /** @type {Effect | null} */\n    active_effect\n  );\n  if (parent === null) {\n    async_derived_orphan();\n  }\n  var promise = (\n    /** @type {Promise<V>} */\n    /** @type {unknown} */\n    void 0\n  );\n  var signal = source(\n    /** @type {V} */\n    UNINITIALIZED\n  );\n  var should_suspend = !active_reaction;\n  var deferreds = /* @__PURE__ */ new Set();\n  async_effect(() => {\n    var effect2 = (\n      /** @type {Effect} */\n      active_effect\n    );\n    var d = deferred();\n    promise = d.promise;\n    try {\n      Promise.resolve(fn()).then(d.resolve, (e) => {\n        if (e !== STALE_REACTION) d.reject(e);\n      }).finally(unset_context);\n    } catch (error) {\n      d.reject(error);\n      unset_context();\n    }\n    var batch = (\n      /** @type {Batch} */\n      current_batch\n    );\n    if (should_suspend) {\n      if ((effect2.f & REACTION_RAN) !== 0) {\n        var decrement_pending = increment_pending();\n      }\n      if (\n        /** @type {Boundary} */\n        parent.b.is_rendered()\n      ) {\n        batch.async_deriveds.get(effect2)?.reject(OBSOLETE);\n      } else {\n        for (const d2 of deferreds.values()) {\n          d2.reject(OBSOLETE);\n        }\n      }\n      deferreds.add(d);\n      batch.async_deriveds.set(effect2, d);\n    }\n    const handler = (value, error = void 0) => {\n      decrement_pending?.();\n      deferreds.delete(d);\n      if (error === OBSOLETE) return;\n      batch.activate();\n      if (error) {\n        signal.f |= ERROR_VALUE;\n        internal_set(signal, error);\n      } else {\n        if ((signal.f & ERROR_VALUE) !== 0) {\n          signal.f ^= ERROR_VALUE;\n        }\n        internal_set(signal, value);\n      }\n      batch.deactivate();\n    };\n    d.promise.then(handler, (e) => handler(null, e || \"unknown\"));\n  });\n  teardown(() => {\n    for (const d of deferreds) {\n      d.reject(OBSOLETE);\n    }\n  });\n  return new Promise((fulfil) => {\n    function next2(p) {\n      function go() {\n        if (p === promise) {\n          fulfil(signal);\n        } else {\n          next2(promise);\n        }\n      }\n      p.then(go, go);\n    }\n    next2(promise);\n  });\n}\n// @__NO_SIDE_EFFECTS__\nfunction user_derived(fn) {\n  const d = /* @__PURE__ */ derived(fn);\n  push_reaction_value(d);\n  return d;\n}\nfunction destroy_derived_effects(derived2) {\n  var effects = derived2.effects;\n  if (effects !== null) {\n    derived2.effects = null;\n    for (var i = 0; i < effects.length; i += 1) {\n      destroy_effect(\n        /** @type {Effect} */\n        effects[i]\n      );\n    }\n  }\n}\nfunction execute_derived(derived2) {\n  var value;\n  var prev_active_effect = active_effect;\n  var parent = derived2.parent;\n  if (!is_destroying_effect && parent !== null && derived2.v !== UNINITIALIZED && // if it was never evaluated before, it's guaranteed to fail downstream, so we try to execute instead\n  (parent.f & (DESTROYED | INERT)) !== 0) {\n    derived_inert();\n    return derived2.v;\n  }\n  set_active_effect(parent);\n  {\n    try {\n      derived2.f &= ~WAS_MARKED;\n      destroy_derived_effects(derived2);\n      value = update_reaction(derived2);\n    } finally {\n      set_active_effect(prev_active_effect);\n    }\n  }\n  return value;\n}\nfunction update_derived(derived2) {\n  var value = execute_derived(derived2);\n  if (!derived2.equals(value)) {\n    derived2.wv = increment_write_version();\n    if (!current_batch?.is_fork || derived2.deps === null) {\n      if (current_batch !== null) {\n        current_batch.capture(derived2, value, true);\n        previous_batch?.capture(derived2, value, true);\n      } else {\n        derived2.v = value;\n      }\n      if (derived2.deps === null) {\n        set_signal_status(derived2, CLEAN);\n        return;\n      }\n    }\n  }\n  if (is_destroying_effect) {\n    return;\n  }\n  if (batch_values !== null) {\n    if (effect_tracking() || current_batch?.is_fork) {\n      batch_values.set(derived2, value);\n    }\n  } else {\n    update_derived_status(derived2);\n  }\n}\nfunction freeze_derived_effects(derived2) {\n  if (derived2.effects === null) return;\n  for (const e of derived2.effects) {\n    if (e.teardown || e.ac) {\n      e.teardown?.();\n      e.ac?.abort(STALE_REACTION);\n      if (e.fn !== null) e.teardown = noop;\n      e.ac = null;\n      remove_reactions(e, 0);\n      destroy_effect_children(e);\n    }\n  }\n}\nfunction unfreeze_derived_effects(derived2) {\n  if (derived2.effects === null) return;\n  for (const e of derived2.effects) {\n    if (e.teardown && e.fn !== null) {\n      update_effect(e);\n    }\n  }\n}\nlet eager_effects = /* @__PURE__ */ new Set();\nconst old_values = /* @__PURE__ */ new Map();\nlet eager_effects_deferred = false;\nfunction source(v, stack) {\n  var signal = {\n    f: 0,\n    // TODO ideally we could skip this altogether, but it causes type errors\n    v,\n    reactions: null,\n    equals,\n    rv: 0,\n    wv: 0\n  };\n  return signal;\n}\n// @__NO_SIDE_EFFECTS__\nfunction state(v, stack) {\n  const s = source(v);\n  push_reaction_value(s);\n  return s;\n}\n// @__NO_SIDE_EFFECTS__\nfunction mutable_source(initial_value, immutable = false, trackable = true) {\n  const s = source(initial_value);\n  if (!immutable) {\n    s.equals = safe_equals;\n  }\n  return s;\n}\nfunction set(source2, value, should_proxy = false) {\n  if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check\n  // to ensure we error if state is set inside an inspect effect\n  (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !includes.call(current_sources, source2))) {\n    state_unsafe_mutation();\n  }\n  let new_value = should_proxy ? proxy(value) : value;\n  return internal_set(source2, new_value, legacy_updates);\n}\nfunction internal_set(source2, value, updated_during_traversal = null) {\n  if (!source2.equals(value)) {\n    old_values.set(source2, is_destroying_effect ? value : source2.v);\n    var batch = Batch.ensure();\n    batch.capture(source2, value);\n    if ((source2.f & DERIVED) !== 0) {\n      const derived2 = (\n        /** @type {Derived} */\n        source2\n      );\n      if ((source2.f & DIRTY) !== 0) {\n        execute_derived(derived2);\n      }\n      if (batch_values === null) {\n        update_derived_status(derived2);\n      }\n    }\n    source2.wv = increment_write_version();\n    mark_reactions(source2, DIRTY, updated_during_traversal);\n    if (active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {\n      if (untracked_writes === null) {\n        set_untracked_writes([source2]);\n      } else {\n        untracked_writes.push(source2);\n      }\n    }\n    if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {\n      flush_eager_effects();\n    }\n  }\n  return value;\n}\nfunction flush_eager_effects() {\n  eager_effects_deferred = false;\n  for (const effect2 of eager_effects) {\n    if ((effect2.f & CLEAN) !== 0) {\n      set_signal_status(effect2, MAYBE_DIRTY);\n    }\n    let dirty;\n    try {\n      dirty = is_dirty(effect2);\n    } catch {\n      dirty = true;\n    }\n    if (dirty) {\n      update_effect(effect2);\n    }\n  }\n  eager_effects.clear();\n}\nfunction increment(source2) {\n  set(source2, source2.v + 1);\n}\nfunction mark_reactions(signal, status, updated_during_traversal) {\n  var reactions = signal.reactions;\n  if (reactions === null) return;\n  var length = reactions.length;\n  for (var i = 0; i < length; i++) {\n    var reaction = reactions[i];\n    var flags2 = reaction.f;\n    var not_dirty = (flags2 & DIRTY) === 0;\n    if (not_dirty) {\n      set_signal_status(reaction, status);\n    }\n    if ((flags2 & EAGER_EFFECT) !== 0) {\n      eager_effects.add(\n        /** @type {Effect} */\n        reaction\n      );\n    } else if ((flags2 & DERIVED) !== 0) {\n      var derived2 = (\n        /** @type {Derived} */\n        reaction\n      );\n      batch_values?.delete(derived2);\n      if ((flags2 & WAS_MARKED) === 0) {\n        if (flags2 & CONNECTED && (active_effect === null || (active_effect.f & REACTION_IS_UPDATING) === 0)) {\n          reaction.f |= WAS_MARKED;\n        }\n        mark_reactions(derived2, MAYBE_DIRTY, updated_during_traversal);\n      }\n    } else if (not_dirty) {\n      var effect2 = (\n        /** @type {Effect} */\n        reaction\n      );\n      if ((flags2 & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {\n        eager_block_effects.add(effect2);\n      }\n      if (updated_during_traversal !== null) {\n        updated_during_traversal.push(effect2);\n      } else {\n        schedule_effect(effect2);\n      }\n    }\n  }\n}\nfunction autofocus(dom, value) {\n  if (value) {\n    const body = document.body;\n    dom.autofocus = true;\n    queue_micro_task(() => {\n      if (document.activeElement === body) {\n        dom.focus();\n      }\n    });\n  }\n}\nlet listening_to_form_reset = false;\nfunction add_form_reset_listener() {\n  if (!listening_to_form_reset) {\n    listening_to_form_reset = true;\n    document.addEventListener(\n      \"reset\",\n      (evt) => {\n        Promise.resolve().then(() => {\n          if (!evt.defaultPrevented) {\n            for (\n              const e of\n              /**@type {HTMLFormElement} */\n              evt.target.elements\n            ) {\n              e[FORM_RESET_HANDLER]?.();\n            }\n          }\n        });\n      },\n      // In the capture phase to guarantee we get noticed of it (no possibility of stopPropagation)\n      { capture: true }\n    );\n  }\n}\nfunction without_reactive_context(fn) {\n  var previous_reaction = active_reaction;\n  var previous_effect = active_effect;\n  set_active_reaction(null);\n  set_active_effect(null);\n  try {\n    return fn();\n  } finally {\n    set_active_reaction(previous_reaction);\n    set_active_effect(previous_effect);\n  }\n}\nfunction listen_to_event_and_reset_event(element, event2, handler, on_reset = handler) {\n  element.addEventListener(event2, () => without_reactive_context(handler));\n  const prev = (\n    /** @type {any} */\n    element[FORM_RESET_HANDLER]\n  );\n  if (prev) {\n    element[FORM_RESET_HANDLER] = () => {\n      prev();\n      on_reset(true);\n    };\n  } else {\n    element[FORM_RESET_HANDLER] = () => on_reset(true);\n  }\n  add_form_reset_listener();\n}\nlet is_updating_effect = false;\nlet is_destroying_effect = false;\nfunction set_is_destroying_effect(value) {\n  is_destroying_effect = value;\n}\nlet active_reaction = null;\nlet untracking = false;\nfunction set_active_reaction(reaction) {\n  active_reaction = reaction;\n}\nlet active_effect = null;\nfunction set_active_effect(effect2) {\n  active_effect = effect2;\n}\nlet current_sources = null;\nfunction push_reaction_value(value) {\n  if (active_reaction !== null && true) {\n    if (current_sources === null) {\n      current_sources = [value];\n    } else {\n      current_sources.push(value);\n    }\n  }\n}\nlet new_deps = null;\nlet skipped_deps = 0;\nlet untracked_writes = null;\nfunction set_untracked_writes(value) {\n  untracked_writes = value;\n}\nlet write_version = 1;\nlet read_version = 0;\nlet update_version = read_version;\nfunction set_update_version(value) {\n  update_version = value;\n}\nfunction increment_write_version() {\n  return ++write_version;\n}\nfunction is_dirty(reaction) {\n  var flags2 = reaction.f;\n  if ((flags2 & DIRTY) !== 0) {\n    return true;\n  }\n  if (flags2 & DERIVED) {\n    reaction.f &= ~WAS_MARKED;\n  }\n  if ((flags2 & MAYBE_DIRTY) !== 0) {\n    var dependencies = (\n      /** @type {Value[]} */\n      reaction.deps\n    );\n    var length = dependencies.length;\n    for (var i = 0; i < length; i++) {\n      var dependency = dependencies[i];\n      if (is_dirty(\n        /** @type {Derived} */\n        dependency\n      )) {\n        update_derived(\n          /** @type {Derived} */\n          dependency\n        );\n      }\n      if (dependency.wv > reaction.wv) {\n        return true;\n      }\n    }\n    if ((flags2 & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that\n    // traversal of the graph in the other batches still happens\n    batch_values === null) {\n      set_signal_status(reaction, CLEAN);\n    }\n  }\n  return false;\n}\nfunction schedule_possible_effect_self_invalidation(signal, effect2, root2 = true) {\n  var reactions = signal.reactions;\n  if (reactions === null) return;\n  if (current_sources !== null && includes.call(current_sources, signal)) {\n    return;\n  }\n  for (var i = 0; i < reactions.length; i++) {\n    var reaction = reactions[i];\n    if ((reaction.f & DERIVED) !== 0) {\n      schedule_possible_effect_self_invalidation(\n        /** @type {Derived} */\n        reaction,\n        effect2,\n        false\n      );\n    } else if (effect2 === reaction) {\n      if (root2) {\n        set_signal_status(reaction, DIRTY);\n      } else if ((reaction.f & CLEAN) !== 0) {\n        set_signal_status(reaction, MAYBE_DIRTY);\n      }\n      schedule_effect(\n        /** @type {Effect} */\n        reaction\n      );\n    }\n  }\n}\nfunction update_reaction(reaction) {\n  var previous_deps = new_deps;\n  var previous_skipped_deps = skipped_deps;\n  var previous_untracked_writes = untracked_writes;\n  var previous_reaction = active_reaction;\n  var previous_sources = current_sources;\n  var previous_component_context = component_context;\n  var previous_untracking = untracking;\n  var previous_update_version = update_version;\n  var flags2 = reaction.f;\n  new_deps = /** @type {null | Value[]} */\n  null;\n  skipped_deps = 0;\n  untracked_writes = null;\n  active_reaction = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;\n  current_sources = null;\n  set_component_context(reaction.ctx);\n  untracking = false;\n  update_version = ++read_version;\n  if (reaction.ac !== null) {\n    without_reactive_context(() => {\n      reaction.ac.abort(STALE_REACTION);\n    });\n    reaction.ac = null;\n  }\n  try {\n    reaction.f |= REACTION_IS_UPDATING;\n    var fn = (\n      /** @type {Function} */\n      reaction.fn\n    );\n    var result = fn();\n    reaction.f |= REACTION_RAN;\n    var deps = reaction.deps;\n    var is_fork = current_batch?.is_fork;\n    if (new_deps !== null) {\n      var i;\n      if (!is_fork) {\n        remove_reactions(reaction, skipped_deps);\n      }\n      if (deps !== null && skipped_deps > 0) {\n        deps.length = skipped_deps + new_deps.length;\n        for (i = 0; i < new_deps.length; i++) {\n          deps[skipped_deps + i] = new_deps[i];\n        }\n      } else {\n        reaction.deps = deps = new_deps;\n      }\n      if (effect_tracking() && (reaction.f & CONNECTED) !== 0) {\n        for (i = skipped_deps; i < deps.length; i++) {\n          (deps[i].reactions ??= []).push(reaction);\n        }\n      }\n    } else if (!is_fork && deps !== null && skipped_deps < deps.length) {\n      remove_reactions(reaction, skipped_deps);\n      deps.length = skipped_deps;\n    }\n    if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) {\n      for (i = 0; i < /** @type {Source[]} */\n      untracked_writes.length; i++) {\n        schedule_possible_effect_self_invalidation(\n          untracked_writes[i],\n          /** @type {Effect} */\n          reaction\n        );\n      }\n    }\n    if (previous_reaction !== null && previous_reaction !== reaction) {\n      read_version++;\n      if (previous_reaction.deps !== null) {\n        for (let i2 = 0; i2 < previous_skipped_deps; i2 += 1) {\n          previous_reaction.deps[i2].rv = read_version;\n        }\n      }\n      if (previous_deps !== null) {\n        for (const dep of previous_deps) {\n          dep.rv = read_version;\n        }\n      }\n      if (untracked_writes !== null) {\n        if (previous_untracked_writes === null) {\n          previous_untracked_writes = untracked_writes;\n        } else {\n          previous_untracked_writes.push(.../** @type {Source[]} */\n          untracked_writes);\n        }\n      }\n    }\n    if ((reaction.f & ERROR_VALUE) !== 0) {\n      reaction.f ^= ERROR_VALUE;\n    }\n    return result;\n  } catch (error) {\n    return handle_error(error);\n  } finally {\n    reaction.f ^= REACTION_IS_UPDATING;\n    new_deps = previous_deps;\n    skipped_deps = previous_skipped_deps;\n    untracked_writes = previous_untracked_writes;\n    active_reaction = previous_reaction;\n    current_sources = previous_sources;\n    set_component_context(previous_component_context);\n    untracking = previous_untracking;\n    update_version = previous_update_version;\n  }\n}\nfunction remove_reaction(signal, dependency) {\n  let reactions = dependency.reactions;\n  if (reactions !== null) {\n    var index = index_of.call(reactions, signal);\n    if (index !== -1) {\n      var new_length = reactions.length - 1;\n      if (new_length === 0) {\n        reactions = dependency.reactions = null;\n      } else {\n        reactions[index] = reactions[new_length];\n        reactions.pop();\n      }\n    }\n  }\n  if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear\n  // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n  // allows us to skip the expensive work of disconnecting and immediately reconnecting it\n  (new_deps === null || !includes.call(new_deps, dependency))) {\n    var derived2 = (\n      /** @type {Derived} */\n      dependency\n    );\n    if ((derived2.f & CONNECTED) !== 0) {\n      derived2.f ^= CONNECTED;\n      derived2.f &= ~WAS_MARKED;\n    }\n    if (derived2.v !== UNINITIALIZED) {\n      update_derived_status(derived2);\n    }\n    freeze_derived_effects(derived2);\n    remove_reactions(derived2, 0);\n  }\n}\nfunction remove_reactions(signal, start_index) {\n  var dependencies = signal.deps;\n  if (dependencies === null) return;\n  for (var i = start_index; i < dependencies.length; i++) {\n    remove_reaction(signal, dependencies[i]);\n  }\n}\nfunction update_effect(effect2) {\n  var flags2 = effect2.f;\n  if ((flags2 & DESTROYED) !== 0) {\n    return;\n  }\n  set_signal_status(effect2, CLEAN);\n  var previous_effect = active_effect;\n  var was_updating_effect = is_updating_effect;\n  active_effect = effect2;\n  is_updating_effect = true;\n  try {\n    if ((flags2 & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {\n      destroy_block_effect_children(effect2);\n    } else {\n      destroy_effect_children(effect2);\n    }\n    execute_effect_teardown(effect2);\n    var teardown2 = update_reaction(effect2);\n    effect2.teardown = typeof teardown2 === \"function\" ? teardown2 : null;\n    effect2.wv = write_version;\n    var dep;\n    if (DEV && tracing_mode_flag && (effect2.f & DIRTY) !== 0 && effect2.deps !== null) ;\n  } finally {\n    is_updating_effect = was_updating_effect;\n    active_effect = previous_effect;\n  }\n}\nasync function tick() {\n  await Promise.resolve();\n  flushSync();\n}\nfunction get(signal) {\n  var flags2 = signal.f;\n  var is_derived = (flags2 & DERIVED) !== 0;\n  if (active_reaction !== null && !untracking) {\n    var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;\n    if (!destroyed && (current_sources === null || !includes.call(current_sources, signal))) {\n      var deps = active_reaction.deps;\n      if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {\n        if (signal.rv < read_version) {\n          signal.rv = read_version;\n          if (new_deps === null && deps !== null && deps[skipped_deps] === signal) {\n            skipped_deps++;\n          } else if (new_deps === null) {\n            new_deps = [signal];\n          } else {\n            new_deps.push(signal);\n          }\n        }\n      } else {\n        (active_reaction.deps ??= []).push(signal);\n        var reactions = signal.reactions;\n        if (reactions === null) {\n          signal.reactions = [active_reaction];\n        } else if (!includes.call(reactions, active_reaction)) {\n          reactions.push(active_reaction);\n        }\n      }\n    }\n  }\n  if (is_destroying_effect && old_values.has(signal)) {\n    return old_values.get(signal);\n  }\n  if (is_derived) {\n    var derived2 = (\n      /** @type {Derived} */\n      signal\n    );\n    if (is_destroying_effect) {\n      var value = derived2.v;\n      if ((derived2.f & CLEAN) === 0 && derived2.reactions !== null || depends_on_old_values(derived2)) {\n        value = execute_derived(derived2);\n      }\n      old_values.set(derived2, value);\n      return value;\n    }\n    var should_connect = (derived2.f & CONNECTED) === 0 && !untracking && active_reaction !== null && (is_updating_effect || (active_reaction.f & CONNECTED) !== 0);\n    var is_new = (derived2.f & REACTION_RAN) === 0;\n    if (is_dirty(derived2)) {\n      if (should_connect) {\n        derived2.f |= CONNECTED;\n      }\n      update_derived(derived2);\n    }\n    if (should_connect && !is_new) {\n      unfreeze_derived_effects(derived2);\n      reconnect(derived2);\n    }\n  }\n  if (batch_values?.has(signal)) {\n    return batch_values.get(signal);\n  }\n  if ((signal.f & ERROR_VALUE) !== 0) {\n    throw signal.v;\n  }\n  return signal.v;\n}\nfunction reconnect(derived2) {\n  derived2.f |= CONNECTED;\n  if (derived2.deps === null) return;\n  for (const dep of derived2.deps) {\n    (dep.reactions ??= []).push(derived2);\n    if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {\n      unfreeze_derived_effects(\n        /** @type {Derived} */\n        dep\n      );\n      reconnect(\n        /** @type {Derived} */\n        dep\n      );\n    }\n  }\n}\nfunction depends_on_old_values(derived2) {\n  if (derived2.v === UNINITIALIZED) return true;\n  if (derived2.deps === null) return false;\n  for (const dep of derived2.deps) {\n    if (old_values.has(dep)) {\n      return true;\n    }\n    if ((dep.f & DERIVED) !== 0 && depends_on_old_values(\n      /** @type {Derived} */\n      dep\n    )) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction untrack(fn) {\n  var previous_untracking = untracking;\n  try {\n    untracking = true;\n    return fn();\n  } finally {\n    untracking = previous_untracking;\n  }\n}\nfunction validate_effect(rune) {\n  if (active_effect === null) {\n    if (active_reaction === null) {\n      effect_orphan();\n    }\n    effect_in_unowned_derived();\n  }\n  if (is_destroying_effect) {\n    effect_in_teardown();\n  }\n}\nfunction push_effect(effect2, parent_effect) {\n  var parent_last = parent_effect.last;\n  if (parent_last === null) {\n    parent_effect.last = parent_effect.first = effect2;\n  } else {\n    parent_last.next = effect2;\n    effect2.prev = parent_last;\n    parent_effect.last = effect2;\n  }\n}\nfunction create_effect(type, fn) {\n  var parent = active_effect;\n  if (parent !== null && (parent.f & INERT) !== 0) {\n    type |= INERT;\n  }\n  var effect2 = {\n    ctx: component_context,\n    deps: null,\n    nodes: null,\n    f: type | DIRTY | CONNECTED,\n    first: null,\n    fn,\n    last: null,\n    next: null,\n    parent,\n    b: parent && parent.b,\n    prev: null,\n    teardown: null,\n    wv: 0,\n    ac: null\n  };\n  current_batch?.register_created_effect(effect2);\n  var e = effect2;\n  if ((type & EFFECT) !== 0) {\n    if (collected_effects !== null) {\n      collected_effects.push(effect2);\n    } else {\n      Batch.ensure().schedule(effect2);\n    }\n  } else if (fn !== null) {\n    try {\n      update_effect(effect2);\n    } catch (e2) {\n      destroy_effect(effect2);\n      throw e2;\n    }\n    if (e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child\n    (e.f & EFFECT_PRESERVED) === 0) {\n      e = e.first;\n      if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {\n        e.f |= EFFECT_TRANSPARENT;\n      }\n    }\n  }\n  if (e !== null) {\n    e.parent = parent;\n    if (parent !== null) {\n      push_effect(e, parent);\n    }\n    if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {\n      var derived2 = (\n        /** @type {Derived} */\n        active_reaction\n      );\n      (derived2.effects ??= []).push(e);\n    }\n  }\n  return effect2;\n}\nfunction effect_tracking() {\n  return active_reaction !== null && !untracking;\n}\nfunction teardown(fn) {\n  const effect2 = create_effect(RENDER_EFFECT, null);\n  set_signal_status(effect2, CLEAN);\n  effect2.teardown = fn;\n  return effect2;\n}\nfunction user_effect(fn) {\n  validate_effect();\n  var flags2 = (\n    /** @type {Effect} */\n    active_effect.f\n  );\n  var defer = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && (flags2 & REACTION_RAN) === 0;\n  if (defer) {\n    var context = (\n      /** @type {ComponentContext} */\n      component_context\n    );\n    (context.e ??= []).push(fn);\n  } else {\n    return create_user_effect(fn);\n  }\n}\nfunction create_user_effect(fn) {\n  return create_effect(EFFECT | USER_EFFECT, fn);\n}\nfunction effect_root(fn) {\n  Batch.ensure();\n  const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn);\n  return () => {\n    destroy_effect(effect2);\n  };\n}\nfunction component_root(fn) {\n  Batch.ensure();\n  const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn);\n  return (options = {}) => {\n    return new Promise((fulfil) => {\n      if (options.outro) {\n        pause_effect(effect2, () => {\n          destroy_effect(effect2);\n          fulfil(void 0);\n        });\n      } else {\n        destroy_effect(effect2);\n        fulfil(void 0);\n      }\n    });\n  };\n}\nfunction effect(fn) {\n  return create_effect(EFFECT, fn);\n}\nfunction async_effect(fn) {\n  return create_effect(ASYNC | EFFECT_PRESERVED, fn);\n}\nfunction render_effect(fn, flags2 = 0) {\n  return create_effect(RENDER_EFFECT | flags2, fn);\n}\nfunction template_effect(fn, sync = [], async = [], blockers = []) {\n  flatten(blockers, sync, async, (values) => {\n    create_effect(RENDER_EFFECT, () => fn(...values.map(get)));\n  });\n}\nfunction block(fn, flags2 = 0) {\n  var effect2 = create_effect(BLOCK_EFFECT | flags2, fn);\n  return effect2;\n}\nfunction managed(fn, flags2 = 0) {\n  var effect2 = create_effect(MANAGED_EFFECT | flags2, fn);\n  return effect2;\n}\nfunction branch(fn) {\n  return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn);\n}\nfunction execute_effect_teardown(effect2) {\n  var teardown2 = effect2.teardown;\n  if (teardown2 !== null) {\n    const previously_destroying_effect = is_destroying_effect;\n    const previous_reaction = active_reaction;\n    set_is_destroying_effect(true);\n    set_active_reaction(null);\n    try {\n      teardown2.call(null);\n    } finally {\n      set_is_destroying_effect(previously_destroying_effect);\n      set_active_reaction(previous_reaction);\n    }\n  }\n}\nfunction destroy_effect_children(signal, remove_dom = false) {\n  var effect2 = signal.first;\n  signal.first = signal.last = null;\n  while (effect2 !== null) {\n    const controller = effect2.ac;\n    if (controller !== null) {\n      without_reactive_context(() => {\n        controller.abort(STALE_REACTION);\n      });\n    }\n    var next2 = effect2.next;\n    if ((effect2.f & ROOT_EFFECT) !== 0) {\n      effect2.parent = null;\n    } else {\n      destroy_effect(effect2, remove_dom);\n    }\n    effect2 = next2;\n  }\n}\nfunction destroy_block_effect_children(signal) {\n  var effect2 = signal.first;\n  while (effect2 !== null) {\n    var next2 = effect2.next;\n    if ((effect2.f & BRANCH_EFFECT) === 0) {\n      destroy_effect(effect2);\n    }\n    effect2 = next2;\n  }\n}\nfunction destroy_effect(effect2, remove_dom = true) {\n  var removed = false;\n  if ((remove_dom || (effect2.f & HEAD_EFFECT) !== 0) && effect2.nodes !== null && effect2.nodes.end !== null) {\n    remove_effect_dom(\n      effect2.nodes.start,\n      /** @type {TemplateNode} */\n      effect2.nodes.end\n    );\n    removed = true;\n  }\n  set_signal_status(effect2, DESTROYING);\n  destroy_effect_children(effect2, remove_dom && !removed);\n  remove_reactions(effect2, 0);\n  var transitions = effect2.nodes && effect2.nodes.t;\n  if (transitions !== null) {\n    for (const transition of transitions) {\n      transition.stop();\n    }\n  }\n  execute_effect_teardown(effect2);\n  effect2.f ^= DESTROYING;\n  effect2.f |= DESTROYED;\n  var parent = effect2.parent;\n  if (parent !== null && parent.first !== null) {\n    unlink_effect(effect2);\n  }\n  effect2.next = effect2.prev = effect2.teardown = effect2.ctx = effect2.deps = effect2.fn = effect2.nodes = effect2.ac = effect2.b = null;\n}\nfunction remove_effect_dom(node, end) {\n  while (node !== null) {\n    var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node);\n    node.remove();\n    node = next2;\n  }\n}\nfunction unlink_effect(effect2) {\n  var parent = effect2.parent;\n  var prev = effect2.prev;\n  var next2 = effect2.next;\n  if (prev !== null) prev.next = next2;\n  if (next2 !== null) next2.prev = prev;\n  if (parent !== null) {\n    if (parent.first === effect2) parent.first = next2;\n    if (parent.last === effect2) parent.last = prev;\n  }\n}\nfunction pause_effect(effect2, callback, destroy = true) {\n  var transitions = [];\n  pause_children(effect2, transitions, true);\n  var fn = () => {\n    if (destroy) destroy_effect(effect2);\n    if (callback) callback();\n  };\n  var remaining = transitions.length;\n  if (remaining > 0) {\n    var check = () => --remaining || fn();\n    for (var transition of transitions) {\n      transition.out(check);\n    }\n  } else {\n    fn();\n  }\n}\nfunction pause_children(effect2, transitions, local) {\n  if ((effect2.f & INERT) !== 0) return;\n  effect2.f ^= INERT;\n  var t = effect2.nodes && effect2.nodes.t;\n  if (t !== null) {\n    for (const transition of t) {\n      if (transition.is_global || local) {\n        transitions.push(transition);\n      }\n    }\n  }\n  var child2 = effect2.first;\n  while (child2 !== null) {\n    var sibling2 = child2.next;\n    if ((child2.f & ROOT_EFFECT) === 0) {\n      var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent,\n      // it means the parent block effect was pruned. In that case,\n      // transparency information was transferred to the branch effect.\n      (child2.f & BRANCH_EFFECT) !== 0 && (effect2.f & BLOCK_EFFECT) !== 0;\n      pause_children(child2, transitions, transparent ? local : false);\n    }\n    child2 = sibling2;\n  }\n}\nfunction resume_effect(effect2) {\n  resume_children(effect2, true);\n}\nfunction resume_children(effect2, local) {\n  if ((effect2.f & INERT) === 0) return;\n  effect2.f ^= INERT;\n  if ((effect2.f & CLEAN) === 0) {\n    set_signal_status(effect2, DIRTY);\n    Batch.ensure().schedule(effect2);\n  }\n  var child2 = effect2.first;\n  while (child2 !== null) {\n    var sibling2 = child2.next;\n    var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || (child2.f & BRANCH_EFFECT) !== 0;\n    resume_children(child2, transparent ? local : false);\n    child2 = sibling2;\n  }\n  var t = effect2.nodes && effect2.nodes.t;\n  if (t !== null) {\n    for (const transition of t) {\n      if (transition.is_global || local) {\n        transition.in();\n      }\n    }\n  }\n}\nfunction move_effect(effect2, fragment) {\n  if (!effect2.nodes) return;\n  var node = effect2.nodes.start;\n  var end = effect2.nodes.end;\n  while (node !== null) {\n    var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node);\n    fragment.append(node);\n    node = next2;\n  }\n}\nfunction store(defaultValue) {\n  const scope = {\n    get: (name) => {\n      return get$1(scope.store)[name];\n    },\n    set: (name, value) => {\n      if (typeof name === \"string\") {\n        Object.assign(get$1(scope.store), {\n          [name]: value\n        });\n      } else {\n        Object.assign(get$1(scope.store), name);\n      }\n      scope.store.set(get$1(scope.store));\n    },\n    store: writable(defaultValue)\n  };\n  return scope;\n}\nglobalThis.$altcha = globalThis.$altcha || {\n  algorithms: /* @__PURE__ */ new Map(),\n  defaults: store({}),\n  i18n: store({}),\n  instances: /* @__PURE__ */ new Set(),\n  plugins: /* @__PURE__ */ new Set()\n};\nconst i18n = {\n  ariaLinkLabel: \"Altcha (official website)\",\n  cancel: \"Cancel\",\n  enterCode: \"Enter code\",\n  enterCodeAria: \"Enter code you hear. Press Space to play audio.\",\n  enterCodeFromImage: \"To proceed, please enter the code from the image below.\",\n  error: \"Verification failed. Try again later.\",\n  expired: \"Verification expired. Try again.\",\n  footer: 'Protected by <a href=\"https://altcha.org/\" tabindex=\"-1\" target=\"_blank\" aria-label=\"Altcha (official website)\">ALTCHA</a>',\n  getAudioChallenge: \"Get an audio challenge\",\n  label: \"I'm not a robot\",\n  loading: \"Loading...\",\n  reload: \"Reload\",\n  verify: \"Verify\",\n  verificationRequired: \"Verification required!\",\n  verified: \"Verified\",\n  verifying: \"Verifying...\",\n  waitAlert: \"Verifying... please wait.\"\n};\nif (\"$altcha\" in globalThis) {\n  globalThis.$altcha.i18n.set(\"en\", i18n);\n}\nconst PUBLIC_VERSION = \"5\";\nif (typeof window !== \"undefined\") {\n  ((window.__svelte ??= {}).v ??= /* @__PURE__ */ new Set()).add(PUBLIC_VERSION);\n}\nconst event_symbol = /* @__PURE__ */ Symbol(\"events\");\nconst all_registered_events = /* @__PURE__ */ new Set();\nconst root_event_handles = /* @__PURE__ */ new Set();\nfunction create_event(event_name, dom, handler, options = {}) {\n  function target_handler(event2) {\n    if (!options.capture) {\n      handle_event_propagation.call(dom, event2);\n    }\n    if (!event2.cancelBubble) {\n      return without_reactive_context(() => {\n        return handler?.call(this, event2);\n      });\n    }\n  }\n  if (event_name.startsWith(\"pointer\") || event_name.startsWith(\"touch\") || event_name === \"wheel\") {\n    queue_micro_task(() => {\n      dom.addEventListener(event_name, target_handler, options);\n    });\n  } else {\n    dom.addEventListener(event_name, target_handler, options);\n  }\n  return target_handler;\n}\nfunction event(event_name, dom, handler, capture2, passive) {\n  var options = { capture: capture2, passive };\n  var target_handler = create_event(event_name, dom, handler, options);\n  if (dom === document.body || // @ts-ignore\n  dom === window || // @ts-ignore\n  dom === document || // Firefox has quirky behavior, it can happen that we still get \"canplay\" events when the element is already removed\n  dom instanceof HTMLMediaElement) {\n    teardown(() => {\n      dom.removeEventListener(event_name, target_handler, options);\n    });\n  }\n}\nfunction delegated(event_name, element, handler) {\n  (element[event_symbol] ??= {})[event_name] = handler;\n}\nfunction delegate(events) {\n  for (var i = 0; i < events.length; i++) {\n    all_registered_events.add(events[i]);\n  }\n  for (var fn of root_event_handles) {\n    fn(events);\n  }\n}\nlet last_propagated_event = null;\nfunction handle_event_propagation(event2) {\n  var handler_element = this;\n  var owner_document = (\n    /** @type {Node} */\n    handler_element.ownerDocument\n  );\n  var event_name = event2.type;\n  var path = event2.composedPath?.() || [];\n  var current_target = (\n    /** @type {null | Element} */\n    path[0] || event2.target\n  );\n  last_propagated_event = event2;\n  var path_idx = 0;\n  var handled_at = last_propagated_event === event2 && event2[event_symbol];\n  if (handled_at) {\n    var at_idx = path.indexOf(handled_at);\n    if (at_idx !== -1 && (handler_element === document || handler_element === /** @type {any} */\n    window)) {\n      event2[event_symbol] = handler_element;\n      return;\n    }\n    var handler_idx = path.indexOf(handler_element);\n    if (handler_idx === -1) {\n      return;\n    }\n    if (at_idx <= handler_idx) {\n      path_idx = at_idx;\n    }\n  }\n  current_target = /** @type {Element} */\n  path[path_idx] || event2.target;\n  if (current_target === handler_element) return;\n  define_property(event2, \"currentTarget\", {\n    configurable: true,\n    get() {\n      return current_target || owner_document;\n    }\n  });\n  var previous_reaction = active_reaction;\n  var previous_effect = active_effect;\n  set_active_reaction(null);\n  set_active_effect(null);\n  try {\n    var throw_error;\n    var other_errors = [];\n    while (current_target !== null) {\n      var parent_element = current_target.assignedSlot || current_target.parentNode || /** @type {any} */\n      current_target.host || null;\n      try {\n        var delegated2 = current_target[event_symbol]?.[event_name];\n        if (delegated2 != null && (!/** @type {any} */\n        current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n        // -> the target could not have been disabled because it emits the event in the first place\n        event2.target === current_target)) {\n          delegated2.call(current_target, event2);\n        }\n      } catch (error) {\n        if (throw_error) {\n          other_errors.push(error);\n        } else {\n          throw_error = error;\n        }\n      }\n      if (event2.cancelBubble || parent_element === handler_element || parent_element === null) {\n        break;\n      }\n      current_target = parent_element;\n    }\n    if (throw_error) {\n      for (let error of other_errors) {\n        queueMicrotask(() => {\n          throw error;\n        });\n      }\n      throw throw_error;\n    }\n  } finally {\n    event2[event_symbol] = handler_element;\n    delete event2.currentTarget;\n    set_active_reaction(previous_reaction);\n    set_active_effect(previous_effect);\n  }\n}\nconst policy = (\n  // We gotta write it like this because after downleveling the pure comment may end up in the wrong location\n  globalThis?.window?.trustedTypes && /* @__PURE__ */ globalThis.window.trustedTypes.createPolicy(\"svelte-trusted-html\", {\n    /** @param {string} html */\n    createHTML: (html2) => {\n      return html2;\n    }\n  })\n);\nfunction create_trusted_html(html2) {\n  return (\n    /** @type {string} */\n    policy?.createHTML(html2) ?? html2\n  );\n}\nfunction create_fragment_from_html(html2) {\n  var elem = create_element(\"template\");\n  elem.innerHTML = create_trusted_html(html2.replaceAll(\"<!>\", \"<!---->\"));\n  return elem.content;\n}\nfunction assign_nodes(start, end) {\n  var effect2 = (\n    /** @type {Effect} */\n    active_effect\n  );\n  if (effect2.nodes === null) {\n    effect2.nodes = { start, end, a: null, t: null };\n  }\n}\n// @__NO_SIDE_EFFECTS__\nfunction from_html(content, flags2) {\n  var is_fragment = (flags2 & TEMPLATE_FRAGMENT) !== 0;\n  var use_import_node = (flags2 & TEMPLATE_USE_IMPORT_NODE) !== 0;\n  var node;\n  var has_start = !content.startsWith(\"<!>\");\n  return () => {\n    if (hydrating) {\n      assign_nodes(hydrate_node, null);\n      return hydrate_node;\n    }\n    if (node === void 0) {\n      node = create_fragment_from_html(has_start ? content : \"<!>\" + content);\n      if (!is_fragment) node = /** @type {TemplateNode} */\n      /* @__PURE__ */ get_first_child(node);\n    }\n    var clone = (\n      /** @type {TemplateNode} */\n      use_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)\n    );\n    if (is_fragment) {\n      var start = (\n        /** @type {TemplateNode} */\n        /* @__PURE__ */ get_first_child(clone)\n      );\n      var end = (\n        /** @type {TemplateNode} */\n        clone.lastChild\n      );\n      assign_nodes(start, end);\n    } else {\n      assign_nodes(clone, clone);\n    }\n    return clone;\n  };\n}\n// @__NO_SIDE_EFFECTS__\nfunction from_namespace(content, flags2, ns = \"svg\") {\n  var has_start = !content.startsWith(\"<!>\");\n  var wrapped = `<${ns}>${has_start ? content : \"<!>\" + content}</${ns}>`;\n  var node;\n  return () => {\n    if (hydrating) {\n      assign_nodes(hydrate_node, null);\n      return hydrate_node;\n    }\n    if (!node) {\n      var fragment = (\n        /** @type {DocumentFragment} */\n        create_fragment_from_html(wrapped)\n      );\n      var root2 = (\n        /** @type {Element} */\n        /* @__PURE__ */ get_first_child(fragment)\n      );\n      {\n        node = /** @type {Element} */\n        /* @__PURE__ */ get_first_child(root2);\n      }\n    }\n    var clone = (\n      /** @type {TemplateNode} */\n      node.cloneNode(true)\n    );\n    {\n      assign_nodes(clone, clone);\n    }\n    return clone;\n  };\n}\n// @__NO_SIDE_EFFECTS__\nfunction from_svg(content, flags2) {\n  return /* @__PURE__ */ from_namespace(content, flags2, \"svg\");\n}\nfunction text(value = \"\") {\n  if (!hydrating) {\n    var t = create_text(value + \"\");\n    assign_nodes(t, t);\n    return t;\n  }\n  var node = hydrate_node;\n  if (node.nodeType !== TEXT_NODE) {\n    node.before(node = create_text());\n    set_hydrate_node(node);\n  } else {\n    merge_text_nodes(\n      /** @type {Text} */\n      node\n    );\n  }\n  assign_nodes(node, node);\n  return node;\n}\nfunction comment() {\n  if (hydrating) {\n    assign_nodes(hydrate_node, null);\n    return hydrate_node;\n  }\n  var frag = document.createDocumentFragment();\n  var start = document.createComment(\"\");\n  var anchor = create_text();\n  frag.append(start, anchor);\n  assign_nodes(start, anchor);\n  return frag;\n}\nfunction append(anchor, dom) {\n  if (hydrating) {\n    var effect2 = (\n      /** @type {Effect & { nodes: EffectNodes }} */\n      active_effect\n    );\n    if ((effect2.f & REACTION_RAN) === 0 || effect2.nodes.end === null) {\n      effect2.nodes.end = hydrate_node;\n    }\n    hydrate_next();\n    return;\n  }\n  if (anchor === null) {\n    return;\n  }\n  anchor.before(\n    /** @type {Node} */\n    dom\n  );\n}\nfunction is_capture_event(name) {\n  return name.endsWith(\"capture\") && name !== \"gotpointercapture\" && name !== \"lostpointercapture\";\n}\nconst DELEGATED_EVENTS = [\n  \"beforeinput\",\n  \"click\",\n  \"change\",\n  \"dblclick\",\n  \"contextmenu\",\n  \"focusin\",\n  \"focusout\",\n  \"input\",\n  \"keydown\",\n  \"keyup\",\n  \"mousedown\",\n  \"mousemove\",\n  \"mouseout\",\n  \"mouseover\",\n  \"mouseup\",\n  \"pointerdown\",\n  \"pointermove\",\n  \"pointerout\",\n  \"pointerover\",\n  \"pointerup\",\n  \"touchend\",\n  \"touchmove\",\n  \"touchstart\"\n];\nfunction can_delegate_event(event_name) {\n  return DELEGATED_EVENTS.includes(event_name);\n}\nconst ATTRIBUTE_ALIASES = {\n  // no `class: 'className'` because we handle that separately\n  formnovalidate: \"formNoValidate\",\n  ismap: \"isMap\",\n  nomodule: \"noModule\",\n  playsinline: \"playsInline\",\n  readonly: \"readOnly\",\n  defaultvalue: \"defaultValue\",\n  defaultchecked: \"defaultChecked\",\n  srcobject: \"srcObject\",\n  novalidate: \"noValidate\",\n  allowfullscreen: \"allowFullscreen\",\n  disablepictureinpicture: \"disablePictureInPicture\",\n  disableremoteplayback: \"disableRemotePlayback\"\n};\nfunction normalize_attribute(name) {\n  name = name.toLowerCase();\n  return ATTRIBUTE_ALIASES[name] ?? name;\n}\nconst PASSIVE_EVENTS = [\"touchstart\", \"touchmove\"];\nfunction is_passive_event(name) {\n  return PASSIVE_EVENTS.includes(name);\n}\nfunction set_text(text2, value) {\n  var str = value == null ? \"\" : typeof value === \"object\" ? `${value}` : value;\n  if (str !== /** @type {any} */\n  (text2[TEXT_CACHE] ??= text2.nodeValue)) {\n    text2[TEXT_CACHE] = str;\n    text2.nodeValue = `${str}`;\n  }\n}\nfunction mount(component2, options) {\n  return _mount(component2, options);\n}\nfunction hydrate(component2, options) {\n  init_operations();\n  options.intro = options.intro ?? false;\n  const target = options.target;\n  const was_hydrating = hydrating;\n  const previous_hydrate_node = hydrate_node;\n  try {\n    var anchor = /* @__PURE__ */ get_first_child(target);\n    while (anchor && (anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */\n    anchor.data !== HYDRATION_START)) {\n      anchor = /* @__PURE__ */ get_next_sibling(anchor);\n    }\n    if (!anchor) {\n      throw HYDRATION_ERROR;\n    }\n    set_hydrating(true);\n    set_hydrate_node(\n      /** @type {Comment} */\n      anchor\n    );\n    const instance = _mount(component2, { ...options, anchor });\n    set_hydrating(false);\n    return (\n      /**  @type {Exports} */\n      instance\n    );\n  } catch (error) {\n    if (error instanceof Error && error.message.split(\"\\n\").some((line) => line.startsWith(\"https://svelte.dev/e/\"))) {\n      throw error;\n    }\n    if (error !== HYDRATION_ERROR) {\n      console.warn(\"Failed to hydrate: \", error);\n    }\n    if (options.recover === false) {\n      hydration_failed();\n    }\n    init_operations();\n    clear_text_content(target);\n    set_hydrating(false);\n    return mount(component2, options);\n  } finally {\n    set_hydrating(was_hydrating);\n    set_hydrate_node(previous_hydrate_node);\n  }\n}\nconst listeners = /* @__PURE__ */ new Map();\nfunction _mount(Component, { target, anchor, props = {}, events, context, intro = true, transformError }) {\n  init_operations();\n  var component2 = void 0;\n  var unmount2 = component_root(() => {\n    var anchor_node = anchor ?? target.appendChild(create_text());\n    boundary(\n      /** @type {TemplateNode} */\n      anchor_node,\n      {\n        pending: () => {\n        }\n      },\n      (anchor_node2) => {\n        push({});\n        var ctx = (\n          /** @type {ComponentContext} */\n          component_context\n        );\n        if (context) ctx.c = context;\n        if (events) {\n          props.$$events = events;\n        }\n        if (hydrating) {\n          assign_nodes(\n            /** @type {TemplateNode} */\n            anchor_node2,\n            null\n          );\n        }\n        component2 = Component(anchor_node2, props) || {};\n        if (hydrating) {\n          active_effect.nodes.end = hydrate_node;\n          if (hydrate_node === null || hydrate_node.nodeType !== COMMENT_NODE || /** @type {Comment} */\n          hydrate_node.data !== HYDRATION_END) {\n            hydration_mismatch();\n            throw HYDRATION_ERROR;\n          }\n        }\n        pop();\n      },\n      transformError\n    );\n    var registered_events = /* @__PURE__ */ new Set();\n    var event_handle = (events2) => {\n      for (var i = 0; i < events2.length; i++) {\n        var event_name = events2[i];\n        if (registered_events.has(event_name)) continue;\n        registered_events.add(event_name);\n        var passive = is_passive_event(event_name);\n        for (const node of [target, document]) {\n          var counts = listeners.get(node);\n          if (counts === void 0) {\n            counts = /* @__PURE__ */ new Map();\n            listeners.set(node, counts);\n          }\n          var count = counts.get(event_name);\n          if (count === void 0) {\n            node.addEventListener(event_name, handle_event_propagation, { passive });\n            counts.set(event_name, 1);\n          } else {\n            counts.set(event_name, count + 1);\n          }\n        }\n      }\n    };\n    event_handle(array_from(all_registered_events));\n    root_event_handles.add(event_handle);\n    return () => {\n      for (var event_name of registered_events) {\n        for (const node of [target, document]) {\n          var counts = (\n            /** @type {Map<string, number>} */\n            listeners.get(node)\n          );\n          var count = (\n            /** @type {number} */\n            counts.get(event_name)\n          );\n          if (--count == 0) {\n            node.removeEventListener(event_name, handle_event_propagation);\n            counts.delete(event_name);\n            if (counts.size === 0) {\n              listeners.delete(node);\n            }\n          } else {\n            counts.set(event_name, count);\n          }\n        }\n      }\n      root_event_handles.delete(event_handle);\n      if (anchor_node !== anchor) {\n        anchor_node.parentNode?.removeChild(anchor_node);\n      }\n    };\n  });\n  mounted_components.set(component2, unmount2);\n  return component2;\n}\nlet mounted_components = /* @__PURE__ */ new WeakMap();\nfunction unmount(component2, options) {\n  const fn = mounted_components.get(component2);\n  if (fn) {\n    mounted_components.delete(component2);\n    return fn(options);\n  }\n  return Promise.resolve();\n}\nclass BranchManager {\n  /** @type {TemplateNode} */\n  anchor;\n  /** @type {Map<Batch, Key>} */\n  #batches = /* @__PURE__ */ new Map();\n  /**\n   * Map of keys to effects that are currently rendered in the DOM.\n   * These effects are visible and actively part of the document tree.\n   * Example:\n   * ```\n   * {#if condition}\n   * \tfoo\n   * {:else}\n   * \tbar\n   * {/if}\n   * ```\n   * Can result in the entries `true->Effect` and `false->Effect`\n   * @type {Map<Key, Effect>}\n   */\n  #onscreen = /* @__PURE__ */ new Map();\n  /**\n   * Similar to #onscreen with respect to the keys, but contains branches that are not yet\n   * in the DOM, because their insertion is deferred.\n   * @type {Map<Key, Branch>}\n   */\n  #offscreen = /* @__PURE__ */ new Map();\n  /**\n   * Keys of effects that are currently outroing\n   * @type {Set<Key>}\n   */\n  #outroing = /* @__PURE__ */ new Set();\n  /**\n   * Whether to pause (i.e. outro) on change, or destroy immediately.\n   * This is necessary for `<svelte:element>`\n   */\n  #transition = true;\n  /**\n   * @param {TemplateNode} anchor\n   * @param {boolean} transition\n   */\n  constructor(anchor, transition = true) {\n    this.anchor = anchor;\n    this.#transition = transition;\n  }\n  /**\n   * @param {Batch} batch\n   */\n  #commit = (batch) => {\n    if (!this.#batches.has(batch)) return;\n    var key2 = (\n      /** @type {Key} */\n      this.#batches.get(batch)\n    );\n    var onscreen = this.#onscreen.get(key2);\n    if (onscreen) {\n      resume_effect(onscreen);\n      this.#outroing.delete(key2);\n    } else {\n      var offscreen = this.#offscreen.get(key2);\n      if (offscreen) {\n        this.#onscreen.set(key2, offscreen.effect);\n        this.#offscreen.delete(key2);\n        offscreen.fragment.lastChild.remove();\n        this.anchor.before(offscreen.fragment);\n        onscreen = offscreen.effect;\n      }\n    }\n    for (const [b, k] of this.#batches) {\n      this.#batches.delete(b);\n      if (b === batch) {\n        break;\n      }\n      const offscreen2 = this.#offscreen.get(k);\n      if (offscreen2) {\n        destroy_effect(offscreen2.effect);\n        this.#offscreen.delete(k);\n      }\n    }\n    for (const [k, effect2] of this.#onscreen) {\n      if (k === key2 || this.#outroing.has(k)) continue;\n      const on_destroy = () => {\n        const keys = Array.from(this.#batches.values());\n        if (keys.includes(k)) {\n          var fragment = document.createDocumentFragment();\n          move_effect(effect2, fragment);\n          fragment.append(create_text());\n          this.#offscreen.set(k, { effect: effect2, fragment });\n        } else {\n          destroy_effect(effect2);\n        }\n        this.#outroing.delete(k);\n        this.#onscreen.delete(k);\n      };\n      if (this.#transition || !onscreen) {\n        this.#outroing.add(k);\n        pause_effect(effect2, on_destroy, false);\n      } else {\n        on_destroy();\n      }\n    }\n  };\n  /**\n   * @param {Batch} batch\n   */\n  #discard = (batch) => {\n    this.#batches.delete(batch);\n    const keys = Array.from(this.#batches.values());\n    for (const [k, branch2] of this.#offscreen) {\n      if (!keys.includes(k)) {\n        destroy_effect(branch2.effect);\n        this.#offscreen.delete(k);\n      }\n    }\n  };\n  /**\n   *\n   * @param {any} key\n   * @param {null | ((target: TemplateNode) => void)} fn\n   */\n  ensure(key2, fn) {\n    var batch = (\n      /** @type {Batch} */\n      current_batch\n    );\n    var defer = should_defer_append();\n    if (fn && !this.#onscreen.has(key2) && !this.#offscreen.has(key2)) {\n      if (defer) {\n        var fragment = document.createDocumentFragment();\n        var target = create_text();\n        fragment.append(target);\n        this.#offscreen.set(key2, {\n          effect: branch(() => fn(target)),\n          fragment\n        });\n      } else {\n        this.#onscreen.set(\n          key2,\n          branch(() => fn(this.anchor))\n        );\n      }\n    }\n    this.#batches.set(batch, key2);\n    if (defer) {\n      for (const [k, effect2] of this.#onscreen) {\n        if (k === key2) {\n          batch.unskip_effect(effect2);\n        } else {\n          batch.skip_effect(effect2);\n        }\n      }\n      for (const [k, branch2] of this.#offscreen) {\n        if (k === key2) {\n          batch.unskip_effect(branch2.effect);\n        } else {\n          batch.skip_effect(branch2.effect);\n        }\n      }\n      batch.oncommit(this.#commit);\n      batch.ondiscard(this.#discard);\n    } else {\n      if (hydrating) {\n        this.anchor = hydrate_node;\n      }\n      this.#commit(batch);\n    }\n  }\n}\nfunction snippet(node, get_snippet, ...args) {\n  var branches = new BranchManager(node);\n  block(() => {\n    const snippet2 = get_snippet() ?? null;\n    branches.ensure(snippet2, snippet2 && ((anchor) => snippet2(anchor, ...args)));\n  }, EFFECT_TRANSPARENT);\n}\nfunction onMount(fn) {\n  if (component_context === null) {\n    lifecycle_outside_component();\n  }\n  {\n    user_effect(() => {\n      const cleanup = untrack(fn);\n      if (typeof cleanup === \"function\") return (\n        /** @type {() => void} */\n        cleanup\n      );\n    });\n  }\n}\nfunction if_block(node, fn, elseif = false) {\n  var marker;\n  if (hydrating) {\n    marker = hydrate_node;\n    hydrate_next();\n  }\n  var branches = new BranchManager(node);\n  var flags2 = elseif ? EFFECT_TRANSPARENT : 0;\n  function update_branch(key2, fn2) {\n    if (hydrating) {\n      var data = read_hydration_instruction(\n        /** @type {TemplateNode} */\n        marker\n      );\n      if (key2 !== parseInt(data.substring(1))) {\n        var anchor = skip_nodes();\n        set_hydrate_node(anchor);\n        branches.anchor = anchor;\n        set_hydrating(false);\n        branches.ensure(key2, fn2);\n        set_hydrating(true);\n        return;\n      }\n    }\n    branches.ensure(key2, fn2);\n  }\n  block(() => {\n    var has_branch = false;\n    fn((fn2, key2 = 0) => {\n      has_branch = true;\n      update_branch(key2, fn2);\n    });\n    if (!has_branch) {\n      update_branch(-1, null);\n    }\n  }, flags2);\n}\nconst NAN = /* @__PURE__ */ Symbol(\"NaN\");\nfunction key(node, get_key, render_fn) {\n  if (hydrating) {\n    hydrate_next();\n  }\n  var branches = new BranchManager(node);\n  block(() => {\n    var key2 = get_key();\n    if (key2 !== key2) {\n      key2 = /** @type {any} */\n      NAN;\n    }\n    branches.ensure(key2, render_fn);\n  });\n}\nfunction html(node, get_value, is_controlled = false, svg = false, mathml = false, skip_warning = false) {\n  var anchor = node;\n  var value = \"\";\n  if (is_controlled) {\n    var parent_node = (\n      /** @type {Element} */\n      node\n    );\n    if (hydrating) {\n      anchor = set_hydrate_node(/* @__PURE__ */ get_first_child(parent_node));\n    }\n  }\n  template_effect(() => {\n    var effect2 = (\n      /** @type {Effect} */\n      active_effect\n    );\n    if (value === (value = get_value() ?? \"\")) {\n      if (hydrating) hydrate_next();\n      return;\n    }\n    if (is_controlled && !hydrating) {\n      effect2.nodes = null;\n      parent_node.innerHTML = /** @type {string} */\n      value;\n      if (value !== \"\") {\n        assign_nodes(\n          /** @type {TemplateNode} */\n          /* @__PURE__ */ get_first_child(parent_node),\n          /** @type {TemplateNode} */\n          parent_node.lastChild\n        );\n      }\n      return;\n    }\n    if (effect2.nodes !== null) {\n      remove_effect_dom(\n        effect2.nodes.start,\n        /** @type {TemplateNode} */\n        effect2.nodes.end\n      );\n      effect2.nodes = null;\n    }\n    if (value === \"\") return;\n    if (hydrating) {\n      hydrate_node.data;\n      var next2 = hydrate_next();\n      var last = next2;\n      while (next2 !== null && (next2.nodeType !== COMMENT_NODE || /** @type {Comment} */\n      next2.data !== \"\")) {\n        last = next2;\n        next2 = /* @__PURE__ */ get_next_sibling(next2);\n      }\n      if (next2 === null) {\n        hydration_mismatch();\n        throw HYDRATION_ERROR;\n      }\n      assign_nodes(hydrate_node, last);\n      anchor = set_hydrate_node(next2);\n      return;\n    }\n    var ns = svg ? NAMESPACE_SVG : mathml ? NAMESPACE_MATHML : void 0;\n    var wrapper = (\n      /** @type {HTMLTemplateElement | SVGElement | MathMLElement} */\n      create_element(svg ? \"svg\" : mathml ? \"math\" : \"template\", ns)\n    );\n    wrapper.innerHTML = /** @type {any} */\n    value;\n    var node2 = svg || mathml ? wrapper : (\n      /** @type {HTMLTemplateElement} */\n      wrapper.content\n    );\n    assign_nodes(\n      /** @type {TemplateNode} */\n      /* @__PURE__ */ get_first_child(node2),\n      /** @type {TemplateNode} */\n      node2.lastChild\n    );\n    if (svg || mathml) {\n      while (/* @__PURE__ */ get_first_child(node2)) {\n        anchor.before(\n          /** @type {TemplateNode} */\n          /* @__PURE__ */ get_first_child(node2)\n        );\n      }\n    } else {\n      anchor.before(node2);\n    }\n  });\n}\nfunction component(node, get_component, render_fn) {\n  var hydration_start_node;\n  if (hydrating) {\n    hydration_start_node = hydrate_node;\n    hydrate_next();\n  }\n  var branches = new BranchManager(node);\n  block(() => {\n    var component2 = get_component() ?? null;\n    if (hydrating) {\n      var data = read_hydration_instruction(\n        /** @type {TemplateNode} */\n        hydration_start_node\n      );\n      var server_had_component = data === HYDRATION_START;\n      var client_has_component = component2 !== null;\n      if (server_had_component !== client_has_component) {\n        var anchor = skip_nodes();\n        set_hydrate_node(anchor);\n        branches.anchor = anchor;\n        set_hydrating(false);\n        branches.ensure(component2, component2 && ((target) => render_fn(target, component2)));\n        set_hydrating(true);\n        return;\n      }\n    }\n    branches.ensure(component2, component2 && ((target) => render_fn(target, component2)));\n  }, EFFECT_TRANSPARENT);\n}\nfunction attach(node, get_fn) {\n  var fn = void 0;\n  var e;\n  managed(() => {\n    if (fn !== (fn = get_fn())) {\n      if (e) {\n        destroy_effect(e);\n        e = null;\n      }\n      if (fn) {\n        e = branch(() => {\n          effect(() => (\n            /** @type {(node: Element) => void} */\n            fn(node)\n          ));\n        });\n      }\n    }\n  });\n}\nfunction r(e) {\n  var t, f, n = \"\";\n  if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n  else if (\"object\" == typeof e) if (Array.isArray(e)) {\n    var o = e.length;\n    for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n  } else for (f in e) e[f] && (n && (n += \" \"), n += f);\n  return n;\n}\nfunction clsx$1() {\n  for (var e, t, f = 0, n = \"\", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += \" \"), n += t);\n  return n;\n}\nfunction clsx(value) {\n  if (typeof value === \"object\") {\n    return clsx$1(value);\n  } else {\n    return value ?? \"\";\n  }\n}\nconst whitespace = [...\" \t\\n\\r\\f\u00A0\\v\\uFEFF\"];\nfunction to_class(value, hash, directives) {\n  var classname = value == null ? \"\" : \"\" + value;\n  if (directives) {\n    for (var key2 of Object.keys(directives)) {\n      if (directives[key2]) {\n        classname = classname ? classname + \" \" + key2 : key2;\n      } else if (classname.length) {\n        var len = key2.length;\n        var a = 0;\n        while ((a = classname.indexOf(key2, a)) >= 0) {\n          var b = a + len;\n          if ((a === 0 || whitespace.includes(classname[a - 1])) && (b === classname.length || whitespace.includes(classname[b]))) {\n            classname = (a === 0 ? \"\" : classname.substring(0, a)) + classname.substring(b + 1);\n          } else {\n            a = b;\n          }\n        }\n      }\n    }\n  }\n  return classname === \"\" ? null : classname;\n}\nfunction append_styles(styles, important = false) {\n  var separator = important ? \" !important;\" : \";\";\n  var css2 = \"\";\n  for (var key2 of Object.keys(styles)) {\n    var value = styles[key2];\n    if (value != null && value !== \"\") {\n      css2 += \" \" + key2 + \": \" + value + separator;\n    }\n  }\n  return css2;\n}\nfunction to_css_name(name) {\n  if (name[0] !== \"-\" || name[1] !== \"-\") {\n    return name.toLowerCase();\n  }\n  return name;\n}\nfunction to_style(value, styles) {\n  if (styles) {\n    var new_style = \"\";\n    var normal_styles;\n    var important_styles;\n    if (Array.isArray(styles)) {\n      normal_styles = styles[0];\n      important_styles = styles[1];\n    } else {\n      normal_styles = styles;\n    }\n    if (value) {\n      value = String(value).replaceAll(/\\s*\\/\\*.*?\\*\\/\\s*/g, \"\").trim();\n      var in_str = false;\n      var in_apo = 0;\n      var in_comment = false;\n      var reserved_names = [];\n      if (normal_styles) {\n        reserved_names.push(...Object.keys(normal_styles).map(to_css_name));\n      }\n      if (important_styles) {\n        reserved_names.push(...Object.keys(important_styles).map(to_css_name));\n      }\n      var start_index = 0;\n      var name_index = -1;\n      const len = value.length;\n      for (var i = 0; i < len; i++) {\n        var c = value[i];\n        if (in_comment) {\n          if (c === \"/\" && value[i - 1] === \"*\") {\n            in_comment = false;\n          }\n        } else if (in_str) {\n          if (in_str === c) {\n            in_str = false;\n          }\n        } else if (c === \"/\" && value[i + 1] === \"*\") {\n          in_comment = true;\n        } else if (c === '\"' || c === \"'\") {\n          in_str = c;\n        } else if (c === \"(\") {\n          in_apo++;\n        } else if (c === \")\") {\n          in_apo--;\n        }\n        if (!in_comment && in_str === false && in_apo === 0) {\n          if (c === \":\" && name_index === -1) {\n            name_index = i;\n          } else if (c === \";\" || i === len - 1) {\n            if (name_index !== -1) {\n              var name = to_css_name(value.substring(start_index, name_index).trim());\n              if (!reserved_names.includes(name)) {\n                if (c !== \";\") {\n                  i++;\n                }\n                var property = value.substring(start_index, i).trim();\n                new_style += \" \" + property + \";\";\n              }\n            }\n            start_index = i + 1;\n            name_index = -1;\n          }\n        }\n      }\n    }\n    if (normal_styles) {\n      new_style += append_styles(normal_styles);\n    }\n    if (important_styles) {\n      new_style += append_styles(important_styles, true);\n    }\n    new_style = new_style.trim();\n    return new_style === \"\" ? null : new_style;\n  }\n  return value == null ? null : String(value);\n}\nfunction set_class(dom, is_html, value, hash, prev_classes, next_classes) {\n  var prev = (\n    /** @type {any} */\n    dom[CLASS_CACHE]\n  );\n  if (hydrating || prev !== value || prev === void 0) {\n    var next_class_name = to_class(value, hash, next_classes);\n    if (!hydrating || next_class_name !== dom.getAttribute(\"class\")) {\n      if (next_class_name == null) {\n        dom.removeAttribute(\"class\");\n      } else if (is_html) {\n        dom.className = next_class_name;\n      } else {\n        dom.setAttribute(\"class\", next_class_name);\n      }\n    }\n    dom[CLASS_CACHE] = value;\n  } else if (next_classes && prev_classes !== next_classes) {\n    for (var key2 in next_classes) {\n      var is_present = !!next_classes[key2];\n      if (prev_classes == null || is_present !== !!prev_classes[key2]) {\n        dom.classList.toggle(key2, is_present);\n      }\n    }\n  }\n  return next_classes;\n}\nfunction update_styles(dom, prev = {}, next2, priority) {\n  for (var key2 in next2) {\n    var value = next2[key2];\n    if (prev[key2] !== value) {\n      if (next2[key2] == null) {\n        dom.style.removeProperty(key2);\n      } else {\n        dom.style.setProperty(key2, value, priority);\n      }\n    }\n  }\n}\nfunction set_style(dom, value, prev_styles, next_styles) {\n  var prev = (\n    /** @type {any} */\n    dom[STYLE_CACHE]\n  );\n  if (hydrating || prev !== value) {\n    var next_style_attr = to_style(value, next_styles);\n    if (!hydrating || next_style_attr !== dom.getAttribute(\"style\")) {\n      if (next_style_attr == null) {\n        dom.removeAttribute(\"style\");\n      } else {\n        dom.style.cssText = next_style_attr;\n      }\n    }\n    dom[STYLE_CACHE] = value;\n  } else if (next_styles) {\n    if (Array.isArray(next_styles)) {\n      update_styles(dom, prev_styles?.[0], next_styles[0]);\n      update_styles(dom, prev_styles?.[1], next_styles[1], \"important\");\n    } else {\n      update_styles(dom, prev_styles, next_styles);\n    }\n  }\n  return next_styles;\n}\nfunction select_option(select, value, mounting = false) {\n  if (select.multiple) {\n    if (value == void 0) {\n      return;\n    }\n    if (!is_array(value)) {\n      return select_multiple_invalid_value();\n    }\n    for (var option of select.options) {\n      option.selected = value.includes(get_option_value(option));\n    }\n    return;\n  }\n  for (option of select.options) {\n    var option_value = get_option_value(option);\n    if (is(option_value, value)) {\n      option.selected = true;\n      return;\n    }\n  }\n  if (!mounting || value !== void 0) {\n    select.selectedIndex = -1;\n  }\n}\nfunction init_select(select) {\n  var observer = new MutationObserver(() => {\n    select_option(select, select.__value);\n  });\n  observer.observe(select, {\n    // Listen to option element changes\n    childList: true,\n    subtree: true,\n    // because of <optgroup>\n    // Listen to option element value attribute changes\n    // (doesn't get notified of select value changes,\n    // because that property is not reflected as an attribute)\n    attributes: true,\n    attributeFilter: [\"value\"]\n  });\n  teardown(() => {\n    observer.disconnect();\n  });\n}\nfunction get_option_value(option) {\n  if (\"__value\" in option) {\n    return option.__value;\n  } else {\n    return option.value;\n  }\n}\nconst CLASS = /* @__PURE__ */ Symbol(\"class\");\nconst STYLE = /* @__PURE__ */ Symbol(\"style\");\nconst IS_CUSTOM_ELEMENT = /* @__PURE__ */ Symbol(\"is custom element\");\nconst IS_HTML = /* @__PURE__ */ Symbol(\"is html\");\nconst LINK_TAG = IS_XHTML ? \"link\" : \"LINK\";\nconst INPUT_TAG = IS_XHTML ? \"input\" : \"INPUT\";\nconst OPTION_TAG = IS_XHTML ? \"option\" : \"OPTION\";\nconst SELECT_TAG = IS_XHTML ? \"select\" : \"SELECT\";\nconst PROGRESS_TAG = IS_XHTML ? \"progress\" : \"PROGRESS\";\nfunction remove_input_defaults(input) {\n  if (!hydrating) return;\n  var already_removed = false;\n  var remove_defaults = () => {\n    if (already_removed) return;\n    already_removed = true;\n    if (input.hasAttribute(\"value\")) {\n      var value = input.value;\n      set_attribute(input, \"value\", null);\n      input.value = value;\n    }\n    if (input.hasAttribute(\"checked\")) {\n      var checked = input.checked;\n      set_attribute(input, \"checked\", null);\n      input.checked = checked;\n    }\n  };\n  input[FORM_RESET_HANDLER] = remove_defaults;\n  queue_micro_task(remove_defaults);\n  add_form_reset_listener();\n}\nfunction set_value(element, value) {\n  var attributes = get_attributes(element);\n  if (attributes.value === (attributes.value = // treat null and undefined the same for the initial value\n  value ?? void 0) || // @ts-expect-error\n  // `progress` elements always need their value set when it's `0`\n  element.value === value && (value !== 0 || element.nodeName !== PROGRESS_TAG)) {\n    return;\n  }\n  element.value = value ?? \"\";\n}\nfunction set_selected(element, selected) {\n  if (selected) {\n    if (!element.hasAttribute(\"selected\")) {\n      element.setAttribute(\"selected\", \"\");\n    }\n  } else {\n    element.removeAttribute(\"selected\");\n  }\n}\nfunction set_attribute(element, attribute, value, skip_warning) {\n  var attributes = get_attributes(element);\n  if (hydrating) {\n    attributes[attribute] = element.getAttribute(attribute);\n    if (attribute === \"src\" || attribute === \"srcset\" || attribute === \"href\" && element.nodeName === LINK_TAG) {\n      return;\n    }\n  }\n  if (attributes[attribute] === (attributes[attribute] = value)) return;\n  if (attribute === \"loading\") {\n    element[LOADING_ATTR_SYMBOL] = value;\n  }\n  if (value == null) {\n    element.removeAttribute(attribute);\n  } else if (typeof value !== \"string\" && get_setters(element).includes(attribute)) {\n    element[attribute] = value;\n  } else {\n    element.setAttribute(attribute, value);\n  }\n}\nfunction set_attributes(element, prev, next2, css_hash, should_remove_defaults = false, skip_warning = false) {\n  if (hydrating && should_remove_defaults && element.nodeName === INPUT_TAG) {\n    var input = (\n      /** @type {HTMLInputElement} */\n      element\n    );\n    var attribute = input.type === \"checkbox\" ? \"defaultChecked\" : \"defaultValue\";\n    if (!(attribute in next2)) {\n      remove_input_defaults(input);\n    }\n  }\n  var attributes = get_attributes(element);\n  var is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n  var preserve_attribute_case = !attributes[IS_HTML];\n  let is_hydrating_custom_element = hydrating && is_custom_element;\n  if (is_hydrating_custom_element) {\n    set_hydrating(false);\n  }\n  var current = prev || {};\n  var is_option_element = element.nodeName === OPTION_TAG;\n  for (var key2 in prev) {\n    if (!(key2 in next2)) {\n      next2[key2] = null;\n    }\n  }\n  if (next2.class) {\n    next2.class = clsx(next2.class);\n  } else if (next2[CLASS]) {\n    next2.class = null;\n  }\n  if (next2[STYLE]) {\n    next2.style ??= null;\n  }\n  var setters = get_setters(element);\n  for (const key3 in next2) {\n    let value = next2[key3];\n    if (is_option_element && key3 === \"value\" && value == null) {\n      element.value = element.__value = \"\";\n      current[key3] = value;\n      continue;\n    }\n    if (key3 === \"class\") {\n      var is_html = element.namespaceURI === \"http://www.w3.org/1999/xhtml\";\n      set_class(element, is_html, value, css_hash, prev?.[CLASS], next2[CLASS]);\n      current[key3] = value;\n      current[CLASS] = next2[CLASS];\n      continue;\n    }\n    if (key3 === \"style\") {\n      set_style(element, value, prev?.[STYLE], next2[STYLE]);\n      current[key3] = value;\n      current[STYLE] = next2[STYLE];\n      continue;\n    }\n    var prev_value = current[key3];\n    if (value === prev_value && !(value === void 0 && element.hasAttribute(key3))) {\n      continue;\n    }\n    current[key3] = value;\n    var prefix = key3[0] + key3[1];\n    if (prefix === \"$$\") continue;\n    if (prefix === \"on\") {\n      const opts = {};\n      const event_handle_key = \"$$\" + key3;\n      let event_name = key3.slice(2);\n      var is_delegated = can_delegate_event(event_name);\n      if (is_capture_event(event_name)) {\n        event_name = event_name.slice(0, -7);\n        opts.capture = true;\n      }\n      if (!is_delegated && prev_value) {\n        if (value != null) continue;\n        element.removeEventListener(event_name, current[event_handle_key], opts);\n        current[event_handle_key] = null;\n      }\n      if (is_delegated) {\n        delegated(event_name, element, value);\n        delegate([event_name]);\n      } else if (value != null) {\n        let handle2 = function(evt) {\n          current[key3].call(this, evt);\n        };\n        var handle = handle2;\n        current[event_handle_key] = create_event(event_name, element, handle2, opts);\n      }\n    } else if (key3 === \"style\") {\n      set_attribute(element, key3, value);\n    } else if (key3 === \"autofocus\") {\n      autofocus(\n        /** @type {HTMLElement} */\n        element,\n        Boolean(value)\n      );\n    } else if (!is_custom_element && (key3 === \"__value\" || key3 === \"value\" && value != null)) {\n      element.value = element.__value = value;\n    } else if (key3 === \"selected\" && is_option_element) {\n      set_selected(\n        /** @type {HTMLOptionElement} */\n        element,\n        value\n      );\n    } else {\n      var name = key3;\n      if (!preserve_attribute_case) {\n        name = normalize_attribute(name);\n      }\n      var is_default = name === \"defaultValue\" || name === \"defaultChecked\";\n      if (value == null && !is_custom_element && !is_default) {\n        attributes[key3] = null;\n        if (name === \"value\" || name === \"checked\") {\n          let input2 = (\n            /** @type {HTMLInputElement} */\n            element\n          );\n          const use_default = prev === void 0;\n          if (name === \"value\") {\n            let previous = input2.defaultValue;\n            input2.removeAttribute(name);\n            input2.defaultValue = previous;\n            input2.value = input2.__value = use_default ? previous : null;\n          } else {\n            let previous = input2.defaultChecked;\n            input2.removeAttribute(name);\n            input2.defaultChecked = previous;\n            input2.checked = use_default ? previous : false;\n          }\n        } else {\n          element.removeAttribute(key3);\n        }\n      } else if (is_default || setters.includes(name) && (is_custom_element || typeof value !== \"string\")) {\n        element[name] = value;\n        if (name in attributes) attributes[name] = UNINITIALIZED;\n      } else if (typeof value !== \"function\") {\n        set_attribute(element, name, value);\n      }\n    }\n  }\n  if (is_hydrating_custom_element) {\n    set_hydrating(true);\n  }\n  return current;\n}\nfunction attribute_effect(element, fn, sync = [], async = [], blockers = [], css_hash, should_remove_defaults = false, skip_warning = false) {\n  flatten(blockers, sync, async, (values) => {\n    var prev = void 0;\n    var effects = {};\n    var is_select = element.nodeName === SELECT_TAG;\n    var inited = false;\n    managed(() => {\n      var next2 = fn(...values.map(get));\n      var current = set_attributes(\n        element,\n        prev,\n        next2,\n        css_hash,\n        should_remove_defaults,\n        skip_warning\n      );\n      if (inited && is_select && \"value\" in next2) {\n        select_option(\n          /** @type {HTMLSelectElement} */\n          element,\n          next2.value\n        );\n      }\n      for (let symbol of Object.getOwnPropertySymbols(effects)) {\n        if (!next2[symbol]) destroy_effect(effects[symbol]);\n      }\n      for (let symbol of Object.getOwnPropertySymbols(next2)) {\n        var n = next2[symbol];\n        if (symbol.description === ATTACHMENT_KEY && (!prev || n !== prev[symbol])) {\n          if (effects[symbol]) destroy_effect(effects[symbol]);\n          effects[symbol] = branch(() => attach(element, () => n));\n        }\n        current[symbol] = n;\n      }\n      prev = current;\n    });\n    if (is_select) {\n      var select = (\n        /** @type {HTMLSelectElement} */\n        element\n      );\n      effect(() => {\n        select_option(\n          select,\n          /** @type {Record<string | symbol, any>} */\n          prev.value,\n          true\n        );\n        init_select(select);\n      });\n    }\n    inited = true;\n  });\n}\nfunction get_attributes(element) {\n  return (\n    /** @type {Record<string | symbol, unknown>} **/\n    /** @type {any} */\n    element[ATTRIBUTES_CACHE] ??= {\n      [IS_CUSTOM_ELEMENT]: element.nodeName.includes(\"-\"),\n      [IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n    }\n  );\n}\nvar setters_cache = /* @__PURE__ */ new Map();\nfunction get_setters(element) {\n  var cache_key = element.getAttribute(\"is\") || element.nodeName;\n  var setters = setters_cache.get(cache_key);\n  if (setters) return setters;\n  setters_cache.set(cache_key, setters = []);\n  var descriptors;\n  var proto = element;\n  var element_proto = Element.prototype;\n  while (element_proto !== proto) {\n    descriptors = get_descriptors(proto);\n    for (var key2 in descriptors) {\n      if (descriptors[key2].set && // better safe than sorry, we don't want spread attributes to mess with HTML content\n      key2 !== \"innerHTML\" && key2 !== \"textContent\" && key2 !== \"innerText\") {\n        setters.push(key2);\n      }\n    }\n    proto = get_prototype_of(proto);\n  }\n  return setters;\n}\nfunction bind_value(input, get2, set2 = get2) {\n  var batches = /* @__PURE__ */ new WeakSet();\n  listen_to_event_and_reset_event(input, \"input\", async (is_reset) => {\n    var value = is_reset ? input.defaultValue : input.value;\n    value = is_numberlike_input(input) ? to_number(value) : value;\n    set2(value);\n    if (current_batch !== null) {\n      batches.add(current_batch);\n    }\n    await tick();\n    if (value !== (value = get2())) {\n      var start = input.selectionStart;\n      var end = input.selectionEnd;\n      var length = input.value.length;\n      input.value = value ?? \"\";\n      if (end !== null) {\n        var new_length = input.value.length;\n        if (start === end && end === length && new_length > length) {\n          input.selectionStart = new_length;\n          input.selectionEnd = new_length;\n        } else {\n          input.selectionStart = start;\n          input.selectionEnd = Math.min(end, new_length);\n        }\n      }\n    }\n  });\n  if (\n    // If we are hydrating and the value has since changed,\n    // then use the updated value from the input instead.\n    hydrating && input.defaultValue !== input.value || // If defaultValue is set, then value == defaultValue\n    // TODO Svelte 6: remove input.value check and set to empty string?\n    untrack(get2) == null && input.value\n  ) {\n    set2(is_numberlike_input(input) ? to_number(input.value) : input.value);\n    if (current_batch !== null) {\n      batches.add(current_batch);\n    }\n  }\n  render_effect(() => {\n    var value = get2();\n    if (input === document.activeElement) {\n      var batch = (\n        /** @type {Batch} */\n        current_batch\n      );\n      if (batches.has(batch)) {\n        return;\n      }\n    }\n    if (is_numberlike_input(input) && value === to_number(input.value)) {\n      return;\n    }\n    if (input.type === \"date\" && !value && !input.value) {\n      return;\n    }\n    if (value !== input.value) {\n      input.value = value ?? \"\";\n    }\n  });\n}\nfunction is_numberlike_input(input) {\n  var type = input.type;\n  return type === \"number\" || type === \"range\";\n}\nfunction to_number(value) {\n  return value === \"\" ? null : +value;\n}\nfunction is_bound_this(bound_value, element_or_component) {\n  return bound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component;\n}\nfunction bind_this(element_or_component = {}, update, get_value, get_parts) {\n  var component_effect = (\n    /** @type {ComponentContext} */\n    component_context.r\n  );\n  var parent = (\n    /** @type {Effect} */\n    active_effect\n  );\n  effect(() => {\n    var old_parts;\n    var parts;\n    render_effect(() => {\n      old_parts = parts;\n      parts = [];\n      untrack(() => {\n        if (!is_bound_this(get_value(...parts), element_or_component)) {\n          update(element_or_component, ...parts);\n          if (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {\n            update(null, ...old_parts);\n          }\n        }\n      });\n    });\n    return () => {\n      let p = parent;\n      while (p !== component_effect && p.parent !== null && p.parent.f & DESTROYING) {\n        p = p.parent;\n      }\n      const teardown2 = () => {\n        if (parts && is_bound_this(get_value(...parts), element_or_component)) {\n          update(null, ...parts);\n        }\n      };\n      const original_teardown = p.teardown;\n      p.teardown = () => {\n        teardown2();\n        original_teardown?.();\n      };\n    };\n  });\n  return element_or_component;\n}\nconst rest_props_handler = {\n  get(target, key2) {\n    if (target.exclude.includes(key2)) return;\n    return target.props[key2];\n  },\n  set(target, key2) {\n    return false;\n  },\n  getOwnPropertyDescriptor(target, key2) {\n    if (target.exclude.includes(key2)) return;\n    if (key2 in target.props) {\n      return {\n        enumerable: true,\n        configurable: true,\n        value: target.props[key2]\n      };\n    }\n  },\n  has(target, key2) {\n    if (target.exclude.includes(key2)) return false;\n    return key2 in target.props;\n  },\n  ownKeys(target) {\n    return Reflect.ownKeys(target.props).filter((key2) => !target.exclude.includes(key2));\n  }\n};\n// @__NO_SIDE_EFFECTS__\nfunction rest_props(props, exclude, name) {\n  return new Proxy(\n    { props, exclude },\n    rest_props_handler\n  );\n}\nfunction prop(props, key2, flags2, fallback) {\n  var fallback_value = (\n    /** @type {V} */\n    fallback\n  );\n  var fallback_dirty = true;\n  var get_fallback = () => {\n    if (fallback_dirty) {\n      fallback_dirty = false;\n      fallback_value = /** @type {V} */\n      fallback;\n    }\n    return fallback_value;\n  };\n  var initial_value;\n  {\n    initial_value = /** @type {V} */\n    props[key2];\n  }\n  if (initial_value === void 0 && fallback !== void 0) {\n    initial_value = get_fallback();\n  }\n  var getter;\n  {\n    getter = () => {\n      var value = (\n        /** @type {V} */\n        props[key2]\n      );\n      if (value === void 0) return get_fallback();\n      fallback_dirty = true;\n      return value;\n    };\n  }\n  var overridden = false;\n  var d = /* @__PURE__ */ derived(() => {\n    overridden = false;\n    return getter();\n  });\n  var parent_effect = (\n    /** @type {Effect} */\n    active_effect\n  );\n  return (\n    /** @type {() => V} */\n    (function(value, mutation) {\n      if (arguments.length > 0) {\n        const new_value = mutation ? get(d) : value;\n        set(d, new_value);\n        overridden = true;\n        if (fallback_value !== void 0) {\n          fallback_value = new_value;\n        }\n        return value;\n      }\n      if (is_destroying_effect && overridden || (parent_effect.f & DESTROYED) !== 0) {\n        return d.v;\n      }\n      return get(d);\n    })\n  );\n}\nfunction createClassComponent(options) {\n  return new Svelte4Component(options);\n}\nclass Svelte4Component {\n  /** @type {any} */\n  #events;\n  /** @type {Record<string, any>} */\n  #instance;\n  /**\n   * @param {ComponentConstructorOptions & {\n   *  component: any;\n   * }} options\n   */\n  constructor(options) {\n    var sources = /* @__PURE__ */ new Map();\n    var add_source = (key2, value) => {\n      var s = /* @__PURE__ */ mutable_source(value, false, false);\n      sources.set(key2, s);\n      return s;\n    };\n    const props = new Proxy(\n      { ...options.props || {}, $$events: {} },\n      {\n        get(target, prop2) {\n          return get(sources.get(prop2) ?? add_source(prop2, Reflect.get(target, prop2)));\n        },\n        has(target, prop2) {\n          if (prop2 === LEGACY_PROPS) return true;\n          get(sources.get(prop2) ?? add_source(prop2, Reflect.get(target, prop2)));\n          return Reflect.has(target, prop2);\n        },\n        set(target, prop2, value) {\n          set(sources.get(prop2) ?? add_source(prop2, value), value);\n          return Reflect.set(target, prop2, value);\n        }\n      }\n    );\n    this.#instance = (options.hydrate ? hydrate : mount)(options.component, {\n      target: options.target,\n      anchor: options.anchor,\n      props,\n      context: options.context,\n      intro: options.intro ?? false,\n      recover: options.recover,\n      transformError: options.transformError\n    });\n    if (!options?.props?.$$host || options.sync === false) {\n      flushSync();\n    }\n    this.#events = props.$$events;\n    for (const key2 of Object.keys(this.#instance)) {\n      if (key2 === \"$set\" || key2 === \"$destroy\" || key2 === \"$on\") continue;\n      define_property(this, key2, {\n        get() {\n          return this.#instance[key2];\n        },\n        /** @param {any} value */\n        set(value) {\n          this.#instance[key2] = value;\n        },\n        enumerable: true\n      });\n    }\n    this.#instance.$set = /** @param {Record<string, any>} next */\n    (next2) => {\n      Object.assign(props, next2);\n    };\n    this.#instance.$destroy = () => {\n      unmount(this.#instance);\n    };\n  }\n  /** @param {Record<string, any>} props */\n  $set(props) {\n    this.#instance.$set(props);\n  }\n  /**\n   * @param {string} event\n   * @param {(...args: any[]) => any} callback\n   * @returns {any}\n   */\n  $on(event2, callback) {\n    this.#events[event2] = this.#events[event2] || [];\n    const cb = (...args) => callback.call(this, ...args);\n    this.#events[event2].push(cb);\n    return () => {\n      this.#events[event2] = this.#events[event2].filter(\n        /** @param {any} fn */\n        (fn) => fn !== cb\n      );\n    };\n  }\n  $destroy() {\n    this.#instance.$destroy();\n  }\n}\nlet SvelteElement = class {\n};\nif (typeof HTMLElement === \"function\") {\n  SvelteElement = class extends HTMLElement {\n    /** The Svelte component constructor */\n    $$ctor;\n    /** Slots */\n    $$s;\n    /** @type {any} The Svelte component instance */\n    $$c;\n    /** Whether or not the custom element is connected */\n    $$cn = false;\n    /** @type {Record<string, any>} Component props data */\n    $$d = {};\n    /** `true` if currently in the process of reflecting component props back to attributes */\n    $$r = false;\n    /** @type {Record<string, CustomElementPropDefinition>} Props definition (name, reflected, type etc) */\n    $$p_d = {};\n    /** @type {Record<string, EventListenerOrEventListenerObject[]>} Event listeners */\n    $$l = {};\n    /** @type {Map<EventListenerOrEventListenerObject, Function>} Event listener unsubscribe functions */\n    $$l_u = /* @__PURE__ */ new Map();\n    /** @type {any} The managed render effect for reflecting attributes */\n    $$me;\n    /** @type {ShadowRoot | null} The ShadowRoot of the custom element */\n    $$shadowRoot = null;\n    /**\n     * @param {*} $$componentCtor\n     * @param {*} $$slots\n     * @param {ShadowRootInit | undefined} shadow_root_init\n     */\n    constructor($$componentCtor, $$slots, shadow_root_init) {\n      super();\n      this.$$ctor = $$componentCtor;\n      this.$$s = $$slots;\n      if (shadow_root_init) {\n        this.$$shadowRoot = this.attachShadow(shadow_root_init);\n      }\n    }\n    /**\n     * @param {string} type\n     * @param {EventListenerOrEventListenerObject} listener\n     * @param {boolean | AddEventListenerOptions} [options]\n     */\n    addEventListener(type, listener, options) {\n      this.$$l[type] = this.$$l[type] || [];\n      this.$$l[type].push(listener);\n      if (this.$$c) {\n        const unsub = this.$$c.$on(type, listener);\n        this.$$l_u.set(listener, unsub);\n      }\n      super.addEventListener(type, listener, options);\n    }\n    /**\n     * @param {string} type\n     * @param {EventListenerOrEventListenerObject} listener\n     * @param {boolean | AddEventListenerOptions} [options]\n     */\n    removeEventListener(type, listener, options) {\n      super.removeEventListener(type, listener, options);\n      if (this.$$c) {\n        const unsub = this.$$l_u.get(listener);\n        if (unsub) {\n          unsub();\n          this.$$l_u.delete(listener);\n        }\n      }\n    }\n    async connectedCallback() {\n      this.$$cn = true;\n      if (!this.$$c) {\n        let create_slot2 = function(name) {\n          return (anchor) => {\n            const slot = create_element(\"slot\");\n            if (name !== \"default\") slot.name = name;\n            append(anchor, slot);\n          };\n        };\n        var create_slot = create_slot2;\n        await Promise.resolve();\n        if (!this.$$cn || this.$$c) {\n          return;\n        }\n        const $$slots = {};\n        const existing_slots = get_custom_elements_slots(this);\n        for (const name of this.$$s) {\n          if (name in existing_slots) {\n            if (name === \"default\" && !this.$$d.children) {\n              this.$$d.children = create_slot2(name);\n              $$slots.default = true;\n            } else {\n              $$slots[name] = create_slot2(name);\n            }\n          }\n        }\n        for (const attribute of this.attributes) {\n          const name = this.$$g_p(attribute.name);\n          if (!(name in this.$$d)) {\n            this.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, \"toProp\");\n          }\n        }\n        for (const key2 in this.$$p_d) {\n          if (!(key2 in this.$$d) && this[key2] !== void 0) {\n            this.$$d[key2] = this[key2];\n            delete this[key2];\n          }\n        }\n        this.$$c = createClassComponent({\n          component: this.$$ctor,\n          target: this.$$shadowRoot || this,\n          props: {\n            ...this.$$d,\n            $$slots,\n            $$host: this\n          }\n        });\n        this.$$me = effect_root(() => {\n          render_effect(() => {\n            this.$$r = true;\n            for (const key2 of object_keys(this.$$c)) {\n              if (!this.$$p_d[key2]?.reflect) continue;\n              this.$$d[key2] = this.$$c[key2];\n              const attribute_value = get_custom_element_value(\n                key2,\n                this.$$d[key2],\n                this.$$p_d,\n                \"toAttribute\"\n              );\n              if (attribute_value == null) {\n                this.removeAttribute(this.$$p_d[key2].attribute || key2);\n              } else {\n                this.setAttribute(this.$$p_d[key2].attribute || key2, attribute_value);\n              }\n            }\n            this.$$r = false;\n          });\n        });\n        for (const type in this.$$l) {\n          for (const listener of this.$$l[type]) {\n            const unsub = this.$$c.$on(type, listener);\n            this.$$l_u.set(listener, unsub);\n          }\n        }\n        this.$$l = {};\n      }\n    }\n    // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n    // and setting attributes through setAttribute etc, this is helpful\n    /**\n     * @param {string} attr\n     * @param {string} _oldValue\n     * @param {string} newValue\n     */\n    attributeChangedCallback(attr, _oldValue, newValue) {\n      if (this.$$r) return;\n      attr = this.$$g_p(attr);\n      this.$$d[attr] = get_custom_element_value(attr, newValue, this.$$p_d, \"toProp\");\n      this.$$c?.$set({ [attr]: this.$$d[attr] });\n    }\n    disconnectedCallback() {\n      this.$$cn = false;\n      Promise.resolve().then(() => {\n        if (!this.$$cn && this.$$c) {\n          this.$$c.$destroy();\n          this.$$me();\n          this.$$c = void 0;\n        }\n      });\n    }\n    /**\n     * @param {string} attribute_name\n     */\n    $$g_p(attribute_name) {\n      return object_keys(this.$$p_d).find(\n        (key2) => this.$$p_d[key2].attribute === attribute_name || !this.$$p_d[key2].attribute && key2.toLowerCase() === attribute_name\n      ) || attribute_name;\n    }\n  };\n}\nfunction get_custom_element_value(prop2, value, props_definition, transform) {\n  const type = props_definition[prop2]?.type;\n  value = type === \"Boolean\" && typeof value !== \"boolean\" ? value != null : value;\n  if (!transform || !props_definition[prop2]) {\n    return value;\n  } else if (transform === \"toAttribute\") {\n    switch (type) {\n      case \"Object\":\n      case \"Array\":\n        return value == null ? null : JSON.stringify(value);\n      case \"Boolean\":\n        return value ? \"\" : null;\n      case \"Number\":\n        return value == null ? null : value;\n      default:\n        return value;\n    }\n  } else {\n    switch (type) {\n      case \"Object\":\n      case \"Array\":\n        return value && JSON.parse(value);\n      case \"Boolean\":\n        return value;\n      // conversion already handled above\n      case \"Number\":\n        return value != null ? +value : value;\n      default:\n        return value;\n    }\n  }\n}\nfunction get_custom_elements_slots(element) {\n  const result = {};\n  element.childNodes.forEach((node) => {\n    result[\n      /** @type {Element} node */\n      node.slot || \"default\"\n    ] = true;\n  });\n  return result;\n}\nfunction create_custom_element(Component, props_definition, slots, exports$1, shadow_root_init, extend) {\n  let Class = class extends SvelteElement {\n    constructor() {\n      super(Component, slots, shadow_root_init);\n      this.$$p_d = props_definition;\n    }\n    static get observedAttributes() {\n      return object_keys(props_definition).map(\n        (key2) => (props_definition[key2].attribute || key2).toLowerCase()\n      );\n    }\n  };\n  object_keys(props_definition).forEach((prop2) => {\n    define_property(Class.prototype, prop2, {\n      get() {\n        return this.$$c && prop2 in this.$$c ? this.$$c[prop2] : this.$$d[prop2];\n      },\n      set(value) {\n        value = get_custom_element_value(prop2, value, props_definition);\n        this.$$d[prop2] = value;\n        var component2 = this.$$c;\n        if (component2) {\n          var setter = get_descriptor(component2, prop2)?.get;\n          if (setter) {\n            component2[prop2] = value;\n          } else {\n            component2.$set({ [prop2]: value });\n          }\n        }\n      }\n    });\n  });\n  exports$1.forEach((property) => {\n    define_property(Class.prototype, property, {\n      get() {\n        return this.$$c?.[property];\n      }\n    });\n  });\n  Component.element = /** @type {any} */\n  Class;\n  return Class;\n}\nvar root$7 = /* @__PURE__ */ from_html(`<div class=\"altcha-checkbox\"><input/> <svg aria-hidden=\"true\" width=\"12\" height=\"9\" viewBox=\"0 0 12 9\"><polyline points=\"1 5 4 8 11 1\"></polyline></svg> <div class=\"altcha-spinner altcha-checkbox-spinner\" aria-hidden=\"true\"></div></div>`);\nfunction Checkbox($$anchor, $$props) {\n  push($$props, true);\n  let loading = prop($$props, \"loading\"), rest = /* @__PURE__ */ rest_props($$props, [\"$$slots\", \"$$events\", \"$$legacy\", \"$$host\", \"loading\"]);\n  let inputEl;\n  function onClick() {\n    inputEl?.click();\n  }\n  var $$exports = {\n    get loading() {\n      return loading();\n    },\n    set loading($$value) {\n      loading($$value);\n      flushSync();\n    }\n  };\n  var div = root$7();\n  var input = child(div);\n  attribute_effect(input, () => ({ type: \"checkbox\", ...rest }), void 0, void 0, void 0, void 0, true);\n  bind_this(input, ($$value) => inputEl = $$value, () => inputEl);\n  var svg = sibling(input, 2);\n  next(2);\n  reset(div);\n  template_effect(() => set_attribute(div, \"data-loading\", loading()));\n  delegated(\"click\", svg, onClick);\n  append($$anchor, div);\n  return pop($$exports);\n}\ndelegate([\"click\"]);\ncreate_custom_element(Checkbox, { loading: {} }, [], [], { mode: \"open\" });\nvar root$6 = /* @__PURE__ */ from_html(`<div class=\"altcha-checkbox-native\"><input/> <div class=\"altcha-spinner altcha-checkbox-native-spinner\"></div></div>`);\nfunction CheckboxNative($$anchor, $$props) {\n  push($$props, true);\n  let loading = prop($$props, \"loading\"), rest = /* @__PURE__ */ rest_props($$props, [\"$$slots\", \"$$events\", \"$$legacy\", \"$$host\", \"loading\"]);\n  var $$exports = {\n    get loading() {\n      return loading();\n    },\n    set loading($$value) {\n      loading($$value);\n      flushSync();\n    }\n  };\n  var div = root$6();\n  var input = child(div);\n  attribute_effect(input, () => ({ type: \"checkbox\", ...rest }), void 0, void 0, void 0, void 0, true);\n  next(2);\n  reset(div);\n  template_effect(() => set_attribute(div, \"data-loading\", loading()));\n  append($$anchor, div);\n  return pop($$exports);\n}\ncreate_custom_element(CheckboxNative, { loading: {} }, [], [], { mode: \"open\" });\nvar root$5 = /* @__PURE__ */ from_html(`<div><a target=\"_blank\" class=\"altcha-logo\" aria-hidden=\"true\" tabindex=\"-1\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.33955 16.4279C5.88954 20.6586 12.1971 21.2105 16.4279 17.6604C18.4699 15.947 19.6548 13.5911 19.9352 11.1365L17.9886 10.4279C17.8738 12.5624 16.909 14.6459 15.1423 16.1284C11.7577 18.9684 6.71167 18.5269 3.87164 15.1423C1.03163 11.7577 1.4731 6.71166 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577C16.9767 5.86872 17.5322 7.02798 17.804 8.2324L19.9522 9.01429C19.7622 7.07737 19.0059 5.17558 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956C-0.658625 5.88958 -1.21046 12.1971 2.33955 16.4279Z\" fill=\"currentColor\"></path><path d=\"M3.57212 2.33956C1.65755 3.94607 0.496389 6.11731 0.12782 8.40523L2.04639 9.13961C2.26047 7.15832 3.21057 5.25375 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577L13.8302 6.78606L19.9633 9.13364C19.7929 7.15555 19.0335 5.20847 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956Z\" fill=\"currentColor\"></path><path d=\"M7 10H5C5 12.7614 7.23858 15 10 15C12.7614 15 15 12.7614 15 10H13C13 11.6569 11.6569 13 10 13C8.3431 13 7 11.6569 7 10Z\" fill=\"currentColor\"></path></svg></a></div>`);\nfunction Logo($$anchor, $$props) {\n  push($$props, true);\n  let strings = prop($$props, \"strings\");\n  const website = \"https://altcha.org\";\n  var $$exports = {\n    get strings() {\n      return strings();\n    },\n    set strings($$value) {\n      strings($$value);\n      flushSync();\n    }\n  };\n  var div = root$5();\n  var a = child(div);\n  set_attribute(a, \"href\", website);\n  reset(div);\n  template_effect(() => set_attribute(a, \"aria-label\", strings().ariaLinkLabel));\n  append($$anchor, div);\n  return pop($$exports);\n}\ncreate_custom_element(Logo, { strings: {} }, [], [], { mode: \"open\" });\nvar root$4 = /* @__PURE__ */ from_html(`<div class=\"altcha-footer\"><p></p> <!></div>`);\nfunction Footer($$anchor, $$props) {\n  push($$props, true);\n  let logo = prop($$props, \"logo\"), strings = prop($$props, \"strings\");\n  var $$exports = {\n    get logo() {\n      return logo();\n    },\n    set logo($$value) {\n      logo($$value);\n      flushSync();\n    },\n    get strings() {\n      return strings();\n    },\n    set strings($$value) {\n      strings($$value);\n      flushSync();\n    }\n  };\n  var div = root$4();\n  var p = child(div);\n  html(p, () => strings().footer, true);\n  reset(p);\n  var node = sibling(p, 2);\n  {\n    var consequent = ($$anchor2) => {\n      Logo($$anchor2, {\n        get strings() {\n          return strings();\n        }\n      });\n    };\n    if_block(node, ($$render) => {\n      if (logo()) $$render(consequent);\n    });\n  }\n  reset(div);\n  append($$anchor, div);\n  return pop($$exports);\n}\ncreate_custom_element(Footer, { logo: {}, strings: {} }, [], [], { mode: \"open\" });\nvar root$3 = /* @__PURE__ */ from_html(`<div class=\"altcha-switch\"><input/>  <div class=\"altcha-switch-toggle\"><div class=\"altcha-spinner altcha-switch-spinner\"></div></div></div>`);\nfunction Switch($$anchor, $$props) {\n  push($$props, true);\n  let loading = prop($$props, \"loading\"), rest = /* @__PURE__ */ rest_props($$props, [\"$$slots\", \"$$events\", \"$$legacy\", \"$$host\", \"loading\"]);\n  let inputEl;\n  function onClick() {\n    inputEl?.click();\n  }\n  var $$exports = {\n    get loading() {\n      return loading();\n    },\n    set loading($$value) {\n      loading($$value);\n      flushSync();\n    }\n  };\n  var div = root$3();\n  var input = child(div);\n  attribute_effect(input, () => ({ type: \"checkbox\", ...rest }), void 0, void 0, void 0, void 0, true);\n  bind_this(input, ($$value) => inputEl = $$value, () => inputEl);\n  var div_1 = sibling(input, 2);\n  reset(div);\n  template_effect(() => set_attribute(div, \"data-loading\", loading()));\n  delegated(\"click\", div_1, onClick);\n  append($$anchor, div);\n  return pop($$exports);\n}\ndelegate([\"click\"]);\ncreate_custom_element(Switch, { loading: {} }, [], [], { mode: \"open\" });\nvar AudioState = /* @__PURE__ */ ((AudioState2) => {\n  AudioState2[\"ERROR\"] = \"error\";\n  AudioState2[\"LOADING\"] = \"loading\";\n  AudioState2[\"PLAYING\"] = \"playing\";\n  AudioState2[\"PAUSED\"] = \"paused\";\n  AudioState2[\"READY\"] = \"ready\";\n  return AudioState2;\n})(AudioState || {});\nvar State = /* @__PURE__ */ ((State2) => {\n  State2[\"CODE\"] = \"code\";\n  State2[\"ERROR\"] = \"error\";\n  State2[\"VERIFIED\"] = \"verified\";\n  State2[\"VERIFYING\"] = \"verifying\";\n  State2[\"UNVERIFIED\"] = \"unverified\";\n  State2[\"EXPIRED\"] = \"expired\";\n  return State2;\n})(State || {});\nvar root_1$2 = /* @__PURE__ */ from_html(`<div class=\"altcha-code-challenge-title\"> </div>`);\nvar root_3$2 = /* @__PURE__ */ from_html(`<div class=\"altcha-spinner\"></div>`);\nvar root_4 = /* @__PURE__ */ from_svg(`<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12.8659 3.00017L22.3922 19.5002C22.6684 19.9785 22.5045 20.5901 22.0262 20.8662C21.8742 20.954 21.7017 21.0002 21.5262 21.0002H2.47363C1.92135 21.0002 1.47363 20.5525 1.47363 20.0002C1.47363 19.8246 1.51984 19.6522 1.60761 19.5002L11.1339 3.00017C11.41 2.52187 12.0216 2.358 12.4999 2.63414C12.6519 2.72191 12.7782 2.84815 12.8659 3.00017ZM10.9999 16.0002V18.0002H12.9999V16.0002H10.9999ZM10.9999 9.00017V14.0002H12.9999V9.00017H10.9999Z\"></path></svg>`);\nvar root_5 = /* @__PURE__ */ from_svg(`<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M15 7C15 6.44772 15.4477 6 16 6C16.5523 6 17 6.44772 17 7V17C17 17.5523 16.5523 18 16 18C15.4477 18 15 17.5523 15 17V7ZM7 7C7 6.44772 7.44772 6 8 6C8.55228 6 9 6.44772 9 7V17C9 17.5523 8.55228 18 8 18C7.44772 18 7 17.5523 7 17V7Z\"></path></svg>`);\nvar root_6 = /* @__PURE__ */ from_svg(`<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M4 12H7C8.10457 12 9 12.8954 9 14V19C9 20.1046 8.10457 21 7 21H4C2.89543 21 2 20.1046 2 19V12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12V19C22 20.1046 21.1046 21 20 21H17C15.8954 21 15 20.1046 15 19V14C15 12.8954 15.8954 12 17 12H20C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12Z\"></path></svg>`);\nvar root_2$2 = /* @__PURE__ */ from_html(`<button type=\"button\" class=\"altcha-button altcha-button-secondary\"><!></button>`);\nvar root_7 = /* @__PURE__ */ from_html(`<audio hidden=\"\" autoplay=\"\"></audio>`);\nvar root$2 = /* @__PURE__ */ from_html(`<div class=\"altcha-code-challenge\"><form data-code-challenge=\"true\"><!> <div class=\"altcha-code-challenge-text\"> </div> <img class=\"altcha-code-challenge-image\" alt=\"\"/> <div class=\"altcha-code-challenge-row\"><input type=\"text\" class=\"altcha-input\" autocomplete=\"off\" name=\"\" required=\"\"/> <!> <button type=\"button\" class=\"altcha-button altcha-button-secondary\"><svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2V4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 9.25022 5.38734 6.82447 7.50024 5.38451L7.5 8H9.5V2L3.5 2V4L5.99918 3.99989C3.57075 5.82434 2 8.72873 2 12Z\"></path></svg></button></div> <div class=\"altcha-code-challenge-buttons\"><button type=\"submit\" class=\"altcha-button\"> </button> <button type=\"button\" class=\"altcha-button altcha-button-secondary\"> </button></div></form> <!></div>`);\nfunction Code($$anchor, $$props) {\n  push($$props, true);\n  let audioUrl = prop($$props, \"audioUrl\"), codeChallenge = prop($$props, \"codeChallenge\"), config = prop($$props, \"config\"), imageUrl = prop($$props, \"imageUrl\"), onCancel = prop($$props, \"onCancel\"), onReload = prop($$props, \"onReload\"), onSubmit = prop($$props, \"onSubmit\"), strings = prop($$props, \"strings\");\n  let audioState = /* @__PURE__ */ state(void 0);\n  let elAudio = /* @__PURE__ */ state(void 0);\n  let elInput = /* @__PURE__ */ state(void 0);\n  let loading = /* @__PURE__ */ state(false);\n  let code = /* @__PURE__ */ state(\"\");\n  let playAudio = /* @__PURE__ */ state(false);\n  onMount(() => {\n    if (!config().disableAutoFocus) {\n      tick().then(() => {\n        get(elInput)?.focus();\n      });\n    }\n    return () => {\n      if (get(elAudio)) {\n        get(elAudio).pause();\n        set(elAudio, void 0);\n      }\n    };\n  });\n  function onAudioEnded() {\n    set(audioState, AudioState.PAUSED, true);\n  }\n  function onAudioError(ev) {\n    set(audioState, AudioState.ERROR, true);\n  }\n  function onAudioCanPlay() {\n    set(audioState, AudioState.READY, true);\n  }\n  function onAudioLoadStart() {\n    set(audioState, AudioState.LOADING, true);\n  }\n  function onAudioPlaying() {\n    set(audioState, AudioState.PLAYING, true);\n  }\n  function onAudioPause() {\n    set(audioState, AudioState.PAUSED, true);\n  }\n  function onInputKeyDown(ev) {\n    if (ev.code === \"Space\") {\n      ev.preventDefault();\n      ev.stopPropagation();\n      onPlayAudio();\n    } else if (ev.code === \"Escape\") {\n      ev.preventDefault();\n      ev.stopPropagation();\n      onCancel()?.();\n    }\n  }\n  function onSubmitCapture(ev) {\n    ev.preventDefault();\n    ev.stopPropagation();\n    onSubmit()?.(get(code));\n  }\n  function onPlayAudio() {\n    if (get(elAudio)) {\n      if (get(audioState) === AudioState.LOADING) ;\n      else if (!get(elAudio).paused) {\n        get(elAudio).pause();\n      } else {\n        if (audioUrl() && get(elAudio).src !== audioUrl()) {\n          get(elAudio).src = audioUrl();\n        }\n        get(elAudio).currentTime = 0;\n        get(elAudio).play();\n      }\n    } else {\n      set(playAudio, true);\n      requestAnimationFrame(() => {\n        if (get(elAudio) && audioUrl()) {\n          get(elAudio).src = audioUrl();\n          get(elAudio).play();\n        }\n      });\n    }\n  }\n  var $$exports = {\n    get audioUrl() {\n      return audioUrl();\n    },\n    set audioUrl($$value) {\n      audioUrl($$value);\n      flushSync();\n    },\n    get codeChallenge() {\n      return codeChallenge();\n    },\n    set codeChallenge($$value) {\n      codeChallenge($$value);\n      flushSync();\n    },\n    get config() {\n      return config();\n    },\n    set config($$value) {\n      config($$value);\n      flushSync();\n    },\n    get imageUrl() {\n      return imageUrl();\n    },\n    set imageUrl($$value) {\n      imageUrl($$value);\n      flushSync();\n    },\n    get onCancel() {\n      return onCancel();\n    },\n    set onCancel($$value) {\n      onCancel($$value);\n      flushSync();\n    },\n    get onReload() {\n      return onReload();\n    },\n    set onReload($$value) {\n      onReload($$value);\n      flushSync();\n    },\n    get onSubmit() {\n      return onSubmit();\n    },\n    set onSubmit($$value) {\n      onSubmit($$value);\n      flushSync();\n    },\n    get strings() {\n      return strings();\n    },\n    set strings($$value) {\n      strings($$value);\n      flushSync();\n    }\n  };\n  var div = root$2();\n  var form = child(div);\n  var node = child(form);\n  {\n    var consequent = ($$anchor2) => {\n      var div_1 = root_1$2();\n      var text2 = child(div_1, true);\n      reset(div_1);\n      template_effect(() => set_text(text2, strings().verificationRequired));\n      append($$anchor2, div_1);\n    };\n    if_block(node, ($$render) => {\n      if (config().codeChallengeDisplay !== \"standard\") $$render(consequent);\n    });\n  }\n  var div_2 = sibling(node, 2);\n  var text_1 = child(div_2, true);\n  reset(div_2);\n  var img = sibling(div_2, 2);\n  var div_3 = sibling(img, 2);\n  var input = child(div_3);\n  remove_input_defaults(input);\n  input.disabled = get(loading);\n  bind_this(input, ($$value) => set(elInput, $$value), () => get(elInput));\n  var node_1 = sibling(input, 2);\n  {\n    var consequent_4 = ($$anchor2) => {\n      var button = root_2$2();\n      var node_2 = child(button);\n      {\n        var consequent_1 = ($$anchor3) => {\n          var div_4 = root_3$2();\n          append($$anchor3, div_4);\n        };\n        var consequent_2 = ($$anchor3) => {\n          var svg = root_4();\n          append($$anchor3, svg);\n        };\n        var consequent_3 = ($$anchor3) => {\n          var svg_1 = root_5();\n          append($$anchor3, svg_1);\n        };\n        var alternate = ($$anchor3) => {\n          var svg_2 = root_6();\n          append($$anchor3, svg_2);\n        };\n        if_block(node_2, ($$render) => {\n          if (get(audioState) === AudioState.LOADING) $$render(consequent_1);\n          else if (get(audioState) === AudioState.ERROR) $$render(consequent_2, 1);\n          else if (get(audioState) === AudioState.PLAYING) $$render(consequent_3, 2);\n          else $$render(alternate, -1);\n        });\n      }\n      reset(button);\n      template_effect(() => {\n        set_attribute(button, \"title\", strings().getAudioChallenge);\n        button.disabled = get(audioState) === AudioState.LOADING || get(audioState) === AudioState.ERROR;\n        set_attribute(button, \"aria-label\", get(audioState) === AudioState.LOADING ? strings().loading : strings().getAudioChallenge);\n      });\n      event(\"click\", button, () => onPlayAudio(), true);\n      append($$anchor2, button);\n    };\n    if_block(node_1, ($$render) => {\n      if (codeChallenge().audio) $$render(consequent_4);\n    });\n  }\n  var button_1 = sibling(node_1, 2);\n  reset(div_3);\n  var div_5 = sibling(div_3, 2);\n  var button_2 = child(div_5);\n  var text_2 = child(button_2, true);\n  reset(button_2);\n  var button_3 = sibling(button_2, 2);\n  var text_3 = child(button_3, true);\n  reset(button_3);\n  reset(div_5);\n  reset(form);\n  var node_3 = sibling(form, 2);\n  {\n    var consequent_5 = ($$anchor2) => {\n      var audio = root_7();\n      bind_this(audio, ($$value) => set(elAudio, $$value), () => get(elAudio));\n      event(\"error\", audio, onAudioError);\n      event(\"loadstart\", audio, onAudioLoadStart);\n      event(\"canplay\", audio, onAudioCanPlay);\n      event(\"pause\", audio, onAudioPause);\n      event(\"playing\", audio, onAudioPlaying);\n      event(\"ended\", audio, onAudioEnded);\n      append($$anchor2, audio);\n    };\n    if_block(node_3, ($$render) => {\n      if (get(playAudio)) $$render(consequent_5);\n    });\n  }\n  reset(div);\n  template_effect(() => {\n    set_text(text_1, strings().enterCodeFromImage);\n    set_attribute(img, \"src\", imageUrl());\n    set_attribute(input, \"minlength\", codeChallenge().length || 1);\n    set_attribute(input, \"maxlength\", codeChallenge().length);\n    set_attribute(input, \"placeholder\", strings().enterCode);\n    set_attribute(input, \"aria-label\", get(audioState) === AudioState.LOADING ? strings().loading : get(audioState) === AudioState.PLAYING ? \"\" : strings().enterCodeAria);\n    set_attribute(input, \"aria-live\", get(audioState) ? \"assertive\" : \"polite\");\n    set_attribute(input, \"aria-busy\", get(audioState) === AudioState.LOADING);\n    set_attribute(button_1, \"title\", strings().reload);\n    set_attribute(button_1, \"aria-label\", strings().reload);\n    set_attribute(button_2, \"aria-label\", strings().verify);\n    set_text(text_2, strings().verify);\n    set_attribute(button_3, \"aria-label\", strings().cancel);\n    set_text(text_3, strings().cancel);\n  });\n  event(\"submit\", form, onSubmitCapture, true);\n  delegated(\"keydown\", input, onInputKeyDown);\n  bind_value(input, () => get(code), ($$value) => set(code, $$value));\n  event(\"click\", button_1, () => onReload()?.(), true);\n  event(\"click\", button_3, () => onCancel()?.(), true);\n  append($$anchor, div);\n  return pop($$exports);\n}\ndelegate([\"keydown\"]);\ncreate_custom_element(\n  Code,\n  {\n    audioUrl: {},\n    codeChallenge: {},\n    config: {},\n    imageUrl: {},\n    onCancel: {},\n    onReload: {},\n    onSubmit: {},\n    strings: {}\n  },\n  [],\n  [],\n  { mode: \"open\" }\n);\nvar root_1$1 = /* @__PURE__ */ from_html(`<div class=\"altcha-popover-backdrop\" data-backdrop=\"\"></div>`);\nvar root_2$1 = /* @__PURE__ */ from_html(`<div class=\"altcha-popover-arrow\"></div>`);\nvar root_3$1 = /* @__PURE__ */ from_html(`<div role=\"button\" class=\"altcha-popover-close\">&times;</div>`);\nvar root$1 = /* @__PURE__ */ from_html(`<!> <div><!> <!> <div class=\"altcha-popover-content\"><!></div></div>`, 1);\nfunction Popover($$anchor, $$props) {\n  push($$props, true);\n  let anchor = prop($$props, \"anchor\"), children = prop($$props, \"children\"), display = prop($$props, \"display\", 7, \"standard\"), backdrop = prop($$props, \"backdrop\", 7, false), onClickOutside = prop($$props, \"onClickOutside\"), onClickOutsideDelay = prop($$props, \"onClickOutsideDelay\", 7, 600), onClose = prop($$props, \"onClose\"), placement = prop($$props, \"placement\", 7, \"auto\"), updateUISignal = prop($$props, \"updateUISignal\"), variant = prop($$props, \"variant\", 7, \"neutral\"), rest = /* @__PURE__ */ rest_props($$props, [\n    \"$$slots\",\n    \"$$events\",\n    \"$$legacy\",\n    \"$$host\",\n    \"anchor\",\n    \"children\",\n    \"display\",\n    \"backdrop\",\n    \"onClickOutside\",\n    \"onClickOutsideDelay\",\n    \"onClose\",\n    \"placement\",\n    \"updateUISignal\",\n    \"variant\"\n  ]);\n  let el = /* @__PURE__ */ state(void 0);\n  let elBackdrop = /* @__PURE__ */ state(void 0);\n  let top = /* @__PURE__ */ state(false);\n  let mountedAt = /* @__PURE__ */ state(0);\n  user_effect(() => {\n    if (placement() !== \"auto\") {\n      set(top, placement() === \"top\");\n    }\n  });\n  user_effect(() => {\n    if (updateUISignal()) {\n      reposition();\n    }\n  });\n  onMount(() => {\n    const moveToBody = display() === \"bottomsheet\" || display() === \"overlay\";\n    if (moveToBody) {\n      get(elBackdrop) && document.body.append(get(elBackdrop));\n      get(el) && document.body.append(get(el));\n    }\n    reposition();\n    tick().then(() => {\n      set(mountedAt, Date.now(), true);\n    });\n    return () => {\n      if (moveToBody) {\n        get(elBackdrop) && document.body.removeChild(get(elBackdrop));\n        get(el) && document.body.removeChild(get(el));\n      }\n    };\n  });\n  function onCloseClick() {\n    onClose()?.();\n  }\n  function onWindowClick(ev) {\n    const target = ev.target;\n    if (!get(el)?.contains(target) && (!onClickOutsideDelay() || get(mountedAt) + onClickOutsideDelay() < Date.now())) {\n      onClickOutside()?.();\n    }\n  }\n  function onWindowResize() {\n    reposition();\n  }\n  function onWindowScroll() {\n    reposition();\n  }\n  function reposition() {\n    if (anchor() && placement() === \"auto\" && get(el)) {\n      const boundary2 = anchor().getBoundingClientRect();\n      const bottomGap = document.documentElement.clientHeight - (boundary2.top + boundary2.height);\n      const newTop = bottomGap < get(el).clientHeight;\n      if (get(top) !== newTop) {\n        set(top, newTop);\n      }\n    }\n  }\n  var $$exports = {\n    get anchor() {\n      return anchor();\n    },\n    set anchor($$value) {\n      anchor($$value);\n      flushSync();\n    },\n    get children() {\n      return children();\n    },\n    set children($$value) {\n      children($$value);\n      flushSync();\n    },\n    get display() {\n      return display();\n    },\n    set display($$value = \"standard\") {\n      display($$value);\n      flushSync();\n    },\n    get backdrop() {\n      return backdrop();\n    },\n    set backdrop($$value = false) {\n      backdrop($$value);\n      flushSync();\n    },\n    get onClickOutside() {\n      return onClickOutside();\n    },\n    set onClickOutside($$value) {\n      onClickOutside($$value);\n      flushSync();\n    },\n    get onClickOutsideDelay() {\n      return onClickOutsideDelay();\n    },\n    set onClickOutsideDelay($$value = 600) {\n      onClickOutsideDelay($$value);\n      flushSync();\n    },\n    get onClose() {\n      return onClose();\n    },\n    set onClose($$value) {\n      onClose($$value);\n      flushSync();\n    },\n    get placement() {\n      return placement();\n    },\n    set placement($$value = \"auto\") {\n      placement($$value);\n      flushSync();\n    },\n    get updateUISignal() {\n      return updateUISignal();\n    },\n    set updateUISignal($$value) {\n      updateUISignal($$value);\n      flushSync();\n    },\n    get variant() {\n      return variant();\n    },\n    set variant($$value = \"neutral\") {\n      variant($$value);\n      flushSync();\n    }\n  };\n  var fragment = root$1();\n  event(\"click\", $window, onWindowClick, true);\n  event(\"resize\", $window, onWindowResize);\n  event(\"scroll\", $window, onWindowScroll);\n  var node = first_child(fragment);\n  {\n    var consequent = ($$anchor2) => {\n      var div = root_1$1();\n      bind_this(div, ($$value) => set(elBackdrop, $$value), () => get(elBackdrop));\n      append($$anchor2, div);\n    };\n    if_block(node, ($$render) => {\n      if (backdrop()) $$render(consequent);\n    });\n  }\n  var div_1 = sibling(node, 2);\n  attribute_effect(div_1, () => ({\n    ...rest,\n    class: `altcha-popover ${($$props.class || \"\") ?? \"\"}`,\n    \"data-popover\": true,\n    \"data-variant\": variant(),\n    \"data-top\": get(top),\n    \"data-display\": display()\n  }));\n  var node_1 = child(div_1);\n  {\n    var consequent_1 = ($$anchor2) => {\n      var div_2 = root_2$1();\n      append($$anchor2, div_2);\n    };\n    if_block(node_1, ($$render) => {\n      if (display() === \"standard\") $$render(consequent_1);\n    });\n  }\n  var node_2 = sibling(node_1, 2);\n  {\n    var consequent_2 = ($$anchor2) => {\n      var div_3 = root_3$1();\n      event(\"click\", div_3, onCloseClick, true);\n      append($$anchor2, div_3);\n    };\n    if_block(node_2, ($$render) => {\n      if (display() !== \"standard\") $$render(consequent_2);\n    });\n  }\n  var div_4 = sibling(node_2, 2);\n  var node_3 = child(div_4);\n  snippet(node_3, () => children() ?? noop);\n  reset(div_4);\n  reset(div_1);\n  bind_this(div_1, ($$value) => set(el, $$value), () => get(el));\n  append($$anchor, fragment);\n  return pop($$exports);\n}\ncreate_custom_element(\n  Popover,\n  {\n    anchor: {},\n    children: {},\n    display: {},\n    backdrop: {},\n    onClickOutside: {},\n    onClickOutsideDelay: {},\n    onClose: {},\n    placement: {},\n    updateUISignal: {},\n    variant: {}\n  },\n  [],\n  [],\n  { mode: \"open\" }\n);\nfunction bufferToHex(buffer) {\n  return Array.from(new Uint8Array(buffer)).map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\nfunction injectCss(css2, id = \"altcha-css\", nonce) {\n  if (typeof document !== \"undefined\" && document && !document.getElementById(id)) {\n    const style = document.createElement(\"style\");\n    style.id = id;\n    style.textContent = css2;\n    const resolvedNonce = document.currentScript?.nonce ?? document.querySelector('meta[name=\"csp-nonce\"]')?.content;\n    if (resolvedNonce) {\n      style.nonce = resolvedNonce;\n    }\n    document.head.appendChild(style);\n  }\n}\nasync function solveChallengeWorkers(options) {\n  const {\n    challenge,\n    concurrency = navigator.hardwareConcurrency,\n    controller = new AbortController(),\n    createWorker,\n    onOutOfMemory = (c) => c > 1 ? Math.floor(c / 2) : 0,\n    counterMode,\n    timeout = 9e4\n  } = options;\n  const workersConcurrency = Math.min(16, Math.max(1, concurrency));\n  const workersInstances = [];\n  const terminate = () => {\n    for (const worker of workersInstances) {\n      worker.terminate();\n    }\n  };\n  for (let i = 0; i < workersConcurrency; i++) {\n    workersInstances.push(await createWorker(challenge.parameters.algorithm));\n  }\n  let solution = null;\n  try {\n    solution = await Promise.race(\n      workersInstances.map((worker, i) => {\n        controller.signal.addEventListener(\"abort\", () => {\n          worker.postMessage({ type: \"abort\" });\n        });\n        return new Promise((resolve, reject) => {\n          worker.addEventListener(\"error\", (err) => {\n            reject(err);\n          });\n          worker.addEventListener(\"message\", (message) => {\n            if (message.data) {\n              for (const w of workersInstances) {\n                if (w !== worker) {\n                  w.postMessage({ type: \"abort\" });\n                }\n              }\n              if (message.data.error) {\n                return reject(new Error(message.data.error));\n              }\n            }\n            resolve(message.data);\n          });\n          worker.postMessage({\n            challenge,\n            counterMode,\n            counterStart: i,\n            counterStep: workersConcurrency,\n            timeout,\n            type: \"work\"\n          });\n        });\n      })\n    );\n  } catch (err) {\n    const isOOM = err instanceof Error && !!err?.message?.includes(\"Out of memory\");\n    if (isOOM) {\n      if (onOutOfMemory) {\n        terminate();\n        const retryConcurrency = onOutOfMemory(workersConcurrency);\n        if (retryConcurrency) {\n          return solveChallengeWorkers({\n            ...options,\n            challenge,\n            controller,\n            concurrency: retryConcurrency,\n            createWorker\n          });\n        }\n      }\n    }\n    throw err;\n  } finally {\n    terminate();\n  }\n  if (controller.signal.aborted) {\n    return null;\n  }\n  return solution || null;\n}\nclass Collector {\n  TAG_CODES = {\n    INPUT: 1,\n    TEXTAREA: 2,\n    SELECT: 3,\n    BUTTON: 4,\n    A: 5,\n    DETAILS: 6,\n    SUMMARY: 7,\n    IFRAME: 8,\n    VIDEO: 9,\n    AUDIO: 10\n  };\n  maxSamples;\n  sampleInterval;\n  target;\n  focusStartTime = 0;\n  focusInteraction = 0;\n  focusInteractionTimer = null;\n  lastPointerSample = 0;\n  lastTouchSample = 0;\n  lastScrollSample = 0;\n  pendingPointer = null;\n  pendingTouch = null;\n  focus = [];\n  pointer = [];\n  scroll = [];\n  touch = [];\n  constructor(options = {}) {\n    const { maxSamples = 60, sampleInterval = 50, target = window } = options;\n    this.maxSamples = maxSamples;\n    this.sampleInterval = sampleInterval;\n    this.target = target;\n    this.attach();\n  }\n  destroy() {\n    const o = { capture: true };\n    this.target.removeEventListener(\"focusin\", this.onFocus, o);\n    this.target.removeEventListener(\"keydown\", this.onInteraction, o);\n    this.target.removeEventListener(\"pointerdown\", this.onInteraction, o);\n    this.target.removeEventListener(\"pointermove\", this.onPointer, o);\n    this.target.removeEventListener(\"scroll\", this.onScroll, o);\n    this.target.removeEventListener(\"touchmove\", this.onTouchMove, o);\n  }\n  export() {\n    return {\n      focus: this.focus,\n      maxTouchPoints: navigator.maxTouchPoints || 0,\n      pointer: this.pointer,\n      scroll: this.scroll,\n      time: Date.now(),\n      touch: this.touch\n    };\n  }\n  attach() {\n    const o = { passive: true, capture: true };\n    this.target.addEventListener(\"focusin\", this.onFocus, o);\n    this.target.addEventListener(\"keydown\", this.onInteraction, o);\n    this.target.addEventListener(\"pointerdown\", this.onInteraction, o);\n    this.target.addEventListener(\"pointermove\", this.onPointer, o);\n    this.target.addEventListener(\"scroll\", this.onScroll, o);\n    this.target.addEventListener(\"touchmove\", this.onTouchMove, o);\n  }\n  evict(buffer) {\n    if (buffer.length > this.maxSamples) {\n      buffer.splice(0, buffer.length - this.maxSamples);\n    }\n  }\n  onFocus = (e) => {\n    if (this.focusInteraction === 2) {\n      return;\n    }\n    const el = e.target;\n    if (!(el instanceof Element)) {\n      return;\n    }\n    const now = performance.now();\n    if (this.focusStartTime === 0) {\n      this.focusStartTime = now;\n    }\n    this.focus.push([\n      Math.round(now - this.focusStartTime),\n      el.tabIndex,\n      this.TAG_CODES[el.tagName] ?? 0,\n      this.focusInteraction ? 1 : 0\n    ]);\n    this.evict(this.focus);\n  };\n  onInteraction = (e) => {\n    this.focusInteraction = \"keyCode\" in e ? 1 : 2;\n    if (this.focusInteractionTimer) {\n      clearTimeout(this.focusInteractionTimer);\n    }\n    this.focusInteractionTimer = setTimeout(() => {\n      this.focusInteraction = 0;\n    }, 100);\n  };\n  onPointer = (e) => {\n    if (e.pointerType === \"touch\") {\n      return;\n    }\n    const now = e.timeStamp || performance.now();\n    this.pendingPointer = [Math.round(e.clientX), Math.round(e.clientY), Math.round(now)];\n    if (now - this.lastPointerSample >= this.sampleInterval) {\n      this.pointer.push(this.pendingPointer);\n      this.lastPointerSample = now;\n      this.pendingPointer = null;\n      this.evict(this.pointer);\n    }\n  };\n  onScroll = () => {\n    const now = performance.now();\n    if (now - this.lastScrollSample < this.sampleInterval) {\n      return;\n    }\n    this.scroll.push([Math.round(window.scrollY), Math.round(now)]);\n    this.lastScrollSample = now;\n    this.evict(this.scroll);\n  };\n  onTouchMove = (e) => {\n    const now = e.timeStamp || performance.now();\n    const t = e.touches[0];\n    if (!t) {\n      return;\n    }\n    this.pendingTouch = [\n      Math.round(t.clientX),\n      Math.round(t.clientY),\n      Math.round(now),\n      Math.round(t.force * 1e3) / 1e3,\n      Math.round(t.radiusX || 0),\n      Math.round(t.radiusY || 0)\n    ];\n    if (now - this.lastTouchSample >= this.sampleInterval) {\n      this.touch.push(this.pendingTouch);\n      this.lastTouchSample = now;\n      this.pendingTouch = null;\n      this.evict(this.touch);\n    }\n  };\n}\nvar root_1 = /* @__PURE__ */ from_html(`<div class=\"altcha-overlay-backdrop\" data-backdrop=\"\"></div>`);\nvar root_3 = /* @__PURE__ */ from_html(`<div class=\"altcha-overlay-content\"></div>`);\nvar root_2 = /* @__PURE__ */ from_html(`<div role=\"button\" class=\"altcha-overlay-close\">&times;</div> <!>`, 1);\nvar root_10 = /* @__PURE__ */ from_html(`<div class=\"altcha-floating-arrow\"></div>`);\nvar root_11 = /* @__PURE__ */ from_html(`<input type=\"hidden\"/>`);\nvar root_14 = /* @__PURE__ */ from_html(`<div class=\"altcha-error\">Secure context (HTTPS) required.</div>`);\nvar root_15 = /* @__PURE__ */ from_html(`<div class=\"altcha-error\"> </div>`);\nvar root_16 = /* @__PURE__ */ from_html(`<div class=\"altcha-error\"> </div>`);\nvar root_19 = /* @__PURE__ */ from_html(`<!> <!>`, 1);\nvar root = /* @__PURE__ */ from_html(`<!> <div class=\"altcha\"><!> <div class=\"altcha-main\"><div><div class=\"altcha-checkbox-wrap\"><!> <label><!></label></div> <!></div> <!> <!> <!></div> <!></div>`, 1);\nfunction Widget($$anchor, $$props) {\n  push($$props, true);\n  const $altchaDefaults = () => store_get(altchaDefaults, \"$altchaDefaults\", $$stores);\n  const $altchaI18nStore = () => store_get(altchaI18nStore, \"$altchaI18nStore\", $$stores);\n  const [$$stores, $$cleanup] = setup_stores();\n  const fieldsSelector = 'input[type=\"text\"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])';\n  const submitButtonSelector = 'input[type=\"submit\"], button[type=\"submit\"], button:not([type=\"button\"]):not([type=\"reset\"])';\n  const rtlLanguages = [\"ar\", \"fa\", \"he\", \"ur\"];\n  const { isSecureContext } = globalThis;\n  const { store: altchaDefaults } = globalThis.$altcha.defaults;\n  const hardwareConcurrency = navigator.hardwareConcurrency || 2;\n  const deviceMemory = navigator.deviceMemory || 0;\n  const defaultWorkers = deviceMemory && deviceMemory <= 4 ? Math.min(4, hardwareConcurrency) : hardwareConcurrency;\n  const altchaI18nStore = globalThis.$altcha.i18n.store;\n  const instance = $$props.$$host;\n  const dispatch = (event2, detail) => {\n    tick().then(() => {\n      instance?.dispatchEvent(new CustomEvent(event2, { detail }));\n    });\n  };\n  let hisCollector = null;\n  let baseUrl = /* @__PURE__ */ state(proxy(new URL(location.origin)));\n  let checked = /* @__PURE__ */ state(false);\n  let codeChallenge = /* @__PURE__ */ state(null);\n  let currentController = /* @__PURE__ */ state(null);\n  let currentDisplay = /* @__PURE__ */ state(null);\n  let currentState = /* @__PURE__ */ state(proxy(State.UNVERIFIED));\n  let elAnchorArrow = /* @__PURE__ */ state(void 0);\n  let elFloatingAnchor = /* @__PURE__ */ state(void 0);\n  let elForm = /* @__PURE__ */ state(null);\n  let elRoot = /* @__PURE__ */ state(void 0);\n  let elSubmitter = /* @__PURE__ */ state(null);\n  let error = /* @__PURE__ */ state(null);\n  let expirationTimeout = /* @__PURE__ */ state(null);\n  let payload = /* @__PURE__ */ state(null);\n  let plugins = /* @__PURE__ */ state(proxy([]));\n  let updateUISignal = /* @__PURE__ */ state(0);\n  let userConfig = /* @__PURE__ */ state(proxy({}));\n  let visible = /* @__PURE__ */ state(true);\n  const config = /* @__PURE__ */ user_derived(() => ({\n    fetch: (input, init) => fetch(input, init),\n    audioChallengeLanguage: \"\",\n    auto: \"off\",\n    barPlacement: \"bottom\",\n    challenge: \"\",\n    codeChallenge: null,\n    codeChallengeDisplay: \"standard\",\n    credentials: null,\n    debug: false,\n    disableAutoFocus: false,\n    display: \"standard\",\n    floatingAnchor: \"\",\n    floatingOffset: 8,\n    floatingPersist: false,\n    floatingPlacement: \"auto\",\n    hideFooter: false,\n    hideLogo: false,\n    humanInteractionSignature: true,\n    language: \"\",\n    mockError: false,\n    minDuration: 500,\n    overlayContent: \"\",\n    name: \"altcha\",\n    popoverPlacement: \"auto\",\n    retryOnOutOfMemoryError: true,\n    setCookie: null,\n    serverVerificationFields: false,\n    serverVerificationTimeZone: false,\n    test: false,\n    timeout: 9e4,\n    type: \"checkbox\",\n    validationMessage: \"\",\n    verifyFunction: null,\n    verifyUrl: \"\",\n    workers: defaultWorkers,\n    ...$altchaDefaults(),\n    ...get(userConfig)\n  }));\n  const checkboxId = /* @__PURE__ */ user_derived(() => `altcha-checkbox-${$$props.id || Math.floor(Math.random() * 1e12).toString(16)}`);\n  const CheckboxComponent = /* @__PURE__ */ user_derived(() => getCheckboxComponent(get(config).type));\n  const auto = /* @__PURE__ */ user_derived(() => get(config).auto);\n  const loading = /* @__PURE__ */ user_derived(() => get(currentState) === State.VERIFYING);\n  const showFooter = /* @__PURE__ */ user_derived(() => !get(config).hideFooter);\n  const showLogo = /* @__PURE__ */ user_derived(() => !get(config).hideLogo && get(config).display !== \"bar\");\n  const locale = /* @__PURE__ */ user_derived(() => getI18nStrings($altchaI18nStore(), [\n    get(config).language,\n    document.documentElement.lang,\n    ...navigator.languages\n  ]));\n  const dir = /* @__PURE__ */ user_derived(() => rtlLanguages.includes(get(locale).language) ? \"rtl\" : void 0);\n  const strings = /* @__PURE__ */ user_derived(() => ({ ...get(locale).strings }));\n  const codeChallengeAudioUrl = /* @__PURE__ */ user_derived(() => get(codeChallenge)?.audio?.match(/^(https?:)?\\//) ? getUrl(get(codeChallenge).audio, get(baseUrl), {\n    language: get(config).audioChallengeLanguage || get(locale).language\n  }).toString() : get(codeChallenge)?.audio);\n  const codeChallengeImageUrl = /* @__PURE__ */ user_derived(() => get(codeChallenge)?.image?.match(/^(https?:)?\\//) ? getUrl(get(codeChallenge).image, get(baseUrl)) : get(codeChallenge)?.image);\n  user_effect(() => {\n    configure({\n      auto: $$props.auto,\n      challenge: $$props.challenge,\n      display: $$props.display,\n      language: $$props.language,\n      name: $$props.name,\n      type: $$props.type,\n      workers: $$props.workers\n    });\n  });\n  user_effect(() => {\n    if ($$props.configuration) {\n      try {\n        configure(JSON.parse($$props.configuration));\n      } catch {\n        log(\"unable to parse the `configuration` attribute (JSON expected)\");\n      }\n    }\n  });\n  user_effect(() => {\n    if (get(currentDisplay) !== get(config).display) {\n      setDisplay(get(config).display);\n    }\n  });\n  user_effect(() => {\n    if (get(checked) && get(currentState) === State.VERIFYING) {\n      set(checked, false);\n    }\n  });\n  user_effect(() => {\n    if (!get(checked) && get(currentState) === State.VERIFIED) {\n      set(checked, true);\n    }\n  });\n  user_effect(() => {\n    if (!get(checked)) {\n      const checkbox = getCheckboxElement();\n      if (checkbox && checkbox.checked) {\n        checkbox.checked = false;\n      }\n    }\n  });\n  user_effect(() => {\n    if (get(currentState) === State.VERIFIED) {\n      getCheckboxElement()?.setCustomValidity(\"\");\n    }\n  });\n  user_effect(() => {\n    if (get(auto) === \"onload\") {\n      const tm = setTimeout(\n        () => {\n          verify();\n        },\n        1\n      );\n      return () => {\n        if (tm) {\n          clearTimeout(tm);\n        }\n      };\n    }\n  });\n  user_effect(() => {\n    if (get(error)) {\n      log(\"error:\", get(error));\n    }\n  });\n  user_effect(() => {\n    if (get(payload) && get(config).setCookie) {\n      setCookie(get(payload), get(config).setCookie);\n    }\n  });\n  onMount(() => {\n    log(\"mounted\", \"3.1.0\");\n    if (instance) {\n      globalThis.$altcha.instances.add(instance);\n    }\n    set(elForm, get(elRoot)?.closest(\"form\"), true);\n    get(elForm)?.addEventListener(\"reset\", onFormReset);\n    get(elForm)?.addEventListener(\"submit\", onFormSubmit, { capture: true });\n    get(elForm)?.addEventListener(\"focusin\", onFormFocusIn);\n    activatePlugins();\n    if (get(config).humanInteractionSignature) {\n      log(\"human interaction signature enabled\");\n      hisCollector = new Collector();\n    }\n    dispatch(\"load\");\n    if (!isSecureContext) {\n      log(\"secure context (HTTPS) required\");\n    }\n    return () => {\n      destroyPlugins();\n      if (instance) {\n        globalThis.$altcha.instances.delete(instance);\n      }\n      if (get(expirationTimeout)) {\n        clearTimeout(get(expirationTimeout));\n      }\n      get(elForm)?.removeEventListener(\"reset\", onFormReset);\n      get(elForm)?.removeEventListener(\"submit\", onFormSubmit, { capture: true });\n      get(elForm)?.removeEventListener(\"focusin\", onFormFocusIn);\n      hisCollector?.destroy();\n    };\n  });\n  function activatePlugins() {\n    set(plugins, [...globalThis.$altcha.plugins].map((PluginCls) => new PluginCls(instance)), true);\n    log(\"activating plugins\", get(plugins).map((plugin) => plugin.constructor.name));\n    for (const plugin of get(plugins)) {\n      plugin.activate();\n    }\n  }\n  async function callHook(hook, ...args) {\n    let result = void 0;\n    for (const plugin of get(plugins)) {\n      result = await plugin[hook].call(plugin, ...args);\n    }\n    return result;\n  }\n  function destroyPlugins() {\n    for (const plugin of get(plugins)) {\n      plugin.destroy();\n    }\n  }\n  function createChallengeFromV1(challenge) {\n    const [_, queryParams] = challenge.salt.split(\"?\");\n    const data = {};\n    if (queryParams) {\n      try {\n        Object.assign(data, Object.fromEntries(new URLSearchParams(queryParams).entries()));\n      } catch {\n      }\n    }\n    const result = {\n      codeChallenge: challenge.codeChallenge,\n      parameters: {\n        algorithm: challenge.algorithm,\n        cost: 1,\n        data,\n        expiresAt: data?.expires ? parseInt(data.expires, 10) : void 0,\n        keyLength: challenge.algorithm === \"SHA-512\" ? 64 : challenge.algorithm === \"SHA-384\" ? 48 : 32,\n        nonce: bufferToHex(new TextEncoder().encode(challenge.salt)),\n        keyPrefix: challenge.challenge,\n        salt: \"\"\n      },\n      signature: challenge.signature\n    };\n    Object.defineProperties(result, {\n      _originalSalt: { enumerable: false, value: challenge.salt, writable: false },\n      _version: { enumerable: false, value: 1, writable: false }\n    });\n    return result;\n  }\n  function createPayloadV1(challenge, solution) {\n    return {\n      algorithm: challenge.parameters.algorithm,\n      challenge: challenge.parameters.keyPrefix,\n      number: solution.counter,\n      salt: \"_originalSalt\" in challenge ? challenge._originalSalt : challenge.parameters.nonce,\n      signature: challenge.signature,\n      took: solution.time || 0\n    };\n  }\n  async function delay(ms) {\n    await new Promise((resolve) => setTimeout(resolve, ms));\n  }\n  async function fetchChallenge(source2 = get(config).challenge, requestOptions) {\n    const hook = await callHook(\"onFetchChallenge\", source2);\n    let challenge = null;\n    if (hook !== void 0) {\n      return hook;\n    }\n    if (typeof source2 === \"string\") {\n      if (source2.startsWith(\"{\")) {\n        log(\"parsing JSON challenge\");\n        try {\n          challenge = JSON.parse(source2);\n        } catch {\n          throw new Error(`Unable to parse JSON challenge.`);\n        }\n      } else {\n        log(\"fetching challenge from\", requestOptions?.method || \"GET\", source2);\n        set(baseUrl, new URL(source2, location.origin), true);\n        const resp = await get(config).fetch(source2, {\n          credentials: get(config).credentials || void 0,\n          ...requestOptions\n        });\n        await validateResponse(resp);\n        const configHeader = resp.headers.get(\"x-altcha-config\");\n        if (configHeader) {\n          processConfigHeader(configHeader);\n        }\n        const json = await resp.json();\n        if (json && \"his\" in json && json.his) {\n          log(\"requested HIS\");\n          if (!hisCollector) {\n            throw new Error(\"Server requested HIS data but collector is disabled.\");\n          }\n          return fetchChallenge(getUrl(json.his.url, get(baseUrl)), {\n            body: JSON.stringify({ his: hisCollector.export() }),\n            headers: { \"content-type\": \"application/json\" },\n            method: \"POST\"\n          });\n        }\n        if (json && \"hisResult\" in json && json.hisResult) {\n          log(\"HIS result\", json.hisResult);\n        }\n        challenge = json;\n      }\n    } else if (source2 && typeof source2 === \"object\") {\n      try {\n        challenge = JSON.parse(JSON.stringify(source2));\n      } catch {\n        throw new Error(`Unable to parse JSON challenge.`);\n      }\n    }\n    if (isChallengeV1(challenge)) {\n      challenge = createChallengeFromV1(challenge);\n    }\n    if (!isChallengeValid(challenge)) {\n      throw new Error(`Challenge validation failed.`);\n    }\n    return challenge;\n  }\n  function isChallengeV1(challenge) {\n    return typeof challenge === \"object\" && \"challenge\" in challenge;\n  }\n  function isChallengeValid(challenge) {\n    return !!challenge && typeof challenge === \"object\" && \"parameters\" in challenge && !!challenge.parameters && typeof challenge.parameters === \"object\" && \"algorithm\" in challenge.parameters && \"nonce\" in challenge.parameters && \"salt\" in challenge.parameters && \"keyPrefix\" in challenge.parameters;\n  }\n  function getCheckboxElement() {\n    return document.getElementById(get(checkboxId));\n  }\n  function getCheckboxComponent(type) {\n    switch (type) {\n      case \"checkbox\":\n        return Checkbox;\n      case \"switch\":\n        return Switch;\n      case \"native\":\n      default:\n        return CheckboxNative;\n    }\n  }\n  function getI18nStrings(i18n2, languages) {\n    const codes = Object.keys(i18n2).map((code) => code.toLowerCase());\n    let language = languages.reduce(\n      (acc, lang) => {\n        lang = lang.toLowerCase();\n        return acc || (i18n2[lang] ? lang : null) || codes.find((code) => lang.split(\"-\")[0] === code.split(\"-\")[0]) || null;\n      },\n      null\n    );\n    if (!i18n2[language || \"\"]) {\n      language = \"en\";\n    }\n    return { language, strings: i18n2[language] };\n  }\n  function getPlacement(display) {\n    switch (display) {\n      case \"bar\":\n        return get(config).barPlacement || \"bottom\";\n      case \"floating\":\n        return get(config).floatingPlacement || \"auto\";\n      default:\n        return void 0;\n    }\n  }\n  function getTextFields(names) {\n    const elInputs = [\n      ...get(elForm)?.querySelectorAll(fieldsSelector) || []\n    ];\n    return elInputs.reduce(\n      (acc, el) => {\n        const name = el.name;\n        const value = el.value;\n        if (name && value) {\n          acc[name] = /\\n/.test(value) ? value.replace(new RegExp(\"(?<!\\\\r)\\\\n\", \"g\"), \"\\r\\n\") : value;\n        }\n        return acc;\n      },\n      {}\n    );\n  }\n  function getTimeZone() {\n    try {\n      return Intl.DateTimeFormat().resolvedOptions().timeZone;\n    } catch {\n    }\n    return void 0;\n  }\n  function getUrl(uri, baseUrl2, params) {\n    const result = new URL(uri, baseUrl2);\n    if (!result.search) {\n      result.search = baseUrl2.search;\n    }\n    if (params) {\n      for (const key2 in params) {\n        if (params[key2] !== void 0 && params[key2] !== null) {\n          result.searchParams.set(key2, params[key2]);\n        }\n      }\n    }\n    return result.toString();\n  }\n  function onCheckboxChange(ev) {\n    if (!get(checked) && ev.currentTarget.checked) {\n      ev.preventDefault();\n      ev.currentTarget.checked = false;\n      if (get(currentState) !== State.VERIFYING) {\n        verify();\n      }\n    } else if (!ev.currentTarget.checked) {\n      ev.preventDefault();\n      reset$1();\n    }\n  }\n  function onCheckboxInvalid(ev) {\n    if (get(currentState) === State.VERIFYING) {\n      ev.currentTarget.setCustomValidity(get(strings).waitAlert);\n    } else if (get(config).validationMessage) {\n      ev.currentTarget.setCustomValidity(get(config).validationMessage);\n    }\n  }\n  function onCloseClick() {\n    setDisplay(get(config).display);\n    reset$1();\n  }\n  function onDocumentScroll() {\n    updateUI();\n  }\n  function onDocumentClick(ev) {\n    const target = ev.target;\n    if (get(config).display === \"floating\" && target && !instance?.contains(target) && !target.hasAttribute(\"data-backdrop\") && !target.closest(\"[data-popover]\") && get(currentState) !== State.VERIFIED && !get(config).floatingPersist) {\n      hide();\n    }\n  }\n  function onFormFocusIn(ev) {\n    if (get(auto) === \"onfocus\" && get(currentState) === State.UNVERIFIED) {\n      verify();\n    }\n  }\n  function onFormReset() {\n    setDisplay(get(config).display);\n    reset$1();\n  }\n  function onFormSubmit(ev) {\n    const target = ev.target;\n    if (target?.getAttribute(\"data-code-challenge\") === \"true\") {\n      return;\n    }\n    if (get(auto) === \"onsubmit\" && get(currentState) === State.UNVERIFIED) {\n      ev.preventDefault();\n      ev.stopPropagation();\n      set(elSubmitter, ev.submitter, true);\n      show();\n      verify().then((result) => {\n        if (result && !get(codeChallenge)) {\n          tick().then(() => {\n            requestSubmit(get(elSubmitter));\n          });\n        }\n      });\n    }\n  }\n  function onWindowPageshow(ev) {\n    if (ev.persisted) {\n      setDisplay(get(config).display);\n      reset$1();\n    }\n  }\n  function onWindowResize() {\n    updateUI();\n  }\n  function processConfigHeader(jsonConfig) {\n    try {\n      const json = JSON.parse(jsonConfig);\n      if (json && typeof json === \"object\") {\n        configure({\n          // Backward compatibility mappings\n          serverVerificationFields: json?.sentinel?.fields,\n          serverVerificationTimeZone: json?.sentinel?.timeZone,\n          verifyUrl: json.verifyurl,\n          ...json\n        });\n      }\n    } catch (err) {\n      log(\"unable to configure from x-altcha-config header\", err);\n    }\n  }\n  function repositionFloating(viewportOffset = 20) {\n    if (!get(elRoot)) {\n      return;\n    }\n    const floatingPlacement = get(config).floatingPlacement;\n    if (!get(elFloatingAnchor)) {\n      set(\n        elFloatingAnchor,\n        (get(config).floatingAnchor instanceof HTMLElement ? get(config).floatingAnchor : get(config).floatingAnchor ? document.querySelector(get(config).floatingAnchor) : get(elForm)?.querySelector(submitButtonSelector)) || get(elForm),\n        true\n      );\n      if (!get(elFloatingAnchor)) {\n        log(\"unable to find floating anchor element\");\n        return;\n      }\n    }\n    const offsetY = parseInt(get(config).floatingOffset, 10) || 12;\n    const anchorBoundry = get(elFloatingAnchor).getBoundingClientRect();\n    const elBoundary = get(elRoot).getBoundingClientRect();\n    const docHeight = document.documentElement.clientHeight;\n    const docWidth = document.documentElement.clientWidth;\n    const showOnTop = !floatingPlacement || floatingPlacement === \"auto\" ? anchorBoundry.bottom + elBoundary.height + offsetY + viewportOffset > docHeight : floatingPlacement === \"top\";\n    const left = Math.max(viewportOffset, Math.min(docWidth - viewportOffset - elBoundary.width, anchorBoundry.left + anchorBoundry.width / 2 - elBoundary.width / 2));\n    get(elRoot).style.setProperty(\"--altcha-floating-left\", `${left}px`);\n    get(elRoot).style.setProperty(\"--altcha-floating-top\", showOnTop ? `${anchorBoundry.top - (elBoundary.height + offsetY)}px` : `${anchorBoundry.bottom + offsetY}px`);\n    get(elRoot).setAttribute(\"data-floating-position\", showOnTop ? \"top\" : \"bottom\");\n    if (get(elAnchorArrow)) {\n      const anchorArrowBoundry = get(elAnchorArrow).getBoundingClientRect();\n      get(elAnchorArrow).style.left = anchorBoundry.left - left + anchorBoundry.width / 2 - anchorArrowBoundry.width / 2 + \"px\";\n    }\n  }\n  async function requestServerVerification(verificationPayload, code) {\n    const hook = await callHook(\"onRequestServerVerification\", verificationPayload, code);\n    if (hook !== void 0) {\n      return hook;\n    }\n    log(\"requesting server verification from\", get(config).verifyUrl);\n    if (!get(config).verifyUrl) {\n      throw new Error(`Parameter verifyUrl must be set for server verification.`);\n    }\n    const resp = await get(config).fetch(getUrl(get(config).verifyUrl, get(baseUrl)), {\n      body: JSON.stringify({\n        code,\n        fields: get(config).serverVerificationFields ? getTextFields() : void 0,\n        payload: verificationPayload,\n        timeZone: get(config).serverVerificationTimeZone ? getTimeZone() : void 0\n      }),\n      credentials: get(config).credentials || void 0,\n      headers: { \"Content-Type\": \"application/json\" },\n      method: \"POST\"\n    });\n    await validateResponse(resp);\n    const json = await resp.json();\n    if (json && typeof json === \"object\" && \"payload\" in json && !!json.payload) {\n      dispatch(\"serververification\", json);\n    }\n    return json;\n  }\n  function requestSubmit(submitter) {\n    if (get(elForm) && \"requestSubmit\" in get(elForm)) {\n      get(elForm).requestSubmit(submitter);\n    } else if (get(elForm)?.reportValidity()) {\n      if (submitter) {\n        submitter.click();\n      } else {\n        get(elForm).submit();\n      }\n    }\n  }\n  function setCookie(value, options = {}) {\n    const {\n      domain,\n      name = get(config).name,\n      maxAge,\n      path,\n      sameSite,\n      secure\n    } = options;\n    let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n    if (domain) cookie += `; Domain=${domain}`;\n    if (maxAge != null) cookie += `; Max-Age=${maxAge}`;\n    if (path) cookie += `; Path=${path}`;\n    if (sameSite) cookie += `; SameSite=${sameSite}`;\n    if (secure) cookie += `; Secure`;\n    document.cookie = cookie;\n  }\n  function setDisplay(value) {\n    switch (value) {\n      case \"bar\":\n      case \"floating\":\n      case \"overlay\":\n        hide();\n        if (!get(auto) || get(auto) === \"off\") {\n          get(userConfig).auto = \"onsubmit\";\n        }\n        break;\n      case \"standard\":\n        show();\n    }\n    if (get(currentDisplay) !== value) {\n      set(currentDisplay, value, true);\n    }\n  }\n  function setChallengeExpiration(expiresAt) {\n    if (get(expirationTimeout)) {\n      clearTimeout(get(expirationTimeout));\n    }\n    const onExpired = () => {\n      if (get(currentState) !== State.UNVERIFIED) {\n        set(checked, false);\n        setState(State.EXPIRED);\n      } else {\n        reset$1();\n      }\n      dispatch(\"expired\");\n    };\n    const duration = expiresAt * 1e3 - Date.now();\n    if (duration >= 1) {\n      set(expirationTimeout, setTimeout(onExpired, duration), true);\n    } else {\n      onExpired();\n    }\n  }\n  async function validateResponse(resp) {\n    if (resp.status >= 400) {\n      if (resp.headers.get(\"content-type\")?.includes(\"/json\")) {\n        let json;\n        try {\n          json = await resp.json();\n        } catch {\n        }\n        if (json && \"error\" in json) {\n          throw new Error(`Server responded with ${resp.status} - ${json.error}`);\n        }\n      }\n      throw new Error(`Server responded with ${resp.status}.`);\n    }\n    const contentType = resp.headers.get(\"content-type\");\n    if (!contentType || !contentType.includes(\"/json\")) {\n      throw new Error(`Server responded with invalid content-type. Expected application/json, received ${contentType}.`);\n    }\n  }\n  async function verifyServer(code) {\n    if (!get(payload)) {\n      setState(State.ERROR, \"Cannot verify code challenge without PoW payload.\");\n      return;\n    }\n    setState(State.VERIFYING);\n    let result = null;\n    if (get(config).verifyUrl) {\n      result = await requestServerVerification(get(payload), code);\n    } else if (get(config).verifyFunction) {\n      result = await get(config).verifyFunction(get(payload), code);\n    } else {\n      setState(State.ERROR, \"Parameter verifyUrl is required for code challenge verification.\");\n      return;\n    }\n    if (result?.payload) {\n      set(payload, result.payload, true);\n      log(\"server payload\", get(payload));\n    }\n    if (result?.verified === true) {\n      log(\"verified\");\n      setState(State.VERIFIED);\n      dispatch(\"verified\", { payload: get(payload) });\n      if (get(auto) === \"onsubmit\") {\n        tick().then(() => {\n          requestSubmit(get(elSubmitter));\n        });\n      }\n    } else {\n      setState(State.ERROR, result?.reason || \"Verification failed.\");\n    }\n    if (!get(config).disableAutoFocus) {\n      getCheckboxElement()?.focus();\n    }\n  }\n  function configure(newConfig) {\n    Object.assign(get(userConfig), {\n      ...Object.fromEntries(Object.entries(newConfig).filter(([_, value]) => value !== void 0))\n    });\n  }\n  function getConfiguration() {\n    return { ...get(config) };\n  }\n  function getState() {\n    return get(currentState);\n  }\n  function hide() {\n    set(visible, false);\n  }\n  function log(...args) {\n    if (get(config).debug || args.some((a) => a instanceof Error)) {\n      console[args[0] instanceof Error ? \"error\" : \"log\"](\"ALTCHA\", `[name=${get(config).name}]`, ...args);\n    }\n  }\n  function reset$1(newState = State.UNVERIFIED, err = null) {\n    set(checked, false);\n    set(error, err, true);\n    set(payload, null);\n    if (get(currentController)) {\n      get(currentController).abort();\n    }\n    if (get(expirationTimeout)) {\n      clearTimeout(get(expirationTimeout));\n      set(expirationTimeout, null);\n    }\n    setState(newState);\n  }\n  function setState(newState, err = null) {\n    set(currentState, newState, true);\n    set(error, err, true);\n    dispatch(\"statechange\", { payload: get(payload), state: get(currentState) });\n  }\n  function show() {\n    set(visible, true);\n    tick().then(() => {\n      updateUI();\n    });\n  }\n  function updateUI() {\n    switch (get(config).display) {\n      case \"floating\":\n        return repositionFloating();\n    }\n    set(updateUISignal, get(updateUISignal) + 1);\n  }\n  async function verify(options = {}) {\n    const {\n      concurrency = Math.max(1, get(config).workers),\n      controller = new AbortController(),\n      minDuration = get(config).minDuration\n    } = options;\n    const start = performance.now();\n    let challenge = null;\n    let solution = null;\n    let isChallengeV12 = false;\n    const hook = await callHook(\"onVerify\", options);\n    if (hook !== void 0) {\n      return hook;\n    }\n    reset$1(State.VERIFYING);\n    set(currentController, controller, true);\n    try {\n      if (!isSecureContext) {\n        throw new Error(\"Secure context (HTTPS) required.\");\n      }\n      if (get(config).mockError) {\n        throw new Error(\"Mock error.\");\n      }\n      if (get(config).test) {\n        log(\"running test mode with null challenge\");\n        await delay(Math.max(0, minDuration - (performance.now() - start)));\n        if (get(currentController)?.signal.aborted) {\n          reset$1();\n          return null;\n        }\n        set(payload, btoa(JSON.stringify({ challenge: null, solution: null, test: true })), true);\n        log(\"verified\");\n        setState(State.VERIFIED);\n        dispatch(\"verified\", { payload: get(payload) });\n        return { payload: get(payload) };\n      }\n      challenge = await fetchChallenge();\n      if (!challenge) {\n        throw new Error(\"Failed to fetch challenge.\");\n      }\n      log(\"challenge\", challenge);\n      if (\"configuration\" in challenge) {\n        log(\"re-configuring from challenge\", challenge.configuration);\n        configure(challenge.configuration);\n      }\n      if (challenge.parameters.expiresAt) {\n        setChallengeExpiration(challenge.parameters.expiresAt);\n      }\n      isChallengeV12 = \"_version\" in challenge && challenge._version === 1;\n      const createWorker = globalThis.$altcha.algorithms.get(challenge.parameters.algorithm);\n      if (!createWorker) {\n        throw new Error(`Unsupported algorithm ${challenge.parameters.algorithm}.`);\n      }\n      solution = await solveChallengeWorkers({\n        challenge,\n        concurrency,\n        controller,\n        createWorker,\n        counterMode: isChallengeV12 ? \"string\" : \"uint32\",\n        onOutOfMemory: (c) => {\n          log(\"out of memory error received\");\n          dispatch(\"outofmemory\");\n          if (get(config).retryOnOutOfMemoryError && c > 1) {\n            const retryConcurrency = Math.floor(c / 2);\n            log(`retrying with ${retryConcurrency} workers...`);\n            return retryConcurrency;\n          }\n        },\n        timeout: get(config).timeout\n      });\n      if (get(currentController)?.signal.aborted) {\n        reset$1();\n        return null;\n      }\n      if (!solution) {\n        throw new Error(\"Failed to find solution.\");\n      }\n      log(\"solution\", solution);\n      await delay(Math.max(0, minDuration - (performance.now() - start)));\n      set(codeChallenge, challenge.codeChallenge || get(config).codeChallenge || null, true);\n      if (isChallengeV12) {\n        set(payload, btoa(JSON.stringify(createPayloadV1(challenge, solution))), true);\n      } else {\n        set(\n          payload,\n          btoa(JSON.stringify({\n            challenge: {\n              parameters: challenge.parameters,\n              signature: challenge.signature\n            },\n            solution\n          })),\n          true\n        );\n      }\n      if (get(codeChallenge)) {\n        log(\"requesting code verification\");\n        setState(State.CODE);\n        dispatch(\"codechallenge\", { codeChallenge: get(codeChallenge) });\n      } else if (get(config).verifyUrl) {\n        await verifyServer();\n      } else {\n        log(\"verified\");\n        setState(State.VERIFIED);\n        dispatch(\"verified\", { payload: get(payload) });\n      }\n    } catch (err) {\n      log(\"verification failed\", err);\n      setState(State.ERROR, String(err));\n      return null;\n    } finally {\n      set(currentController, null);\n    }\n    return { challenge, payload: get(payload), solution };\n  }\n  var $$exports = {\n    configure,\n    getConfiguration,\n    getState,\n    hide,\n    log,\n    reset: reset$1,\n    setState,\n    show,\n    updateUI,\n    verify\n  };\n  var fragment = root();\n  event(\"scroll\", $document, onDocumentScroll);\n  event(\"click\", $document, onDocumentClick);\n  event(\"pageshow\", $window, onWindowPageshow);\n  event(\"resize\", $window, onWindowResize);\n  var node = first_child(fragment);\n  {\n    var consequent = ($$anchor2) => {\n      var div = root_1();\n      append($$anchor2, div);\n    };\n    if_block(node, ($$render) => {\n      if (get(config).display === \"overlay\" && get(visible)) $$render(consequent);\n    });\n  }\n  var div_1 = sibling(node, 2);\n  var node_1 = child(div_1);\n  {\n    var consequent_2 = ($$anchor2) => {\n      var fragment_1 = root_2();\n      var div_2 = first_child(fragment_1);\n      var node_2 = sibling(div_2, 2);\n      {\n        var consequent_1 = ($$anchor3) => {\n          var div_3 = root_3();\n          html(div_3, () => document.querySelector(get(config).overlayContent)?.innerHTML, true);\n          reset(div_3);\n          append($$anchor3, div_3);\n        };\n        if_block(node_2, ($$render) => {\n          if (get(config).overlayContent) $$render(consequent_1);\n        });\n      }\n      event(\"click\", div_2, onCloseClick, true);\n      append($$anchor2, fragment_1);\n    };\n    if_block(node_1, ($$render) => {\n      if (get(config).display === \"overlay\" && get(visible)) $$render(consequent_2);\n    });\n  }\n  var div_4 = sibling(node_1, 2);\n  var div_5 = child(div_4);\n  var div_6 = child(div_5);\n  var node_3 = child(div_6);\n  {\n    let $0 = /* @__PURE__ */ user_derived(() => get(config).display === \"standard\" && get(auto) !== \"onsubmit\" || get(currentState) === State.VERIFYING);\n    component(node_3, () => get(CheckboxComponent), ($$anchor2, CheckboxComponent_1) => {\n      CheckboxComponent_1($$anchor2, {\n        get id() {\n          return get(checkboxId);\n        },\n        name: \"\",\n        get required() {\n          return get($0);\n        },\n        get loading() {\n          return get(loading);\n        },\n        get checked() {\n          return get(checked);\n        },\n        onchange: onCheckboxChange,\n        oninvalid: onCheckboxInvalid\n      });\n    });\n  }\n  var label = sibling(node_3, 2);\n  var node_4 = child(label);\n  {\n    var consequent_3 = ($$anchor2) => {\n      var text$1 = text();\n      template_effect(() => set_text(text$1, get(strings).verificationRequired));\n      append($$anchor2, text$1);\n    };\n    var consequent_4 = ($$anchor2) => {\n      var text_1 = text();\n      template_effect(() => set_text(text_1, get(strings).verifying));\n      append($$anchor2, text_1);\n    };\n    var consequent_5 = ($$anchor2) => {\n      var text_2 = text();\n      template_effect(() => set_text(text_2, get(strings).verified));\n      append($$anchor2, text_2);\n    };\n    var alternate = ($$anchor2) => {\n      var text_3 = text();\n      template_effect(() => set_text(text_3, get(strings).label));\n      append($$anchor2, text_3);\n    };\n    if_block(node_4, ($$render) => {\n      if (get(currentState) === State.CODE && get(codeChallenge)) $$render(consequent_3);\n      else if (get(currentState) === State.VERIFYING) $$render(consequent_4, 1);\n      else if (get(currentState) === State.VERIFIED) $$render(consequent_5, 2);\n      else $$render(alternate, -1);\n    });\n  }\n  reset(label);\n  reset(div_6);\n  var node_5 = sibling(div_6, 2);\n  {\n    var consequent_6 = ($$anchor2) => {\n      Logo($$anchor2, {\n        get strings() {\n          return get(strings);\n        }\n      });\n    };\n    if_block(node_5, ($$render) => {\n      if (get(showLogo)) $$render(consequent_6);\n    });\n  }\n  reset(div_5);\n  var node_6 = sibling(div_5, 2);\n  {\n    var consequent_7 = ($$anchor2) => {\n      {\n        let $0 = /* @__PURE__ */ user_derived(() => get(config).display === \"bar\" && get(showLogo));\n        Footer($$anchor2, {\n          get logo() {\n            return get($0);\n          },\n          get strings() {\n            return get(strings);\n          }\n        });\n      }\n    };\n    if_block(node_6, ($$render) => {\n      if (get(showFooter)) $$render(consequent_7);\n    });\n  }\n  var node_7 = sibling(node_6, 2);\n  {\n    var consequent_8 = ($$anchor2) => {\n      var div_7 = root_10();\n      bind_this(div_7, ($$value) => set(elAnchorArrow, $$value), () => get(elAnchorArrow));\n      append($$anchor2, div_7);\n    };\n    if_block(node_7, ($$render) => {\n      if (get(config).display === \"floating\") $$render(consequent_8);\n    });\n  }\n  var node_8 = sibling(node_7, 2);\n  {\n    var consequent_9 = ($$anchor2) => {\n      var input_1 = root_11();\n      remove_input_defaults(input_1);\n      template_effect(() => {\n        set_attribute(input_1, \"name\", get(config).name);\n        set_value(input_1, get(payload));\n      });\n      append($$anchor2, input_1);\n    };\n    if_block(node_8, ($$render) => {\n      if (!get(config).setCookie) $$render(consequent_9);\n    });\n  }\n  reset(div_4);\n  var node_9 = sibling(div_4, 2);\n  {\n    var consequent_12 = ($$anchor2) => {\n      Popover($$anchor2, {\n        get anchor() {\n          return get(elRoot);\n        },\n        onClickOutside: () => {\n          if (isSecureContext) {\n            reset$1();\n          }\n        },\n        get placement() {\n          return get(config).popoverPlacement;\n        },\n        role: \"alert\",\n        variant: \"error\",\n        get dir() {\n          return get(dir);\n        },\n        get updateUISignal() {\n          return get(updateUISignal);\n        },\n        children: ($$anchor3, $$slotProps) => {\n          var fragment_9 = comment();\n          var node_10 = first_child(fragment_9);\n          {\n            var consequent_10 = ($$anchor4) => {\n              var div_8 = root_14();\n              append($$anchor4, div_8);\n            };\n            var consequent_11 = ($$anchor4) => {\n              var div_9 = root_15();\n              var text_4 = child(div_9, true);\n              reset(div_9);\n              template_effect(() => set_text(text_4, get(strings).expired));\n              append($$anchor4, div_9);\n            };\n            var alternate_1 = ($$anchor4) => {\n              var div_10 = root_16();\n              var text_5 = child(div_10, true);\n              reset(div_10);\n              template_effect(() => {\n                set_attribute(div_10, \"title\", get(error));\n                set_text(text_5, get(strings).error);\n              });\n              append($$anchor4, div_10);\n            };\n            if_block(node_10, ($$render) => {\n              if (!get(error) && !isSecureContext) $$render(consequent_10);\n              else if (!get(error) && get(currentState) === State.EXPIRED) $$render(consequent_11, 1);\n              else $$render(alternate_1, -1);\n            });\n          }\n          append($$anchor3, fragment_9);\n        },\n        $$slots: { default: true }\n      });\n    };\n    var consequent_14 = ($$anchor2) => {\n      var fragment_10 = comment();\n      var node_11 = first_child(fragment_10);\n      key(node_11, () => get(codeChallenge), ($$anchor3) => {\n        {\n          let $0 = /* @__PURE__ */ user_derived(() => get(config).codeChallengeDisplay !== \"standard\");\n          Popover($$anchor3, {\n            get anchor() {\n              return get(elRoot);\n            },\n            get backdrop() {\n              return get($0);\n            },\n            get display() {\n              return get(config).codeChallengeDisplay;\n            },\n            onClose: () => {\n              reset$1();\n            },\n            get placement() {\n              return get(config).popoverPlacement;\n            },\n            role: \"dialog\",\n            get \"aria-label\"() {\n              return get(strings).verificationRequired;\n            },\n            get dir() {\n              return get(dir);\n            },\n            get updateUISignal() {\n              return get(updateUISignal);\n            },\n            children: ($$anchor4, $$slotProps) => {\n              var fragment_12 = root_19();\n              var node_12 = first_child(fragment_12);\n              Code(node_12, {\n                get audioUrl() {\n                  return get(codeChallengeAudioUrl);\n                },\n                get imageUrl() {\n                  return get(codeChallengeImageUrl);\n                },\n                onCancel: () => reset$1(),\n                onReload: () => verify(),\n                onSubmit: (code) => verifyServer(code),\n                get codeChallenge() {\n                  return get(codeChallenge);\n                },\n                get config() {\n                  return get(config);\n                },\n                get strings() {\n                  return get(strings);\n                }\n              });\n              var node_13 = sibling(node_12, 2);\n              {\n                var consequent_13 = ($$anchor5) => {\n                  Footer($$anchor5, {\n                    get logo() {\n                      return get(showLogo);\n                    },\n                    get strings() {\n                      return get(strings);\n                    }\n                  });\n                };\n                if_block(node_13, ($$render) => {\n                  if (get(showFooter) && get(config).codeChallengeDisplay !== \"standard\") $$render(consequent_13);\n                });\n              }\n              append($$anchor4, fragment_12);\n            },\n            $$slots: { default: true }\n          });\n        }\n      });\n      append($$anchor2, fragment_10);\n    };\n    if_block(node_9, ($$render) => {\n      if (get(error) || get(currentState) === State.EXPIRED || !isSecureContext) $$render(consequent_12);\n      else if (get(codeChallenge) && get(currentState) === State.CODE) $$render(consequent_14, 1);\n    });\n  }\n  reset(div_1);\n  bind_this(div_1, ($$value) => set(elRoot, $$value), () => get(elRoot));\n  template_effect(\n    ($0) => {\n      set_attribute(div_1, \"data-state\", get(currentState));\n      set_attribute(div_1, \"data-display\", get(config).display || void 0);\n      set_attribute(div_1, \"data-placement\", $0);\n      set_attribute(div_1, \"data-visible\", get(visible) || void 0);\n      set_attribute(div_1, \"dir\", get(dir));\n      set_attribute(label, \"for\", get(checkboxId));\n      div_1.dir = div_1.dir;\n    },\n    [() => getPlacement(get(config).display)]\n  );\n  append($$anchor, fragment);\n  var $$pop = pop($$exports);\n  $$cleanup();\n  return $$pop;\n}\nif (typeof window !== \"undefined\" && window.customElements && !customElements.get(\"altcha-widget\")) customElements.define(\"altcha-widget\", create_custom_element(\n  Widget,\n  {\n    auto: { type: \"String\" },\n    challenge: { type: \"String\" },\n    configuration: { type: \"String\" },\n    display: { type: \"String\" },\n    language: { type: \"String\" },\n    name: { type: \"String\" },\n    theme: { type: \"String\" },\n    type: { type: \"String\" },\n    workers: { type: \"Number\" }\n  },\n  [],\n  [\n    \"configure\",\n    \"getConfiguration\",\n    \"getState\",\n    \"hide\",\n    \"log\",\n    \"reset\",\n    \"setState\",\n    \"show\",\n    \"updateUI\",\n    \"verify\"\n  ]\n));\nconst jsContent$1 = `(function() {\n  \"use strict\";\n  function bufferStartsWith(buffer, prefix) {\n    if (prefix.length > buffer.length) {\n      return false;\n    }\n    for (let i = 0; i < prefix.length; i++) {\n      if (buffer[i] !== prefix[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function bufferToHex(buffer) {\n    return Array.from(new Uint8Array(buffer)).map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n  }\n  function concatBuffers(a, b) {\n    const out = new Uint8Array(a.length + b.length);\n    out.set(a, 0);\n    out.set(b, a.length);\n    return out;\n  }\n  function hexToBuffer(hex) {\n    if (hex.length % 2 !== 0) {\n      throw new Error(\\`Hex string must have an even length. Got: \\${hex}\\`);\n    }\n    const buffer = new ArrayBuffer(hex.length / 2);\n    const view = new DataView(buffer);\n    for (let i = 0; i < hex.length; i += 2) {\n      const byteString = hex.substring(i, i + 2);\n      const byteValue = parseInt(byteString, 16);\n      view.setUint8(i / 2, byteValue);\n    }\n    return new Uint8Array(buffer);\n  }\n  async function delay(ms) {\n    await new Promise((resolve) => setTimeout(resolve, ms));\n  }\n  function timeDuration(start) {\n    return Math.floor((performance.now() - start) * 10) / 10;\n  }\n  class PasswordBuffer {\n    constructor(nonce, mode = \"uint32\") {\n      this.nonce = nonce;\n      this.mode = mode;\n      this.buffer = new Uint8Array(this.nonce.length + this.COUNTER_BYTES);\n      this.buffer.set(this.nonce, 0);\n      this.dataView = new DataView(this.buffer.buffer);\n    }\n    COUNTER_BYTES = 4;\n    buffer;\n    dataView;\n    encoder = new TextEncoder();\n    /**\n     * Appends the counter to the nonce buffer.\n     * In 'string' mode, encodes the counter as a UTF-8 string.\n     * In 'uint32' mode, writes the counter as a big-endian 32-bit integer.\n     */\n    setCounter(n) {\n      if (this.mode === \"string\") {\n        return concatBuffers(this.nonce, this.encoder.encode(n.toString()));\n      }\n      this.dataView.setUint32(this.nonce.length, n, false);\n      return this.buffer;\n    }\n  }\n  async function solveChallenge(options) {\n    const {\n      challenge,\n      controller,\n      counterMode = \"uint32\",\n      counterStart = 0,\n      counterStep = 1,\n      deriveKey: deriveKey2,\n      timeout = 9e4\n    } = options;\n    const { nonce, keyPrefix, salt } = challenge.parameters;\n    const nonceBuf = hexToBuffer(nonce);\n    const saltBuf = hexToBuffer(salt);\n    const keyPrefixBuf = keyPrefix.length % 2 === 0 ? hexToBuffer(keyPrefix) : null;\n    const password = new PasswordBuffer(nonceBuf, counterMode);\n    const start = performance.now();\n    let counter = counterStart;\n    let iterations = 0;\n    let derivedKeyHex = \"\";\n    let lastYield = start;\n    while (true) {\n      if (controller?.signal.aborted || timeout && iterations % 10 === 0 && performance.now() - start > timeout) {\n        return null;\n      }\n      const { derivedKey } = await deriveKey2(\n        challenge.parameters,\n        saltBuf,\n        password.setCounter(counter)\n      );\n      if (iterations % 10 === 0 && performance.now() - lastYield > 200) {\n        await delay(0);\n        lastYield = performance.now();\n      }\n      if (keyPrefixBuf ? bufferStartsWith(derivedKey, keyPrefixBuf) : bufferToHex(derivedKey).startsWith(keyPrefix)) {\n        derivedKeyHex = bufferToHex(derivedKey);\n        break;\n      }\n      counter = counter + counterStep;\n      iterations = iterations + 1;\n    }\n    return {\n      counter,\n      derivedKey: derivedKeyHex,\n      time: timeDuration(start)\n    };\n  }\n  function handler(options) {\n    const { deriveKey: deriveKey2 } = options;\n    let controller = void 0;\n    self.onmessage = async (message) => {\n      const { challenge, counterMode, counterStart, counterStep, timeout, type } = message.data;\n      if (type === \"abort\") {\n        controller?.abort();\n      } else if (type === \"work\") {\n        controller = new AbortController();\n        let solution;\n        try {\n          solution = await solveChallenge({\n            challenge,\n            controller,\n            counterStart,\n            counterStep,\n            deriveKey: deriveKey2,\n            counterMode,\n            timeout\n          });\n        } catch (err) {\n          return self.postMessage({ error: err });\n        }\n        self.postMessage(solution);\n      }\n    };\n  }\n  function getDigest(algorithm) {\n    switch (algorithm) {\n      case \"PBKDF2/SHA-512\":\n        return \"SHA-512\";\n      case \"PBKDF2/SHA-384\":\n        return \"SHA-384\";\n      case \"PBKDF2/SHA-256\":\n      default:\n        return \"SHA-256\";\n    }\n  }\n  async function deriveKey(parameters, salt, password) {\n    const { algorithm, cost, keyLength = 32 } = parameters;\n    const passwordKey = await crypto.subtle.importKey(\n      \"raw\",\n      password,\n      { name: \"PBKDF2\" },\n      false,\n      [\"deriveKey\"]\n    );\n    const derivedKey = await crypto.subtle.deriveKey(\n      {\n        name: \"PBKDF2\",\n        salt,\n        iterations: cost,\n        hash: getDigest(algorithm)\n      },\n      passwordKey,\n      { name: \"AES-GCM\", length: keyLength * 8 },\n      true,\n      [\"encrypt\"]\n    );\n    return {\n      derivedKey: new Uint8Array(await crypto.subtle.exportKey(\"raw\", derivedKey))\n    };\n  }\n  handler({\n    deriveKey\n  });\n})();\n`;\nconst blob$1 = typeof self !== \"undefined\" && self.Blob && new Blob([\"(self.URL || self.webkitURL).revokeObjectURL(self.location.href);\", jsContent$1], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper$1(options) {\n  let objURL;\n  try {\n    objURL = blob$1 && (self.URL || self.webkitURL).createObjectURL(blob$1);\n    if (!objURL) throw \"\";\n    const worker = new Worker(objURL, {\n      name: options?.name\n    });\n    worker.addEventListener(\"error\", () => {\n      (self.URL || self.webkitURL).revokeObjectURL(objURL);\n    });\n    return worker;\n  } catch (e) {\n    return new Worker(\n      \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(jsContent$1),\n      {\n        name: options?.name\n      }\n    );\n  }\n}\nconst jsContent = `(function() {\n  \"use strict\";\n  function bufferStartsWith(buffer, prefix) {\n    if (prefix.length > buffer.length) {\n      return false;\n    }\n    for (let i = 0; i < prefix.length; i++) {\n      if (buffer[i] !== prefix[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function bufferToHex(buffer) {\n    return Array.from(new Uint8Array(buffer)).map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n  }\n  function concatBuffers(a, b) {\n    const out = new Uint8Array(a.length + b.length);\n    out.set(a, 0);\n    out.set(b, a.length);\n    return out;\n  }\n  function hexToBuffer(hex) {\n    if (hex.length % 2 !== 0) {\n      throw new Error(\\`Hex string must have an even length. Got: \\${hex}\\`);\n    }\n    const buffer = new ArrayBuffer(hex.length / 2);\n    const view = new DataView(buffer);\n    for (let i = 0; i < hex.length; i += 2) {\n      const byteString = hex.substring(i, i + 2);\n      const byteValue = parseInt(byteString, 16);\n      view.setUint8(i / 2, byteValue);\n    }\n    return new Uint8Array(buffer);\n  }\n  async function delay(ms) {\n    await new Promise((resolve) => setTimeout(resolve, ms));\n  }\n  function timeDuration(start) {\n    return Math.floor((performance.now() - start) * 10) / 10;\n  }\n  class PasswordBuffer {\n    constructor(nonce, mode = \"uint32\") {\n      this.nonce = nonce;\n      this.mode = mode;\n      this.buffer = new Uint8Array(this.nonce.length + this.COUNTER_BYTES);\n      this.buffer.set(this.nonce, 0);\n      this.dataView = new DataView(this.buffer.buffer);\n    }\n    COUNTER_BYTES = 4;\n    buffer;\n    dataView;\n    encoder = new TextEncoder();\n    /**\n     * Appends the counter to the nonce buffer.\n     * In 'string' mode, encodes the counter as a UTF-8 string.\n     * In 'uint32' mode, writes the counter as a big-endian 32-bit integer.\n     */\n    setCounter(n) {\n      if (this.mode === \"string\") {\n        return concatBuffers(this.nonce, this.encoder.encode(n.toString()));\n      }\n      this.dataView.setUint32(this.nonce.length, n, false);\n      return this.buffer;\n    }\n  }\n  async function solveChallenge(options) {\n    const {\n      challenge,\n      controller,\n      counterMode = \"uint32\",\n      counterStart = 0,\n      counterStep = 1,\n      deriveKey: deriveKey2,\n      timeout = 9e4\n    } = options;\n    const { nonce, keyPrefix, salt } = challenge.parameters;\n    const nonceBuf = hexToBuffer(nonce);\n    const saltBuf = hexToBuffer(salt);\n    const keyPrefixBuf = keyPrefix.length % 2 === 0 ? hexToBuffer(keyPrefix) : null;\n    const password = new PasswordBuffer(nonceBuf, counterMode);\n    const start = performance.now();\n    let counter = counterStart;\n    let iterations = 0;\n    let derivedKeyHex = \"\";\n    let lastYield = start;\n    while (true) {\n      if (controller?.signal.aborted || timeout && iterations % 10 === 0 && performance.now() - start > timeout) {\n        return null;\n      }\n      const { derivedKey } = await deriveKey2(\n        challenge.parameters,\n        saltBuf,\n        password.setCounter(counter)\n      );\n      if (iterations % 10 === 0 && performance.now() - lastYield > 200) {\n        await delay(0);\n        lastYield = performance.now();\n      }\n      if (keyPrefixBuf ? bufferStartsWith(derivedKey, keyPrefixBuf) : bufferToHex(derivedKey).startsWith(keyPrefix)) {\n        derivedKeyHex = bufferToHex(derivedKey);\n        break;\n      }\n      counter = counter + counterStep;\n      iterations = iterations + 1;\n    }\n    return {\n      counter,\n      derivedKey: derivedKeyHex,\n      time: timeDuration(start)\n    };\n  }\n  function handler(options) {\n    const { deriveKey: deriveKey2 } = options;\n    let controller = void 0;\n    self.onmessage = async (message) => {\n      const { challenge, counterMode, counterStart, counterStep, timeout, type } = message.data;\n      if (type === \"abort\") {\n        controller?.abort();\n      } else if (type === \"work\") {\n        controller = new AbortController();\n        let solution;\n        try {\n          solution = await solveChallenge({\n            challenge,\n            controller,\n            counterStart,\n            counterStep,\n            deriveKey: deriveKey2,\n            counterMode,\n            timeout\n          });\n        } catch (err) {\n          return self.postMessage({ error: err });\n        }\n        self.postMessage(solution);\n      }\n    };\n  }\n  async function deriveKey(parameters, salt, password) {\n    const { algorithm, keyLength = 32 } = parameters;\n    const iterations = Math.max(1, parameters.cost);\n    let data = void 0;\n    let derivedKey = void 0;\n    for (let i = 0; i < iterations; i++) {\n      if (i === 0) {\n        data = concatBuffers(salt, password);\n      } else {\n        data = derivedKey;\n      }\n      derivedKey = new Uint8Array(\n        (await crypto.subtle.digest(algorithm, data)).slice(0, keyLength)\n      );\n    }\n    return {\n      parameters: {},\n      derivedKey\n    };\n  }\n  handler({\n    deriveKey\n  });\n})();\n`;\nconst blob = typeof self !== \"undefined\" && self.Blob && new Blob([\"(self.URL || self.webkitURL).revokeObjectURL(self.location.href);\", jsContent], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n  let objURL;\n  try {\n    objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);\n    if (!objURL) throw \"\";\n    const worker = new Worker(objURL, {\n      name: options?.name\n    });\n    worker.addEventListener(\"error\", () => {\n      (self.URL || self.webkitURL).revokeObjectURL(objURL);\n    });\n    return worker;\n  } catch (e) {\n    return new Worker(\n      \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(jsContent),\n      {\n        name: options?.name\n      }\n    );\n  }\n}\nconst css = ':root {\\n  --altcha-border-color: var(--altcha-color-neutral);\\n  --altcha-border-width: 1px;\\n  --altcha-border-radius: 6px;\\n  --altcha-color-base: light-dark(oklch(100% 0.00011 271.152), oklch(20.904% 0.00002 271.152));\\n  --altcha-color-base-content: light-dark(\\n  \toklch(20.904% 0.00002 271.152),\\n  \toklch(100% 0.00011 271.152)\\n  );\\n  --altcha-color-error: oklch(51.284% 0.20527 28.678);\\n  --altcha-color-error-content: oklch(100% 0.00011 271.152);\\n  --altcha-color-neutral: light-dark(oklch(83.591% 0.0001 271.152), oklch(46.04% 0.00005 271.152));\\n  --altcha-color-neutral-content: light-dark(\\n  \toklch(46.76% 0.00005 271.152),\\n  \toklch(100% 0.00011 271.152)\\n  );\\n  --altcha-color-primary: oklch(40.279% 0.2449 268.131);\\n  --altcha-color-primary-content: oklch(100% 0.00011 271.152);\\n  --altcha-color-success: oklch(55.748% 0.18968 142.511);\\n  --altcha-color-success-content: oklch(100% 0.00011 271.152);\\n  --altcha-checkbox-border-color: light-dark(\\n  \toklch(66.494% 0.00233 15.434),\\n  \toklch(51.028% 0.00006 271.152)\\n  );\\n  --altcha-checkbox-border-radius: 5px;\\n  --altcha-checkbox-border-width: var(--altcha-border-width);\\n  --altcha-checkbox-outline: 2px solid var(--altcha-checkbox-outline-color);\\n  --altcha-checkbox-outline-color: -webkit-focus-ring-color;\\n  --altcha-checkbox-outline-offset: 2px;\\n  --altcha-checkbox-size: 22px;\\n  --altcha-checkbox-transition-duration: var(--altcha-transition-duration);\\n  --altcha-input-background-color: var(--altcha-color-base);\\n  --altcha-input-border-radius: 3px;\\n  --altcha-input-border-width: 1px;\\n  --altcha-input-color: var(--altcha-color-base-content);\\n  --altcha-max-width: 320px;\\n  --altcha-padding: 0.75rem;\\n  --altcha-popover-arrow-size: 6px;\\n  --altcha-popover-color: var(--altcha-border-color);\\n  --altcha-shadow: drop-shadow(3px 3px 6px oklch(0% 0 0 / 0.2));\\n  --altcha-spinner-color: var(--altcha-color-base-content);\\n  --altcha-switch-background-color: var(--altcha-color-neutral);\\n  --altcha-switch-border-radius: calc(infinity * 1px);\\n  --altcha-switch-height: var(--altcha-checkbox-size);\\n  --altcha-switch-padding: 0.25rem;\\n  --altcha-switch-width: calc(var(--altcha-checkbox-size) * 1.75);\\n  --altcha-switch-toggle-border-radius: 100%;\\n  --altcha-switch-toggle-color: var(--altcha-color-neutral-content);\\n  --altcha-switch-toggle-size: calc(\\n  \tvar(--altcha-switch-height) - calc(var(--altcha-switch-padding) * 2)\\n  );\\n  --altcha-transition-duration: 0.6s;\\n  --altcha-z-index: 99999999;\\n  --altcha-z-index-popover: 999999999;\\n}\\n\\n@supports (-moz-appearance: none) {\\n  :root {\\n    --altcha-checkbox-outline-color: var(--altcha-color-primary);\\n  }\\n}\\n.altcha {\\n  all: revert-layer;\\n  display: none;\\n  font-family: inherit;\\n  font-size: inherit;\\n  position: relative;\\n}\\n.altcha[data-visible] {\\n  display: block;\\n}\\n.altcha-popover, .altcha-popover * {\\n  all: revert-layer;\\n  box-sizing: border-box;\\n  font-family: inherit;\\n  font-size: inherit;\\n  line-height: 1.25;\\n}\\n.altcha * {\\n  all: revert-layer;\\n  box-sizing: border-box;\\n  font-family: inherit;\\n  font-size: inherit;\\n  line-height: 1.25;\\n}\\n.altcha a, .altcha-popover a {\\n  color: currentColor;\\n  text-decoration: none;\\n}\\n.altcha a:hover, .altcha-popover a:hover {\\n  color: currentColor;\\n}\\n.altcha-main {\\n  align-items: start;\\n  background-color: var(--altcha-color-base);\\n  border: var(--altcha-border-width, 1px) solid var(--altcha-border-color);\\n  border-radius: var(--altcha-border-radius, 0);\\n  color: var(--altcha-color-base-content);\\n  display: flex;\\n  flex-direction: column;\\n  gap: 0.5rem;\\n  justify-content: space-between;\\n  padding: var(--altcha-padding);\\n  max-width: var(--altcha-max-width, 100%);\\n}\\n.altcha-main > * {\\n  display: flex;\\n  width: 100%;\\n}\\n.altcha-main > *:first-child {\\n  flex-grow: 1;\\n}\\n.altcha-checkbox-wrap {\\n  align-items: center;\\n  display: flex;\\n  flex-direction: row;\\n  flex-grow: 1;\\n  gap: 0.5rem;\\n}\\n.altcha-checkbox-wrap > * {\\n  display: flex;\\n}\\n.altcha-logo {\\n  opacity: 0.7;\\n}\\n.altcha-footer {\\n  align-items: center;\\n  display: flex;\\n  flex-grow: 1;\\n  gap: 0.5rem;\\n  justify-content: flex-end;\\n  font-size: 0.7rem;\\n  opacity: 0.7;\\n}\\n.altcha-footer p {\\n  margin: 0;\\n  padding: 0;\\n}\\n.altcha-error {\\n  font-size: 0.85rem;\\n}\\n.altcha-button {\\n  align-items: center;\\n  background: var(--altcha-color-primary);\\n  border: var(--altcha-input-border-width) solid var(--altcha-color-primary);\\n  border-radius: var(--altcha-input-border-radius);\\n  color: var(--altcha-color-primary-content);\\n  cursor: pointer;\\n  display: flex;\\n  font-size: 0.9rem;\\n  gap: 0.5rem;\\n  padding: 0.35rem;\\n}\\n.altcha-button:focus {\\n  border-color: var(--altcha-color-primary);\\n  outline: var(--altcha-checkbox-outline);\\n  outline-offset: var(--altcha-checkbox-outline-offset);\\n}\\n.altcha-button > .altcha-spinner, .altcha-button > svg {\\n  height: 20px;\\n  width: 20px;\\n}\\n.altcha-button-secondary {\\n  background: transparent;\\n  border-color: var(--altcha-color-neutral);\\n  color: var(--altcha-color-neutral-content);\\n}\\n.altcha-input {\\n  background: var(--altcha-input-background-color);\\n  border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\\n  border-radius: var(--altcha-input-border-radius);\\n  color: var(--altcha-input-color);\\n  flex-grow: 1;\\n  font-size: 1rem;\\n  min-width: 0;\\n  padding: 0.25rem;\\n  width: auto;\\n}\\n.altcha-input:focus {\\n  border-color: var(--altcha-color-primary);\\n  outline: var(--altcha-checkbox-outline);\\n  outline-offset: var(--altcha-checkbox-outline-offset);\\n}\\n.altcha-spinner {\\n  animation: altcha-rotate 0.6s linear infinite;\\n  border-radius: 100%;\\n  border: var(--altcha-checkbox-border-width) solid var(--altcha-spinner-color);\\n  border-bottom-color: transparent;\\n  border-right-color: transparent;\\n  opacity: 0.7;\\n}\\n.altcha-popover {\\n  background-color: var(--altcha-color-base);\\n  border: var(--altcha-border-width) solid var(--altcha-border-color);\\n  border-radius: var(--altcha-border-radius);\\n  color: var(--altcha-color-base-content);\\n  filter: var(--altcha-shadow);\\n  position: absolute;\\n  left: calc(var(--altcha-padding) / 2);\\n  max-width: calc(var(--altcha-max-width) - var(--altcha-padding));\\n  top: calc(var(--altcha-padding) + var(--altcha-checkbox-size) + var(--altcha-popover-arrow-size));\\n  z-index: var(--altcha-z-index-popover);\\n}\\n.altcha-popover-arrow {\\n  border: var(--altcha-popover-arrow-size) solid transparent;\\n  border-bottom-color: var(--altcha-popover-color);\\n  content: \"\";\\n  height: 0;\\n  left: calc(var(--altcha-checkbox-size) / 2);\\n  position: absolute;\\n  top: calc(var(--altcha-popover-arrow-size) * -2);\\n  width: 0;\\n}\\n.altcha-popover-content {\\n  max-height: 100dvh;\\n  overflow: auto;\\n  padding: var(--altcha-padding);\\n}\\n.altcha-popover[data-top=true][data-display=standard] {\\n  bottom: calc(100% - (var(--altcha-padding) - var(--altcha-popover-arrow-size)));\\n  top: auto;\\n}\\n.altcha-popover[data-top=true][data-display=standard] .altcha-popover-arrow {\\n  border-bottom-color: transparent;\\n  border-top-color: var(--altcha-popover-color);\\n  bottom: calc(var(--altcha-popover-arrow-size) * -2);\\n  top: auto;\\n}\\n.altcha-popover[data-variant=error] {\\n  --altcha-popover-color: var(--altcha-color-error);\\n  background-color: var(--altcha-color-error);\\n  border-color: var(--altcha-color-error);\\n  color: var(--altcha-color-error-content);\\n}\\n.altcha-popover[data-variant=error] .altcha-popover-content {\\n  padding: calc(var(--altcha-padding) / 1.5) var(--altcha-padding);\\n}\\n.altcha-popover[data-display=overlay] {\\n  animation: altcha-overlay-slidein 0.5s forwards;\\n  left: 50%;\\n  position: fixed;\\n  top: 45%;\\n  transform: translate(-50%, -50%);\\n  width: var(--altcha-max-width);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha-popover[data-display=bottomsheet] {\\n  animation: altcha-bottomsheet-slideup 0.5s forwards;\\n  border-bottom-left-radius: 0;\\n  border-bottom-right-radius: 0;\\n  border-bottom: 0;\\n  bottom: -100%;\\n  left: 50%;\\n  position: fixed;\\n  top: auto;\\n  transform: translate(-50%, 0);\\n  width: var(--altcha-max-width);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha-popover[data-display=bottomsheet] .altcha-popover-content {\\n  padding-bottom: calc(var(--altcha-padding) * 2);\\n}\\n.altcha-popover-backdrop {\\n  background: var(--altcha-color-base-content);\\n  bottom: 0;\\n  left: 0;\\n  opacity: 0.1;\\n  position: fixed;\\n  right: 0;\\n  top: 0;\\n  transition: opacity 0.5s;\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha-popover-close {\\n  color: var(--altcha-color-base-content);\\n  cursor: pointer;\\n  display: inline-block;\\n  font-size: 1rem;\\n  height: 1.25rem;\\n  line-height: 0.95;\\n  position: absolute;\\n  right: 0;\\n  text-align: center;\\n  text-shadow: 0 0 1px var(--altcha-color-base);\\n  top: -1.5rem;\\n  width: 1.25rem;\\n  z-index: var(--altcha-z-index);\\n}\\n[dir=rtl] .altcha-popover {\\n  left: auto;\\n  right: calc(var(--altcha-padding) / 2);\\n}\\n[dir=rtl] .altcha-popover-arrow {\\n  left: auto;\\n  right: calc(var(--altcha-checkbox-size) / 2);\\n}\\n[dir=rtl] .altcha-popover-close {\\n  left: 0;\\n  right: auto;\\n}\\n.altcha-popover[data-display=bottomsheet] .altcha-footer, .altcha-popover[data-display=overlay] .altcha-footer {\\n  align-items: center;\\n  justify-content: center;\\n  padding-top: 1rem;\\n  gap: 0.5rem;\\n}\\n.altcha-popover[data-display=bottomsheet] .altcha-footer svg, .altcha-popover[data-display=overlay] .altcha-footer svg {\\n  height: 18px;\\n  width: 18px;\\n  vertical-align: middle;\\n}\\n.altcha-code-challenge > form {\\n  display: flex;\\n  flex-direction: column;\\n  gap: 0.5rem;\\n}\\n.altcha-code-challenge-title {\\n  font-weight: 600;\\n}\\n.altcha-code-challenge-text {\\n  font-size: 0.85rem;\\n}\\n.altcha-code-challenge-image {\\n  background: white;\\n  border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\\n  border-radius: var(--altcha-input-border-radius);\\n  object-fit: contain;\\n  height: 50px;\\n}\\n.altcha-code-challenge-row {\\n  display: flex;\\n  gap: 0.5rem;\\n}\\n.altcha-code-challenge-buttons {\\n  align-items: center;\\n  display: flex;\\n  flex-direction: column;\\n  gap: 0.5rem;\\n  margin-top: var(--altcha-padding);\\n  justify-content: space-between;\\n}\\n.altcha-code-challenge-buttons button {\\n  justify-content: center;\\n  width: 100%;\\n}\\n.altcha-checkbox {\\n  cursor: pointer;\\n  height: var(--altcha-checkbox-size);\\n  position: relative;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox input {\\n  appearance: none;\\n  background: var(--altcha-input-background-color);\\n  border: var(--altcha-checkbox-border-width, 2px) solid var(--altcha-checkbox-border-color);\\n  border-radius: var(--altcha-checkbox-border-radius);\\n  cursor: pointer;\\n  height: var(--altcha-checkbox-size);\\n  left: 0;\\n  margin: 0;\\n  padding: 0;\\n  position: absolute;\\n  top: 0;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox input:before {\\n  border-radius: var(--altcha-checkbox-border-radius);\\n  content: \"\";\\n  width: 100%;\\n  height: 100%;\\n  background: var(--altcha-color-neutral);\\n  display: block;\\n  transform: scale(0);\\n}\\n.altcha-checkbox input:checked {\\n  background-color: var(--altcha-color-success);\\n  border-color: var(--altcha-color-success);\\n}\\n.altcha-checkbox input:checked::before {\\n  background-color: var(--altcha-color-success);\\n  opacity: 0;\\n  transform: scale(2.2);\\n  transition: all var(--altcha-checkbox-transition-duration) ease;\\n  transition-delay: 0.1s;\\n}\\n.altcha-checkbox svg {\\n  --altcha-radio-svg-size: calc(var(--altcha-checkbox-size) * 0.5);\\n  --altcha-radio-svg-offset: calc(var(--altcha-checkbox-size) * 0.25);\\n  fill: none;\\n  left: var(--altcha-radio-svg-offset);\\n  height: var(--altcha-radio-svg-size);\\n  opacity: 0;\\n  position: absolute;\\n  stroke: currentColor;\\n  stroke-width: 2;\\n  stroke-linecap: round;\\n  stroke-linejoin: round;\\n  stroke-dasharray: 16px;\\n  stroke-dashoffset: 16px;\\n  top: var(--altcha-radio-svg-offset);\\n  transform: translate3d(0, 0, 0);\\n  width: var(--altcha-radio-svg-size);\\n}\\n.altcha-checkbox input:checked + svg {\\n  color: var(--altcha-color-success-content);\\n  opacity: 1;\\n  stroke-dashoffset: 0;\\n  transition: all var(--altcha-checkbox-transition-duration) ease;\\n  transition-delay: 0.1s;\\n}\\n.altcha-checkbox-spinner {\\n  display: none;\\n  left: 0;\\n  height: var(--altcha-checkbox-size);\\n  position: absolute;\\n  top: 0;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox[data-loading=true] input {\\n  appearance: none;\\n  opacity: 0;\\n  pointer-events: none;\\n}\\n.altcha-checkbox[data-loading=true] .altcha-checkbox-spinner {\\n  display: block;\\n}\\n.altcha-checkbox-native {\\n  height: var(--altcha-checkbox-size);\\n  position: relative;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox-native input {\\n  height: var(--altcha-checkbox-size);\\n  margin: 0;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox-native-spinner {\\n  display: none;\\n  left: 0;\\n  height: var(--altcha-checkbox-size);\\n  position: absolute;\\n  top: 0;\\n  width: var(--altcha-checkbox-size);\\n}\\n.altcha-checkbox-native[data-loading=true] input {\\n  appearance: none;\\n  opacity: 0;\\n  pointer-events: none;\\n}\\n.altcha-checkbox-native[data-loading=true] .altcha-checkbox-native-spinner {\\n  display: block;\\n}\\n.altcha-switch {\\n  align-items: center;\\n  border-radius: var(--altcha-switch-border-radius);\\n  background-color: var(--altcha-switch-background-color);\\n  display: flex;\\n  height: var(--altcha-switch-height);\\n  padding: var(--altcha-switch-padding);\\n  position: relative;\\n  width: var(--altcha-switch-width);\\n}\\n.altcha-switch:focus-within {\\n  outline: var(--altcha-checkbox-outline);\\n  outline-offset: var(--altcha-checkbox-outline-offset);\\n}\\n.altcha-switch input {\\n  appearance: none;\\n  cursor: pointer;\\n  height: 100%;\\n  left: 0;\\n  opacity: 0;\\n  position: absolute;\\n  top: 0;\\n  width: 100%;\\n}\\n.altcha-switch-toggle {\\n  align-items: center;\\n  background-color: var(--altcha-switch-toggle-color);\\n  border-radius: var(--altcha-switch-toggle-border-radius);\\n  cursor: pointer;\\n  display: flex;\\n  height: var(--altcha-switch-toggle-size);\\n  justify-content: center;\\n  left: var(--altcha-switch-padding);\\n  position: absolute;\\n  transition: width 150ms ease-out, left 150ms ease-out;\\n  width: var(--altcha-switch-toggle-size);\\n}\\n.altcha-switch-spinner {\\n  display: none;\\n  height: var(--altcha-switch-toggle-size);\\n  width: var(--altcha-switch-toggle-size);\\n}\\n.altcha-switch[data-loading=true] {\\n  pointer-events: none;\\n}\\n.altcha-switch[data-loading=true] .altcha-switch-spinner {\\n  display: block;\\n}\\n.altcha-switch[data-loading=true] .altcha-switch-toggle {\\n  background-color: transparent;\\n  left: calc(50% - var(--altcha-switch-toggle-size) / 2);\\n}\\n[data-state=verified] .altcha-switch {\\n  --altcha-switch-background-color: var(--altcha-color-success);\\n}\\n[data-state=verified] .altcha-switch-toggle {\\n  background-color: var(--altcha-color-success-content);\\n  left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\\n}\\n[dir=rtl] .altcha-switch-toggle {\\n  left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\\n}\\n[dir=rtl][data-state=verified] .altcha-switch-toggle {\\n  left: var(--altcha-switch-padding);\\n}\\n.altcha-floating-arrow {\\n  border: 6px solid transparent;\\n  border-bottom-color: var(--altcha-border-color);\\n  content: \"\";\\n  height: 0;\\n  left: 12px;\\n  position: absolute;\\n  top: -12px;\\n  width: 0;\\n}\\n.altcha-overlay-backdrop {\\n  bottom: 0;\\n  left: 0;\\n  position: fixed;\\n  right: 0;\\n  top: 0;\\n  transition: opacity var(--altcha-transition-duration);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha-overlay-close {\\n  display: inline-block;\\n  color: currentColor;\\n  cursor: pointer;\\n  font-size: 1rem;\\n  height: 1rem;\\n  line-height: 0.85;\\n  position: absolute;\\n  right: 0;\\n  text-align: center;\\n  text-shadow: 0 0 1px var(--altcha-color-base);\\n  top: -1.5rem;\\n  width: 1rem;\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha[data-display=overlay] {\\n  animation: altcha-overlay-slidein var(--altcha-transition-duration) forwards;\\n  filter: var(--altcha-shadow);\\n  left: 50%;\\n  opacity: 0;\\n  position: fixed;\\n  top: 45%;\\n  transform: translate(-50%, -50%);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha[data-display=overlay] .altcha-main {\\n  width: var(--altcha-max-width);\\n}\\n.altcha[data-display=floating] {\\n  display: none;\\n  filter: var(--altcha-shadow);\\n  left: var(--altcha-floating-left, -100%);\\n  position: fixed;\\n  top: var(--altcha-floating-top, -100%);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha[data-display=floating] .altcha-main {\\n  width: var(--altcha-max-width);\\n}\\n.altcha[data-display=floating][data-floating-position=top] .altcha-floating-arrow {\\n  border-bottom-color: transparent;\\n  border-top-color: var(--altcha-border-color);\\n  bottom: -12px;\\n  top: auto;\\n}\\n.altcha[data-display=floating][data-visible] {\\n  display: flex;\\n}\\n.altcha[data-display=bar] {\\n  bottom: -100%;\\n  filter: var(--altcha-shadow);\\n  left: 0;\\n  position: fixed;\\n  right: 0;\\n  transition: bottom var(--altcha-transition-duration), top var(--altcha-transition-duration);\\n  z-index: var(--altcha-z-index);\\n}\\n.altcha[data-display=bar] .altcha-main {\\n  align-items: center;\\n  border-radius: 0;\\n  border-width: var(--altcha-border-width) 0 0 0;\\n  flex-direction: row;\\n  max-width: 100% !important;\\n}\\n.altcha[data-display=bar] .altcha-main > * {\\n  width: auto;\\n}\\n.altcha[data-display=bar][data-placement=top] {\\n  bottom: auto;\\n  top: -100%;\\n}\\n.altcha[data-display=bar][data-placement=top] .altcha-main {\\n  border-width: 0 0 var(--altcha-border-width) 0;\\n}\\n.altcha[data-display=bar][data-placement=bottom]:not([data-state=unverified]) {\\n  bottom: 0;\\n}\\n.altcha[data-display=bar][data-placement=top]:not([data-state=unverified]) {\\n  top: 0;\\n}\\n.altcha[data-display=invisible] {\\n  display: none;\\n}\\n\\n@keyframes altcha-rotate {\\n  0% {\\n    transform: rotate(0deg);\\n  }\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n@keyframes altcha-bottomsheet-slideup {\\n  100% {\\n    bottom: 0;\\n  }\\n}\\n@keyframes altcha-overlay-slidein {\\n  100% {\\n    opacity: 1;\\n    top: 50%;\\n  }\\n}';\ninjectCss(css);\n$altcha.algorithms.set(\"SHA-256\", () => new WorkerWrapper());\n$altcha.algorithms.set(\"SHA-384\", () => new WorkerWrapper());\n$altcha.algorithms.set(\"SHA-512\", () => new WorkerWrapper());\n$altcha.algorithms.set(\"PBKDF2/SHA-256\", () => new WorkerWrapper$1());\n$altcha.algorithms.set(\"PBKDF2/SHA-384\", () => new WorkerWrapper$1());\n$altcha.algorithms.set(\"PBKDF2/SHA-512\", () => new WorkerWrapper$1());\n"],
  "mappings": "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",
  "names": ["consumer", "error", "state", "event", "reconnect", "key", "consumer", "consumer", "subscription", "t", "e", "n", "r", "i", "o", "s", "a", "u", "p", "d", "f", "c", "h", "l", "g", "HTMLElement", "event", "FrameLoadingStyle", "location", "html", "FetchMethod", "delegate", "error", "FormSubmissionState", "FormEnctype", "cookie", "id", "block", "source", "root", "TimingMetric", "VisitState", "SystemStatusCode", "session", "visit", "state", "PageStage", "key", "element", "document", "createConsumer", "key", "event", "event", "event", "application", "listeners", "error", "key", "source", "delegate", "fetch", "set", "delegate", "match", "key", "oldValue", "error", "constructor", "extend", "application", "element", "event", "state", "hex", "SparkMD5", "event", "start", "root", "dispatchEvent", "key", "blob", "delegate", "error", "event", "error", "event", "event", "html", "import_trix", "error", "start", "error", "start", "error2", "extend", "id", "now", "dispatch"]
}
