@iblai/web-containers 1.56.1 → 1.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/cjs/_virtual/index2.js +2 -2
  2. package/dist/cjs/_virtual/index3.js +2 -2
  3. package/dist/cjs/components/chat/hooks/use-chat-file-drag-drop.js +13 -3
  4. package/dist/cjs/components/chat/hooks/use-chat-file-drag-drop.js.map +1 -1
  5. package/dist/cjs/components/chat/hooks/use-chat-file-upload.js +12 -16
  6. package/dist/cjs/components/chat/hooks/use-chat-file-upload.js.map +1 -1
  7. package/dist/cjs/components/chat/index.js +2 -2
  8. package/dist/cjs/components/chat/index.js.map +1 -1
  9. package/dist/cjs/components/chat/not-allowed-files-notice.js +62 -0
  10. package/dist/cjs/components/chat/not-allowed-files-notice.js.map +1 -0
  11. package/dist/cjs/components/chat/ui/button.js +4 -4
  12. package/dist/cjs/components/chat/ui/button.js.map +1 -1
  13. package/dist/cjs/components/chat-input-form/composer-plus-menu.js +94 -17
  14. package/dist/cjs/components/chat-input-form/composer-plus-menu.js.map +1 -1
  15. package/dist/cjs/components/chat-input-form/mcp-connect-explainer-dialog.js +29 -0
  16. package/dist/cjs/components/chat-input-form/mcp-connect-explainer-dialog.js.map +1 -0
  17. package/dist/cjs/components/chat-input-form/mcp-servers-menu.js +199 -0
  18. package/dist/cjs/components/chat-input-form/mcp-servers-menu.js.map +1 -0
  19. package/dist/cjs/components/chat-input-form/use-mcp-active-count.js +56 -0
  20. package/dist/cjs/components/chat-input-form/use-mcp-active-count.js.map +1 -0
  21. package/dist/cjs/components/chat-input-form.js +19 -6
  22. package/dist/cjs/components/chat-input-form.js.map +1 -1
  23. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js +755 -90
  24. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js.map +1 -1
  25. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js +386 -984
  26. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js.map +1 -1
  27. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js +16 -0
  28. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js.map +1 -0
  29. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js +6 -3
  30. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js.map +1 -1
  31. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js +463 -0
  32. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js.map +1 -0
  33. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js +329 -0
  34. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js.map +1 -0
  35. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js +20 -0
  36. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js.map +1 -0
  37. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js +744 -0
  38. package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js.map +1 -0
  39. package/dist/cjs/components/modals/user-profile-modal.js +2 -0
  40. package/dist/cjs/components/modals/user-profile-modal.js.map +1 -1
  41. package/dist/cjs/components/ui/accordion.js +40 -0
  42. package/dist/cjs/components/ui/accordion.js.map +1 -0
  43. package/dist/cjs/i18n/messages/en.json.js +165 -20
  44. package/dist/cjs/i18n/messages/en.json.js.map +1 -1
  45. package/dist/cjs/i18n/messages/es.json.js +165 -20
  46. package/dist/cjs/i18n/messages/es.json.js.map +1 -1
  47. package/dist/cjs/i18n/messages/fr.json.js +165 -20
  48. package/dist/cjs/i18n/messages/fr.json.js.map +1 -1
  49. package/dist/cjs/i18n/messages/zh.json.js +165 -20
  50. package/dist/cjs/i18n/messages/zh.json.js.map +1 -1
  51. package/dist/cjs/index.js +2 -0
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js +317 -0
  54. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  55. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js +173 -0
  56. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
  57. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js +73 -0
  58. package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
  59. package/dist/cjs/node_modules/.pnpm/css-mediaquery@0.1.2/node_modules/css-mediaquery/index.js +1 -1
  60. package/dist/cjs/node_modules/.pnpm/matchmediaquery@0.4.2/node_modules/matchmediaquery/index.js +1 -1
  61. package/dist/cjs/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  62. package/dist/cjs/web-containers/tsconfig.build.tsbuildinfo +1 -0
  63. package/dist/esm/_virtual/index2.js +2 -2
  64. package/dist/esm/_virtual/index3.js +2 -2
  65. package/dist/esm/components/chat/hooks/use-chat-file-drag-drop.js +14 -4
  66. package/dist/esm/components/chat/hooks/use-chat-file-drag-drop.js.map +1 -1
  67. package/dist/esm/components/chat/hooks/use-chat-file-upload.js +13 -17
  68. package/dist/esm/components/chat/hooks/use-chat-file-upload.js.map +1 -1
  69. package/dist/esm/components/chat/index.js +2 -2
  70. package/dist/esm/components/chat/index.js.map +1 -1
  71. package/dist/esm/components/chat/not-allowed-files-notice.js +60 -0
  72. package/dist/esm/components/chat/not-allowed-files-notice.js.map +1 -0
  73. package/dist/esm/components/chat-input-form/composer-plus-menu.js +94 -17
  74. package/dist/esm/components/chat-input-form/composer-plus-menu.js.map +1 -1
  75. package/dist/esm/components/chat-input-form/mcp-connect-explainer-dialog.js +27 -0
  76. package/dist/esm/components/chat-input-form/mcp-connect-explainer-dialog.js.map +1 -0
  77. package/dist/esm/components/chat-input-form/mcp-servers-menu.js +197 -0
  78. package/dist/esm/components/chat-input-form/mcp-servers-menu.js.map +1 -0
  79. package/dist/esm/components/chat-input-form/use-mcp-active-count.js +54 -0
  80. package/dist/esm/components/chat-input-form/use-mcp-active-count.js.map +1 -0
  81. package/dist/esm/components/chat-input-form.js +19 -6
  82. package/dist/esm/components/chat-input-form.js.map +1 -1
  83. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js +755 -92
  84. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js.map +1 -1
  85. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js +361 -968
  86. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js.map +1 -1
  87. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js +14 -0
  88. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js.map +1 -0
  89. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js +6 -3
  90. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js.map +1 -1
  91. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js +431 -0
  92. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js.map +1 -0
  93. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js +313 -0
  94. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js.map +1 -0
  95. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js +18 -0
  96. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js.map +1 -0
  97. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js +742 -0
  98. package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js.map +1 -0
  99. package/dist/esm/components/modals/user-profile-modal.js +2 -0
  100. package/dist/esm/components/modals/user-profile-modal.js.map +1 -1
  101. package/dist/esm/components/ui/accordion.js +16 -0
  102. package/dist/esm/components/ui/accordion.js.map +1 -0
  103. package/dist/esm/i18n/messages/en.json.js +163 -21
  104. package/dist/esm/i18n/messages/en.json.js.map +1 -1
  105. package/dist/esm/i18n/messages/es.json.js +163 -21
  106. package/dist/esm/i18n/messages/es.json.js.map +1 -1
  107. package/dist/esm/i18n/messages/fr.json.js +163 -21
  108. package/dist/esm/i18n/messages/fr.json.js.map +1 -1
  109. package/dist/esm/i18n/messages/zh.json.js +163 -21
  110. package/dist/esm/i18n/messages/zh.json.js.map +1 -1
  111. package/dist/esm/index.js +1 -0
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js +306 -0
  114. package/dist/esm/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  115. package/dist/esm/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js +146 -0
  116. package/dist/esm/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
  117. package/dist/esm/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js +71 -0
  118. package/dist/esm/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
  119. package/dist/esm/node_modules/.pnpm/css-mediaquery@0.1.2/node_modules/css-mediaquery/index.js +1 -1
  120. package/dist/esm/node_modules/.pnpm/matchmediaquery@0.4.2/node_modules/matchmediaquery/index.js +1 -1
  121. package/dist/esm/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  122. package/dist/esm/web-containers/tsconfig.build.tsbuildinfo +1 -0
  123. package/dist/index.d.ts +31 -2
  124. package/dist/package.json +1 -1
  125. package/package.json +3 -3
  126. package/dist/cjs/web-containers/tsconfig.tsbuildinfo +0 -1
  127. package/dist/esm/web-containers/tsconfig.tsbuildinfo +0 -1
@@ -1847,6 +1847,7 @@ var chatInputFormInsideButtons = {
1847
1847
  studyMode: "Modo Estudio",
1848
1848
  deepResearch: "Investigación Profunda",
1849
1849
  memory: "Memoria",
1850
+ mcp: "MCP",
1850
1851
  cowork: "Cowork",
1851
1852
  coworkNeedsBackend: "Activa un modelo local grande o inicia sesión en un espacio de trabajo para usar Cowork.",
1852
1853
  coworkModelTooSmall: "Tu modelo local es demasiado pequeño para Cowork. Elige un modelo de al menos 14 GB en Modelos Locales.",
@@ -3140,6 +3141,12 @@ var localLlmUseModelDownload = {
3140
3141
  setupTimedOut: "La configuración del Administrador de modelos está tardando demasiado. Vuelve a intentarlo en unos minutos.",
3141
3142
  setupTitle: "Configurando el Administrador de modelos"
3142
3143
  };
3144
+ var mcpTab = {
3145
+ header: {
3146
+ title: "MCP",
3147
+ description: "Servicios externos que tu agente puede usar en los chats. Activa o desactiva cada uno para este agente."
3148
+ }
3149
+ };
3143
3150
  var mcpTabConnectorDialogs = {
3144
3151
  invalidImageFile: "Por favor, seleccione un archivo de imagen válido.",
3145
3152
  imageTooLarge: "El tamaño de la imagen debe ser inferior a 2 MB.",
@@ -3150,54 +3157,168 @@ var mcpTabConnectorDialogs = {
3150
3157
  missingRequiredParams: "Faltan parámetros obligatorios",
3151
3158
  connectorUpdatedSuccess: "Conector actualizado correctamente",
3152
3159
  oauthUrlInvalid: "Esta URL del servidor MCP no se puede usar para la autenticación OAuth. Por favor, verifique la URL e inténtelo de nuevo.",
3153
- oauthConfigNotFound: "No se pudo encontrar la configuración OAuth para esta URL",
3154
3160
  oauthProcessFailed: "Error al procesar el conector OAuth",
3155
- editMcpConnector: "Editar conector MCP",
3161
+ editMcpConnector: "Configurar conector MCP",
3156
3162
  addMcpConnector: "Agregar conector MCP",
3163
+ moreInfo: "Más información sobre {label}",
3157
3164
  uploadConnectorImageLabel: "Subir imagen del conector",
3158
3165
  connectorThumbnailAlt: "Miniatura del conector",
3159
3166
  connectorNameLabel: "Nombre del conector",
3167
+ connectorNameInfo: "El nombre que ven las personas para este conector en el chat y en la configuración del agente.",
3160
3168
  connectorNamePlaceholder: "Ingrese el nombre del conector",
3161
3169
  connectorServerLabel: "Servidor del conector",
3170
+ connectorServerInfo: "La dirección web del servidor MCP. El servicio que quieres conectar la indica, normalmente en su página para desarrolladores o de integraciones.",
3162
3171
  connectorServerPlaceholder: "https://api.example.com/mcp",
3163
3172
  descriptionLabel: "Descripción",
3173
+ descriptionInfo: "Una nota breve sobre lo que este conector permite hacer al agente. Aparece en la tarjeta del conector.",
3164
3174
  optional: "Opcional",
3165
3175
  descriptionPlaceholder: "Describa qué hace este conector...",
3166
3176
  connectorScopeLabel: "Alcance del conector",
3177
+ connectorScopeInfo: "Qué agentes pueden usar este conector: todos los agentes de tu organización o solo este.",
3167
3178
  allAgents: "Todos los agentes",
3168
3179
  thisAgent: "Este agente",
3169
3180
  mcpAvailableAllAgents: "Este MCP estará disponible para todos los agentes.",
3170
3181
  mcpAvailableThisAgent: "Este MCP solo estará disponible para este agente.",
3182
+ userCanDisableLabel: "Permitir a los usuarios desactivarlo",
3183
+ userCanDisableInfo: "Si está activado, las personas pueden desactivar este conector en sus propios chats. Si está desactivado, permanece activo en todos los chats.",
3184
+ userCanDisableOnHint: "Las personas pueden desactivarlo en sus propios chats.",
3185
+ userCanDisableOffHint: "Permanece activo en todos los chats. Nadie puede desactivarlo.",
3171
3186
  transportLabel: "Transporte",
3187
+ transportInfo: "Cómo se comunica el agente con el servidor. Deja el valor predeterminado, salvo que el servicio te indique usar otro.",
3172
3188
  websocket: "WebSocket",
3173
3189
  streamableHttp: "HTTP en streaming",
3174
3190
  authMethodLabel: "Método de autenticación",
3191
+ authMethodInfo: "Cómo comprueba el servidor que el agente puede usarlo: sin comprobación, con una clave que pegas o con un inicio de sesión con una cuenta.",
3175
3192
  noAuthentication: "Sin autenticación",
3176
3193
  apiKey: "Clave API",
3177
3194
  oauth: "OAuth",
3178
3195
  authScopeLabel: "Alcance de autenticación",
3179
- tenant: "Inquilino",
3196
+ authScopeInfo: "Qué cuenta usa el agente con este servicio: la de cada persona, una cuenta compartida para este agente o una cuenta compartida para toda tu organización.",
3197
+ tenant: "Organización",
3180
3198
  agent: "Agente",
3181
3199
  user: "Usuario",
3182
- oauthScopeTenantHint: "La conexión OAuth estará disponible para todos los agentes de este inquilino.",
3183
- oauthScopeMentorHint: "La conexión OAuth solo estará disponible para este agente.",
3184
- oauthScopeUserHint: "Cada usuario deberá autenticarse individualmente al chatear.",
3200
+ oauthScopeTenantHint: "Un solo inicio de sesión, compartido por todos los agentes de tu organización.",
3201
+ oauthScopeMentorHint: "Un solo inicio de sesión, compartido por todas las personas que chatean con este agente.",
3202
+ oauthScopeUserHint: "Cada persona inicia sesión con su propia cuenta desde el chat.",
3203
+ connectionLabel: "Conexión",
3204
+ connected: "Conectado",
3205
+ notConnected: "No conectado",
3206
+ connectionInfoUser: "Tu propio inicio de sesión en este servicio. Las demás personas inician sesión con su propia cuenta desde el chat.",
3207
+ connectionInfoAgent: "La única cuenta que usan todas las personas que chatean con este agente. Desconectar cierra su sesión y desactiva el conector para este agente.",
3208
+ connectionInfoOrganization: "La única cuenta que usan todos los agentes de tu organización para este servicio. Desconectar cierra su sesión y desactiva el conector para este agente.",
3185
3209
  tokenTypeLabel: "Tipo de token",
3210
+ tokenTypeInfo: "El tipo de clave que espera el servidor. La mayoría de los servicios usan Bearer.",
3186
3211
  other: "Otro",
3187
3212
  customTokenTypeLabel: "Tipo de token personalizado",
3213
+ customTokenTypeInfo: "El nombre del tipo de clave que espera el servidor, cuando no está en la lista.",
3188
3214
  customTokenTypePlaceholder: "ej. X-Custom-Auth",
3189
3215
  customTokenTypeHint: "Solo caracteres alfanuméricos y guiones. Máximo 50 caracteres.",
3190
3216
  tokenLabel: "Token",
3217
+ tokenInfo: "La clave del servicio que permite al agente usarlo. Se oculta después de guardar.",
3191
3218
  tokenPlaceholder: "Ingrese su token",
3192
3219
  existingTokenHidden: "El token existente está oculto. Ingrese un nuevo token para reemplazarlo, o déjelo como está para conservar el token actual.",
3193
3220
  saving: "Guardando...",
3194
3221
  update: "Actualizar",
3195
- connect: "Conectar"
3222
+ connect: "Conectar",
3223
+ diagnosticMcpServerUrl: "Este servidor no respondió. Comprueba que la dirección sea correcta y que el servidor esté en línea, y vuelve a intentarlo. Cuando responda, podrás añadir aquí las credenciales de tu propia aplicación si las necesita.",
3224
+ diagnosticMcpServerUrlBlocked: "No se puede usar esta dirección. Introduce la dirección pública del servidor, que empiece por https://.",
3225
+ diagnosticTimedOut: "Este servidor tardó demasiado en responder. Inténtalo de nuevo en un momento.",
3226
+ diagnosticProviderNameConflict: "Ya existe un proveedor con este nombre. Elige otro nombre.",
3227
+ diagnosticInternalError: "Algo salió mal. Inténtalo de nuevo.",
3228
+ appCredentialsLabel: "Credenciales de la aplicación",
3229
+ appCredentialsInfo: "Los datos de la aplicación propia de tu organización en el servicio, usada para iniciar sesión. Solo hace falta cuando el servicio no puede configurar el inicio de sesión por sí mismo.",
3230
+ appCredentialsOnlyHint: "Introduce los datos de la aplicación que registraste en {name}. Las personas que chatean con el agente inician sesión a través de ella.",
3231
+ needsManualApp: "Este servicio necesita una aplicación que crees en su configuración para desarrolladores. Introduce los datos de la aplicación a continuación.",
3232
+ appCredentialsSaved: "Credenciales de la aplicación guardadas.",
3233
+ needsManualAppExisting: "Tu organización ya tiene una aplicación para este servicio. Introduce sus datos a continuación para usarla aquí.",
3234
+ signInProviderChecking: "Comprobando el servicio de inicio de sesión…",
3235
+ signInProviderUnknown: "Este servicio aún no está configurado en la plataforma, así que no se pueden guardar aquí sus credenciales de aplicación.",
3236
+ signInProviderLoadFailed: "No se pudo comprobar el servicio de inicio de sesión.",
3237
+ signInProviderRetry: "Reintentar",
3238
+ needsManualAppMetadata: "Este servicio no publica su configuración de inicio de sesión. Crea una aplicación en su configuración para desarrolladores y luego introduce abajo los datos de la aplicación y sus dos direcciones de inicio de sesión.",
3239
+ discoveryFailedStatus: "No pudimos comprobar esta dirección (error {status}). Inténtalo de nuevo en un momento.",
3240
+ discoveryUnreachable: "No pudimos conectar con el servidor para comprobar esta dirección. Revisa tu conexión e inténtalo de nuevo."
3241
+ };
3242
+ var mcpServersMenu = {
3243
+ description: "Los conectores que usa este agente.",
3244
+ signedInReadyNextMessage: "{name} conectado. Estará listo en tu próximo mensaje.",
3245
+ sessionDescription: "Los interruptores de aquí solo se aplican a este chat, a partir de tu próximo mensaje.",
3246
+ onForThisChat: "Activado para este chat",
3247
+ offForThisChat: "Desactivado para este chat",
3248
+ requiredByOrganization: "Obligatorio por tu organización",
3249
+ ariaOnForThisChat: "{displayName} activado para este chat",
3250
+ ariaOffForThisChat: "{displayName} desactivado para este chat",
3251
+ ariaRequired: "{displayName} es obligatorio por tu organización",
3252
+ turnOnToSignIn: "Actívalo para iniciar sesión en {name}",
3253
+ ariaTurnOnToSignIn: "{displayName} desactivado: actívalo para iniciar sesión",
3254
+ sessionPreferenceFailed: "No se pudo cambiar {displayName} para este chat.",
3255
+ connectTitle: "Iniciar sesión en {name}",
3256
+ connectBodyUser: "Se abrirá una ventana nueva para que inicies sesión en {name} con tu propia cuenta. Solo tus chats con este agente usan ese inicio de sesión; las demás personas conectan sus propias cuentas.",
3257
+ connectBodyShared: "Se abrirá una ventana nueva para que inicies sesión en {name}. Todas las personas que chateen con este agente usarán la cuenta que conectes, así que inicia sesión con una cuenta compartida o de servicio.",
3258
+ connectPopupHint: "Si no se abre ninguna ventana, permite las ventanas emergentes para este sitio e inténtalo de nuevo.",
3259
+ connectContinue: "Continuar",
3260
+ notSetUp: "{name} aún no está configurado para iniciar sesión. Pide ayuda a tu administrador.",
3261
+ nothingOn: "Todavía no hay nada activo para este agente."
3262
+ };
3263
+ var mcpOAuthApp = {
3264
+ sharedClientNote: "El inicio de sesión ya funciona mediante una aplicación compartida por ibl.ai; la tuya es opcional.",
3265
+ redirectUriLabel: "URI de redirección",
3266
+ redirectUriInfo: "Adónde vuelven las personas después de iniciar sesión. Debe coincidir con la dirección guardada en tu aplicación en el servicio.",
3267
+ redirectUriHint: "Añade esta dirección a tu aplicación en la configuración de desarrollador de {name}, exactamente como se muestra, o introduce la dirección que ya usa tu aplicación.",
3268
+ redirectUriInvalid: "Introduce una dirección completa que empiece por https:// (o http:// para una prueba local).",
3269
+ redirectUriRequired: "Introduce el URI de redirección.",
3270
+ copy: "Copiar",
3271
+ copied: "Copiado",
3272
+ copyFailed: "No se pudo copiar. Selecciona la dirección y cópiala manualmente.",
3273
+ clientIdLabel: "ID de cliente",
3274
+ clientIdInfo: "El ID público de la aplicación, de la configuración para desarrolladores del servicio.",
3275
+ clientSecretLabel: "Secreto de cliente",
3276
+ clientSecretInfo: "La contraseña privada de la aplicación, de la configuración para desarrolladores del servicio. Mantenla en secreto.",
3277
+ clientSecretPlaceholder: "Introduce el secreto de cliente",
3278
+ clientSecretSavedPlaceholder: "Guardado. Introduce uno nuevo para reemplazarlo.",
3279
+ clientSecretPublicPlaceholder: "No es necesario para una aplicación pública",
3280
+ scopesLabel: "Permisos (scopes)",
3281
+ scopesInfo: "Lo que el agente puede hacer en el servicio, con las palabras del propio servicio. Déjalo vacío para usar el valor predeterminado.",
3282
+ scopesHint: "A qué puede acceder la aplicación, según la configuración para desarrolladores de {name}. Sepáralos con espacios.",
3283
+ authMethodLabel: "Cómo se envía el secreto",
3284
+ authMethodInfo: "Cómo se envía el secreto al servicio. Deja el valor predeterminado, salvo que la documentación del servicio indique otra cosa.",
3285
+ authMethodPost: "En la solicitud (predeterminado, funciona para la mayoría de los servicios)",
3286
+ authMethodBasic: "Como usuario y contraseña (HTTP Basic)",
3287
+ authMethodNone: "Sin secreto (aplicación pública)",
3288
+ advanced: "Avanzado",
3289
+ authorizationParamsLabel: "Ajustes adicionales de inicio de sesión",
3290
+ tokenParamsLabel: "Ajustes adicionales del token",
3291
+ paramsHint: "Solo si las instrucciones de {name} lo piden: uno por línea, escrito como nombre=valor.",
3292
+ paramsInfo: "Valores adicionales que algunos servicios necesitan al iniciar sesión. Déjalos vacíos, salvo que la documentación del servicio los pida.",
3293
+ remove: "Eliminar credenciales",
3294
+ removeTitle: "¿Eliminar las credenciales de la aplicación de {name}?",
3295
+ removeBody: "El ID de cliente y el secreto de la aplicación se eliminan de ibl.ai. Todas las personas que iniciaron sesión con ella tendrán que volver a iniciar sesión.",
3296
+ removeConfirm: "Eliminar",
3297
+ removed: "Credenciales de la aplicación de {name} eliminadas",
3298
+ saveFailed: "No se pudieron guardar las credenciales de la aplicación.",
3299
+ removeFailed: "No se pudieron eliminar las credenciales de la aplicación.",
3300
+ clientIdRequired: "Introduce el ID de cliente.",
3301
+ clientSecretRequired: "Introduce el secreto de cliente o elige \"Sin secreto (aplicación pública)\".",
3302
+ clientIdPlaceholder: "Introduce el ID de cliente",
3303
+ clientIdHint: "Cópialo de la página de la aplicación en la configuración para desarrolladores de {name}.",
3304
+ paramsPlaceholder: "prompt=consent\naccess_type=offline",
3305
+ authorizationUrlLabel: "URL de autorización",
3306
+ authorizationUrlInfo: "La dirección donde las personas inician sesión en el servicio. Está en la documentación para desarrolladores del servicio.",
3307
+ tokenUrlLabel: "URL del token",
3308
+ tokenUrlInfo: "La dirección que usa el servicio para completar un inicio de sesión. Está en la documentación para desarrolladores del servicio.",
3309
+ authorizationUrlPlaceholder: "https://example.com/oauth/authorize",
3310
+ tokenUrlPlaceholder: "https://example.com/oauth/token",
3311
+ endpointsHint: "Copia ambas de la documentación para desarrolladores de {name}. Empiezan por https://.",
3312
+ endpointsAdvancedHint: "Solo si el inicio de sesión de {name} usa direcciones distintas de las que publica. Deja ambas vacías para usar las suyas.",
3313
+ endpointsRequired: "Introduce la URL de autorización y la URL del token.",
3314
+ endpointsBoth: "Introduce ambas URL o deja ambas vacías.",
3315
+ endpointsHttps: "Ambas URL deben empezar por https://.",
3316
+ endpointNotAllowed: "Esta dirección no se puede usar. Introduce la dirección pública https:// de la documentación para desarrolladores de {name}."
3196
3317
  };
3197
3318
  var mcpTabConnectorManagementContent = {
3198
3319
  invalidServerId: "ID de servidor no válido",
3199
- serverActivated: "{serverName} activado correctamente",
3200
- serverDeactivated: "{serverName} desactivado correctamente",
3320
+ serverActivated: "{serverName} está activado para este agente",
3321
+ serverDeactivated: "{serverName} está desactivado para este agente",
3201
3322
  serverNotAccessible: "{serverName} no existe o no es accesible. Por favor, actualice la página.",
3202
3323
  failedToActivate: "Error al activar {serverName}. {msg}",
3203
3324
  failedToDeactivate: "Error al desactivar {serverName}. {msg}",
@@ -3215,33 +3336,35 @@ var mcpTabConnectorManagementContent = {
3215
3336
  serviceDisconnected: "Servicio desconectado correctamente",
3216
3337
  failedToDisconnect: "Error al desconectar el servicio",
3217
3338
  unknownConnector: "Conector desconocido",
3218
- notConnected: "No conectado",
3219
- active: "Activo",
3220
- inactive: "Inactivo",
3339
+ onForThisAgent: "Activado para este agente",
3340
+ offForThisAgent: "Desactivado para este agente",
3221
3341
  ariaEnabled: "{displayName} habilitado",
3222
3342
  ariaDisabled: "{displayName} deshabilitado",
3223
- scopeUser: "Usuario",
3224
- scopeAgent: "Agente",
3225
- scopeTenant: "Inquilino",
3226
3343
  disconnecting: "Desconectando...",
3227
3344
  disconnect: "Desconectar",
3228
3345
  connecting: "Conectando...",
3229
3346
  connect: "Conectar",
3230
- edit: "Editar",
3347
+ configure: "Configurar",
3348
+ scopeUser: "Usuario",
3349
+ scopeAgent: "Agente",
3350
+ scopeTenant: "Organización",
3351
+ scopeHintUser: "Cada persona inicia sesión en {name} con su propia cuenta. Cámbialo con el botón del engranaje.",
3352
+ scopeHintAgent: "Una cuenta compartida para todas las personas que chatean con este agente. Cámbialo con el botón del engranaje.",
3353
+ scopeHintOrganization: "Una cuenta compartida para toda tu organización. Cámbialo con el botón del engranaje.",
3231
3354
  "delete": "Eliminar",
3232
3355
  select: "Seleccionar",
3233
- createdDate: "Creado el {date}",
3234
3356
  searchByName: "Buscar por nombre...",
3235
3357
  pickDateRange: "Elegir un rango de fechas",
3236
3358
  ariaSelectTransport: "Seleccionar transporte",
3237
3359
  allTransports: "Todos los transportes",
3238
3360
  searchTransport: "Buscar transporte...",
3239
3361
  noTransportFound: "No se encontró transporte.",
3240
- featuredConnectors: "Conectores destacados",
3362
+ featured: "Destacados",
3241
3363
  loadingFeaturedConnectors: "Cargando conectores destacados...",
3242
3364
  failedToLoadFeatured: "Error al cargar los conectores destacados",
3243
3365
  retry: "Reintentar",
3244
3366
  connectors: "Conectores",
3367
+ directory: "Directorio",
3245
3368
  addConnector: "Agregar conector",
3246
3369
  loadingConnectors: "Cargando conectores...",
3247
3370
  failedToLoadConnectors: "Error al cargar los conectores",
@@ -3254,7 +3377,13 @@ var mcpTabConnectorManagementContent = {
3254
3377
  transportLabelAllTransports: "Todos los transportes",
3255
3378
  transportLabelSSE: "SSE",
3256
3379
  transportLabelWebSocket: "WebSocket",
3257
- transportLabelStreamableHTTP: "HTTP streamable"
3380
+ transportLabelStreamableHTTP: "HTTP streamable",
3381
+ connectedSuccessfully: "{name} conectado correctamente",
3382
+ failedToCreateConnection: "Error al crear la conexión: {detail}",
3383
+ unknownError: "Error desconocido",
3384
+ turnedOffUntilConnected: "{name} se desactivó para este agente. Vuelve a activarlo para iniciar sesión.",
3385
+ cannotChangeSetting: "Tu organización no puede cambiar este ajuste de {name}.",
3386
+ saveFailed: "No se pudo guardar {name}."
3258
3387
  };
3259
3388
  var memoryAddMemoryDialog = {
3260
3389
  validationMinLength: "El contenido de la memoria debe tener al menos 10 caracteres",
@@ -7626,6 +7755,7 @@ var chat = {
7626
7755
  studyMode: "Modo de estudio",
7627
7756
  deepResearch: "Investigación profunda",
7628
7757
  memory: "Memoria",
7758
+ mcp: "MCP",
7629
7759
  cowork: "Cowork",
7630
7760
  coworkNeedsLocalModel: "Activa primero «Modelos Locales»: Cowork necesita un modelo de IA local.",
7631
7761
  coworkModelTooSmall: "Tu modelo local es demasiado pequeño para Cowork. Elige un modelo de al menos 12 GB en Modelos Locales.",
@@ -7840,7 +7970,16 @@ var chat = {
7840
7970
  uploadUrlFailed: "Failed to get upload URL for {name}",
7841
7971
  uploadFailed: "Failed to upload {name}",
7842
7972
  retryFailed: "Failed to retry upload for {name}",
7843
- typeNotAllowed: "No se puede añadir {name}. Este agente solo acepta archivos {types}.",
7973
+ typeNotAccepted: "Este agente no acepta archivos .{type}.",
7974
+ noFileType: "{name} no tiene tipo de archivo, así que este agente no puede aceptarlo.",
7975
+ filesNotAdded: "No se pueden añadir {count} archivos: {names}.",
7976
+ seeAllowedTypes: "Ver tipos permitidos",
7977
+ allowedTypesTitle: "Tipos de Archivo que Acepta este Agente",
7978
+ allowedTypesDescription: "Puedes adjuntar cualquiera de estos {count} tipos de archivo.",
7979
+ allowedTypesSearchPlaceholder: "Buscar, p. ej. xlsx",
7980
+ allowedTypesSearchLabel: "Buscar tipos de archivo",
7981
+ allowedTypesNoMatch: ".{query} no es uno de ellos.",
7982
+ allowedTypesDone: "Entendido",
7844
7983
  notAllowedForAgent: "No se puede usar {name} con este agente. Quítalo para enviar tu mensaje.",
7845
7984
  typeListSeparator: ", ",
7846
7985
  typeListAnd: "{head} y {last}",
@@ -8470,7 +8609,10 @@ var es = {
8470
8609
  llmsTabIntegrationLlmsTab: llmsTabIntegrationLlmsTab,
8471
8610
  localLlmLocalLlmTab: localLlmLocalLlmTab,
8472
8611
  localLlmUseModelDownload: localLlmUseModelDownload,
8612
+ mcpTab: mcpTab,
8473
8613
  mcpTabConnectorDialogs: mcpTabConnectorDialogs,
8614
+ mcpServersMenu: mcpServersMenu,
8615
+ mcpOAuthApp: mcpOAuthApp,
8474
8616
  mcpTabConnectorManagementContent: mcpTabConnectorManagementContent,
8475
8617
  memoryAddMemoryDialog: memoryAddMemoryDialog,
8476
8618
  memoryMemoryTab: memoryMemoryTab,
@@ -8804,6 +8946,9 @@ exports.llmsTabIntegrationLlmsTab = llmsTabIntegrationLlmsTab;
8804
8946
  exports.localLlmLocalLlmTab = localLlmLocalLlmTab;
8805
8947
  exports.localLlmUseModelDownload = localLlmUseModelDownload;
8806
8948
  exports.ltiTabLabels = ltiTabLabels;
8949
+ exports.mcpOAuthApp = mcpOAuthApp;
8950
+ exports.mcpServersMenu = mcpServersMenu;
8951
+ exports.mcpTab = mcpTab;
8807
8952
  exports.mcpTabConnectorDialogs = mcpTabConnectorDialogs;
8808
8953
  exports.mcpTabConnectorManagementContent = mcpTabConnectorManagementContent;
8809
8954
  exports.memoryAddMemoryDialog = memoryAddMemoryDialog;
@@ -1 +1 @@
1
- {"version":3,"file":"es.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"es.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}