diff --git a/cmd/skywire-visor/static/268.575055e245c2f30e.js b/cmd/skywire-visor/static/268.575055e245c2f30e.js
new file mode 100644
index 0000000000..b922a654dc
--- /dev/null
+++ b/cmd/skywire-visor/static/268.575055e245c2f30e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[268],{4268:e=>{e.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","downloaded":"Recibido","uploaded":"Enviado","loading-error":"Hubo un error obteniendo los datos. Reintentando...","operation-error":"Hubo un error al intentar completar la operaci\xf3n.","no-connection-error":"No hay conexi\xf3n a Internet o conexi\xf3n con el hipervisor.","error":"Error:","refreshed":"Datos refrescados.","options":"Opciones","logout":"Cerrar sesi\xf3n","logout-error":"Error cerrando la sesi\xf3n.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"S\xed","no":"No","unknown":"Desconocido","close":"Cerrar","window-size-error":"La ventana es demasiado estrecha para el contenido."},"labeled-element":{"edit-label":"Editar etiqueta","remove-label":"Remover etiqueta","copy":"Copiar","remove-label-confirmation":"\xbfRealmente desea eliminar la etiqueta?","unnamed-element":"Sin nombre","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Haga clic para copiar la entrada o cambiar la etiqueta","tooltip-with-text":"{{ text }} (Haga clic para copiar la entrada o cambiar la etiqueta)"},"labels":{"title":"Etiquetas","info":"Etiquetas que ha introducido para identificar f\xe1cilmente visores, transportes y otros elementos, en lugar de tener que leer identificadores generados por una m\xe1quina.","list-title":"Lista de etiquetas","label":"Etiqueta","id":"ID del elemento","type":"Tipo","delete-confirmation":"\xbfSeguro que desea borrar la etiqueta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las etiquetas seleccionados?","delete":"Borrar etiqueta","deleted":"Operaci\xf3n de borrado completada.","empty":"No hay etiquetas guardadas.","empty-with-filter":"Ninguna etiqueta coincide con los criterios de filtrado seleccionados.","filter-dialog":{"label":"La etiqueta debe contener","id":"El id debe contener","type":"El tipo debe ser","type-options":{"any":"Cualquiera","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtrar","filter-info":"Lista de filtros.","press-to-remove":"(Presione para remover los filtros)","remove-confirmation":"\xbfSeguro que desea remover los filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"Etiqueta","label":"(etiqueta)","inverted-order":"(invertido)"},"start":{"title":"Inicio","loading-error":"Hubo un error obteniendo los datos iniciales. Reintentando..."},"node":{"title":"Detalles del visor","not-found":"Visor no encontrado.","statuses":{"online":"Online","online-tooltip":"El visor se encuentra online.","connecting":"Conectando","connecting-tooltip":"El visor se encuentra online, pero todav\xeda est\xe1 conectando con el uptime tracker.","unknown":"Desconocido","unknown-tooltip":"El visor se encuentra online, pero no ha sido posible determinar si est\xe1 conectado con el uptime tracker.","partially-online":"Online con problemas","partially-online-tooltip":"El visor se encuentra online, pero desconectado del uptime tracker.","offline":"Offline","offline-tooltip":"El visor se encuentra offline."},"details":{"node-info":{"title":"Informaci\xf3n del visor","label":"Etiqueta:","public-key":"Llave p\xfablica:","symmetic-nat":"NAT sim\xe9trica:","public-ip":"IP p\xfablica:","ip":"IP:","dmsg-server":"Servidor DMSG:","ping":"Ping:","node-version":"Versi\xf3n del visor:","build-type":"Tipo de build:","skybian-version":"Versi\xf3n de Skybian:","unknown-build":"Desconocido","time":{"title":"Tiempo online:","seconds":"unos segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 d\xeda","days":"{{ time }} d\xedas","week":"1 semana","weeks":"{{ time }} semanas"}},"transports-info":{"title":"Informaci\xf3n de Transportes","autoconnect":"Autoconectar:","autoconnect-info":"Al activarse, el visor crear\xe1 autom\xe1ticamente los transportes necesarios cuando se solicite la conexi\xf3n a un visor p\xfablico. Al desactivarse, los transportes deber\xe1n ser creados antes de poder establecer la conexi\xf3n.","enabled":"Activado","disabled":"Desactivado","enable-button":"Activar","disable-button":"Desactivar","enable-confirmation":"\xbfSeguro que desea activar la funci\xf3n de autoconectar?","disable-confirmation":"\xbfSeguro que desea desactivar la funci\xf3n de autoconectar?","enable-done":"La funci\xf3n de autoconectar ha sido activada.","disable-done":"La funci\xf3n de autoconectar ha sido desactivada."},"router-info":{"title":"Informaci\xf3n del Enrutador","min-hops":"Saltos m\xednimos:","max-hops":"Saltos m\xe1ximos:","change-config-button":"Cambiar configuraci\xf3n"},"node-health":{"title":"Informaci\xf3n de Salud","status":"Estatus:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Datos de tr\xe1fico"},"tabs":{"info":"Info","apps":"Apps","routing":"Enrutamiento"},"error-load":"Hubo un error al intentar refrescar los datos. Reintentando..."},"router-config":{"title":"Configuraci\xf3n del Enrutador","info":"Aqu\xed podr\xe1 configurar cuantos saltos la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final. NOTA: los cambios no afectar\xe1n a las rutas ya existentes.","min-hops":"Saltos m\xednimos","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."},"nodes":{"title":"Lista de visores","dmsg-title":"DMSG","update-all":"Actualizar todos los visores online","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado actual","label":"Etiqueta","key":"Llave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor es el Hypervisor actual.","copy-key":"Copiar llave","copy-dmsg":"Copiar llave DMSG","copy-data":"Copiar datos","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos los visores offline","error-load":"Hubo un error al intentar refrescar la lista. Reintentando...","empty":"No hay ning\xfan visor conectado a este hypervisor.","empty-with-filter":"Ningun visor coincide con los criterios de filtrado seleccionados.","delete-node-confirmation":"\xbfSeguro que desea remover el visor de la lista?","delete-all-offline-confirmation":"\xbfSeguro que desea remover todos los visores offline de la lista?","delete-all-filtered-offline-confirmation":"Todos los visores offline que satisfagan los criterios de filtrado actuales ser\xe1n removidos de la lista. \xbfSeguro que desea continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"No hay visores para actualizar.","filter-dialog":{"online":"El visor debe estar","label":"La etiqueta debe contener","key":"La llave debe contener","dmsg":"La llave del servidor DMSG debe contener","online-options":{"any":"Online u offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Etiqueta","done":"Etiqueta guardada.","label-removed-warning":"La etiqueta fue removida."},"settings":{"title":"Configuraci\xf3n","checking-auth":"Revisando configuraci\xf3n de autenticaci\xf3n.","password":{"initial-config-help":"Use esta opci\xf3n para establecer la contrase\xf1a inicial. Despu\xe9s de establecer una contrase\xf1a no es posible usar esta opci\xf3n para modificarla.","help":"Opciones para cambiar la contrase\xf1a.","old-password":"Contrase\xf1a actual","new-password":"Nueva contrase\xf1a","repeat-password":"Repita la contrase\xf1a","password-changed":"Contrase\xf1a cambiada.","error-changing":"Error cambiando la contrase\xf1a.","initial-config":{"title":"Establecer contrase\xf1a inicial","password":"Contrase\xf1a","repeat-password":"Repita la contrase\xf1a","set-password":"Establecer contrase\xf1a","done":"Contrase\xf1a establecida. Por favor \xfasela para acceder al sistema.","error":"Error. Por favor aseg\xfarese de que no hubiese establecido la contrase\xf1a anteriormente."},"errors":{"bad-old-password":"La contrase\xf1a actual introducida no es correcta.","old-password-required":"La contrase\xf1a actual es requerida.","new-password-error":"La contrase\xf1a debe tener entre 6 y 64 caracteres.","passwords-not-match":"Las contrase\xf1as no coinciden.","default-password":"No utilice la contrase\xf1a por defecto (1234)."}},"updater-config":{"open-link":"Mostrar la configuraci\xf3n del actualizador","open-confirmation":"La configuraci\xf3n del actualizador es s\xf3lo para usuarios experimentados. Seguro que desea continuar?","help":"Utilice este formulario para modificar la configuraci\xf3n que utilizar\xe1 el actualizador. Se ignorar\xe1n todos los campos vac\xedos. La configuraci\xf3n se utilizar\xe1 para todas las operaciones de actualizaci\xf3n, sin importar qu\xe9 elemento se est\xe9 actualizando, as\xed que por favor tenga cuidado.","channel":"Canal","version":"Versi\xf3n","archive-url":"URL del archivo","checksum-url":"URL del checksum","not-saved":"Los cambios a\xfan no se han guardado.","save":"Guardar cambios","remove-settings":"Remover la configuraci\xf3n","saved":"Las configuracion personalizada ha sido guardada.","removed":"Las configuracion personalizada ha sido removida.","save-confirmation":"\xbfSeguro que desea aplicar la configuraci\xf3n personalizada?","remove-confirmation":"\xbfSeguro que desea remover la configuraci\xf3n personalizada?"},"change-password":"Cambiar contrase\xf1a","refresh-rate":"Frecuencia de refrescado","refresh-rate-help":"Tiempo que el sistema espera para actualizar autom\xe1ticamente los datos.","refresh-rate-confirmation":"Frecuencia de refrescado cambiada.","seconds":"segundos"},"login":{"password":"Contrase\xf1a","incorrect-password":"Contrase\xf1a incorrecta.","initial-config":"Configurar lanzamiento inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configuraci\xf3n","update":"Actualizar","reboot":"Reiniciar","logs":"Ver logs"},"reboot":{"confirmation":"\xbfSeguro que desea reiniciar el visor?","done":"El visor se est\xe1 reiniciando."},"update":{"confirmation":"Una terminal ser\xe1 abierta en una nueva pesta\xf1a y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente. \xbfDesea continuar?"},"terminal-options":{"full":"Terminal completa","simple":"Terminal simple"},"terminal":{"title":"Terminal","input-start":"Terminal de Skywire para {{address}}","error":"Error inesperado mientras se intentaba ejecutar el comando."}},"update":{"title":"Actualizar","error-title":"Error","processing":"Buscando actualizaciones...","no-update":"No hay ninguna actualizaci\xf3n para el visor. La versi\xf3n instalada actualmente es:","no-updates":"No se encontraron nuevas actualizaciones.","already-updating":"Algunos visores ya est\xe1n siendo actualizandos:","with-error":"No fue posible verificar los siguientes visores:","update-available":"Las siguientes actualizaciones fueron encontradas:","update-available-singular":"Las siguientes actualizaciones para 1 visor fueron encontradas:","update-available-plural":"Las siguientes actualizaciones para {{ number }} visores fueron encontradas:","update-available-additional-singular":"Las siguientes actualizaciones adicionales para 1 visor fueron encontradas:","update-available-additional-plural":"Las siguientes actualizaciones adicionales para {{ number }} visores fueron encontradas:","update-instructions":"Haga clic en el bot\xf3n \'Instalar actualizaciones\' para continuar.","updating":"La operaci\xf3n de actualizaci\xf3n se ha iniciado, puede abrir esta ventana nuevamente para verificar el progreso:","version-change":"De {{ currentVersion }} a {{ newVersion }}","selected-channel":"Canal seleccionado:","downloaded-file-name-prefix":"Descargando: ","speed-prefix":"Velocidad: ","time-downloading-prefix":"Tiempo descargando: ","time-left-prefix":"Tiempo aprox. faltante: ","starting":"Preparando para actualizar","finished":"Conexi\xf3n de estado terminada","install":"Instalar actualizaciones"},"update-all":{"title":"Actualizar","updatable-list-text":"Por favor, presione los botones de los visores que desea actualizar. Una terminal ser\xe1 abierta en una nueva pesta\xf1a por cada visor y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente.","non-updatable-list-text":"Los siguientes visores no pueden ser actualizados v\xeda la terminal:","update-button":"Actualizar"},"apps":{"log":{"title":"Log","empty":"No hay mensajes de log para el rango de fecha seleccionado.","filter-button":"Mostrando s\xf3lo logs generados desde:","filter":{"title":"Filtro","filter":"Mostrar s\xf3lo logs generados desde","7-days":"Los \xfaltimos 7 d\xedas","1-month":"Los \xfaltimos 30 d\xedas","3-months":"Los \xfaltimos 3 meses","6-months":"Los \xfaltimos 6 meses","1-year":"El \xfaltimo a\xf1o","all":"mostrar todos"}},"apps-list":{"title":"Aplicaciones","list-title":"Lista de aplicaciones","app-name":"Nombre","port":"Puerto","state":"Estado","state-tooltip":"Estado actual","auto-start":"Autoinicio","empty":"El visor no tiene ninguna aplicaci\xf3n.","empty-with-filter":"Ninguna app coincide con los criterios de filtrado seleccionados.","disable-autostart":"Deshabilitar autoinicio","enable-autostart":"Habilitar autoinicio","autostart-disabled":"Autoinicio deshabilitado","autostart-enabled":"Autoinicio habilitado","unavailable-logs-error":"No es posible mostrar los logs mientras la aplicaci\xf3n no se est\xe1 ejecutando.","filter-dialog":{"state":"El estado debe ser","name":"El nombre debe contener","port":"El puerto debe contener","autostart":"El autoinicio debe estar","state-options":{"any":"Iniciada o detenida","running":"Iniciada","stopped":"Detenida"},"autostart-options":{"any":"Activado or desactivado","enabled":"Activado","disabled":"Desactivado"}}},"vpn-socks-server-settings":{"socks-title":"Configuraci\xf3n de Skysocks","vpn-title":"Configuraci\xf3n de VPN-Server","new-password":"Nueva contrase\xf1a (dejar en blanco para eliminar la contrase\xf1a)","repeat-password":"Repita la contrase\xf1a","netifc":"Interfaz de red predeterminada (opcional)","passwords-not-match":"Las contrase\xf1as no coinciden.","secure-mode-check":"Usar modo seguro","secure-mode-info":"Cuando est\xe1 activo, el servidor no permite SSH con los clientes y no permite ning\xfan tr\xe1fico de clientes VPN a la red local del servidor.","save":"Guardar","remove-passowrd-confirmation":"Ha dejado el campo de contrase\xf1a vac\xedo. \xbfSeguro que desea eliminar la contrase\xf1a?","change-passowrd-confirmation":"\xbfSeguro que desea cambiar la contrase\xf1a?","changes-made":"Los cambios han sido realizados."},"vpn-socks-client-settings":{"socks-title":"Configuraci\xf3n de Skysocks-Client","vpn-title":"Configuraci\xf3n de VPN-Client","discovery-tab":"Buscar","remote-visor-tab":"Introducir manualmente","settings-tab":"Configuracion","history-tab":"Historial","use":"Usar estos datos","change-note":"Cambiar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Introducido manualmente","note-obtained":"Obtenido del servicio de descubrimiento","key":"Llave:","port":"Puerto:","location":"Ubicaci\xf3n:","state-available":"Disponible","state-offline":"Offline","public-key":"Llave p\xfablica del visor remoto","password":"Contrase\xf1a","password-history-warning":"Nota: la contrase\xf1a no se guardar\xe1 en el historial.","copy-pk-info":"Copiar la llave p\xfablica.","copied-pk-info":"La llave p\xfablica ha sido copiada.","copy-pk-error":"Hubo un problema al intentar cambiar la llave p\xfablica.","no-elements":"Actualmente no hay elementos para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","no-elements-for-filters":"No hay elementos que cumplan los criterios de filtro.","no-filter":"No se ha seleccionado ning\xfan filtro","click-to-change":"Haga clic para cambiar","remote-key-length-error":"La llave p\xfablica debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","save":"Guardar","remove-from-history-confirmation":"\xbfSeguro de que desea eliminar la entrada del historial?","change-key-confirmation":"\xbfSeguro que desea cambiar la llave p\xfablica del visor remoto?","changes-made":"Los cambios han sido realizados.","no-history":"Esta pesta\xf1a mostrar\xe1 las \xfaltimas {{ number }} llaves p\xfablicas usadas.","default-note-warning":"La nota por defecto ha sido utilizada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","killswitch-check":"Activar killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN est\xe1 interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","settings-changed-alert":"Los cambios a\xfan no se han guardado.","save-settings":"Guardar configuracion","change-note-dialog":{"title":"Cambiar Nota","note":"Nota"},"password-dialog":{"title":"Introducir Contrase\xf1a","password":"Contrase\xf1a","info":"Se le solicita una contrase\xf1a porque una contrase\xf1a fue utilizada cuando se cre\xf3 la entrada seleccionada, pero no fue guardada por razones de seguridad. Puede dejar la contrase\xf1a vac\xeda si es necesario.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"El pa\xeds debe ser","any-country":"Cualquiera","location":"La ubicaci\xf3n debe contener","pub-key":"La llave p\xfablica debe contener","apply":"Aplicar"}},"stop-app":"Detener","start-app":"Iniciar","view-logs":"Ver logs","settings":"Configuraci\xf3n","open":"Abrir","error":"Se produjo un error y no fue posible realizar la operaci\xf3n.","stop-confirmation":"\xbfSeguro que desea detener la aplicaci\xf3n?","stop-selected-confirmation":"\xbfSeguro que desea detener las aplicaciones seleccionadas?","disable-autostart-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de la aplicaci\xf3n?","enable-autostart-confirmation":"\xbfSeguro que desea habilitar el autoinicio de la aplicaci\xf3n?","disable-autostart-selected-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de las aplicaciones seleccionadas?","enable-autostart-selected-confirmation":"\xbfSeguro que desea habilitar el autoinicio de las aplicaciones seleccionadas?","operation-completed":"Operaci\xf3n completada.","operation-unnecessary":"La selecci\xf3n ya tiene la configuraci\xf3n solicitada.","status-running":"Corriendo","status-connecting":"Conectando","status-stopped":"Detenida","status-failed":"Finaliz\xf3 con el siguiente error: {{ error }}","status-running-tooltip":"La aplicaci\xf3n est\xe1 actualmente corriendo","status-connecting-tooltip":"La aplicaci\xf3n est\xe1 actualmente conectando","status-stopped-tooltip":"La aplicaci\xf3n est\xe1 actualmente detenida","status-failed-tooltip":"La app finaliz\xf3 con el siguiente error: {{ error }}"},"transports":{"title":"Transportes","info":"Conexiones que tiene con visores remotos de Skywire, para permitir que las aplicaciones Skywire locales se comuniquen con las aplicaciones que se ejecutan en esos visores remotos.","list-title":"Lista de transportes","offline":"Offline","persistent":"Persistente","persistent-tooltip":"Transportes persistentes, los cuales son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-button-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n. Presione aqu\xed para volverlo no persistente.","non-persistent-transport-button-tooltip":"Presione aqu\xed para volver persistente el transporte. Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","make-persistent":"Volver persistente","make-non-persistent":"Volver no persistente","make-selected-persistent":"Volver persistentes los seleccionados","make-selected-non-persistent":"Volver no persistentes los seleccionados","changes-made":"Cambios hechos.","no-changes-needed":"Ning\xfan cambio fue necesario.","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Crear transporte","make-persistent-confirmation":"\xbfSeguro que desea volver persistente el transporte?","make-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte?","make-selected-persistent-confirmation":"\xbfSeguro que desea volver persistentes los transportes seleccionados?","make-selected-non-persistent-confirmation":"\xbfSeguro que desea volver no persistentes los transportes seleccionados?","make-offline-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte? No seguir\xe1 siendo mostrado en la lista mientras se encuentre offline.","delete-confirmation":"\xbfSeguro que desea borrar el transporte?","delete-persistent-confirmation":"Este transporte es persistente, as\xed que puede ser recreado poco despu\xe9s de ser borrado. \xbfSeguro que desea borrarlo?","delete-selected-confirmation":"\xbfSeguro que desea borrar los transportes seleccionados?","delete":"Borrar transporte","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ning\xfan transporte.","empty-with-filter":"Ningun transporte coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","persistent":"Persistente:","id":"ID:","local-pk":"Llave p\xfablica local:","remote-pk":"Llave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmisi\xf3n de datos","uploaded":"Datos enviados:","downloaded":"Datos recibidos:"}},"dialog":{"remote-key":"Llave p\xfablica remota","label":"Nombre del transporte (opcional)","transport-type":"Tipo de transporte","make-persistent":"Hacer persistente","persistent-tooltip":"Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","only-persistent-created":"El transporte persistente fue creado, pero podr\xeda no haber sido activado.","success":"Transporte creado.","success-without-label":"El transporte fue creado, pero no fue posible guardar la etiqueta.","errors":{"remote-key-length-error":"La llave p\xfablica remota debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica remota s\xf3lo debe contener caracteres hexadecimales.","transport-type-error":"El tipo de transporte es requerido."}},"filter-dialog":{"persistent":"El transporte debe ser","id":"El id debe contener","remote-node":"La llave remota debe contener","persistent-options":{"any":"Cualquiera","persistent":"Persistente","non-persistent":"No persistente"}}},"routes":{"title":"Rutas","info":"Caminos utilizados para llegar a los visores remotos con los que se han establecido transportes. Las rutas se generan autom\xe1ticamente seg\xfan sea necesario.","list-title":"Lista de rutas","key":"Llave","type":"Tipo","source":"Inicio","destination":"Destino","delete-confirmation":"\xbfSeguro que desea borrar la ruta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las rutas seleccionadas?","delete":"Borrar ruta","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ninguna ruta.","empty-with-filter":"Ninguna ruta coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","key":"Llave:","rule":"Regla:"},"summary":{"title":"Resumen de regla","keep-alive":"Keep alive:","type":"Tipo de regla:","key-route-id":"ID de la llave de la ruta:"},"specific-fields-titles":{"app":"Campos de applicaci\xf3n","forward":"Campos de reenv\xedo","intermediary-forward":"Campos de reenv\xedo intermedio"},"specific-fields":{"route-id":"ID de la siguiente ruta:","transport-id":"ID del siguiente transporte:","destination-pk":"Llave p\xfablica de destino:","source-pk":"Llave p\xfablica de origen:","destination-port":"Puerto de destino:","source-port":"Puerto de origen:"}},"filter-dialog":{"key":"La llave debe contener","type":"El tipo debe ser","source":"El inicio debe contener","destination":"El destino debe contener","any-type-option":"Cualquiera"}},"copy":{"tooltip":"Presione para copiar","tooltip-with-text":"{{ text }} (Presione para copiar)","copied":"\xa1Copiado!"},"selection":{"select-all":"Seleccionar todo","unselect-all":"Deseleccionar todo","delete-all":"Borrar los elementos seleccionados","start-all":"Iniciar las apps seleccionadas","stop-all":"Detener las apps seleccionadas","enable-autostart-all":"Habilitar el autoinicio de las apps seleccionadas","disable-autostart-all":"Deshabilitar el autoinicio de las apps seleccionadas"},"refresh-button":{"seconds":"Refrescado hace unos segundos","minute":"Refrescado hace un minuto","minutes":"Refrescado hace {{ time }} minutos","hour":"Refrescado hace una hora","hours":"Refrescado hace {{ time }} horas","day":"Refrescado hace un d\xeda","days":"Refrescado hace {{ time }} d\xedas","week":"Refrescado hace una semana","weeks":"Refrescado hace {{ time }} semanas","error-tooltip":"Hubo un error al intentar refrescar los datos. Reintentando autom\xe1ticamente cada {{ time }} segundos..."},"view-all-link":{"label":"Ver todos los {{ number }} elementos"},"paginator":{"first":"Primera","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Seleccionar p\xe1gina"},"confirmation":{"header-text":"Confirmaci\xf3n","confirm-button":"S\xed","cancel-button":"No","close":"Cerrar","error-header-text":"Error","done-header-text":"Hecho"},"language":{"title":"Seleccionar lenguaje"},"tabs-window":{"title":"Cambiar pesta\xf1a"},"vpn":{"title":"Panel de Control de VPN","start":"Inicio","servers":"Servidores","settings":"Configuracion","unnamed":"Sin nombre","starting-blocked-server-error":"No se puede conectar con el servidor seleccionado porque se ha agregado a la lista de servidores bloqueados.","unexpedted-error":"Se produjo un error inesperado y no se pudo completar la operaci\xf3n.","remote-access-title":"Parece que est\xe1 accediendo al sistema de manera remota","remote-access-text":"Esta aplicaci\xf3n s\xf3lo permite administrar la protecci\xf3n VPN del dispositivo en el que fue instalada. Los cambios hechos con ella no afectar\xe1n a dispositivos remotos como el que parece estar usando. Tambi\xe9n es posible que los datos de IP que se muestren sean incorrectos.","server-change":{"busy-error":"El sistema est\xe1 ocupado. Por favor, espere.","backend-error":"No fue posible cambiar el servidor. Por favor, aseg\xfarese de que la clave p\xfablica sea correcta y de que la aplicaci\xf3n VPN se est\xe9 ejecutando.","already-selected-warning":"El servidor seleccionado ya est\xe1 siendo utilizando.","change-server-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se cambia el servidor y algunos datos pueden transmitirse sin protecci\xf3n durante el proceso. \xbfDesea continuar?","start-same-server-confirmation":"Ya hab\xeda seleccionado ese servidor. \xbfDesea conectarte a \xe9l?"},"error-page":{"text":"La aplicaci\xf3n de cliente VPN no est\xe1 disponible.","more-info":"No fue posible conectarse a la aplicaci\xf3n cliente VPN. Esto puede deberse a un error de configuraci\xf3n, un problema inesperado con el visor o porque utiliz\xf3 una clave p\xfablica no v\xe1lida en la URL.","text-pk":"Configuraci\xf3n inv\xe1lida.","more-info-pk":"La aplicaci\xf3n no puede ser iniciada porque no ha especificado la clave p\xfablica del visor.","text-storage":"Error al guardar los datos.","more-info-storage":"Ha habido un conflicto al intentar guardar los datos y la aplicaci\xf3n se ha cerrado para prevenir errores. Esto puede suceder si abre la aplicaci\xf3n en m\xe1s de una pesta\xf1a o ventana.","text-pk-change":"Operaci\xf3n inv\xe1lida.","more-info-pk-change":"Por favor, utilice esta aplicaci\xf3n para administrar s\xf3lo un cliente VPN."},"connection-info":{"state-title":"El estado de tu conexi\xf3n es actualmente:","state-connecting":"Conectando","state-connecting-info":"Se est\xe1 activando la protecci\xf3n VPN.","state-connected":"Conectado","state-connected-info":"La protecci\xf3n VPN est\xe1 activada.","state-disconnecting":"Desconectando","state-disconnecting-info":"Se est\xe1 desactivando la protecci\xf3n VPN.","state-reconnecting":"Reconectando","state-reconnecting-info":"Se est\xe1 restaurando la protecci\xf3n de VPN.","state-disconnected":"Desconectado","state-disconnected-info":"La protecci\xf3n VPN est\xe1 desactivada.","state-info":"Estado actual de la conexi\xf3n.","latency-info":"Latencia actual.","upload-info":"Velocidad de subida.","download-info":"Velocidad de descarga."},"connection-error":{"text":"Error de conexi\xf3n","info":"Problema conectando con la app vpn. Algunos datos mostrados podr\xedan estar desactualizados."},"status-page":{"start-title":"Iniciar VPN","no-server":"\xa1Ning\xfan servidor seleccionado!","disconnect":"Desconectar","last-error":"\xdaltimo error:","unknown-error":"Error desconocido.","disconnect-confirmation":"\xbfRealmente desea detener la protecci\xf3n VPN?","upload-info":"Estad\xedsticas de datos subidos.","download-info":"Estad\xedsticas de datos descargados.","latency-info":"Estad\xedsticas de latencia.","total-data-label":"total","problem-connecting-error":"No fue posible conectarse al servidor. El servidor puede no ser v\xe1lido o estar temporalmente inactivo.","problem-starting-error":"No fue posible iniciar la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","problem-stopping-error":"No fue posible detener la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","generic-problem-error":"No fue posible realizar la operaci\xf3n. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","select-server-warning":"Por favor, seleccione un servidor primero.","data":{"ip":"Direcci\xf3n IP:","ip-problem-info":"Hubo un problema al intentar obtener la IP. Por favor, verif\xedquela utilizando un servicio externo.","ip-country-problem-info":"Hubo un problema al intentar obtener el pa\xeds. Por favor, verif\xedquelo utilizando un servicio externo.","ip-refresh-info":"Refrescar","ip-refresh-time-warning":"Por favor, espere {{ seconds }} segundo(s) antes de refrescar los datos.","ip-refresh-loading-warning":"Por favor, espere a que finalice la operaci\xf3n anterior.","country":"Pa\xeds:","server":"Servidor:","server-note":"Nota del servidor:","original-server-note":"Nota original del servidor:","local-pk":"Llave p\xfablica del visor local:","remote-pk":"Llave p\xfablica del visor remoto:","unavailable":"No disponible"}},"server-options":{"tooltip":"Opciones","connect-without-password":"Conectarse sin contrase\xf1a","connect-without-password-confirmation":"La conexi\xf3n se realizar\xe1 sin la contrase\xf1a. \xbfSeguro que desea continuar?","connect-using-password":"Conectarse usando una contrase\xf1a","connect-using-another-password":"Conectarse usando otra contrase\xf1a","edit-name":"Nombre personalizado","edit-label":"Nota personalizada","make-favorite":"Hacer favorito","make-favorite-confirmation":"\xbfRealmente desea marcar este servidor como favorito? Se eliminar\xe1 de la lista de bloqueados.","make-favorite-done":"Agregado a la lista de favoritos.","remove-from-favorites":"Quitar de favoritos","remove-from-favorites-done":"Eliminado de la lista de favoritos.","block":"Bloquear servidor","block-done":"Agregado a la lista de bloqueados.","block-confirmation":"\xbfRealmente desea bloquear este servidor? Se eliminar\xe1 de la lista de favoritos.","block-selected-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones.","block-selected-favorite-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones y se eliminar\xe1 de la lista de favoritos.","unblock":"Desbloquear servidor","unblock-done":"Eliminado de la lista de bloqueados.","remove-from-history":"Quitar del historial","remove-from-history-confirmation":"\xbfRealmente desea quitar del historial el servidor?","remove-from-history-done":"Eliminado del historial.","edit-value":{"name-title":"Nombre Personalizado","note-title":"Nota Personalizada","name-label":"Nombre personalizado","note-label":"Nota personalizada","apply-button":"Aplicar","changes-made-confirmation":"Se ha realizado el cambio."}},"server-conditions":{"selected-info":"Este es el servidor actualmente seleccionado.","blocked-info":"Este servidor est\xe1 en la lista de bloqueados.","favorite-info":"Este servidor est\xe1 en la lista de favoritos.","history-info":"Este servidor est\xe1 en el historial de servidores.","has-password-info":"Se estableci\xf3 una contrase\xf1a para conectarse con este servidor."},"server-list":{"date-small-table-label":"Fecha","date-info":"\xdaltima vez en la que us\xf3 este servidor.","country-small-table-label":"Pa\xeds","country-info":"Pa\xeds donde se encuentra el servidor.","name-small-table-label":"Nombre","location-small-table-label":"Ubicaci\xf3n","public-key-small-table-label":"Lp","public-key-info":"Llave p\xfablica del servidor.","congestion-rating-small-table-label":"Calificaci\xf3n de congesti\xf3n","congestion-rating-info":"Calificaci\xf3n del servidor relacionada con lo congestionado que suele estar.","congestion-small-table-label":"Congesti\xf3n","congestion-info":"Congesti\xf3n actual del servidor.","latency-rating-small-table-label":"Calificaci\xf3n de latencia","latency-rating-info":"Calificaci\xf3n del servidor relacionada con la latencia que suele tener.","latency-small-table-label":"Latencia","latency-info":"Latencia actual del servidor.","hops-small-table-label":"Saltos","hops-info":"Cu\xe1ntos saltos se necesitan para conectarse con el servidor.","note-small-table-label":"Nota","note-info":"Nota acerca del servidor.","gold-rating-info":"Oro","silver-rating-info":"Plata","bronze-rating-info":"Bronce","notes-info":"Nota personalizada: {{ custom }} - Nota original: {{ original }}","empty-discovery":"Actualmente no hay servidores VPN para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","empty-history":"No hay historial que mostrar.","empty-favorites":"No hay servidores favoritos para mostrar.","empty-blocked":"No hay servidores bloqueados para mostrar.","empty-with-filter":"Ning\xfan servidor VPN coincide con los criterios de filtrado seleccionados.","add-manually-info":"Agregar el servidor manualmente.","current-filters":"Filtros actuales (presione para eliminar)","none":"Ninguno","unknown":"Desconocido","tabs":{"public":"P\xfablicos","history":"Historial","favorites":"Favoritos","blocked":"Bloqueados"},"add-server-dialog":{"title":"Ingresar manualmente","pk-label":"Llave p\xfablica del servidor","password-label":"Contrase\xf1a del servidor (si tiene)","name-label":"Nombre del servidor (opcional)","note-label":"Nota personal (opcional)","pk-length-error":"La llave p\xfablica debe tener 66 caracteres.","pk-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","use-server-button":"Usar servidor"},"password-dialog":{"title":"Introducir Contrase\xf1a","password-if-any-label":"Contrase\xf1a del servidor (si tiene)","password-label":"Contrase\xf1a del servidor","continue-button":"Continuar"},"filter-dialog":{"country":"El pa\xeds debe ser","name":"El nombre debe contener","location":"La ubicaci\xf3n debe contener","public-key":"La llave p\xfablica debe contener","congestion-rating":"La calificaci\xf3n de congesti\xf3n debe ser","latency-rating":"La calificaci\xf3n de latencia debe ser","rating-options":{"any":"Cualquiera","gold":"Oro","silver":"Plata","bronze":"Bronce"},"country-options":{"any":"Cualquiera"}}},"settings-page":{"setting-small-table-label":"Ajuste","value-small-table-label":"Valor","killswitch":"Killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN es interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","get-ip":"Obtener informaci\xf3n de IP","get-ip-info":"Cuando est\xe1 activa, la aplicaci\xf3n utilizar\xe1 servicios externos para obtener informaci\xf3n sobre la IP actual.","data-units":"Unidades de datos","data-units-info":"Permite seleccionar las unidades que se utilizar\xe1n para mostrar las estad\xedsticas de transmisi\xf3n de datos.","minimum-hops":"Saltos m\xednimos","minimum-hops-info":"Permite configurar la cantidad m\xednima de saltos que la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final.","setting-on":"Encendido","setting-off":"Apagado","working-warning":"El sistema est\xe1 ocupado. Por favor, espere a que finalice la operaci\xf3n anterior.","change-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se realiza el cambio. \xbfDesea continuar?","data-units-modal":{"title":"Unidades de Datos","only-bits":"Bits para todas las estad\xedsticas","only-bytes":"Bytes para todas las estad\xedsticas","bits-speed-and-bytes-volume":"Bits para velocidad y bytes para volumen (predeterminado)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/268.a17065c92eb396da.js b/cmd/skywire-visor/static/268.a17065c92eb396da.js
deleted file mode 100644
index f58236e72a..0000000000
--- a/cmd/skywire-visor/static/268.a17065c92eb396da.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[268],{4268:function(e){e.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","downloaded":"Recibido","uploaded":"Enviado","loading-error":"Hubo un error obteniendo los datos. Reintentando...","operation-error":"Hubo un error al intentar completar la operaci\xf3n.","no-connection-error":"No hay conexi\xf3n a Internet o conexi\xf3n con el hipervisor.","error":"Error:","refreshed":"Datos refrescados.","options":"Opciones","logout":"Cerrar sesi\xf3n","logout-error":"Error cerrando la sesi\xf3n.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"S\xed","no":"No","unknown":"Desconocido","close":"Cerrar","window-size-error":"La ventana es demasiado estrecha para el contenido."},"labeled-element":{"edit-label":"Editar etiqueta","remove-label":"Remover etiqueta","copy":"Copiar","remove-label-confirmation":"\xbfRealmente desea eliminar la etiqueta?","unnamed-element":"Sin nombre","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Haga clic para copiar la entrada o cambiar la etiqueta","tooltip-with-text":"{{ text }} (Haga clic para copiar la entrada o cambiar la etiqueta)"},"labels":{"title":"Etiquetas","info":"Etiquetas que ha introducido para identificar f\xe1cilmente visores, transportes y otros elementos, en lugar de tener que leer identificadores generados por una m\xe1quina.","list-title":"Lista de etiquetas","label":"Etiqueta","id":"ID del elemento","type":"Tipo","delete-confirmation":"\xbfSeguro que desea borrar la etiqueta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las etiquetas seleccionados?","delete":"Borrar etiqueta","deleted":"Operaci\xf3n de borrado completada.","empty":"No hay etiquetas guardadas.","empty-with-filter":"Ninguna etiqueta coincide con los criterios de filtrado seleccionados.","filter-dialog":{"label":"La etiqueta debe contener","id":"El id debe contener","type":"El tipo debe ser","type-options":{"any":"Cualquiera","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtrar","filter-info":"Lista de filtros.","press-to-remove":"(Presione para remover los filtros)","remove-confirmation":"\xbfSeguro que desea remover los filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"Etiqueta","label":"(etiqueta)","inverted-order":"(invertido)"},"start":{"title":"Inicio"},"node":{"title":"Detalles del visor","not-found":"Visor no encontrado.","statuses":{"online":"Online","online-tooltip":"El visor se encuentra online.","connecting":"Conectando","connecting-tooltip":"El visor se encuentra online, pero todav\xeda est\xe1 conectando con el uptime tracker.","unknown":"Desconocido","unknown-tooltip":"El visor se encuentra online, pero no ha sido posible determinar si est\xe1 conectado con el uptime tracker.","partially-online":"Online con problemas","partially-online-tooltip":"El visor se encuentra online, pero desconectado del uptime tracker.","offline":"Offline","offline-tooltip":"El visor se encuentra offline."},"details":{"node-info":{"title":"Informaci\xf3n del visor","label":"Etiqueta:","public-key":"Llave p\xfablica:","symmetic-nat":"NAT sim\xe9trica:","public-ip":"IP p\xfablica:","ip":"IP:","dmsg-server":"Servidor DMSG:","ping":"Ping:","node-version":"Versi\xf3n del visor:","build-type":"Tipo de build:","skybian-version":"Versi\xf3n de Skybian:","unknown-build":"Desconocido","time":{"title":"Tiempo online:","seconds":"unos segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 d\xeda","days":"{{ time }} d\xedas","week":"1 semana","weeks":"{{ time }} semanas"}},"transports-info":{"title":"Informaci\xf3n de Transportes","autoconnect":"Autoconectar:","autoconnect-info":"Al activarse, el visor crear\xe1 autom\xe1ticamente los transportes necesarios cuando se solicite la conexi\xf3n a un visor p\xfablico. Al desactivarse, los transportes deber\xe1n ser creados antes de poder establecer la conexi\xf3n.","enabled":"Activado","disabled":"Desactivado","enable-button":"Activar","disable-button":"Desactivar","enable-confirmation":"\xbfSeguro que desea activar la funci\xf3n de autoconectar?","disable-confirmation":"\xbfSeguro que desea desactivar la funci\xf3n de autoconectar?","enable-done":"La funci\xf3n de autoconectar ha sido activada.","disable-done":"La funci\xf3n de autoconectar ha sido desactivada."},"router-info":{"title":"Informaci\xf3n del Enrutador","min-hops":"Saltos m\xednimos:","max-hops":"Saltos m\xe1ximos:","change-config-button":"Cambiar configuraci\xf3n"},"node-health":{"title":"Informaci\xf3n de Salud","status":"Estatus:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Datos de tr\xe1fico"},"tabs":{"info":"Info","apps":"Apps","routing":"Enrutamiento"},"error-load":"Hubo un error al intentar refrescar los datos. Reintentando..."},"router-config":{"title":"Configuraci\xf3n del Enrutador","info":"Aqu\xed podr\xe1 configurar cuantos saltos la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final. NOTA: los cambios no afectar\xe1n a las rutas ya existentes.","min-hops":"Saltos m\xednimos","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."},"nodes":{"title":"Lista de visores","dmsg-title":"DMSG","update-all":"Actualizar todos los visores online","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado actual","label":"Etiqueta","key":"Llave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor es el Hypervisor actual.","copy-key":"Copiar llave","copy-dmsg":"Copiar llave DMSG","copy-data":"Copiar datos","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos los visores offline","error-load":"Hubo un error al intentar refrescar la lista. Reintentando...","empty":"No hay ning\xfan visor conectado a este hypervisor.","empty-with-filter":"Ningun visor coincide con los criterios de filtrado seleccionados.","delete-node-confirmation":"\xbfSeguro que desea remover el visor de la lista?","delete-all-offline-confirmation":"\xbfSeguro que desea remover todos los visores offline de la lista?","delete-all-filtered-offline-confirmation":"Todos los visores offline que satisfagan los criterios de filtrado actuales ser\xe1n removidos de la lista. \xbfSeguro que desea continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"No hay visores para actualizar.","filter-dialog":{"online":"El visor debe estar","label":"La etiqueta debe contener","key":"La llave debe contener","dmsg":"La llave del servidor DMSG debe contener","online-options":{"any":"Online u offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Etiqueta","done":"Etiqueta guardada.","label-removed-warning":"La etiqueta fue removida."},"settings":{"title":"Configuraci\xf3n","password":{"initial-config-help":"Use esta opci\xf3n para establecer la contrase\xf1a inicial. Despu\xe9s de establecer una contrase\xf1a no es posible usar esta opci\xf3n para modificarla.","help":"Opciones para cambiar la contrase\xf1a.","old-password":"Contrase\xf1a actual","new-password":"Nueva contrase\xf1a","repeat-password":"Repita la contrase\xf1a","password-changed":"Contrase\xf1a cambiada.","error-changing":"Error cambiando la contrase\xf1a.","initial-config":{"title":"Establecer contrase\xf1a inicial","password":"Contrase\xf1a","repeat-password":"Repita la contrase\xf1a","set-password":"Establecer contrase\xf1a","done":"Contrase\xf1a establecida. Por favor \xfasela para acceder al sistema.","error":"Error. Por favor aseg\xfarese de que no hubiese establecido la contrase\xf1a anteriormente."},"errors":{"bad-old-password":"La contrase\xf1a actual introducida no es correcta.","old-password-required":"La contrase\xf1a actual es requerida.","new-password-error":"La contrase\xf1a debe tener entre 6 y 64 caracteres.","passwords-not-match":"Las contrase\xf1as no coinciden.","default-password":"No utilice la contrase\xf1a por defecto (1234)."}},"updater-config":{"open-link":"Mostrar la configuraci\xf3n del actualizador","open-confirmation":"La configuraci\xf3n del actualizador es s\xf3lo para usuarios experimentados. Seguro que desea continuar?","help":"Utilice este formulario para modificar la configuraci\xf3n que utilizar\xe1 el actualizador. Se ignorar\xe1n todos los campos vac\xedos. La configuraci\xf3n se utilizar\xe1 para todas las operaciones de actualizaci\xf3n, sin importar qu\xe9 elemento se est\xe9 actualizando, as\xed que por favor tenga cuidado.","channel":"Canal","version":"Versi\xf3n","archive-url":"URL del archivo","checksum-url":"URL del checksum","not-saved":"Los cambios a\xfan no se han guardado.","save":"Guardar cambios","remove-settings":"Remover la configuraci\xf3n","saved":"Las configuracion personalizada ha sido guardada.","removed":"Las configuracion personalizada ha sido removida.","save-confirmation":"\xbfSeguro que desea aplicar la configuraci\xf3n personalizada?","remove-confirmation":"\xbfSeguro que desea remover la configuraci\xf3n personalizada?"},"change-password":"Cambiar contrase\xf1a","refresh-rate":"Frecuencia de refrescado","refresh-rate-help":"Tiempo que el sistema espera para actualizar autom\xe1ticamente los datos.","refresh-rate-confirmation":"Frecuencia de refrescado cambiada.","seconds":"segundos"},"login":{"password":"Contrase\xf1a","incorrect-password":"Contrase\xf1a incorrecta.","initial-config":"Configurar lanzamiento inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configuraci\xf3n","update":"Actualizar","reboot":"Reiniciar","logs":"Ver logs"},"reboot":{"confirmation":"\xbfSeguro que desea reiniciar el visor?","done":"El visor se est\xe1 reiniciando."},"update":{"confirmation":"Una terminal ser\xe1 abierta en una nueva pesta\xf1a y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente. \xbfDesea continuar?"},"terminal-options":{"full":"Terminal completa","simple":"Terminal simple"},"terminal":{"title":"Terminal","input-start":"Terminal de Skywire para {{address}}","error":"Error inesperado mientras se intentaba ejecutar el comando."}},"update":{"title":"Actualizar","error-title":"Error","processing":"Buscando actualizaciones...","no-update":"No hay ninguna actualizaci\xf3n para el visor. La versi\xf3n instalada actualmente es:","no-updates":"No se encontraron nuevas actualizaciones.","already-updating":"Algunos visores ya est\xe1n siendo actualizandos:","with-error":"No fue posible verificar los siguientes visores:","update-available":"Las siguientes actualizaciones fueron encontradas:","update-available-singular":"Las siguientes actualizaciones para 1 visor fueron encontradas:","update-available-plural":"Las siguientes actualizaciones para {{ number }} visores fueron encontradas:","update-available-additional-singular":"Las siguientes actualizaciones adicionales para 1 visor fueron encontradas:","update-available-additional-plural":"Las siguientes actualizaciones adicionales para {{ number }} visores fueron encontradas:","update-instructions":"Haga clic en el bot\xf3n \'Instalar actualizaciones\' para continuar.","updating":"La operaci\xf3n de actualizaci\xf3n se ha iniciado, puede abrir esta ventana nuevamente para verificar el progreso:","version-change":"De {{ currentVersion }} a {{ newVersion }}","selected-channel":"Canal seleccionado:","downloaded-file-name-prefix":"Descargando: ","speed-prefix":"Velocidad: ","time-downloading-prefix":"Tiempo descargando: ","time-left-prefix":"Tiempo aprox. faltante: ","starting":"Preparando para actualizar","finished":"Conexi\xf3n de estado terminada","install":"Instalar actualizaciones"},"update-all":{"title":"Actualizar","updatable-list-text":"Por favor, presione los botones de los visores que desea actualizar. Una terminal ser\xe1 abierta en una nueva pesta\xf1a por cada visor y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente.","non-updatable-list-text":"Los siguientes visores no pueden ser actualizados v\xeda la terminal:","update-button":"Actualizar"},"apps":{"log":{"title":"Log","empty":"No hay mensajes de log para el rango de fecha seleccionado.","filter-button":"Mostrando s\xf3lo logs generados desde:","filter":{"title":"Filtro","filter":"Mostrar s\xf3lo logs generados desde","7-days":"Los \xfaltimos 7 d\xedas","1-month":"Los \xfaltimos 30 d\xedas","3-months":"Los \xfaltimos 3 meses","6-months":"Los \xfaltimos 6 meses","1-year":"El \xfaltimo a\xf1o","all":"mostrar todos"}},"apps-list":{"title":"Aplicaciones","list-title":"Lista de aplicaciones","app-name":"Nombre","port":"Puerto","state":"Estado","state-tooltip":"Estado actual","auto-start":"Autoinicio","empty":"El visor no tiene ninguna aplicaci\xf3n.","empty-with-filter":"Ninguna app coincide con los criterios de filtrado seleccionados.","disable-autostart":"Deshabilitar autoinicio","enable-autostart":"Habilitar autoinicio","autostart-disabled":"Autoinicio deshabilitado","autostart-enabled":"Autoinicio habilitado","unavailable-logs-error":"No es posible mostrar los logs mientras la aplicaci\xf3n no se est\xe1 ejecutando.","filter-dialog":{"state":"El estado debe ser","name":"El nombre debe contener","port":"El puerto debe contener","autostart":"El autoinicio debe estar","state-options":{"any":"Iniciada o detenida","running":"Iniciada","stopped":"Detenida"},"autostart-options":{"any":"Activado or desactivado","enabled":"Activado","disabled":"Desactivado"}}},"vpn-socks-server-settings":{"socks-title":"Configuraci\xf3n de Skysocks","vpn-title":"Configuraci\xf3n de VPN-Server","new-password":"Nueva contrase\xf1a (dejar en blanco para eliminar la contrase\xf1a)","repeat-password":"Repita la contrase\xf1a","netifc":"Interfaz de red predeterminada (opcional)","passwords-not-match":"Las contrase\xf1as no coinciden.","secure-mode-check":"Usar modo seguro","secure-mode-info":"Cuando est\xe1 activo, el servidor no permite SSH con los clientes y no permite ning\xfan tr\xe1fico de clientes VPN a la red local del servidor.","save":"Guardar","remove-passowrd-confirmation":"Ha dejado el campo de contrase\xf1a vac\xedo. \xbfSeguro que desea eliminar la contrase\xf1a?","change-passowrd-confirmation":"\xbfSeguro que desea cambiar la contrase\xf1a?","changes-made":"Los cambios han sido realizados."},"vpn-socks-client-settings":{"socks-title":"Configuraci\xf3n de Skysocks-Client","vpn-title":"Configuraci\xf3n de VPN-Client","discovery-tab":"Buscar","remote-visor-tab":"Introducir manualmente","settings-tab":"Configuracion","history-tab":"Historial","use":"Usar estos datos","change-note":"Cambiar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Introducido manualmente","note-obtained":"Obtenido del servicio de descubrimiento","key":"Llave:","port":"Puerto:","location":"Ubicaci\xf3n:","state-available":"Disponible","state-offline":"Offline","public-key":"Llave p\xfablica del visor remoto","password":"Contrase\xf1a","password-history-warning":"Nota: la contrase\xf1a no se guardar\xe1 en el historial.","copy-pk-info":"Copiar la llave p\xfablica.","copied-pk-info":"La llave p\xfablica ha sido copiada.","copy-pk-error":"Hubo un problema al intentar cambiar la llave p\xfablica.","no-elements":"Actualmente no hay elementos para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","no-elements-for-filters":"No hay elementos que cumplan los criterios de filtro.","no-filter":"No se ha seleccionado ning\xfan filtro","click-to-change":"Haga clic para cambiar","remote-key-length-error":"La llave p\xfablica debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","save":"Guardar","remove-from-history-confirmation":"\xbfSeguro de que desea eliminar la entrada del historial?","change-key-confirmation":"\xbfSeguro que desea cambiar la llave p\xfablica del visor remoto?","changes-made":"Los cambios han sido realizados.","no-history":"Esta pesta\xf1a mostrar\xe1 las \xfaltimas {{ number }} llaves p\xfablicas usadas.","default-note-warning":"La nota por defecto ha sido utilizada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","killswitch-check":"Activar killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN est\xe1 interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","settings-changed-alert":"Los cambios a\xfan no se han guardado.","save-settings":"Guardar configuracion","change-note-dialog":{"title":"Cambiar Nota","note":"Nota"},"password-dialog":{"title":"Introducir Contrase\xf1a","password":"Contrase\xf1a","info":"Se le solicita una contrase\xf1a porque una contrase\xf1a fue utilizada cuando se cre\xf3 la entrada seleccionada, pero no fue guardada por razones de seguridad. Puede dejar la contrase\xf1a vac\xeda si es necesario.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"El pa\xeds debe ser","any-country":"Cualquiera","location":"La ubicaci\xf3n debe contener","pub-key":"La llave p\xfablica debe contener","apply":"Aplicar"}},"stop-app":"Detener","start-app":"Iniciar","view-logs":"Ver logs","settings":"Configuraci\xf3n","open":"Abrir","error":"Se produjo un error y no fue posible realizar la operaci\xf3n.","stop-confirmation":"\xbfSeguro que desea detener la aplicaci\xf3n?","stop-selected-confirmation":"\xbfSeguro que desea detener las aplicaciones seleccionadas?","disable-autostart-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de la aplicaci\xf3n?","enable-autostart-confirmation":"\xbfSeguro que desea habilitar el autoinicio de la aplicaci\xf3n?","disable-autostart-selected-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de las aplicaciones seleccionadas?","enable-autostart-selected-confirmation":"\xbfSeguro que desea habilitar el autoinicio de las aplicaciones seleccionadas?","operation-completed":"Operaci\xf3n completada.","operation-unnecessary":"La selecci\xf3n ya tiene la configuraci\xf3n solicitada.","status-running":"Corriendo","status-connecting":"Conectando","status-stopped":"Detenida","status-failed":"Finaliz\xf3 con el siguiente error: {{ error }}","status-running-tooltip":"La aplicaci\xf3n est\xe1 actualmente corriendo","status-connecting-tooltip":"La aplicaci\xf3n est\xe1 actualmente conectando","status-stopped-tooltip":"La aplicaci\xf3n est\xe1 actualmente detenida","status-failed-tooltip":"La app finaliz\xf3 con el siguiente error: {{ error }}"},"transports":{"title":"Transportes","info":"Conexiones que tiene con visores remotos de Skywire, para permitir que las aplicaciones Skywire locales se comuniquen con las aplicaciones que se ejecutan en esos visores remotos.","list-title":"Lista de transportes","offline":"Offline","persistent":"Persistente","persistent-tooltip":"Transportes persistentes, los cuales son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-button-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n. Presione aqu\xed para volverlo no persistente.","non-persistent-transport-button-tooltip":"Presione aqu\xed para volver persistente el transporte. Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","make-persistent":"Volver persistente","make-non-persistent":"Volver no persistente","make-selected-persistent":"Volver persistentes los seleccionados","make-selected-non-persistent":"Volver no persistentes los seleccionados","changes-made":"Cambios hechos.","no-changes-needed":"Ning\xfan cambio fue necesario.","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Crear transporte","make-persistent-confirmation":"\xbfSeguro que desea volver persistente el transporte?","make-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte?","make-selected-persistent-confirmation":"\xbfSeguro que desea volver persistentes los transportes seleccionados?","make-selected-non-persistent-confirmation":"\xbfSeguro que desea volver no persistentes los transportes seleccionados?","make-offline-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte? No seguir\xe1 siendo mostrado en la lista mientras se encuentre offline.","delete-confirmation":"\xbfSeguro que desea borrar el transporte?","delete-persistent-confirmation":"Este transporte es persistente, as\xed que puede ser recreado poco despu\xe9s de ser borrado. \xbfSeguro que desea borrarlo?","delete-selected-confirmation":"\xbfSeguro que desea borrar los transportes seleccionados?","delete":"Borrar transporte","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ning\xfan transporte.","empty-with-filter":"Ningun transporte coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","persistent":"Persistente:","id":"ID:","local-pk":"Llave p\xfablica local:","remote-pk":"Llave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmisi\xf3n de datos","uploaded":"Datos enviados:","downloaded":"Datos recibidos:"}},"dialog":{"remote-key":"Llave p\xfablica remota","label":"Nombre del transporte (opcional)","transport-type":"Tipo de transporte","make-persistent":"Hacer persistente","persistent-tooltip":"Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","only-persistent-created":"El transporte persistente fue creado, pero podr\xeda no haber sido activado.","success":"Transporte creado.","success-without-label":"El transporte fue creado, pero no fue posible guardar la etiqueta.","errors":{"remote-key-length-error":"La llave p\xfablica remota debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica remota s\xf3lo debe contener caracteres hexadecimales.","transport-type-error":"El tipo de transporte es requerido."}},"filter-dialog":{"persistent":"El transporte debe ser","id":"El id debe contener","remote-node":"La llave remota debe contener","persistent-options":{"any":"Cualquiera","persistent":"Persistente","non-persistent":"No persistente"}}},"routes":{"title":"Rutas","info":"Caminos utilizados para llegar a los visores remotos con los que se han establecido transportes. Las rutas se generan autom\xe1ticamente seg\xfan sea necesario.","list-title":"Lista de rutas","key":"Llave","type":"Tipo","source":"Inicio","destination":"Destino","delete-confirmation":"\xbfSeguro que desea borrar la ruta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las rutas seleccionadas?","delete":"Borrar ruta","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ninguna ruta.","empty-with-filter":"Ninguna ruta coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","key":"Llave:","rule":"Regla:"},"summary":{"title":"Resumen de regla","keep-alive":"Keep alive:","type":"Tipo de regla:","key-route-id":"ID de la llave de la ruta:"},"specific-fields-titles":{"app":"Campos de applicaci\xf3n","forward":"Campos de reenv\xedo","intermediary-forward":"Campos de reenv\xedo intermedio"},"specific-fields":{"route-id":"ID de la siguiente ruta:","transport-id":"ID del siguiente transporte:","destination-pk":"Llave p\xfablica de destino:","source-pk":"Llave p\xfablica de origen:","destination-port":"Puerto de destino:","source-port":"Puerto de origen:"}},"filter-dialog":{"key":"La llave debe contener","type":"El tipo debe ser","source":"El inicio debe contener","destination":"El destino debe contener","any-type-option":"Cualquiera"}},"copy":{"tooltip":"Presione para copiar","tooltip-with-text":"{{ text }} (Presione para copiar)","copied":"\xa1Copiado!"},"selection":{"select-all":"Seleccionar todo","unselect-all":"Deseleccionar todo","delete-all":"Borrar los elementos seleccionados","start-all":"Iniciar las apps seleccionadas","stop-all":"Detener las apps seleccionadas","enable-autostart-all":"Habilitar el autoinicio de las apps seleccionadas","disable-autostart-all":"Deshabilitar el autoinicio de las apps seleccionadas"},"refresh-button":{"seconds":"Refrescado hace unos segundos","minute":"Refrescado hace un minuto","minutes":"Refrescado hace {{ time }} minutos","hour":"Refrescado hace una hora","hours":"Refrescado hace {{ time }} horas","day":"Refrescado hace un d\xeda","days":"Refrescado hace {{ time }} d\xedas","week":"Refrescado hace una semana","weeks":"Refrescado hace {{ time }} semanas","error-tooltip":"Hubo un error al intentar refrescar los datos. Reintentando autom\xe1ticamente cada {{ time }} segundos..."},"view-all-link":{"label":"Ver todos los {{ number }} elementos"},"paginator":{"first":"Primera","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Seleccionar p\xe1gina"},"confirmation":{"header-text":"Confirmaci\xf3n","confirm-button":"S\xed","cancel-button":"No","close":"Cerrar","error-header-text":"Error","done-header-text":"Hecho"},"language":{"title":"Seleccionar lenguaje"},"tabs-window":{"title":"Cambiar pesta\xf1a"},"vpn":{"title":"Panel de Control de VPN","start":"Inicio","servers":"Servidores","settings":"Configuracion","unnamed":"Sin nombre","starting-blocked-server-error":"No se puede conectar con el servidor seleccionado porque se ha agregado a la lista de servidores bloqueados.","unexpedted-error":"Se produjo un error inesperado y no se pudo completar la operaci\xf3n.","remote-access-title":"Parece que est\xe1 accediendo al sistema de manera remota","remote-access-text":"Esta aplicaci\xf3n s\xf3lo permite administrar la protecci\xf3n VPN del dispositivo en el que fue instalada. Los cambios hechos con ella no afectar\xe1n a dispositivos remotos como el que parece estar usando. Tambi\xe9n es posible que los datos de IP que se muestren sean incorrectos.","server-change":{"busy-error":"El sistema est\xe1 ocupado. Por favor, espere.","backend-error":"No fue posible cambiar el servidor. Por favor, aseg\xfarese de que la clave p\xfablica sea correcta y de que la aplicaci\xf3n VPN se est\xe9 ejecutando.","already-selected-warning":"El servidor seleccionado ya est\xe1 siendo utilizando.","change-server-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se cambia el servidor y algunos datos pueden transmitirse sin protecci\xf3n durante el proceso. \xbfDesea continuar?","start-same-server-confirmation":"Ya hab\xeda seleccionado ese servidor. \xbfDesea conectarte a \xe9l?"},"error-page":{"text":"La aplicaci\xf3n de cliente VPN no est\xe1 disponible.","more-info":"No fue posible conectarse a la aplicaci\xf3n cliente VPN. Esto puede deberse a un error de configuraci\xf3n, un problema inesperado con el visor o porque utiliz\xf3 una clave p\xfablica no v\xe1lida en la URL.","text-pk":"Configuraci\xf3n inv\xe1lida.","more-info-pk":"La aplicaci\xf3n no puede ser iniciada porque no ha especificado la clave p\xfablica del visor.","text-storage":"Error al guardar los datos.","more-info-storage":"Ha habido un conflicto al intentar guardar los datos y la aplicaci\xf3n se ha cerrado para prevenir errores. Esto puede suceder si abre la aplicaci\xf3n en m\xe1s de una pesta\xf1a o ventana.","text-pk-change":"Operaci\xf3n inv\xe1lida.","more-info-pk-change":"Por favor, utilice esta aplicaci\xf3n para administrar s\xf3lo un cliente VPN."},"connection-info":{"state-title":"El estado de tu conexi\xf3n es actualmente:","state-connecting":"Conectando","state-connecting-info":"Se est\xe1 activando la protecci\xf3n VPN.","state-connected":"Conectado","state-connected-info":"La protecci\xf3n VPN est\xe1 activada.","state-disconnecting":"Desconectando","state-disconnecting-info":"Se est\xe1 desactivando la protecci\xf3n VPN.","state-reconnecting":"Reconectando","state-reconnecting-info":"Se est\xe1 restaurando la protecci\xf3n de VPN.","state-disconnected":"Desconectado","state-disconnected-info":"La protecci\xf3n VPN est\xe1 desactivada.","state-info":"Estado actual de la conexi\xf3n.","latency-info":"Latencia actual.","upload-info":"Velocidad de subida.","download-info":"Velocidad de descarga."},"connection-error":{"text":"Error de conexi\xf3n","info":"Problema conectando con la app vpn. Algunos datos mostrados podr\xedan estar desactualizados."},"status-page":{"start-title":"Iniciar VPN","no-server":"\xa1Ning\xfan servidor seleccionado!","disconnect":"Desconectar","last-error":"\xdaltimo error:","unknown-error":"Error desconocido.","disconnect-confirmation":"\xbfRealmente desea detener la protecci\xf3n VPN?","upload-info":"Estad\xedsticas de datos subidos.","download-info":"Estad\xedsticas de datos descargados.","latency-info":"Estad\xedsticas de latencia.","total-data-label":"total","problem-connecting-error":"No fue posible conectarse al servidor. El servidor puede no ser v\xe1lido o estar temporalmente inactivo.","problem-starting-error":"No fue posible iniciar la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","problem-stopping-error":"No fue posible detener la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","generic-problem-error":"No fue posible realizar la operaci\xf3n. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","select-server-warning":"Por favor, seleccione un servidor primero.","data":{"ip":"Direcci\xf3n IP:","ip-problem-info":"Hubo un problema al intentar obtener la IP. Por favor, verif\xedquela utilizando un servicio externo.","ip-country-problem-info":"Hubo un problema al intentar obtener el pa\xeds. Por favor, verif\xedquelo utilizando un servicio externo.","ip-refresh-info":"Refrescar","ip-refresh-time-warning":"Por favor, espere {{ seconds }} segundo(s) antes de refrescar los datos.","ip-refresh-loading-warning":"Por favor, espere a que finalice la operaci\xf3n anterior.","country":"Pa\xeds:","server":"Servidor:","server-note":"Nota del servidor:","original-server-note":"Nota original del servidor:","local-pk":"Llave p\xfablica del visor local:","remote-pk":"Llave p\xfablica del visor remoto:","unavailable":"No disponible"}},"server-options":{"tooltip":"Opciones","connect-without-password":"Conectarse sin contrase\xf1a","connect-without-password-confirmation":"La conexi\xf3n se realizar\xe1 sin la contrase\xf1a. \xbfSeguro que desea continuar?","connect-using-password":"Conectarse usando una contrase\xf1a","connect-using-another-password":"Conectarse usando otra contrase\xf1a","edit-name":"Nombre personalizado","edit-label":"Nota personalizada","make-favorite":"Hacer favorito","make-favorite-confirmation":"\xbfRealmente desea marcar este servidor como favorito? Se eliminar\xe1 de la lista de bloqueados.","make-favorite-done":"Agregado a la lista de favoritos.","remove-from-favorites":"Quitar de favoritos","remove-from-favorites-done":"Eliminado de la lista de favoritos.","block":"Bloquear servidor","block-done":"Agregado a la lista de bloqueados.","block-confirmation":"\xbfRealmente desea bloquear este servidor? Se eliminar\xe1 de la lista de favoritos.","block-selected-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones.","block-selected-favorite-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones y se eliminar\xe1 de la lista de favoritos.","unblock":"Desbloquear servidor","unblock-done":"Eliminado de la lista de bloqueados.","remove-from-history":"Quitar del historial","remove-from-history-confirmation":"\xbfRealmente desea quitar del historial el servidor?","remove-from-history-done":"Eliminado del historial.","edit-value":{"name-title":"Nombre Personalizado","note-title":"Nota Personalizada","name-label":"Nombre personalizado","note-label":"Nota personalizada","apply-button":"Aplicar","changes-made-confirmation":"Se ha realizado el cambio."}},"server-conditions":{"selected-info":"Este es el servidor actualmente seleccionado.","blocked-info":"Este servidor est\xe1 en la lista de bloqueados.","favorite-info":"Este servidor est\xe1 en la lista de favoritos.","history-info":"Este servidor est\xe1 en el historial de servidores.","has-password-info":"Se estableci\xf3 una contrase\xf1a para conectarse con este servidor."},"server-list":{"date-small-table-label":"Fecha","date-info":"\xdaltima vez en la que us\xf3 este servidor.","country-small-table-label":"Pa\xeds","country-info":"Pa\xeds donde se encuentra el servidor.","name-small-table-label":"Nombre","location-small-table-label":"Ubicaci\xf3n","public-key-small-table-label":"Lp","public-key-info":"Llave p\xfablica del servidor.","congestion-rating-small-table-label":"Calificaci\xf3n de congesti\xf3n","congestion-rating-info":"Calificaci\xf3n del servidor relacionada con lo congestionado que suele estar.","congestion-small-table-label":"Congesti\xf3n","congestion-info":"Congesti\xf3n actual del servidor.","latency-rating-small-table-label":"Calificaci\xf3n de latencia","latency-rating-info":"Calificaci\xf3n del servidor relacionada con la latencia que suele tener.","latency-small-table-label":"Latencia","latency-info":"Latencia actual del servidor.","hops-small-table-label":"Saltos","hops-info":"Cu\xe1ntos saltos se necesitan para conectarse con el servidor.","note-small-table-label":"Nota","note-info":"Nota acerca del servidor.","gold-rating-info":"Oro","silver-rating-info":"Plata","bronze-rating-info":"Bronce","notes-info":"Nota personalizada: {{ custom }} - Nota original: {{ original }}","empty-discovery":"Actualmente no hay servidores VPN para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","empty-history":"No hay historial que mostrar.","empty-favorites":"No hay servidores favoritos para mostrar.","empty-blocked":"No hay servidores bloqueados para mostrar.","empty-with-filter":"Ning\xfan servidor VPN coincide con los criterios de filtrado seleccionados.","add-manually-info":"Agregar el servidor manualmente.","current-filters":"Filtros actuales (presione para eliminar)","none":"Ninguno","unknown":"Desconocido","tabs":{"public":"P\xfablicos","history":"Historial","favorites":"Favoritos","blocked":"Bloqueados"},"add-server-dialog":{"title":"Ingresar manualmente","pk-label":"Llave p\xfablica del servidor","password-label":"Contrase\xf1a del servidor (si tiene)","name-label":"Nombre del servidor (opcional)","note-label":"Nota personal (opcional)","pk-length-error":"La llave p\xfablica debe tener 66 caracteres.","pk-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","use-server-button":"Usar servidor"},"password-dialog":{"title":"Introducir Contrase\xf1a","password-if-any-label":"Contrase\xf1a del servidor (si tiene)","password-label":"Contrase\xf1a del servidor","continue-button":"Continuar"},"filter-dialog":{"country":"El pa\xeds debe ser","name":"El nombre debe contener","location":"La ubicaci\xf3n debe contener","public-key":"La llave p\xfablica debe contener","congestion-rating":"La calificaci\xf3n de congesti\xf3n debe ser","latency-rating":"La calificaci\xf3n de latencia debe ser","rating-options":{"any":"Cualquiera","gold":"Oro","silver":"Plata","bronze":"Bronce"},"country-options":{"any":"Cualquiera"}}},"settings-page":{"setting-small-table-label":"Ajuste","value-small-table-label":"Valor","killswitch":"Killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN es interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","get-ip":"Obtener informaci\xf3n de IP","get-ip-info":"Cuando est\xe1 activa, la aplicaci\xf3n utilizar\xe1 servicios externos para obtener informaci\xf3n sobre la IP actual.","data-units":"Unidades de datos","data-units-info":"Permite seleccionar las unidades que se utilizar\xe1n para mostrar las estad\xedsticas de transmisi\xf3n de datos.","minimum-hops":"Saltos m\xednimos","minimum-hops-info":"Permite configurar la cantidad m\xednima de saltos que la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final.","setting-on":"Encendido","setting-off":"Apagado","working-warning":"El sistema est\xe1 ocupado. Por favor, espere a que finalice la operaci\xf3n anterior.","change-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se realiza el cambio. \xbfDesea continuar?","data-units-modal":{"title":"Unidades de Datos","only-bits":"Bits para todas las estad\xedsticas","only-bytes":"Bytes para todas las estad\xedsticas","bits-speed-and-bytes-volume":"Bits para velocidad y bytes para volumen (predeterminado)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/3rdpartylicenses.txt b/cmd/skywire-visor/static/3rdpartylicenses.txt
index 573adbf1fa..df858e0490 100644
--- a/cmd/skywire-visor/static/3rdpartylicenses.txt
+++ b/cmd/skywire-visor/static/3rdpartylicenses.txt
@@ -66,32 +66,6 @@ MIT
@angular/router
MIT
-@babel/runtime
-MIT
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
@ngx-translate/core
MIT
diff --git a/cmd/skywire-visor/static/431.7c14efbe17d051f7.js b/cmd/skywire-visor/static/431.7c14efbe17d051f7.js
deleted file mode 100644
index 91a9ea864a..0000000000
--- a/cmd/skywire-visor/static/431.7c14efbe17d051f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[431],{3431:function(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unknown","close":"Close"},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"Visor is online.","partially-online":"Online with problems","partially-online-tooltip":"Visor is online but not all services are working. For more information, open the details page and check the \\"Health info\\" section.","offline":"Offline","offline-tooltip":"Visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"node-health":{"title":"Health info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem).","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-stopped":"Stopped","status-failed":"Failed","status-running-tooltip":"App is currently running","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"Something went wrong. Check the app\'s messages for more information"},"transports":{"title":"Transports","remove-all-offline":"Remove all offline transports","remove-all-offline-confirmation":"Are you sure you want to remove all offline transports?","remove-all-filtered-offline-confirmation":"All offline transports satisfying the current filtering criteria will be removed. Are you sure you want to continue?","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","state":"State","state-tooltip":"Current state","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","delete-confirmation":"Are you sure you want to delete the transport?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","statuses":{"online":"Online","online-tooltip":"Transport is online","offline":"Offline","offline-tooltip":"Transport is offline"},"details":{"title":"Details","basic":{"title":"Basic info","state":"State:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"online":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/431.859df310b58bc96b.js b/cmd/skywire-visor/static/431.859df310b58bc96b.js
new file mode 100644
index 0000000000..de8d20e955
--- /dev/null
+++ b/cmd/skywire-visor/static/431.859df310b58bc96b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[431],{3431:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unknown","close":"Close"},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"Visor is online.","partially-online":"Online with problems","partially-online-tooltip":"Visor is online but not all services are working. For more information, open the details page and check the \\"Health info\\" section.","offline":"Offline","offline-tooltip":"Visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"node-health":{"title":"Health info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem).","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-stopped":"Stopped","status-failed":"Failed","status-running-tooltip":"App is currently running","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"Something went wrong. Check the app\'s messages for more information"},"transports":{"title":"Transports","remove-all-offline":"Remove all offline transports","remove-all-offline-confirmation":"Are you sure you want to remove all offline transports?","remove-all-filtered-offline-confirmation":"All offline transports satisfying the current filtering criteria will be removed. Are you sure you want to continue?","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","state":"State","state-tooltip":"Current state","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","delete-confirmation":"Are you sure you want to delete the transport?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","statuses":{"online":"Online","online-tooltip":"Transport is online","offline":"Offline","offline-tooltip":"Transport is offline"},"details":{"title":"Details","basic":{"title":"Basic info","state":"State:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"online":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/48.1bb60b158d93cf7f.js b/cmd/skywire-visor/static/48.1bb60b158d93cf7f.js
new file mode 100644
index 0000000000..583e02b6df
--- /dev/null
+++ b/cmd/skywire-visor/static/48.1bb60b158d93cf7f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[48],{7048:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unknown","close":"Close"},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"Visor is online.","partially-online":"Online with problems","partially-online-tooltip":"Visor is online but not all services are working. For more information, open the details page and check the \\"Health info\\" section.","offline":"Offline","offline-tooltip":"Visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","port":"Port:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"node-health":{"title":"Health info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem).","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-stopped":"Stopped","status-failed":"Failed","status-running-tooltip":"App is currently running","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"Something went wrong. Check the app\'s messages for more information"},"transports":{"title":"Transports","remove-all-offline":"Remove all offline transports","remove-all-offline-confirmation":"Are you sure you want to remove all offline transports?","remove-all-filtered-offline-confirmation":"All offline transports satisfying the current filtering criteria will be removed. Are you sure you want to continue?","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","state":"State","state-tooltip":"Current state","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","delete-confirmation":"Are you sure you want to delete the transport?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","statuses":{"online":"Online","online-tooltip":"Transport is online","offline":"Offline","offline-tooltip":"Transport is offline"},"details":{"title":"Details","basic":{"title":"Basic info","state":"State:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"online":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/48.e4209ce5b3b864c8.js b/cmd/skywire-visor/static/48.e4209ce5b3b864c8.js
deleted file mode 100644
index 4117a49816..0000000000
--- a/cmd/skywire-visor/static/48.e4209ce5b3b864c8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[48],{7048:function(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unknown","close":"Close"},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"Visor is online.","partially-online":"Online with problems","partially-online-tooltip":"Visor is online but not all services are working. For more information, open the details page and check the \\"Health info\\" section.","offline":"Offline","offline-tooltip":"Visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","port":"Port:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"node-health":{"title":"Health info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem).","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-stopped":"Stopped","status-failed":"Failed","status-running-tooltip":"App is currently running","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"Something went wrong. Check the app\'s messages for more information"},"transports":{"title":"Transports","remove-all-offline":"Remove all offline transports","remove-all-offline-confirmation":"Are you sure you want to remove all offline transports?","remove-all-filtered-offline-confirmation":"All offline transports satisfying the current filtering criteria will be removed. Are you sure you want to continue?","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","state":"State","state-tooltip":"Current state","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","delete-confirmation":"Are you sure you want to delete the transport?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","statuses":{"online":"Online","online-tooltip":"Transport is online","offline":"Offline","offline-tooltip":"Transport is offline"},"details":{"title":"Details","basic":{"title":"Basic info","state":"State:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"online":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/502.8f399c4d17e1a00c.js b/cmd/skywire-visor/static/502.8f399c4d17e1a00c.js
deleted file mode 100644
index 7154323453..0000000000
--- a/cmd/skywire-visor/static/502.8f399c4d17e1a00c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[502],{502:function(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","uptime-tracker":"Uptime tracker:","connected":"Connected","disconnected":"Disconnected"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/502.e715733024006b44.js b/cmd/skywire-visor/static/502.e715733024006b44.js
new file mode 100644
index 0000000000..f64a393e0b
--- /dev/null
+++ b/cmd/skywire-visor/static/502.e715733024006b44.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[502],{502:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","uptime-tracker":"Uptime tracker:","connected":"Connected","disconnected":"Disconnected"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/634.3594ed6527ccf574.js b/cmd/skywire-visor/static/634.3594ed6527ccf574.js
deleted file mode 100644
index 18aab924f9..0000000000
--- a/cmd/skywire-visor/static/634.3594ed6527ccf574.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[634],{3634:function(e){e.exports=JSON.parse('{"common":{"save":"Speichern","cancel":"Abbrechen","downloaded":"Heruntergeladen","uploaded":"Hochgeladen","loading-error":"Beim Laden der Daten ist ein Fehler aufgetreten. Versuche es erneut...","operation-error":"Beim Ausf\xfchren der Aktion ist ein Fehler aufgetreten.","no-connection-error":"Es ist keine Internetverbindung oder Verbindung zum Hypervisor vorhanden.","error":"Fehler:","refreshed":"Daten aktualisiert.","options":"Optionen","logout":"Abmelden","logout-error":"Fehler beim Abmelden.","logout-confirmation":"Wirklich abmelden?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unbekannt","close":"Schlie\xdfen"},"labeled-element":{"edit-label":"Bezeichnung \xe4ndern","remove-label":"Bezeichnung l\xf6schen","copy":"Kopieren","remove-label-confirmation":"Bezeichnung wirklich l\xf6schen?","unnamed-element":"Unbenannt","unnamed-local-visor":"Lokaler Visor","local-element":"Lokal","tooltip":"Klicken um Eintrag zu kopieren oder Bezeichnung zu \xe4ndern","tooltip-with-text":"{{ text }} (Klicken um Eintrag zu kopieren oder Bezeichnung zu \xe4ndern)"},"labels":{"title":"Bezeichnung","info":"Bezeichnungen, die eingegeben wurden um Visor, Transporte und andere Elemente einfach wiederzuerkennen.","list-title":"Bezeichnunen Liste","label":"Bezeichnung","id":"Element ID","type":"Typ","delete-confirmation":"Diese Bezeichnung wirklich l\xf6schen?","delete-selected-confirmation":"Ausgew\xe4hlte Bezeichnungen wirklich l\xf6schen?","delete":"Bezeichnung l\xf6schen","deleted":"Bezeichnung gel\xf6scht.","empty":"Keine gespeicherten Bezeichnungen vorhanden.","empty-with-filter":"Keine Bezeichnung erf\xfcllt die gew\xe4hlten Filterkriterien.","filter-dialog":{"label":"Die Bezeichnung muss beinhalten","id":"Die ID muss beinhalten","type":"Der Typ muss sein","type-options":{"any":"Jeder","visor":"Visor","dmsg-server":"DMSG Server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Dr\xfccken um Filter zu l\xf6schen)","remove-confirmation":"Filter wirkliche l\xf6schen?"},"tables":{"title":"Ordnen nach","sorting-title":"Geordnet nach:","sort-by-value":"Wert","sort-by-label":"Bezeichnung","label":"(Bezeichnung)","inverted-order":"(Umgekehrt)"},"start":{"title":"Start"},"node":{"title":"Visor Details","not-found":"Visor nicht gefunden.","statuses":{"online":"Online","online-tooltip":"Visor ist online","partially-online":"Online mit Problemen","partially-online-tooltip":"Visor ist online, aber nicht alle Dienste laufen. F\xfcr Informationen bitte die Details Seite \xf6ffnen und die \\"Zustand Info\\" \xfcberpr\xfcfen.","offline":"Offline","offline-tooltip":"Visor ist offline"},"details":{"node-info":{"title":"Visor Info","label":"Bezeichnung:","public-key":"\xd6ffentlicher Schl\xfcssel:","dmsg-server":"DMSG Server:","ping":"Ping:","node-version":"Visor Version:","time":{"title":"Online seit:","seconds":"ein paar Sekunden","minute":"1 Minute","minutes":"{{ time }} Minuten","hour":"1 Stunde","hours":"{{ time }} Stunden","day":"1 Tag","days":"{{ time }} Tage","week":"1 Woche","weeks":"{{ time }} Wochen"}},"node-health":{"title":"Zustand Info","status":"Status:","transport-discovery":"Transport Entdeckung:","route-finder":"Route Finder:","setup-node":"Setup Visor:","uptime-tracker":"Verf\xfcgbarkeitsmonitor:","address-resolver":"Addressaufl\xf6ser:","element-offline":"offline"},"node-traffic-data":"Datenverkehr"},"tabs":{"info":"Info","apps":"Anwendungen","routing":"Routing"},"error-load":"Beim Aktualisieren der Visordaten ist ein Fehler aufgetreten."},"nodes":{"title":"Visor Liste","dmsg-title":"DMSG","update-all":"Alle Visor aktualisieren","hypervisor":"Hypervisor","state":"Status","state-tooltip":"Aktueller Status","label":"Bezeichnung","key":"Schl\xfcssel","dmsg-server":"DMSG Server","ping":"Ping","hypervisor-info":"Dieser Visor ist der aktuelle Hypervisor.","copy-key":"Schl\xfcssel kopieren","copy-dmsg":"DMSG Server Schl\xfcssel kopieren","copy-data":"Daten kopieren","view-node":"Visor betrachten","delete-node":"Visor l\xf6schen","delete-all-offline":"Alle offline Visor l\xf6schen","error-load":"Beim Aktualisieren der Visor-Liste ist ein Fehler aufgetreten.","empty":"Es ist kein Visor zu diesem Hypervisor verbunden.","empty-with-filter":"Kein Visor erf\xfcllt die gew\xe4hlten Filterkriterien","delete-node-confirmation":"Visor wirklich von der Liste l\xf6schen?","delete-all-offline-confirmation":"Wirklich alle offline Visor von der Liste l\xf6schen?","delete-all-filtered-offline-confirmation":"Alle offline Visor, welche die Filterkriterien erf\xfcllen werden von der Liste gel\xf6scht. Wirklich fortfahren?","deleted":"Visor gel\xf6scht.","deleted-singular":"Ein offline Visor gel\xf6scht.","deleted-plural":"{{ number }} offline Visor gel\xf6scht.","no-visors-to-update":"Kein Visor zum Aktualiseren vorhanden.","filter-dialog":{"online":"Der Visor muss","label":"Der Bezeichner muss enthalten","key":"Der \xf6ffentliche Schl\xfcssel muss enthalten","dmsg":"Der DMSG Server Schl\xfcssel muss enthalten","online-options":{"any":"Online oder offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Bezeichnung","done":"Bezeichnung gespeichert.","label-removed-warning":"Die Bezeichnung wurde gel\xf6scht."},"settings":{"title":"Einstellungen","password":{"initial-config-help":"Diese Option wird verwendet, um das erste Passwort festzulegen. Nachdem ein Passwort festgelegt wurde, ist es nicht m\xf6glich dieses, mit dieser Option zu \xe4ndern.","help":"Optionen um das Passwort zu \xe4ndern.","old-password":"Altes Passwort","new-password":"Neues Passwort","repeat-password":"Neues Passwort wiederholen","password-changed":"Passwort wurde ge\xe4ndert.","error-changing":"Fehler beim \xc4ndern des Passworts aufgetreten.","initial-config":{"title":"Erstes Passwort festlegen","password":"Passwort","repeat-password":"Passwort wiederholen","set-password":"Passwort \xe4ndern","done":"Passwort wurde ge\xe4ndert.","error":"Fehler. Es scheint ein erstes Passwort wurde schon gew\xe4hlt."},"errors":{"bad-old-password":"Altes Passwort falsch","old-password-required":"Altes Passwort wird ben\xf6tigt","new-password-error":"Passwort muss 6-64 Zeichen lang sein.","passwords-not-match":"Passw\xf6rter stimmen nicht \xfcberein.","default-password":"Das Standardpasswort darf nicht verwendet werden (1234)."}},"updater-config":{"open-link":"Aktualisierungseinstellungen anzeigen","open-confirmation":"Es wird nur erfahrenen Benutzern empfohlen, die Aktualisierungseinstellungen zu modifizieren. Wirkich fortfahren?","help":"Dieses Formular benutzen um Einstellungen f\xfcr die Aktualisierung zu \xfcberschreiben. Alle leeren Felder werden ignoriert. Die Einstellungen werden f\xfcr alle Aktualisierungen \xfcbernommen. Dies geschieht unabh\xe4ngig davon, welches Element aktualisiert wird. Bitte Vorsicht wahren.","channel":"Kanal","version":"Version","archive-url":"Archiv-URL","checksum-url":"Pr\xfcfsummen-URL","not-saved":"Die \xc4nderungen wurden noch nicht gespeichert.","save":"\xc4nderungen speichern","remove-settings":"Einstellungen l\xf6schen","saved":"Die benutzerdefinierten Einstellungen wurden gespeichert.","removed":"Die benutzerdefinierten Einstellungen wurden gel\xf6scht.","save-confirmation":"Wirklich die benutzerdefinierten Einstellungen anwenden?","remove-confirmation":"Wirklich die benutzerdefinierten Einstellungen l\xf6schen?"},"change-password":"Passwort \xe4ndern","refresh-rate":"Aktualisierungsintervall","refresh-rate-help":"Zeit, bis das System die Daten automatisch aktualisiert.","refresh-rate-confirmation":"Aktualisierungsintervall ge\xe4ndert.","seconds":"Sekunden"},"login":{"password":"Passwort","incorrect-password":"Falsches Passwort.","initial-config":"Erste Konfiguration"},"actions":{"menu":{"terminal":"Terminal","config":"Konfiguration","update":"Aktualisieren","reboot":"Neustart"},"reboot":{"confirmation":"Den Visor wirklich neustarten?","done":"Der Visor wird neu gestartet."},"terminal-options":{"full":"Terminal","simple":"Einfaches Terminal"},"terminal":{"title":"Terminal","input-start":"Skywire Terminal f\xfcr {{address}}","error":"Bei der Ausf\xfchrung des Befehls ist ein Fehler aufgetreten."}},"update":{"title":"Aktualisierung","error-title":"Error","processing":"Suche nach Aktualisierungen...","no-update":"Keine Aktualisierung vorhanden.
Installierte Version:","no-updates":"Keine neuen Aktualisierungen gefunden.","already-updating":"Einige Visor werden schon aktualisiert:","update-available":"Folgende Aktualisierungen wurden gefunden:","update-available-singular":"Folgende Aktualisierungen wurden f\xfcr einen Visor gefunden:","update-available-plural":"Folgende Aktualisierungen wurden f\xfcr {{ number }} Visor gefunden:","update-available-additional-singular":"Folgende zus\xe4tzliche Aktualisierungen f\xfcr einen Visor wurden gefunden:","update-available-additional-plural":"Folgende zus\xe4tzliche Aktualisierungen f\xfcr {{ number }} Visor wurden gefunden:","update-instructions":"\'Aktualisierungen installieren\' klicken um fortzufahren.","updating":"Die Aktualisierung wurde gestartet. Das Fenster kann erneut ge\xf6ffnet werden um den Fortschritt zu sehen:","version-change":"Von {{ currentVersion }} auf {{ newVersion }}","selected-channel":"Gew\xe4hlter Kanal:","downloaded-file-name-prefix":"Herunterladen: ","speed-prefix":"Geschwindigkeit: ","time-downloading-prefix":"Dauer: ","time-left-prefix":"Dauert ungef\xe4hr noch: ","starting":"Aktualisierung wird vorbereitet","finished":"Status Verbindung beendet","install":"Aktualisierungen installieren"},"apps":{"log":{"title":"Log","empty":"Im ausgew\xe4hlten Intervall sind keine Logs vorhanden","filter-button":"Log-Intervall:","filter":{"title":"Filter","filter":"Zeige generierte Logs","7-days":"der letzten 7 Tagen","1-month":"der letzten 30 Tagen","3-months":"der letzten 3 Monaten","6-months":"der letzten 6 Monaten","1-year":"des letzten Jahres","all":"Zeige alle"}},"apps-list":{"title":"Anwendungen","list-title":"Anwendungsliste","app-name":"Name","port":"Port","state":"Status","state-tooltip":"Aktueller Status","auto-start":"Auto-Start","empty":"Visor hat keine Anwendungen.","empty-with-filter":"Keine Anwendung erf\xfcllt die Filterkriterien","disable-autostart":"Autostart ausschalten","enable-autostart":"Autostart einschalten","autostart-disabled":"Autostart aus","autostart-enabled":"Autostart ein","unavailable-logs-error":"Kann Logs nicht zeigen, solange die Anwendung gestoppt ist.","filter-dialog":{"state":"Der Status muss sein","name":"Der Name muss enthalten","port":"Der Port muss enthalten","autostart":"Autostart muss sein","state-options":{"any":"L\xe4uft oder gestoppt","running":"L\xe4uft","stopped":"Gestoppt"},"autostart-options":{"any":"An oder Aus","enabled":"An","disabled":"Aus"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Einstellungen","vpn-title":"VPN-Server Einstellungen","new-password":"Neues Passwort (Um Passwort zu entfernen leer lassen)","repeat-password":"Passwort wiederholen","passwords-not-match":"Passw\xf6rter stimmen nicht \xfcberein.","secure-mode-check":"Sicherheitsmodus benutzen","secure-mode-info":"Wenn aktiv, erlaubt der Server kein Client/Server SSH und erlaubt kein Datenverkehr vom VPN-Client zum lokalen Netzwerk des Servers.","save":"Speichern","remove-passowrd-confirmation":"Kein Passwort eingegeben. Wirklich Passwort entfernen?","change-passowrd-confirmation":"Passwort wirklich \xe4ndern?","changes-made":"\xc4nderungen wurden gespeichert."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Einstellungen","vpn-title":"VPN-Client Einstellungen","discovery-tab":"Suche","remote-visor-tab":"Manuelle Eingabe","history-tab":"Verlauf","settings-tab":"Einstellungen","use":"Diese Daten benutzen","change-note":"Notiz \xe4ndern","remove-entry":"Eintrag l\xf6schen","note":"Notiz:","note-entered-manually":"Manuell eingegeben","note-obtained":"Von Discovery-Service erhalten","key":"Schl\xfcssel:","port":"Port:","location":"Ort:","state-available":"Verf\xfcgbar","state-offline":"Offline","public-key":"Remote Visor \xf6ffentlicher Schl\xfcssel","password":"Passwort","password-history-warning":"Achtung: Das Passwort wird nicht im Verlauf gespeichert.","copy-pk-info":"\xd6ffentlichen Schl\xfcssel kopieren.","copied-pk-info":"\xd6ffentlicher Schl\xfcssel wurde kopiert","copy-pk-error":"Beim Kopieren des \xf6ffentlichen Schl\xfcssels ist ein Problem aufgetreten.","no-elements":"Derzeit k\xf6nnen keine Elemente angezeigt werden. Bitte sp\xe4ter versuchen.","no-elements-for-filters":"Keine Elemente, welche die Filterkriterien erf\xfcllen.","no-filter":"Es wurde kein Filter gew\xe4hlt.","click-to-change":"Zum \xc4ndern klicken","remote-key-length-error":"Der \xf6ffentliche Schl\xfcssel muss 66 Zeichen lang sein.","remote-key-chars-error":"Der \xf6ffentliche Schl\xfcssel darf nur hexadezimale Zeichen enthalten.","save":"Speichern","remove-from-history-confirmation":"Eintrag wirklich aus dem Verlauf l\xf6schen?","change-key-confirmation":"Wirklich den \xf6ffentlichen Schl\xfcssel des remote Visors \xe4ndern?","changes-made":"\xc4nderungen wurden gespeichert.","no-history":"Dieser Tab zeigt die letzten {{ number }} \xf6ffentlichen Schl\xfcssel, die benutzt wurden.","default-note-warning":"Die Standardnotiz wurde nicht benutzt.","pagination-info":"{{ currentElementsRange }} von {{ totalElements }}","killswitch-check":"Killswitch aktivieren","killswitch-info":"Wenn aktiv, werden alle Netzwerkverbindungen deaktiviert falls die Anwendung l\xe4uft aber der VPN Schutz unterbrochen wird (f\xfcr tempor\xe4re Fehler oder andere Probleme).","settings-changed-alert":"Die \xc4nderungen wurden noch nicht gespeichert.","save-settings":"Einstellungen speichern","change-note-dialog":{"title":"Notiz \xe4ndern","note":"Notiz"},"password-dialog":{"title":"Passwort eingeben","password":"Passwort","info":"Ein Passwort wird abgefragt, da bei der Erstellung des gew\xe4hlten Eintrags ein Passwort gesetzt wurde, aus Sicherheitsgr\xfcnden aber nicht gespeichert wurde. Das Passwort kann frei gelassen werden.","continue-button":"Fortfahren"},"filter-dialog":{"title":"Filter","country":"Das Land muss sein","any-country":"Jedes","location":"Der Ort muss enthalten","pub-key":"Der \xf6ffentliche Schl\xfcssel muss enthalten","apply":"Anwenden"}},"stop-app":"Stopp","start-app":"Start","view-logs":"Zeige Logs","settings":"Einstellungen","error":"Ein Fehler ist aufgetreten.","stop-confirmation":"Anwendung wirklich anhalten?","stop-selected-confirmation":"Ausgew\xe4hlte Anwendung wirklich anhalten?","disable-autostart-confirmation":"Auto-Start f\xfcr diese Anwendung wirklich ausschalten?","enable-autostart-confirmation":"Auto-Start f\xfcr diese Anwendung wirklich einschalten?","disable-autostart-selected-confirmation":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen wirklich ausschalten?","enable-autostart-selected-confirmation":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen wirklich einschalten","operation-completed":"Operation ausgef\xfchrt","operation-unnecessary":"Gew\xfcnschte Einstellungen schon aktiv.","status-running":"L\xe4uft","status-stopped":"Gestoppt","status-failed":"Fehler","status-running-tooltip":"Anwendung l\xe4uft","status-stopped-tooltip":"Anwendung gestoppt","status-failed-tooltip":"Ein Fehler ist aufgetreten. Log der Anwendung \xfcberpr\xfcfen."},"transports":{"title":"Transporte","remove-all-offline":"Alle offline Transporte l\xf6schen","remove-all-offline-confirmation":"Wirkliche alle offline Transporte l\xf6schen?","remove-all-filtered-offline-confirmation":"Alle offline Transporte, welche die Filterkriterien erf\xfcllen werden gel\xf6scht. Wirklich fortfahren?","info":"Verbindungen mit remote Skywire Visor, um lokalen Skywire Anwendungen zu erlauben mit diesen remote Visor zu kommunizieren.","list-title":"Transport-Liste","state":"Status","state-tooltip":"Aktueller Status","id":"ID","remote-node":"Remote","type":"Typ","create":"Transport erstellen","delete-confirmation":"Transport wirklich entfernen?","delete-selected-confirmation":"Ausgew\xe4hlte Transporte wirklich entfernen?","delete":"Transport entfernen","deleted":"Transport erfolgreich entfernt.","empty":"Visor hat keine Transporte.","empty-with-filter":"Kein Transport erf\xfcllt die gew\xe4hlten Filterkriterien.","statuses":{"online":"Online","online-tooltip":"Transport ist online","offline":"Offline","offline-tooltip":"Transport ist offline"},"details":{"title":"Details","basic":{"title":"Basis Info","state":"Status:","id":"ID:","local-pk":"Lokaler \xf6ffentlicher Schl\xfcssel:","remote-pk":"Remote \xf6ffentlicher Schl\xfcssel:","type":"Typ:"},"data":{"title":"Daten\xfcbertragung","uploaded":"Hochgeladen:","downloaded":"Heruntergeladen:"}},"dialog":{"remote-key":"Remote \xf6ffentlicher Schl\xfcssel:","label":"Bezeichnung (optional)","transport-type":"Transport-Typ","success":"Transport erstellt.","success-without-label":"Der Transport wurde erstellt, aber die Bezeichnung konnte nicht gespeichert werden.","errors":{"remote-key-length-error":"Der remote \xf6ffentliche Schl\xfcssel muss 66 Zeichen lang sein.","remote-key-chars-error":"Der remote \xf6ffentliche Schl\xfcssel darf nur hexadezimale Zeichen enthalten.","transport-type-error":"Ein Transport-Typ wird ben\xf6tigt."}},"filter-dialog":{"online":"Der Transport muss sein","id":"Die ID muss enthalten","remote-node":"Der remote Schl\xfcssel muss enthalten","online-options":{"any":"Online oder offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routen","info":"Netzwerkpfade zum Erreichen von remote Visor. Routen werden bei Bedarf automatisch generiert.","list-title":"Routen-Liste","key":"Schl\xfcssel","type":"Typ","source":"Quelle","destination":"Ziel","delete-confirmation":"Diese Route wirklich entfernen?","delete-selected-confirmation":"Ausgew\xe4hlte Routen wirklich entfernen?","delete":"Route entfernen","deleted":"Route erfolgreich entfernt.","empty":"Visor hat keine Routen.","empty-with-filter":"Keine Route erf\xfcllt die gew\xe4hlten Filterkriterien.","details":{"title":"Details","basic":{"title":"Basis Info","key":"Schl\xfcssel:","rule":"Regel:"},"summary":{"title":"Regel Zusammenfassung","keep-alive":"Keep alive:","type":"Typ:","key-route-id":"Schl\xfcssel-Route ID:"},"specific-fields-titles":{"app":"Anwendung","forward":"Weiterleitung","intermediary-forward":"Vermittelte Weiterleitung"},"specific-fields":{"route-id":"N\xe4chste Routen ID:","transport-id":"N\xe4chste Transport ID:","destination-pk":"Ziel \xf6ffentlicher Schl\xfcssel:","source-pk":"Quelle \xf6ffentlicher Schl\xfcssel:","destination-port":"Ziel Port:","source-port":"Quelle Port:"}},"filter-dialog":{"key":"Der Schl\xfcssel muss enthalten","type":"Der Typ muss sein","source":"Die Quelle muss enhalten","destination":"Das Ziel muss enthalten","any-type-option":"Egal"}},"copy":{"tooltip":"In Zwischenablage kopieren","tooltip-with-text":"{{ text }} (In Zwischenablage kopieren)","copied":"In Zwischenablage kopiert!"},"selection":{"select-all":"Alle ausw\xe4hlen","unselect-all":"Alle abw\xe4hlen","delete-all":"Alle ausgew\xe4hlten Elemente entfernen","start-all":"Starte ausgew\xe4hlte Anwendung","stop-all":"Stoppe ausgew\xe4hlte Anwendung","enable-autostart-all":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen einschalten","disable-autostart-all":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen ausschalten"},"refresh-button":{"seconds":"K\xfcrzlich aktualisiert","minute":"Vor einer Minute aktualisiert","minutes":"Vor {{ time }} Minuten aktualisiert","hour":"Vor einer Stunde aktualisiert","hours":"Vor {{ time }} Stunden aktualisert","day":"Vor einem Tag aktualisiert","days":"Vor {{ time }} Tagen aktualisert","week":"Vor einer Woche aktualisiert","weeks":"Vor {{ time }} Wochen aktualisert","error-tooltip":"Fehler beim Aktualiseren aufgetreten. Versuche erneut alle {{ time }} Sekunden..."},"view-all-link":{"label":"Zeige alle {{ number }} Elemente"},"paginator":{"first":"Erste","last":"Letzte","total":"Insgesamt: {{ number }} Seiten","select-page-title":"Seite ausw\xe4hlen"},"confirmation":{"header-text":"Best\xe4tigung","confirm-button":"Ja","cancel-button":"Nein","close":"Schlie\xdfen","error-header-text":"Fehler","done-header-text":"Fertig"},"language":{"title":"Sprache ausw\xe4hlen"},"tabs-window":{"title":"Tab wechseln"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/634.9f8ff3633ebe9e11.js b/cmd/skywire-visor/static/634.9f8ff3633ebe9e11.js
new file mode 100644
index 0000000000..38874380c3
--- /dev/null
+++ b/cmd/skywire-visor/static/634.9f8ff3633ebe9e11.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[634],{3634:e=>{e.exports=JSON.parse('{"common":{"save":"Speichern","cancel":"Abbrechen","downloaded":"Heruntergeladen","uploaded":"Hochgeladen","loading-error":"Beim Laden der Daten ist ein Fehler aufgetreten. Versuche es erneut...","operation-error":"Beim Ausf\xfchren der Aktion ist ein Fehler aufgetreten.","no-connection-error":"Es ist keine Internetverbindung oder Verbindung zum Hypervisor vorhanden.","error":"Fehler:","refreshed":"Daten aktualisiert.","options":"Optionen","logout":"Abmelden","logout-error":"Fehler beim Abmelden.","logout-confirmation":"Wirklich abmelden?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Unbekannt","close":"Schlie\xdfen"},"labeled-element":{"edit-label":"Bezeichnung \xe4ndern","remove-label":"Bezeichnung l\xf6schen","copy":"Kopieren","remove-label-confirmation":"Bezeichnung wirklich l\xf6schen?","unnamed-element":"Unbenannt","unnamed-local-visor":"Lokaler Visor","local-element":"Lokal","tooltip":"Klicken um Eintrag zu kopieren oder Bezeichnung zu \xe4ndern","tooltip-with-text":"{{ text }} (Klicken um Eintrag zu kopieren oder Bezeichnung zu \xe4ndern)"},"labels":{"title":"Bezeichnung","info":"Bezeichnungen, die eingegeben wurden um Visor, Transporte und andere Elemente einfach wiederzuerkennen.","list-title":"Bezeichnunen Liste","label":"Bezeichnung","id":"Element ID","type":"Typ","delete-confirmation":"Diese Bezeichnung wirklich l\xf6schen?","delete-selected-confirmation":"Ausgew\xe4hlte Bezeichnungen wirklich l\xf6schen?","delete":"Bezeichnung l\xf6schen","deleted":"Bezeichnung gel\xf6scht.","empty":"Keine gespeicherten Bezeichnungen vorhanden.","empty-with-filter":"Keine Bezeichnung erf\xfcllt die gew\xe4hlten Filterkriterien.","filter-dialog":{"label":"Die Bezeichnung muss beinhalten","id":"Die ID muss beinhalten","type":"Der Typ muss sein","type-options":{"any":"Jeder","visor":"Visor","dmsg-server":"DMSG Server","transport":"Transport"}}},"filters":{"filter-action":"Filter","press-to-remove":"(Dr\xfccken um Filter zu l\xf6schen)","remove-confirmation":"Filter wirkliche l\xf6schen?"},"tables":{"title":"Ordnen nach","sorting-title":"Geordnet nach:","sort-by-value":"Wert","sort-by-label":"Bezeichnung","label":"(Bezeichnung)","inverted-order":"(Umgekehrt)"},"start":{"title":"Start"},"node":{"title":"Visor Details","not-found":"Visor nicht gefunden.","statuses":{"online":"Online","online-tooltip":"Visor ist online","partially-online":"Online mit Problemen","partially-online-tooltip":"Visor ist online, aber nicht alle Dienste laufen. F\xfcr Informationen bitte die Details Seite \xf6ffnen und die \\"Zustand Info\\" \xfcberpr\xfcfen.","offline":"Offline","offline-tooltip":"Visor ist offline"},"details":{"node-info":{"title":"Visor Info","label":"Bezeichnung:","public-key":"\xd6ffentlicher Schl\xfcssel:","dmsg-server":"DMSG Server:","ping":"Ping:","node-version":"Visor Version:","time":{"title":"Online seit:","seconds":"ein paar Sekunden","minute":"1 Minute","minutes":"{{ time }} Minuten","hour":"1 Stunde","hours":"{{ time }} Stunden","day":"1 Tag","days":"{{ time }} Tage","week":"1 Woche","weeks":"{{ time }} Wochen"}},"node-health":{"title":"Zustand Info","status":"Status:","transport-discovery":"Transport Entdeckung:","route-finder":"Route Finder:","setup-node":"Setup Visor:","uptime-tracker":"Verf\xfcgbarkeitsmonitor:","address-resolver":"Addressaufl\xf6ser:","element-offline":"offline"},"node-traffic-data":"Datenverkehr"},"tabs":{"info":"Info","apps":"Anwendungen","routing":"Routing"},"error-load":"Beim Aktualisieren der Visordaten ist ein Fehler aufgetreten."},"nodes":{"title":"Visor Liste","dmsg-title":"DMSG","update-all":"Alle Visor aktualisieren","hypervisor":"Hypervisor","state":"Status","state-tooltip":"Aktueller Status","label":"Bezeichnung","key":"Schl\xfcssel","dmsg-server":"DMSG Server","ping":"Ping","hypervisor-info":"Dieser Visor ist der aktuelle Hypervisor.","copy-key":"Schl\xfcssel kopieren","copy-dmsg":"DMSG Server Schl\xfcssel kopieren","copy-data":"Daten kopieren","view-node":"Visor betrachten","delete-node":"Visor l\xf6schen","delete-all-offline":"Alle offline Visor l\xf6schen","error-load":"Beim Aktualisieren der Visor-Liste ist ein Fehler aufgetreten.","empty":"Es ist kein Visor zu diesem Hypervisor verbunden.","empty-with-filter":"Kein Visor erf\xfcllt die gew\xe4hlten Filterkriterien","delete-node-confirmation":"Visor wirklich von der Liste l\xf6schen?","delete-all-offline-confirmation":"Wirklich alle offline Visor von der Liste l\xf6schen?","delete-all-filtered-offline-confirmation":"Alle offline Visor, welche die Filterkriterien erf\xfcllen werden von der Liste gel\xf6scht. Wirklich fortfahren?","deleted":"Visor gel\xf6scht.","deleted-singular":"Ein offline Visor gel\xf6scht.","deleted-plural":"{{ number }} offline Visor gel\xf6scht.","no-visors-to-update":"Kein Visor zum Aktualiseren vorhanden.","filter-dialog":{"online":"Der Visor muss","label":"Der Bezeichner muss enthalten","key":"Der \xf6ffentliche Schl\xfcssel muss enthalten","dmsg":"Der DMSG Server Schl\xfcssel muss enthalten","online-options":{"any":"Online oder offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Bezeichnung","done":"Bezeichnung gespeichert.","label-removed-warning":"Die Bezeichnung wurde gel\xf6scht."},"settings":{"title":"Einstellungen","password":{"initial-config-help":"Diese Option wird verwendet, um das erste Passwort festzulegen. Nachdem ein Passwort festgelegt wurde, ist es nicht m\xf6glich dieses, mit dieser Option zu \xe4ndern.","help":"Optionen um das Passwort zu \xe4ndern.","old-password":"Altes Passwort","new-password":"Neues Passwort","repeat-password":"Neues Passwort wiederholen","password-changed":"Passwort wurde ge\xe4ndert.","error-changing":"Fehler beim \xc4ndern des Passworts aufgetreten.","initial-config":{"title":"Erstes Passwort festlegen","password":"Passwort","repeat-password":"Passwort wiederholen","set-password":"Passwort \xe4ndern","done":"Passwort wurde ge\xe4ndert.","error":"Fehler. Es scheint ein erstes Passwort wurde schon gew\xe4hlt."},"errors":{"bad-old-password":"Altes Passwort falsch","old-password-required":"Altes Passwort wird ben\xf6tigt","new-password-error":"Passwort muss 6-64 Zeichen lang sein.","passwords-not-match":"Passw\xf6rter stimmen nicht \xfcberein.","default-password":"Das Standardpasswort darf nicht verwendet werden (1234)."}},"updater-config":{"open-link":"Aktualisierungseinstellungen anzeigen","open-confirmation":"Es wird nur erfahrenen Benutzern empfohlen, die Aktualisierungseinstellungen zu modifizieren. Wirkich fortfahren?","help":"Dieses Formular benutzen um Einstellungen f\xfcr die Aktualisierung zu \xfcberschreiben. Alle leeren Felder werden ignoriert. Die Einstellungen werden f\xfcr alle Aktualisierungen \xfcbernommen. Dies geschieht unabh\xe4ngig davon, welches Element aktualisiert wird. Bitte Vorsicht wahren.","channel":"Kanal","version":"Version","archive-url":"Archiv-URL","checksum-url":"Pr\xfcfsummen-URL","not-saved":"Die \xc4nderungen wurden noch nicht gespeichert.","save":"\xc4nderungen speichern","remove-settings":"Einstellungen l\xf6schen","saved":"Die benutzerdefinierten Einstellungen wurden gespeichert.","removed":"Die benutzerdefinierten Einstellungen wurden gel\xf6scht.","save-confirmation":"Wirklich die benutzerdefinierten Einstellungen anwenden?","remove-confirmation":"Wirklich die benutzerdefinierten Einstellungen l\xf6schen?"},"change-password":"Passwort \xe4ndern","refresh-rate":"Aktualisierungsintervall","refresh-rate-help":"Zeit, bis das System die Daten automatisch aktualisiert.","refresh-rate-confirmation":"Aktualisierungsintervall ge\xe4ndert.","seconds":"Sekunden"},"login":{"password":"Passwort","incorrect-password":"Falsches Passwort.","initial-config":"Erste Konfiguration"},"actions":{"menu":{"terminal":"Terminal","config":"Konfiguration","update":"Aktualisieren","reboot":"Neustart"},"reboot":{"confirmation":"Den Visor wirklich neustarten?","done":"Der Visor wird neu gestartet."},"terminal-options":{"full":"Terminal","simple":"Einfaches Terminal"},"terminal":{"title":"Terminal","input-start":"Skywire Terminal f\xfcr {{address}}","error":"Bei der Ausf\xfchrung des Befehls ist ein Fehler aufgetreten."}},"update":{"title":"Aktualisierung","error-title":"Error","processing":"Suche nach Aktualisierungen...","no-update":"Keine Aktualisierung vorhanden.
Installierte Version:","no-updates":"Keine neuen Aktualisierungen gefunden.","already-updating":"Einige Visor werden schon aktualisiert:","update-available":"Folgende Aktualisierungen wurden gefunden:","update-available-singular":"Folgende Aktualisierungen wurden f\xfcr einen Visor gefunden:","update-available-plural":"Folgende Aktualisierungen wurden f\xfcr {{ number }} Visor gefunden:","update-available-additional-singular":"Folgende zus\xe4tzliche Aktualisierungen f\xfcr einen Visor wurden gefunden:","update-available-additional-plural":"Folgende zus\xe4tzliche Aktualisierungen f\xfcr {{ number }} Visor wurden gefunden:","update-instructions":"\'Aktualisierungen installieren\' klicken um fortzufahren.","updating":"Die Aktualisierung wurde gestartet. Das Fenster kann erneut ge\xf6ffnet werden um den Fortschritt zu sehen:","version-change":"Von {{ currentVersion }} auf {{ newVersion }}","selected-channel":"Gew\xe4hlter Kanal:","downloaded-file-name-prefix":"Herunterladen: ","speed-prefix":"Geschwindigkeit: ","time-downloading-prefix":"Dauer: ","time-left-prefix":"Dauert ungef\xe4hr noch: ","starting":"Aktualisierung wird vorbereitet","finished":"Status Verbindung beendet","install":"Aktualisierungen installieren"},"apps":{"log":{"title":"Log","empty":"Im ausgew\xe4hlten Intervall sind keine Logs vorhanden","filter-button":"Log-Intervall:","filter":{"title":"Filter","filter":"Zeige generierte Logs","7-days":"der letzten 7 Tagen","1-month":"der letzten 30 Tagen","3-months":"der letzten 3 Monaten","6-months":"der letzten 6 Monaten","1-year":"des letzten Jahres","all":"Zeige alle"}},"apps-list":{"title":"Anwendungen","list-title":"Anwendungsliste","app-name":"Name","port":"Port","state":"Status","state-tooltip":"Aktueller Status","auto-start":"Auto-Start","empty":"Visor hat keine Anwendungen.","empty-with-filter":"Keine Anwendung erf\xfcllt die Filterkriterien","disable-autostart":"Autostart ausschalten","enable-autostart":"Autostart einschalten","autostart-disabled":"Autostart aus","autostart-enabled":"Autostart ein","unavailable-logs-error":"Kann Logs nicht zeigen, solange die Anwendung gestoppt ist.","filter-dialog":{"state":"Der Status muss sein","name":"Der Name muss enthalten","port":"Der Port muss enthalten","autostart":"Autostart muss sein","state-options":{"any":"L\xe4uft oder gestoppt","running":"L\xe4uft","stopped":"Gestoppt"},"autostart-options":{"any":"An oder Aus","enabled":"An","disabled":"Aus"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Einstellungen","vpn-title":"VPN-Server Einstellungen","new-password":"Neues Passwort (Um Passwort zu entfernen leer lassen)","repeat-password":"Passwort wiederholen","passwords-not-match":"Passw\xf6rter stimmen nicht \xfcberein.","secure-mode-check":"Sicherheitsmodus benutzen","secure-mode-info":"Wenn aktiv, erlaubt der Server kein Client/Server SSH und erlaubt kein Datenverkehr vom VPN-Client zum lokalen Netzwerk des Servers.","save":"Speichern","remove-passowrd-confirmation":"Kein Passwort eingegeben. Wirklich Passwort entfernen?","change-passowrd-confirmation":"Passwort wirklich \xe4ndern?","changes-made":"\xc4nderungen wurden gespeichert."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Einstellungen","vpn-title":"VPN-Client Einstellungen","discovery-tab":"Suche","remote-visor-tab":"Manuelle Eingabe","history-tab":"Verlauf","settings-tab":"Einstellungen","use":"Diese Daten benutzen","change-note":"Notiz \xe4ndern","remove-entry":"Eintrag l\xf6schen","note":"Notiz:","note-entered-manually":"Manuell eingegeben","note-obtained":"Von Discovery-Service erhalten","key":"Schl\xfcssel:","port":"Port:","location":"Ort:","state-available":"Verf\xfcgbar","state-offline":"Offline","public-key":"Remote Visor \xf6ffentlicher Schl\xfcssel","password":"Passwort","password-history-warning":"Achtung: Das Passwort wird nicht im Verlauf gespeichert.","copy-pk-info":"\xd6ffentlichen Schl\xfcssel kopieren.","copied-pk-info":"\xd6ffentlicher Schl\xfcssel wurde kopiert","copy-pk-error":"Beim Kopieren des \xf6ffentlichen Schl\xfcssels ist ein Problem aufgetreten.","no-elements":"Derzeit k\xf6nnen keine Elemente angezeigt werden. Bitte sp\xe4ter versuchen.","no-elements-for-filters":"Keine Elemente, welche die Filterkriterien erf\xfcllen.","no-filter":"Es wurde kein Filter gew\xe4hlt.","click-to-change":"Zum \xc4ndern klicken","remote-key-length-error":"Der \xf6ffentliche Schl\xfcssel muss 66 Zeichen lang sein.","remote-key-chars-error":"Der \xf6ffentliche Schl\xfcssel darf nur hexadezimale Zeichen enthalten.","save":"Speichern","remove-from-history-confirmation":"Eintrag wirklich aus dem Verlauf l\xf6schen?","change-key-confirmation":"Wirklich den \xf6ffentlichen Schl\xfcssel des remote Visors \xe4ndern?","changes-made":"\xc4nderungen wurden gespeichert.","no-history":"Dieser Tab zeigt die letzten {{ number }} \xf6ffentlichen Schl\xfcssel, die benutzt wurden.","default-note-warning":"Die Standardnotiz wurde nicht benutzt.","pagination-info":"{{ currentElementsRange }} von {{ totalElements }}","killswitch-check":"Killswitch aktivieren","killswitch-info":"Wenn aktiv, werden alle Netzwerkverbindungen deaktiviert falls die Anwendung l\xe4uft aber der VPN Schutz unterbrochen wird (f\xfcr tempor\xe4re Fehler oder andere Probleme).","settings-changed-alert":"Die \xc4nderungen wurden noch nicht gespeichert.","save-settings":"Einstellungen speichern","change-note-dialog":{"title":"Notiz \xe4ndern","note":"Notiz"},"password-dialog":{"title":"Passwort eingeben","password":"Passwort","info":"Ein Passwort wird abgefragt, da bei der Erstellung des gew\xe4hlten Eintrags ein Passwort gesetzt wurde, aus Sicherheitsgr\xfcnden aber nicht gespeichert wurde. Das Passwort kann frei gelassen werden.","continue-button":"Fortfahren"},"filter-dialog":{"title":"Filter","country":"Das Land muss sein","any-country":"Jedes","location":"Der Ort muss enthalten","pub-key":"Der \xf6ffentliche Schl\xfcssel muss enthalten","apply":"Anwenden"}},"stop-app":"Stopp","start-app":"Start","view-logs":"Zeige Logs","settings":"Einstellungen","error":"Ein Fehler ist aufgetreten.","stop-confirmation":"Anwendung wirklich anhalten?","stop-selected-confirmation":"Ausgew\xe4hlte Anwendung wirklich anhalten?","disable-autostart-confirmation":"Auto-Start f\xfcr diese Anwendung wirklich ausschalten?","enable-autostart-confirmation":"Auto-Start f\xfcr diese Anwendung wirklich einschalten?","disable-autostart-selected-confirmation":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen wirklich ausschalten?","enable-autostart-selected-confirmation":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen wirklich einschalten","operation-completed":"Operation ausgef\xfchrt","operation-unnecessary":"Gew\xfcnschte Einstellungen schon aktiv.","status-running":"L\xe4uft","status-stopped":"Gestoppt","status-failed":"Fehler","status-running-tooltip":"Anwendung l\xe4uft","status-stopped-tooltip":"Anwendung gestoppt","status-failed-tooltip":"Ein Fehler ist aufgetreten. Log der Anwendung \xfcberpr\xfcfen."},"transports":{"title":"Transporte","remove-all-offline":"Alle offline Transporte l\xf6schen","remove-all-offline-confirmation":"Wirkliche alle offline Transporte l\xf6schen?","remove-all-filtered-offline-confirmation":"Alle offline Transporte, welche die Filterkriterien erf\xfcllen werden gel\xf6scht. Wirklich fortfahren?","info":"Verbindungen mit remote Skywire Visor, um lokalen Skywire Anwendungen zu erlauben mit diesen remote Visor zu kommunizieren.","list-title":"Transport-Liste","state":"Status","state-tooltip":"Aktueller Status","id":"ID","remote-node":"Remote","type":"Typ","create":"Transport erstellen","delete-confirmation":"Transport wirklich entfernen?","delete-selected-confirmation":"Ausgew\xe4hlte Transporte wirklich entfernen?","delete":"Transport entfernen","deleted":"Transport erfolgreich entfernt.","empty":"Visor hat keine Transporte.","empty-with-filter":"Kein Transport erf\xfcllt die gew\xe4hlten Filterkriterien.","statuses":{"online":"Online","online-tooltip":"Transport ist online","offline":"Offline","offline-tooltip":"Transport ist offline"},"details":{"title":"Details","basic":{"title":"Basis Info","state":"Status:","id":"ID:","local-pk":"Lokaler \xf6ffentlicher Schl\xfcssel:","remote-pk":"Remote \xf6ffentlicher Schl\xfcssel:","type":"Typ:"},"data":{"title":"Daten\xfcbertragung","uploaded":"Hochgeladen:","downloaded":"Heruntergeladen:"}},"dialog":{"remote-key":"Remote \xf6ffentlicher Schl\xfcssel:","label":"Bezeichnung (optional)","transport-type":"Transport-Typ","success":"Transport erstellt.","success-without-label":"Der Transport wurde erstellt, aber die Bezeichnung konnte nicht gespeichert werden.","errors":{"remote-key-length-error":"Der remote \xf6ffentliche Schl\xfcssel muss 66 Zeichen lang sein.","remote-key-chars-error":"Der remote \xf6ffentliche Schl\xfcssel darf nur hexadezimale Zeichen enthalten.","transport-type-error":"Ein Transport-Typ wird ben\xf6tigt."}},"filter-dialog":{"online":"Der Transport muss sein","id":"Die ID muss enthalten","remote-node":"Der remote Schl\xfcssel muss enthalten","online-options":{"any":"Online oder offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Routen","info":"Netzwerkpfade zum Erreichen von remote Visor. Routen werden bei Bedarf automatisch generiert.","list-title":"Routen-Liste","key":"Schl\xfcssel","type":"Typ","source":"Quelle","destination":"Ziel","delete-confirmation":"Diese Route wirklich entfernen?","delete-selected-confirmation":"Ausgew\xe4hlte Routen wirklich entfernen?","delete":"Route entfernen","deleted":"Route erfolgreich entfernt.","empty":"Visor hat keine Routen.","empty-with-filter":"Keine Route erf\xfcllt die gew\xe4hlten Filterkriterien.","details":{"title":"Details","basic":{"title":"Basis Info","key":"Schl\xfcssel:","rule":"Regel:"},"summary":{"title":"Regel Zusammenfassung","keep-alive":"Keep alive:","type":"Typ:","key-route-id":"Schl\xfcssel-Route ID:"},"specific-fields-titles":{"app":"Anwendung","forward":"Weiterleitung","intermediary-forward":"Vermittelte Weiterleitung"},"specific-fields":{"route-id":"N\xe4chste Routen ID:","transport-id":"N\xe4chste Transport ID:","destination-pk":"Ziel \xf6ffentlicher Schl\xfcssel:","source-pk":"Quelle \xf6ffentlicher Schl\xfcssel:","destination-port":"Ziel Port:","source-port":"Quelle Port:"}},"filter-dialog":{"key":"Der Schl\xfcssel muss enthalten","type":"Der Typ muss sein","source":"Die Quelle muss enhalten","destination":"Das Ziel muss enthalten","any-type-option":"Egal"}},"copy":{"tooltip":"In Zwischenablage kopieren","tooltip-with-text":"{{ text }} (In Zwischenablage kopieren)","copied":"In Zwischenablage kopiert!"},"selection":{"select-all":"Alle ausw\xe4hlen","unselect-all":"Alle abw\xe4hlen","delete-all":"Alle ausgew\xe4hlten Elemente entfernen","start-all":"Starte ausgew\xe4hlte Anwendung","stop-all":"Stoppe ausgew\xe4hlte Anwendung","enable-autostart-all":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen einschalten","disable-autostart-all":"Auto-Start f\xfcr ausgew\xe4hlte Anwendungen ausschalten"},"refresh-button":{"seconds":"K\xfcrzlich aktualisiert","minute":"Vor einer Minute aktualisiert","minutes":"Vor {{ time }} Minuten aktualisiert","hour":"Vor einer Stunde aktualisiert","hours":"Vor {{ time }} Stunden aktualisert","day":"Vor einem Tag aktualisiert","days":"Vor {{ time }} Tagen aktualisert","week":"Vor einer Woche aktualisiert","weeks":"Vor {{ time }} Wochen aktualisert","error-tooltip":"Fehler beim Aktualiseren aufgetreten. Versuche erneut alle {{ time }} Sekunden..."},"view-all-link":{"label":"Zeige alle {{ number }} Elemente"},"paginator":{"first":"Erste","last":"Letzte","total":"Insgesamt: {{ number }} Seiten","select-page-title":"Seite ausw\xe4hlen"},"confirmation":{"header-text":"Best\xe4tigung","confirm-button":"Ja","cancel-button":"Nein","close":"Schlie\xdfen","error-header-text":"Fehler","done-header-text":"Fertig"},"language":{"title":"Sprache ausw\xe4hlen"},"tabs-window":{"title":"Tab wechseln"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/733.0148c3717285573b.js b/cmd/skywire-visor/static/733.0148c3717285573b.js
new file mode 100644
index 0000000000..ed77cea32a
--- /dev/null
+++ b/cmd/skywire-visor/static/733.0148c3717285573b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[733],{5733:e=>{e.exports=JSON.parse('{"common":{"save":"Salvar","cancel":"Cancelar","downloaded":"Baixado","uploaded":"Enviado","loading-error":"Ocorreu um erro ao obter os dados. Tentando novamente...","operation-error":"Ocorreu um erro ao tentar concluir a opera\xe7\xe3o.","no-connection-error":"N\xe3o h\xe1 conex\xe3o com a Internet ou conex\xe3o com o Hypervisor.","error":"Erro:","refreshed":"Dados atualizados.","options":"Op\xe7\xf5es","logout":"Sair","logout-error":"Erro ao sair.","logout-confirmation":"Tem certeza que deseja sair?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Desconhecido","close":"Fechar"},"labeled-element":{"edit-label":"Editar r\xf3tulo","remove-label":"Remover r\xf3tulo","copy":"Copiar","remove-label-confirmation":"Tem certeza de que deseja remover o r\xf3tulo?","unnamed-element":"Sem nome","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Clique para copiar a entrada ou alterar o r\xf3tulo","tooltip-with-text":"{{ text }} (Clique para copiar a entrada ou alterar o r\xf3tulo)"},"labels":{"title":"R\xf3tulos","info":"R\xf3tulos que voc\xea inseriu para identificar facilmente visores, transportes e outros elementos, em vez de ter que ler identificadores gerados por m\xe1quina.","list-title":"Lista de R\xf3tulos","label":"R\xf3tulo","id":"ID do elemento","type":"Tipo","delete-confirmation":"Tem certeza de que deseja excluir o r\xf3tulo?","delete-selected-confirmation":"Tem certeza de que deseja excluir os r\xf3tulos selecionados?","delete":"Apagar r\xf3tulo","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"N\xe3o h\xe1 r\xf3tulos salvos.","empty-with-filter":"Nenhum r\xf3tulo corresponde aos crit\xe9rios de filtragem selecionados.","filter-dialog":{"label":"O r\xf3tulo deve conter","id":"O id deve conter","type":"O tipo deve ser","type-options":{"any":"Algum","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtro","press-to-remove":"(Pressione para remover os filtros)","remove-confirmation":"Tem certeza de que deseja remover os filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"R\xf3tulo","label":"(R\xf3tulo)","inverted-order":"(invertido)"},"start":{"title":"Come\xe7ar"},"node":{"title":"Detalhes do Visor","not-found":"Visor n\xe3o encontrado.","statuses":{"online":"Online","online-tooltip":"Visor est\xe1 online.","partially-online":"Online com problemas","partially-online-tooltip":"O Visor est\xe1 online, mas nem todos os servi\xe7os est\xe3o funcionando. Para mais informa\xe7\xf5es, abra a p\xe1gina de detalhes e verifique a se\xe7\xe3o \\"Informa\xe7\xf5es de sa\xfade\\".","offline":"Offline","offline-tooltip":"Visor est\xe1 offline."},"details":{"node-info":{"title":"Informa\xe7\xe3o do Visor","label":"R\xf3tulo:","public-key":"Chave p\xfablica:","port":"Porta:","dmsg-server":"Servidor DMSG:","ping":"Ping:","node-version":"Vers\xe3o do Visor:","time":{"title":"Tempo online:","seconds":"alguns segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 dia","days":"{{ time }} dias","week":"1 semana","weeks":"{{ time }} semanas"}},"node-health":{"title":"Informa\xe7\xe3o de sa\xfade","status":"Status:","transport-discovery":"Descoberta de transporte:","route-finder":"Localizador de rota:","setup-node":"Configura\xe7\xe3o de N\xf3:","uptime-tracker":"Rastreador de tempo de atividade:","address-resolver":"Resolvedor de endere\xe7os:","element-offline":"Offline"},"node-traffic-data":"Tr\xe1fego de dados"},"tabs":{"info":"Informa\xe7\xe3o","apps":"Aplicativos","routing":"Encaminhamento"},"error-load":"Ocorreu um erro ao atualizar os dados. Tentando novamente..."},"nodes":{"title":"Lista de Visor","dmsg-title":"DMSG","update-all":"Atualizar todas as Visores","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado atual","label":"R\xf3tulo","key":"Chave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor \xe9 o hipervisor atual.","copy-key":"Copiar chave","copy-dmsg":"Copiar chave do servidor DMSG","copy-data":"Copiar dados","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos visores offline","error-load":"Ocorreu um erro ao atualizar a lista. Tentando novamente...","empty":"N\xe3o h\xe1 visores conectados a este hipervisor.","empty-with-filter":"Nenhum visor corresponde aos crit\xe9rios de filtragem selecionados.","delete-node-confirmation":"Tem certeza de que deseja remover o visor da lista?","delete-all-offline-confirmation":"Tem certeza de que deseja remover todas as visores offline da lista?","delete-all-filtered-offline-confirmation":"Todos os visores offline que satisfa\xe7am os crit\xe9rios de filtragem atuais ser\xe3o removidos da lista. Voc\xea tem certeza que quer continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"N\xe3o h\xe1 visores para atualizar.","filter-dialog":{"online":"O visor deve ser","label":"O r\xf3tulo deve conter","key":"A chave p\xfablica deve conter","dmsg":"A chave do servidor DMSG deve conter","online-options":{"any":"Online ou offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"R\xf3tulo","done":"R\xf3tulo salvo.","label-removed-warning":"O r\xf3tulo foi removido."},"settings":{"title":"Defini\xe7\xf5es","password":{"initial-config-help":"Use esta op\xe7\xe3o para definir a senha inicial. Depois de definir uma senha, n\xe3o \xe9 poss\xedvel usar esta op\xe7\xe3o para modific\xe1-la.","help":"Op\xe7\xf5es para alterar sua senha.","old-password":"Senha Antiga","new-password":"Nova Senha","repeat-password":"Repita a senha","password-changed":"Senha alterada.","error-changing":"Erro ao alterar a senha.","initial-config":{"title":"Definir senha inicial","password":"Senha","repeat-password":"Repita a senha","set-password":"Definir senha","done":"Senha definida. Use-a para acessar o sistema.","error":"Erro. Certifique-se de que ainda n\xe3o definiu a senha."},"errors":{"bad-old-password":"A senha antiga fornecida n\xe3o est\xe1 correta.","old-password-required":"A senha antiga \xe9 necess\xe1ria.","new-password-error":"A senha deve ter de 6 a 64 caracteres.","passwords-not-match":"As senhas n\xe3o coincidem.","default-password":"N\xe3o use a senha padr\xe3o (1234)."}},"updater-config":{"open-link":"Mostrar configura\xe7\xf5es do atualizador","open-confirmation":"As configura\xe7\xf5es do atualizador s\xe3o apenas para usu\xe1rios experientes. Voc\xea tem certeza que quer continuar?","help":"Use este formul\xe1rio para substituir as configura\xe7\xf5es que ser\xe3o usadas pelo atualizador. Todos os campos vazios ser\xe3o ignorados. As configura\xe7\xf5es ser\xe3o usadas para todas as opera\xe7\xf5es de atualiza\xe7\xe3o, independentemente de qual elemento est\xe1 sendo atualizado, portanto, tome cuidado.","channel":"Canal","version":"Vers\xe3o","archive-url":"URL do arquivo","checksum-url":"URL do Checksum ","not-saved":"As altera\xe7\xf5es ainda n\xe3o foram salvas.","save":"Salvar altera\xe7\xf5es","remove-settings":"Remover as configura\xe7\xf5es","saved":"As configura\xe7\xf5es personalizadas foram salvas.","removed":"As configura\xe7\xf5es personalizadas foram removidas.","save-confirmation":"Tem certeza de que deseja aplicar as configura\xe7\xf5es personalizadas?","remove-confirmation":"Tem certeza de que deseja remover as configura\xe7\xf5es personalizadas?"},"change-password":"Mudar senha","refresh-rate":"Taxa de atualiza\xe7\xe3o","refresh-rate-help":"Tempo que o sistema espera para atualizar os dados automaticamente.","refresh-rate-confirmation":"Taxa de atualiza\xe7\xe3o alterada.","seconds":"segundos"},"login":{"password":"Senha","incorrect-password":"Senha incorreta.","initial-config":"Configurar a inicializa\xe7\xe3o inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configura\xe7\xe3o","update":"Atualizar","reboot":"Reiniciar"},"reboot":{"confirmation":"Tem certeza de que deseja reiniciar o visor?","done":"O visor est\xe1 reiniciando."},"terminal-options":{"full":"Terminal completo","simple":"Terminal simples"},"terminal":{"title":"Terminal","input-start":"Terminal Skywire para {{address}}","error":"Erro inesperado ao tentar executar o comando."}},"update":{"title":"Atualizar","error-title":"Erro","processing":"Procurando por atualiza\xe7\xf5es...","no-update":"N\xe3o h\xe1 atualiza\xe7\xe3o para o visor. A vers\xe3o atualmente instalada \xe9:","no-updates":"Nenhuma nova atualiza\xe7\xe3o foi encontrada.","already-updating":"Algumas visores j\xe1 est\xe3o sendo atualizadas:","update-available":"As seguintes atualiza\xe7\xf5es foram encontradas:","update-available-singular":"As seguintes atualiza\xe7\xf5es para 1 visor foram encontradas:","update-available-plural":"As seguintes atualiza\xe7\xf5es para visores {{ number }} foram encontradas:","update-available-additional-singular":"As seguintes atualiza\xe7\xf5es adicionais para 1 visor foram encontradas:","update-available-additional-plural":"As seguintes atualiza\xe7\xf5es adicionais para visores {{ number }} foram encontradas:","update-instructions":"Clique no bot\xe3o \'Instalar atualiza\xe7\xf5es\' para continuar.","updating":"A opera\xe7\xe3o de atualiza\xe7\xe3o foi iniciada, voc\xea pode abrir esta janela novamente para verificar o andamento:","version-change":"De {{ currentVersion }} para {{ newVersion }}","selected-channel":"Canal selecionado:","downloaded-file-name-prefix":"Baixando: ","speed-prefix":"Velocidade: ","time-downloading-prefix":"Tempo de download: ","time-left-prefix":"Tempo restante (aprox.): ","starting":"Preparando para atualizar","finished":"Conex\xe3o de status finalizada","install":"Instalar atualiza\xe7\xf5es"},"apps":{"log":{"title":"Registro","empty":"N\xe3o h\xe1 mensagens de registro para o intervalo de tempo selecionado.","filter-button":"Mostrando apenas os registros gerados desde:","filter":{"title":"Filtro","filter":"Mostrar apenas os registros gerados desde","7-days":"\xdaltimos 7 dias","1-month":"\xdaltimos 30 dias","3-months":"\xdaltimos 03 meses","6-months":"\xdaltimos 06 meses","1-year":"\xdaltimo ano","all":"Mostrar todos"}},"apps-list":{"title":"Aplicativos","list-title":"Lista de aplicativos","app-name":"Nome","port":"Porta","state":"Estado","state-tooltip":"Estado atual","auto-start":"Inicializa\xe7\xe3o automaticamente","empty":"Visor n\xe3o tem nenhum aplicativo.","empty-with-filter":"Nenhum aplicativo corresponde aos crit\xe9rios de filtragem selecionados.","disable-autostart":"Desativar inicializa\xe7\xe3o autom\xe1tica","enable-autostart":"Habilitar inicializa\xe7\xe3o autom\xe1tica","autostart-disabled":"Inicializa\xe7\xe3o autom\xe1tica desativada","autostart-enabled":"Inicializa\xe7\xe3o autom\xe1tica ativada","unavailable-logs-error":"N\xe3o \xe9 poss\xedvel mostrar os logs enquanto o aplicativo n\xe3o est\xe1 em execu\xe7\xe3o.","filter-dialog":{"state":"O estado deve ser","name":"O nome deve conter","port":"A porta deve conter","autostart":"A inicializa\xe7\xe3o autom\xe1tica deve ser","state-options":{"any":"Executando ou parado","running":"Executando","stopped":"Parado"},"autostart-options":{"any":"Habilitado ou desabilitado","enabled":"Habilitado","disabled":"Desabilitado"}}},"vpn-socks-server-settings":{"socks-title":"Configura\xe7\xf5es do Skysocks","vpn-title":"Configura\xe7\xf5es do servidor VPN","new-password":"Nova senha (deixe em branco para remover a senha)","repeat-password":"Repita a senha","passwords-not-match":"As senhas n\xe3o coincidem.","secure-mode-check":"Use o modo seguro","secure-mode-info":"Quando ativo, o servidor n\xe3o permite SSH cliente / servidor e n\xe3o permite nenhum tr\xe1fego de clientes VPN para a rede local do servidor.","save":"Salvar","remove-passowrd-confirmation":"Voc\xea deixou o campo de senha vazio. Tem certeza de que deseja remover a senha?","change-passowrd-confirmation":"Tem certeza que deseja alterar a senha?","changes-made":"As mudan\xe7as foram feitas."},"vpn-socks-client-settings":{"socks-title":"Configura\xe7\xf5es do cliente Skysocks","vpn-title":"Configura\xe7\xf5es de cliente VPN","discovery-tab":"Procurar","remote-visor-tab":"Inserir manualmente","history-tab":"Hist\xf3rico","settings-tab":"Configura\xe7\xf5es","use":"Use estes dados","change-note":"Mudar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Inserida manualmente","note-obtained":"Obtida do servi\xe7o de descoberta","key":"Chave:","port":"Porta:","location":"Localiza\xe7\xe3o:","state-available":"Dispon\xedvel","state-offline":"Offline","public-key":"Chave p\xfablica do visor remoto","password":"Senha","password-history-warning":"Nota: a senha n\xe3o ser\xe1 salva no hist\xf3rico.","copy-pk-info":"Copiar chave p\xfablica.","copied-pk-info":"A chave p\xfablica foi copiada.","copy-pk-error":"Ocorreu um problema ao copiar a chave p\xfablica.","no-elements":"Atualmente n\xe3o h\xe1 elementos para mostrar. Por favor, tente novamente mais tarde.","no-elements-for-filters":"N\xe3o h\xe1 elementos que atendam aos crit\xe9rios do filtro.","no-filter":"Nenhum filtro foi selecionado","click-to-change":"Clique para mudar","remote-key-length-error":"A chave p\xfablica deve ter 66 caracteres.","remote-key-chars-error":"A chave p\xfablica deve conter apenas caracteres hexadecimais.","save":"Salvar","remove-from-history-confirmation":"Tem certeza de que deseja remover a entrada do hist\xf3rico?","change-key-confirmation":"Tem certeza de que deseja alterar a chave p\xfablica do visor remoto?","changes-made":"As mudan\xe7as foram feitas.","no-history":"Esta guia mostrar\xe1 as \xfaltimas {{ number }} chaves p\xfablicas usadas.","default-note-warning":"A nota padr\xe3o foi usada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","killswitch-check":"Ativar killswitch","killswitch-info":"Quando ativo, todas as conex\xf5es de rede ser\xe3o desativadas se o aplicativo estiver em execu\xe7\xe3o, exceto a prote\xe7\xe3o VPN for interrompida (por erros tempor\xe1rios ou qualquer outro problema).","settings-changed-alert":"As altera\xe7\xf5es ainda n\xe3o foram salvas.","save-settings":"Salvar configura\xe7\xf5es","change-note-dialog":{"title":"Mudar nota","note":"Nota"},"password-dialog":{"title":"Digite a senha","password":"Senha","info":"Uma senha est\xe1 sendo solicitada porque uma senha foi definida quando a entrada selecionada foi criada, mas n\xe3o foi salva por motivos de seguran\xe7a. Voc\xea pode deixar a senha em branco, se necess\xe1rio.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"O pa\xeds deve ser","any-country":"Qualquer um","location":"O local deve conter","pub-key":"A chave p\xfablica deve conter","apply":"Aplicar"}},"stop-app":"Parar","start-app":"Iniciar","view-logs":"Ver registros","settings":"Configura\xe7\xf5es","error":"Ocorreu um erro e n\xe3o foi poss\xedvel realizar a opera\xe7\xe3o.","stop-confirmation":"Tem certeza de que deseja parar o aplicativo?","stop-selected-confirmation":"Tem certeza de que deseja parar os aplicativos selecionados?","disable-autostart-confirmation":"Tem certeza de que deseja desativar a inicializa\xe7\xe3o autom\xe1tica do aplicativo?","enable-autostart-confirmation":"Tem certeza de que deseja ativar a inicializa\xe7\xe3o autom\xe1tica do aplicativo?","disable-autostart-selected-confirmation":"Tem certeza de que deseja desativar o in\xedcio autom\xe1tico para os aplicativos selecionados?","enable-autostart-selected-confirmation":"Tem certeza de que deseja ativar o in\xedcio autom\xe1tico para os aplicativos selecionados?","operation-completed":"Opera\xe7\xe3o conclu\xedda.","operation-unnecessary":"A sele\xe7\xe3o j\xe1 possui a configura\xe7\xe3o solicitada.","status-running":"Executando","status-stopped":"Parado","status-failed":"Fracassado","status-running-tooltip":"O aplicativo est\xe1 em execu\xe7\xe3o","status-stopped-tooltip":"O aplicativo est\xe1 parado no momento","status-failed-tooltip":"Algo deu errado. Verifique as mensagens do aplicativo para obter mais informa\xe7\xf5es"},"transports":{"title":"Transportes","remove-all-offline":"Remover todos os transportes offline","remove-all-offline-confirmation":"Tem certeza de que deseja remover todos os transportes offline?","remove-all-filtered-offline-confirmation":"Todos os transportes off-line que atendem aos crit\xe9rios de filtragem atuais ser\xe3o removidos. Tem certeza de que deseja continuar?","info":"Conex\xf5es que voc\xea tem com visores Skywire remotos, para permitir que aplicativos Skywire locais se comuniquem com aplicativos executados nesses visores remotos.","list-title":"Lista de transporte","state":"Estado","state-tooltip":"Estado atual","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Criar transporte","delete-confirmation":"Tem certeza que deseja excluir o transporte?","delete-selected-confirmation":"Tem certeza que deseja excluir os transportes selecionados?","delete":"Excluir transporte","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"Visor n\xe3o tem transportes.","empty-with-filter":"Nenhum transporte corresponde aos crit\xe9rios de filtragem selecionados.","statuses":{"online":"Online","online-tooltip":"Transporte est\xe1 online","offline":"Offline","offline-tooltip":"Transporte est\xe1 offline"},"details":{"title":"Detalhes","basic":{"title":"Informa\xe7\xe3o b\xe1sica","state":"Estado:","id":"ID:","local-pk":"Chave p\xfablica local:","remote-pk":"Chave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmiss\xe3o de dados","uploaded":"Dados carregados:","downloaded":"Dados baixados:"}},"dialog":{"remote-key":"Chave p\xfablica remota","label":"Nome de identifica\xe7\xe3o (opcional)","transport-type":"Tipo de transporte","success":"Transporte criado.","success-without-label":"O transporte foi criado, mas n\xe3o foi poss\xedvel salvar a etiqueta.","errors":{"remote-key-length-error":"A chave p\xfablica remota deve ter 66 caracteres.","remote-key-chars-error":"A chave p\xfablica remota deve conter apenas caracteres hexadecimais.","transport-type-error":"O tipo de transporte \xe9 obrigat\xf3rio."}},"filter-dialog":{"online":"O transporte deve ser","id":"O id deve conter","remote-node":"A chave remota deve conter","online-options":{"any":"Online ou offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Rotas","info":"Caminhos usados para alcan\xe7ar os visores remotos para os quais os transportes foram estabelecidos. As rotas s\xe3o geradas automaticamente conforme necess\xe1rio.","list-title":"Lista de rotas","key":"Chave","type":"Tipo","source":"Fonte","destination":"Destino","delete-confirmation":"Tem certeza que deseja excluir a rota?","delete-selected-confirmation":"Tem certeza que deseja excluir as rotas selecionadas?","delete":"Excluir rota","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"Visor n\xe3o tem nenhuma rota.","empty-with-filter":"Nenhuma rota corresponde aos crit\xe9rios de filtragem selecionados.","details":{"title":"Detalhes","basic":{"title":"Informa\xe7\xe3o b\xe1sica","key":"Chave:","rule":"Regras:"},"summary":{"title":"Resumo da regra","keep-alive":"Ativo:","type":"Tipo de regra:","key-route-id":"ID de rota chave:"},"specific-fields-titles":{"app":"Campos de aplicativos","forward":"Campos de encaminhamento","intermediary-forward":"Campos intermedi\xe1rios de encaminhamento"},"specific-fields":{"route-id":"Pr\xf3ximo ID de rota:","transport-id":"Pr\xf3ximo ID de transporte:","destination-pk":"Chave p\xfablica de destino:","source-pk":"Chave p\xfablica de origem:","destination-port":"Porta de destino:","source-port":"Porta de origem:"}},"filter-dialog":{"key":"A chave deve conter","type":"O tipo deve ser","source":"A fonte deve conter","destination":"O destino deve conter","any-type-option":"Qualquer uma"}},"copy":{"tooltip":"Clique para copiar","tooltip-with-text":"{{ text }} (Clique para copiar)","copied":"Copiado!"},"selection":{"select-all":"Selecionar tudo","unselect-all":"Desmarque todos","delete-all":"Excluir todos os elementos selecionados","start-all":"Iniciar todos os aplicativos selecionados","stop-all":"Parar todos os aplicativos selecionados","enable-autostart-all":"Habilitar inicializa\xe7\xe3o autom\xe1tica para todos os aplicativos selecionados","disable-autostart-all":"Desativar inicializa\xe7\xe3o autom\xe1tica para todos os aplicativos selecionados"},"refresh-button":{"seconds":"Atualizado alguns segundos atr\xe1s","minute":"Atualizado 1 minuto atr\xe1s","minutes":"Atualizado {{ time }} minutos atr\xe1s","hour":"Atualizado 1 hora atr\xe1s","hours":"Atualizado {{ time }} horas atr\xe1s","day":"Atualizado 1 dia atr\xe1s","days":"Atualizado {{ time }} dias atr\xe1s","week":"Atualizado 1 semana atr\xe1s","weeks":"Atualizado {{ time }} semanas atr\xe1s","error-tooltip":"Ocorreu um erro ao atualizar os dados. Tentando novamente a cada {{ time }} segundos automaticamente..."},"view-all-link":{"label":"Ver todos os elementos {{ number }}"},"paginator":{"first":"Primeira","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Selecione a p\xe1gina"},"confirmation":{"header-text":"Confirma\xe7\xe3o","confirm-button":"Sim","cancel-button":"N\xe3o","close":"Fechar","error-header-text":"Erro","done-header-text":"Feito"},"language":{"title":"Selecione o idioma"},"tabs-window":{"title":"Alterar guia"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/733.390fd337c178d445.js b/cmd/skywire-visor/static/733.390fd337c178d445.js
deleted file mode 100644
index f0afc95b43..0000000000
--- a/cmd/skywire-visor/static/733.390fd337c178d445.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[733],{5733:function(e){e.exports=JSON.parse('{"common":{"save":"Salvar","cancel":"Cancelar","downloaded":"Baixado","uploaded":"Enviado","loading-error":"Ocorreu um erro ao obter os dados. Tentando novamente...","operation-error":"Ocorreu um erro ao tentar concluir a opera\xe7\xe3o.","no-connection-error":"N\xe3o h\xe1 conex\xe3o com a Internet ou conex\xe3o com o Hypervisor.","error":"Erro:","refreshed":"Dados atualizados.","options":"Op\xe7\xf5es","logout":"Sair","logout-error":"Erro ao sair.","logout-confirmation":"Tem certeza que deseja sair?","time-in-ms":"{{ time }}ms","ok":"Ok","unknown":"Desconhecido","close":"Fechar"},"labeled-element":{"edit-label":"Editar r\xf3tulo","remove-label":"Remover r\xf3tulo","copy":"Copiar","remove-label-confirmation":"Tem certeza de que deseja remover o r\xf3tulo?","unnamed-element":"Sem nome","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Clique para copiar a entrada ou alterar o r\xf3tulo","tooltip-with-text":"{{ text }} (Clique para copiar a entrada ou alterar o r\xf3tulo)"},"labels":{"title":"R\xf3tulos","info":"R\xf3tulos que voc\xea inseriu para identificar facilmente visores, transportes e outros elementos, em vez de ter que ler identificadores gerados por m\xe1quina.","list-title":"Lista de R\xf3tulos","label":"R\xf3tulo","id":"ID do elemento","type":"Tipo","delete-confirmation":"Tem certeza de que deseja excluir o r\xf3tulo?","delete-selected-confirmation":"Tem certeza de que deseja excluir os r\xf3tulos selecionados?","delete":"Apagar r\xf3tulo","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"N\xe3o h\xe1 r\xf3tulos salvos.","empty-with-filter":"Nenhum r\xf3tulo corresponde aos crit\xe9rios de filtragem selecionados.","filter-dialog":{"label":"O r\xf3tulo deve conter","id":"O id deve conter","type":"O tipo deve ser","type-options":{"any":"Algum","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtro","press-to-remove":"(Pressione para remover os filtros)","remove-confirmation":"Tem certeza de que deseja remover os filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"R\xf3tulo","label":"(R\xf3tulo)","inverted-order":"(invertido)"},"start":{"title":"Come\xe7ar"},"node":{"title":"Detalhes do Visor","not-found":"Visor n\xe3o encontrado.","statuses":{"online":"Online","online-tooltip":"Visor est\xe1 online.","partially-online":"Online com problemas","partially-online-tooltip":"O Visor est\xe1 online, mas nem todos os servi\xe7os est\xe3o funcionando. Para mais informa\xe7\xf5es, abra a p\xe1gina de detalhes e verifique a se\xe7\xe3o \\"Informa\xe7\xf5es de sa\xfade\\".","offline":"Offline","offline-tooltip":"Visor est\xe1 offline."},"details":{"node-info":{"title":"Informa\xe7\xe3o do Visor","label":"R\xf3tulo:","public-key":"Chave p\xfablica:","port":"Porta:","dmsg-server":"Servidor DMSG:","ping":"Ping:","node-version":"Vers\xe3o do Visor:","time":{"title":"Tempo online:","seconds":"alguns segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 dia","days":"{{ time }} dias","week":"1 semana","weeks":"{{ time }} semanas"}},"node-health":{"title":"Informa\xe7\xe3o de sa\xfade","status":"Status:","transport-discovery":"Descoberta de transporte:","route-finder":"Localizador de rota:","setup-node":"Configura\xe7\xe3o de N\xf3:","uptime-tracker":"Rastreador de tempo de atividade:","address-resolver":"Resolvedor de endere\xe7os:","element-offline":"Offline"},"node-traffic-data":"Tr\xe1fego de dados"},"tabs":{"info":"Informa\xe7\xe3o","apps":"Aplicativos","routing":"Encaminhamento"},"error-load":"Ocorreu um erro ao atualizar os dados. Tentando novamente..."},"nodes":{"title":"Lista de Visor","dmsg-title":"DMSG","update-all":"Atualizar todas as Visores","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado atual","label":"R\xf3tulo","key":"Chave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor \xe9 o hipervisor atual.","copy-key":"Copiar chave","copy-dmsg":"Copiar chave do servidor DMSG","copy-data":"Copiar dados","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos visores offline","error-load":"Ocorreu um erro ao atualizar a lista. Tentando novamente...","empty":"N\xe3o h\xe1 visores conectados a este hipervisor.","empty-with-filter":"Nenhum visor corresponde aos crit\xe9rios de filtragem selecionados.","delete-node-confirmation":"Tem certeza de que deseja remover o visor da lista?","delete-all-offline-confirmation":"Tem certeza de que deseja remover todas as visores offline da lista?","delete-all-filtered-offline-confirmation":"Todos os visores offline que satisfa\xe7am os crit\xe9rios de filtragem atuais ser\xe3o removidos da lista. Voc\xea tem certeza que quer continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"N\xe3o h\xe1 visores para atualizar.","filter-dialog":{"online":"O visor deve ser","label":"O r\xf3tulo deve conter","key":"A chave p\xfablica deve conter","dmsg":"A chave do servidor DMSG deve conter","online-options":{"any":"Online ou offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"R\xf3tulo","done":"R\xf3tulo salvo.","label-removed-warning":"O r\xf3tulo foi removido."},"settings":{"title":"Defini\xe7\xf5es","password":{"initial-config-help":"Use esta op\xe7\xe3o para definir a senha inicial. Depois de definir uma senha, n\xe3o \xe9 poss\xedvel usar esta op\xe7\xe3o para modific\xe1-la.","help":"Op\xe7\xf5es para alterar sua senha.","old-password":"Senha Antiga","new-password":"Nova Senha","repeat-password":"Repita a senha","password-changed":"Senha alterada.","error-changing":"Erro ao alterar a senha.","initial-config":{"title":"Definir senha inicial","password":"Senha","repeat-password":"Repita a senha","set-password":"Definir senha","done":"Senha definida. Use-a para acessar o sistema.","error":"Erro. Certifique-se de que ainda n\xe3o definiu a senha."},"errors":{"bad-old-password":"A senha antiga fornecida n\xe3o est\xe1 correta.","old-password-required":"A senha antiga \xe9 necess\xe1ria.","new-password-error":"A senha deve ter de 6 a 64 caracteres.","passwords-not-match":"As senhas n\xe3o coincidem.","default-password":"N\xe3o use a senha padr\xe3o (1234)."}},"updater-config":{"open-link":"Mostrar configura\xe7\xf5es do atualizador","open-confirmation":"As configura\xe7\xf5es do atualizador s\xe3o apenas para usu\xe1rios experientes. Voc\xea tem certeza que quer continuar?","help":"Use este formul\xe1rio para substituir as configura\xe7\xf5es que ser\xe3o usadas pelo atualizador. Todos os campos vazios ser\xe3o ignorados. As configura\xe7\xf5es ser\xe3o usadas para todas as opera\xe7\xf5es de atualiza\xe7\xe3o, independentemente de qual elemento est\xe1 sendo atualizado, portanto, tome cuidado.","channel":"Canal","version":"Vers\xe3o","archive-url":"URL do arquivo","checksum-url":"URL do Checksum ","not-saved":"As altera\xe7\xf5es ainda n\xe3o foram salvas.","save":"Salvar altera\xe7\xf5es","remove-settings":"Remover as configura\xe7\xf5es","saved":"As configura\xe7\xf5es personalizadas foram salvas.","removed":"As configura\xe7\xf5es personalizadas foram removidas.","save-confirmation":"Tem certeza de que deseja aplicar as configura\xe7\xf5es personalizadas?","remove-confirmation":"Tem certeza de que deseja remover as configura\xe7\xf5es personalizadas?"},"change-password":"Mudar senha","refresh-rate":"Taxa de atualiza\xe7\xe3o","refresh-rate-help":"Tempo que o sistema espera para atualizar os dados automaticamente.","refresh-rate-confirmation":"Taxa de atualiza\xe7\xe3o alterada.","seconds":"segundos"},"login":{"password":"Senha","incorrect-password":"Senha incorreta.","initial-config":"Configurar a inicializa\xe7\xe3o inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configura\xe7\xe3o","update":"Atualizar","reboot":"Reiniciar"},"reboot":{"confirmation":"Tem certeza de que deseja reiniciar o visor?","done":"O visor est\xe1 reiniciando."},"terminal-options":{"full":"Terminal completo","simple":"Terminal simples"},"terminal":{"title":"Terminal","input-start":"Terminal Skywire para {{address}}","error":"Erro inesperado ao tentar executar o comando."}},"update":{"title":"Atualizar","error-title":"Erro","processing":"Procurando por atualiza\xe7\xf5es...","no-update":"N\xe3o h\xe1 atualiza\xe7\xe3o para o visor. A vers\xe3o atualmente instalada \xe9:","no-updates":"Nenhuma nova atualiza\xe7\xe3o foi encontrada.","already-updating":"Algumas visores j\xe1 est\xe3o sendo atualizadas:","update-available":"As seguintes atualiza\xe7\xf5es foram encontradas:","update-available-singular":"As seguintes atualiza\xe7\xf5es para 1 visor foram encontradas:","update-available-plural":"As seguintes atualiza\xe7\xf5es para visores {{ number }} foram encontradas:","update-available-additional-singular":"As seguintes atualiza\xe7\xf5es adicionais para 1 visor foram encontradas:","update-available-additional-plural":"As seguintes atualiza\xe7\xf5es adicionais para visores {{ number }} foram encontradas:","update-instructions":"Clique no bot\xe3o \'Instalar atualiza\xe7\xf5es\' para continuar.","updating":"A opera\xe7\xe3o de atualiza\xe7\xe3o foi iniciada, voc\xea pode abrir esta janela novamente para verificar o andamento:","version-change":"De {{ currentVersion }} para {{ newVersion }}","selected-channel":"Canal selecionado:","downloaded-file-name-prefix":"Baixando: ","speed-prefix":"Velocidade: ","time-downloading-prefix":"Tempo de download: ","time-left-prefix":"Tempo restante (aprox.): ","starting":"Preparando para atualizar","finished":"Conex\xe3o de status finalizada","install":"Instalar atualiza\xe7\xf5es"},"apps":{"log":{"title":"Registro","empty":"N\xe3o h\xe1 mensagens de registro para o intervalo de tempo selecionado.","filter-button":"Mostrando apenas os registros gerados desde:","filter":{"title":"Filtro","filter":"Mostrar apenas os registros gerados desde","7-days":"\xdaltimos 7 dias","1-month":"\xdaltimos 30 dias","3-months":"\xdaltimos 03 meses","6-months":"\xdaltimos 06 meses","1-year":"\xdaltimo ano","all":"Mostrar todos"}},"apps-list":{"title":"Aplicativos","list-title":"Lista de aplicativos","app-name":"Nome","port":"Porta","state":"Estado","state-tooltip":"Estado atual","auto-start":"Inicializa\xe7\xe3o automaticamente","empty":"Visor n\xe3o tem nenhum aplicativo.","empty-with-filter":"Nenhum aplicativo corresponde aos crit\xe9rios de filtragem selecionados.","disable-autostart":"Desativar inicializa\xe7\xe3o autom\xe1tica","enable-autostart":"Habilitar inicializa\xe7\xe3o autom\xe1tica","autostart-disabled":"Inicializa\xe7\xe3o autom\xe1tica desativada","autostart-enabled":"Inicializa\xe7\xe3o autom\xe1tica ativada","unavailable-logs-error":"N\xe3o \xe9 poss\xedvel mostrar os logs enquanto o aplicativo n\xe3o est\xe1 em execu\xe7\xe3o.","filter-dialog":{"state":"O estado deve ser","name":"O nome deve conter","port":"A porta deve conter","autostart":"A inicializa\xe7\xe3o autom\xe1tica deve ser","state-options":{"any":"Executando ou parado","running":"Executando","stopped":"Parado"},"autostart-options":{"any":"Habilitado ou desabilitado","enabled":"Habilitado","disabled":"Desabilitado"}}},"vpn-socks-server-settings":{"socks-title":"Configura\xe7\xf5es do Skysocks","vpn-title":"Configura\xe7\xf5es do servidor VPN","new-password":"Nova senha (deixe em branco para remover a senha)","repeat-password":"Repita a senha","passwords-not-match":"As senhas n\xe3o coincidem.","secure-mode-check":"Use o modo seguro","secure-mode-info":"Quando ativo, o servidor n\xe3o permite SSH cliente / servidor e n\xe3o permite nenhum tr\xe1fego de clientes VPN para a rede local do servidor.","save":"Salvar","remove-passowrd-confirmation":"Voc\xea deixou o campo de senha vazio. Tem certeza de que deseja remover a senha?","change-passowrd-confirmation":"Tem certeza que deseja alterar a senha?","changes-made":"As mudan\xe7as foram feitas."},"vpn-socks-client-settings":{"socks-title":"Configura\xe7\xf5es do cliente Skysocks","vpn-title":"Configura\xe7\xf5es de cliente VPN","discovery-tab":"Procurar","remote-visor-tab":"Inserir manualmente","history-tab":"Hist\xf3rico","settings-tab":"Configura\xe7\xf5es","use":"Use estes dados","change-note":"Mudar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Inserida manualmente","note-obtained":"Obtida do servi\xe7o de descoberta","key":"Chave:","port":"Porta:","location":"Localiza\xe7\xe3o:","state-available":"Dispon\xedvel","state-offline":"Offline","public-key":"Chave p\xfablica do visor remoto","password":"Senha","password-history-warning":"Nota: a senha n\xe3o ser\xe1 salva no hist\xf3rico.","copy-pk-info":"Copiar chave p\xfablica.","copied-pk-info":"A chave p\xfablica foi copiada.","copy-pk-error":"Ocorreu um problema ao copiar a chave p\xfablica.","no-elements":"Atualmente n\xe3o h\xe1 elementos para mostrar. Por favor, tente novamente mais tarde.","no-elements-for-filters":"N\xe3o h\xe1 elementos que atendam aos crit\xe9rios do filtro.","no-filter":"Nenhum filtro foi selecionado","click-to-change":"Clique para mudar","remote-key-length-error":"A chave p\xfablica deve ter 66 caracteres.","remote-key-chars-error":"A chave p\xfablica deve conter apenas caracteres hexadecimais.","save":"Salvar","remove-from-history-confirmation":"Tem certeza de que deseja remover a entrada do hist\xf3rico?","change-key-confirmation":"Tem certeza de que deseja alterar a chave p\xfablica do visor remoto?","changes-made":"As mudan\xe7as foram feitas.","no-history":"Esta guia mostrar\xe1 as \xfaltimas {{ number }} chaves p\xfablicas usadas.","default-note-warning":"A nota padr\xe3o foi usada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","killswitch-check":"Ativar killswitch","killswitch-info":"Quando ativo, todas as conex\xf5es de rede ser\xe3o desativadas se o aplicativo estiver em execu\xe7\xe3o, exceto a prote\xe7\xe3o VPN for interrompida (por erros tempor\xe1rios ou qualquer outro problema).","settings-changed-alert":"As altera\xe7\xf5es ainda n\xe3o foram salvas.","save-settings":"Salvar configura\xe7\xf5es","change-note-dialog":{"title":"Mudar nota","note":"Nota"},"password-dialog":{"title":"Digite a senha","password":"Senha","info":"Uma senha est\xe1 sendo solicitada porque uma senha foi definida quando a entrada selecionada foi criada, mas n\xe3o foi salva por motivos de seguran\xe7a. Voc\xea pode deixar a senha em branco, se necess\xe1rio.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"O pa\xeds deve ser","any-country":"Qualquer um","location":"O local deve conter","pub-key":"A chave p\xfablica deve conter","apply":"Aplicar"}},"stop-app":"Parar","start-app":"Iniciar","view-logs":"Ver registros","settings":"Configura\xe7\xf5es","error":"Ocorreu um erro e n\xe3o foi poss\xedvel realizar a opera\xe7\xe3o.","stop-confirmation":"Tem certeza de que deseja parar o aplicativo?","stop-selected-confirmation":"Tem certeza de que deseja parar os aplicativos selecionados?","disable-autostart-confirmation":"Tem certeza de que deseja desativar a inicializa\xe7\xe3o autom\xe1tica do aplicativo?","enable-autostart-confirmation":"Tem certeza de que deseja ativar a inicializa\xe7\xe3o autom\xe1tica do aplicativo?","disable-autostart-selected-confirmation":"Tem certeza de que deseja desativar o in\xedcio autom\xe1tico para os aplicativos selecionados?","enable-autostart-selected-confirmation":"Tem certeza de que deseja ativar o in\xedcio autom\xe1tico para os aplicativos selecionados?","operation-completed":"Opera\xe7\xe3o conclu\xedda.","operation-unnecessary":"A sele\xe7\xe3o j\xe1 possui a configura\xe7\xe3o solicitada.","status-running":"Executando","status-stopped":"Parado","status-failed":"Fracassado","status-running-tooltip":"O aplicativo est\xe1 em execu\xe7\xe3o","status-stopped-tooltip":"O aplicativo est\xe1 parado no momento","status-failed-tooltip":"Algo deu errado. Verifique as mensagens do aplicativo para obter mais informa\xe7\xf5es"},"transports":{"title":"Transportes","remove-all-offline":"Remover todos os transportes offline","remove-all-offline-confirmation":"Tem certeza de que deseja remover todos os transportes offline?","remove-all-filtered-offline-confirmation":"Todos os transportes off-line que atendem aos crit\xe9rios de filtragem atuais ser\xe3o removidos. Tem certeza de que deseja continuar?","info":"Conex\xf5es que voc\xea tem com visores Skywire remotos, para permitir que aplicativos Skywire locais se comuniquem com aplicativos executados nesses visores remotos.","list-title":"Lista de transporte","state":"Estado","state-tooltip":"Estado atual","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Criar transporte","delete-confirmation":"Tem certeza que deseja excluir o transporte?","delete-selected-confirmation":"Tem certeza que deseja excluir os transportes selecionados?","delete":"Excluir transporte","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"Visor n\xe3o tem transportes.","empty-with-filter":"Nenhum transporte corresponde aos crit\xe9rios de filtragem selecionados.","statuses":{"online":"Online","online-tooltip":"Transporte est\xe1 online","offline":"Offline","offline-tooltip":"Transporte est\xe1 offline"},"details":{"title":"Detalhes","basic":{"title":"Informa\xe7\xe3o b\xe1sica","state":"Estado:","id":"ID:","local-pk":"Chave p\xfablica local:","remote-pk":"Chave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmiss\xe3o de dados","uploaded":"Dados carregados:","downloaded":"Dados baixados:"}},"dialog":{"remote-key":"Chave p\xfablica remota","label":"Nome de identifica\xe7\xe3o (opcional)","transport-type":"Tipo de transporte","success":"Transporte criado.","success-without-label":"O transporte foi criado, mas n\xe3o foi poss\xedvel salvar a etiqueta.","errors":{"remote-key-length-error":"A chave p\xfablica remota deve ter 66 caracteres.","remote-key-chars-error":"A chave p\xfablica remota deve conter apenas caracteres hexadecimais.","transport-type-error":"O tipo de transporte \xe9 obrigat\xf3rio."}},"filter-dialog":{"online":"O transporte deve ser","id":"O id deve conter","remote-node":"A chave remota deve conter","online-options":{"any":"Online ou offline","online":"Online","offline":"Offline"}}},"routes":{"title":"Rotas","info":"Caminhos usados para alcan\xe7ar os visores remotos para os quais os transportes foram estabelecidos. As rotas s\xe3o geradas automaticamente conforme necess\xe1rio.","list-title":"Lista de rotas","key":"Chave","type":"Tipo","source":"Fonte","destination":"Destino","delete-confirmation":"Tem certeza que deseja excluir a rota?","delete-selected-confirmation":"Tem certeza que deseja excluir as rotas selecionadas?","delete":"Excluir rota","deleted":"Opera\xe7\xe3o de exclus\xe3o conclu\xedda.","empty":"Visor n\xe3o tem nenhuma rota.","empty-with-filter":"Nenhuma rota corresponde aos crit\xe9rios de filtragem selecionados.","details":{"title":"Detalhes","basic":{"title":"Informa\xe7\xe3o b\xe1sica","key":"Chave:","rule":"Regras:"},"summary":{"title":"Resumo da regra","keep-alive":"Ativo:","type":"Tipo de regra:","key-route-id":"ID de rota chave:"},"specific-fields-titles":{"app":"Campos de aplicativos","forward":"Campos de encaminhamento","intermediary-forward":"Campos intermedi\xe1rios de encaminhamento"},"specific-fields":{"route-id":"Pr\xf3ximo ID de rota:","transport-id":"Pr\xf3ximo ID de transporte:","destination-pk":"Chave p\xfablica de destino:","source-pk":"Chave p\xfablica de origem:","destination-port":"Porta de destino:","source-port":"Porta de origem:"}},"filter-dialog":{"key":"A chave deve conter","type":"O tipo deve ser","source":"A fonte deve conter","destination":"O destino deve conter","any-type-option":"Qualquer uma"}},"copy":{"tooltip":"Clique para copiar","tooltip-with-text":"{{ text }} (Clique para copiar)","copied":"Copiado!"},"selection":{"select-all":"Selecionar tudo","unselect-all":"Desmarque todos","delete-all":"Excluir todos os elementos selecionados","start-all":"Iniciar todos os aplicativos selecionados","stop-all":"Parar todos os aplicativos selecionados","enable-autostart-all":"Habilitar inicializa\xe7\xe3o autom\xe1tica para todos os aplicativos selecionados","disable-autostart-all":"Desativar inicializa\xe7\xe3o autom\xe1tica para todos os aplicativos selecionados"},"refresh-button":{"seconds":"Atualizado alguns segundos atr\xe1s","minute":"Atualizado 1 minuto atr\xe1s","minutes":"Atualizado {{ time }} minutos atr\xe1s","hour":"Atualizado 1 hora atr\xe1s","hours":"Atualizado {{ time }} horas atr\xe1s","day":"Atualizado 1 dia atr\xe1s","days":"Atualizado {{ time }} dias atr\xe1s","week":"Atualizado 1 semana atr\xe1s","weeks":"Atualizado {{ time }} semanas atr\xe1s","error-tooltip":"Ocorreu um erro ao atualizar os dados. Tentando novamente a cada {{ time }} segundos automaticamente..."},"view-all-link":{"label":"Ver todos os elementos {{ number }}"},"paginator":{"first":"Primeira","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Selecione a p\xe1gina"},"confirmation":{"header-text":"Confirma\xe7\xe3o","confirm-button":"Sim","cancel-button":"N\xe3o","close":"Fechar","error-header-text":"Erro","done-header-text":"Feito"},"language":{"title":"Selecione o idioma"},"tabs-window":{"title":"Alterar guia"}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/974.79c671e4ba6f6aa4.js b/cmd/skywire-visor/static/974.79c671e4ba6f6aa4.js
deleted file mode 100644
index 68eb7af3b5..0000000000
--- a/cmd/skywire-visor/static/974.79c671e4ba6f6aa4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[974],{3974:function(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start"},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/974.cbcda0695ddb168b.js b/cmd/skywire-visor/static/974.cbcda0695ddb168b.js
new file mode 100644
index 0000000000..2434e4083f
--- /dev/null
+++ b/cmd/skywire-visor/static/974.cbcda0695ddb168b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[974],{3974:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty":"Visor doesn\'t have any applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}}}}')}}]);
\ No newline at end of file
diff --git a/cmd/skywire-visor/static/assets/i18n/en.json b/cmd/skywire-visor/static/assets/i18n/en.json
index cd1277780b..e19dfe2b1f 100644
--- a/cmd/skywire-visor/static/assets/i18n/en.json
+++ b/cmd/skywire-visor/static/assets/i18n/en.json
@@ -79,7 +79,8 @@
},
"start": {
- "title": "Start"
+ "title": "Start",
+ "loading-error": "An error occurred while getting the initial data. Retrying..."
},
"node": {
@@ -217,6 +218,7 @@
"settings": {
"title": "Settings",
+ "checking-auth": "Checking authentication settings.",
"password" : {
"initial-config-help": "Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.",
"help": "Options for changing your password.",
diff --git a/cmd/skywire-visor/static/assets/i18n/es.json b/cmd/skywire-visor/static/assets/i18n/es.json
index 8b6ed52663..fab9e5105b 100644
--- a/cmd/skywire-visor/static/assets/i18n/es.json
+++ b/cmd/skywire-visor/static/assets/i18n/es.json
@@ -79,7 +79,8 @@
},
"start": {
- "title": "Inicio"
+ "title": "Inicio",
+ "loading-error": "Hubo un error obteniendo los datos iniciales. Reintentando..."
},
"node": {
@@ -221,6 +222,7 @@
"settings": {
"title": "Configuración",
+ "checking-auth": "Revisando configuración de autenticación.",
"password" : {
"initial-config-help": "Use esta opción para establecer la contraseña inicial. Después de establecer una contraseña no es posible usar esta opción para modificarla.",
"help": "Opciones para cambiar la contraseña.",
diff --git a/cmd/skywire-visor/static/assets/i18n/es_base.json b/cmd/skywire-visor/static/assets/i18n/es_base.json
index d9e6b2db45..9527a1ee6d 100644
--- a/cmd/skywire-visor/static/assets/i18n/es_base.json
+++ b/cmd/skywire-visor/static/assets/i18n/es_base.json
@@ -79,7 +79,8 @@
},
"start": {
- "title": "Start"
+ "title": "Start",
+ "loading-error": "An error occurred while getting the initial data. Retrying..."
},
"node": {
@@ -221,6 +222,7 @@
"settings": {
"title": "Settings",
+ "checking-auth": "Checking authentication settings.",
"password" : {
"initial-config-help": "Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.",
"help": "Options for changing your password.",
diff --git a/cmd/skywire-visor/static/assets/scss/_forms.scss b/cmd/skywire-visor/static/assets/scss/_forms.scss
index 128c4ca190..58194b6e65 100644
--- a/cmd/skywire-visor/static/assets/scss/_forms.scss
+++ b/cmd/skywire-visor/static/assets/scss/_forms.scss
@@ -34,3 +34,9 @@ mat-form-field {
@extend .form-help-icon-container;
color: scale-color($white, $alpha: -20%);
}
+
+// Used for showing a form field disabled.
+.element-disabled {
+ pointer-events: none !important;
+ opacity: 0.5 !important;
+}
diff --git a/cmd/skywire-visor/static/assets/scss/_responsive_tables.scss b/cmd/skywire-visor/static/assets/scss/_responsive_tables.scss
index cf382edad5..aecb3c16ad 100644
--- a/cmd/skywire-visor/static/assets/scss/_responsive_tables.scss
+++ b/cmd/skywire-visor/static/assets/scss/_responsive_tables.scss
@@ -18,7 +18,7 @@ $responsive-table-colors: (
td, th {
color: nth($colors, 3) !important;
- padding: 12px 10px !important;
+ padding: 12px 10px;
border-bottom: 1px solid $separator;
}
@@ -46,6 +46,14 @@ $responsive-table-colors: (
}
}
+ .link-row {
+ display: table-row;
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
// Column used for the check boxes.
.selection-col {
width: 30px;
diff --git a/cmd/skywire-visor/static/index.html b/cmd/skywire-visor/static/index.html
index 0fd03c3f13..597c6367ad 100644
--- a/cmd/skywire-visor/static/index.html
+++ b/cmd/skywire-visor/static/index.html
@@ -5,10 +5,10 @@
-
+