From 7780f13af9ad5a58d3f87ff4cc76ded6e79e59f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Thu, 18 Sep 2014 19:48:20 +0200 Subject: Updated ics-openvpn, restart after 1' being killed Fixed notifications too (forgot to do it in another branch, it's #5964). --- app/src/main/res/values-ca/strings-icsopenvpn.xml | 2 +- app/src/main/res/values-de/strings-icsopenvpn.xml | 4 +- app/src/main/res/values-es/strings-icsopenvpn.xml | 7 +- app/src/main/res/values-fr/strings-icsopenvpn.xml | 3 +- app/src/main/res/values-hu/strings.xml | 6 + app/src/main/res/values-in/strings.xml | 6 + app/src/main/res/values-ja/strings-icsopenvpn.xml | 2 +- app/src/main/res/values-pl/strings.xml | 6 + app/src/main/res/values-pt/strings-icsopenvpn.xml | 139 +++ app/src/main/res/values-pt/strings.xml | 6 + app/src/main/res/values-ru/strings-icsopenvpn.xml | 7 +- app/src/main/res/values-sv/strings.xml | 6 + app/src/main/res/values-tr/strings.xml | 6 + app/src/main/res/values/strings-icsopenvpn.xml | 7 +- app/src/main/res/values/untranslatable.xml | 1139 +++++++++++++++++++++ 15 files changed, 1338 insertions(+), 8 deletions(-) create mode 100755 app/src/main/res/values-hu/strings.xml create mode 100755 app/src/main/res/values-in/strings.xml create mode 100755 app/src/main/res/values-pl/strings.xml create mode 100755 app/src/main/res/values-pt/strings-icsopenvpn.xml create mode 100755 app/src/main/res/values-pt/strings.xml create mode 100755 app/src/main/res/values-sv/strings.xml create mode 100755 app/src/main/res/values-tr/strings.xml (limited to 'app/src/main/res') diff --git a/app/src/main/res/values-ca/strings-icsopenvpn.xml b/app/src/main/res/values-ca/strings-icsopenvpn.xml index 67db8022..7e74c198 100755 --- a/app/src/main/res/values-ca/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ca/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/values-de/strings-icsopenvpn.xml b/app/src/main/res/values-de/strings-icsopenvpn.xml index bf115be5..5ece9326 100755 --- a/app/src/main/res/values-de/strings-icsopenvpn.xml +++ b/app/src/main/res/values-de/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + @@ -156,7 +156,7 @@ Importiertes Profil Importiertes Profil %d Fehlerhafte Images - <p>Von offiziellen HTC Firmwares ist bekannt, dass diese teilweise merkwürdige Routing Probleme haben, die dafür sorgen, dass der Verkehr nicht durch den Tunnel fließt. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> im Bug Tracker.)</p><p>Bei älteren Version der offiziellen SONY Firmwares für das Xperia arc S and Xperia Ray scheint der VPNService Support komplett zu fehlen. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\">Issue 29</a> im Bug Tracker.)</p><p>Auf anderen (insbesondere Custom ROMS) fehlt teilweise das tun Kernel Modul oder die Rechte von /dev/tun sind falsch gesetzt. Auf einigen CM9 Firmware wird die \"/dev/tun Eigentümer setzen\" Option in den Allgemeinen Einstellungen benötigt.</p><p>Am wichtigsten ist aber, falls Sie eine fehlerhafte Firmware haben, melden Sie dies Ihrem Hersteller. Desto mehr Leute den Fehler dem Hersteller melden desto wahrscheinlicher werden Sie eine Fehlerkorrektur bekommen.</p> + <p>Von offiziellen HTC Firmwares ist bekannt, dass diese teilweise merkwürdige Routing Probleme haben, die dafür sorgen, dass der Verkehr nicht durch den Tunnel fließt. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> im Bug Tracker.)</p><p>Bei älteren Version der offiziellen SONY Firmwares für das Xperia arc S and Xperia Ray scheint der VPNService Support komplett zu fehlen. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\">Issue 29</a> im Bug Tracker.)</p><p>Auf anderen (insbesondere Custom ROMS) fehlt teilweise das tun Kernel Modul oder die Rechte von /dev/tun sind falsch gesetzt. Auf einigen CM9 Firmware wird die \"/dev/tun Eigentümer setzen\" Option in den Allgemeinen Einstellungen benötigt.</p><p>Am wichtigsten ist aber, falls Sie eine fehlerhafte Firmware haben, melden Sie dies Ihrem Hersteller. Je mehr Leute den Fehler dem Hersteller melden, desto wahrscheinlicher werden Sie eine Fehlerkorrektur bekommen.</p> PKCS12 Veschlüsslungspassword Passphrase privater Schlüssel Passwort diff --git a/app/src/main/res/values-es/strings-icsopenvpn.xml b/app/src/main/res/values-es/strings-icsopenvpn.xml index e9b6ed81..399392bf 100755 --- a/app/src/main/res/values-es/strings-icsopenvpn.xml +++ b/app/src/main/res/values-es/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + @@ -215,6 +215,7 @@ Use el icono <img src=\"ic_menu_archive\"/> para importar un perfil existente (.ovpn or .conf) de tu tarjeta. Asegúrese de checar también las preguntas frecuentes. Hay una guía de inicio rápido. Configuración de enrutamiento o interfaz + El enrutamiento y la configuración de la interfaz no se realiza a través de comandos tradicionales ifconfig / ruta, pero mediante el uso de la API VPNService. Esto resulta en una configuración de enrutamiento diferente que en otros sistemas operativos. La configuración del túnel VPN consta de la dirección IP y las redes que deben ser colocados de través de esta interfaz. Se necesita Especialmente hay dirección compañero de estudios o de gateway. Rutas especiales para llegar a la VPN Server (por ejemplo agregan al usar redirect-gateway) no son necesarios, ya sea. La aplicación, en consecuencia ignorará esta configuración al importar una configuración. La aplicación asegura con la API VPNService que la conexión con el servidor no se encamina a través del túnel VPN. Sólo redes especificando ser enrutados a través del túnel es compatible. La aplicación intenta detectar las redes que no deben ser enrutados a través de túnel (por ejemplo, la ruta xxxx aaaa net_gateway) y calcula un conjunto de rutas que excluye este rutas para emular el comportamiento de otras plataformas. Las ventanas de registro muestra la configuración de la VPNService al establecer una conexión. No regresar a modo sin conexión VPN cuando OpenVPN esta volviendose a conectar. Tun persistente Registro de OpenVPN @@ -314,4 +315,8 @@ Las redes conectadas directamente a los interfaces locales no serán enrutadas a través de la VPN. Al desmarcar esta opción, todo el tráfico previsto para las redes locales será redirigido a la VPN. Evitar la VPN para las redes locales Archivo de Usuario/Contraseña + [Importado de:%s] + Algunos archivos no se pudo encontrar. Por favor, seleccione los archivos que desea importar el perfil: + Para utilizar esta aplicación usted necesita un proveedor de servicio VPN / es un apoyo OpenVPN (a menudo proporcionados por su empleador). Echa un vistazo a http://community.openvpn.net/ para más información sobre OpenVPN y cómo configurar su propio servidor OpenVPN. + Importar registros: diff --git a/app/src/main/res/values-fr/strings-icsopenvpn.xml b/app/src/main/res/values-fr/strings-icsopenvpn.xml index 34512801..a26ce445 100755 --- a/app/src/main/res/values-fr/strings-icsopenvpn.xml +++ b/app/src/main/res/values-fr/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + @@ -216,6 +216,7 @@ Sur certaines images, cette notification joue un son.\nAndroid à introduit ces "Utilisez l\'icône <img src=\"ic_menu_archive\"/> pour importer un fichier profil (.opvpn ou .conf) de votre carte SD." "Veillez également à consulter la FAQ. Il s\'y trouve un guide de démarrage rapide." "Redirections / Configuration de l\'interface" + The Routing and interface configuration is not done via traditional ifconfig/route commands but by using the VPNService API. This results in a different routing configuration than on other OSes. The configuration for the VPN tunnel consists of the IP address and the networks that should be routed over this interface. Especially no peer partner address or gateway address is needed. Special routes to reach the VPN Server (for example added when using redirect-gateway) are not needed either. The application will consequently ignore these settings when importing a configuration. The app ensures with the VPNService API that the connection to the server is not routed through the VPN tunnel. Only specifying networks to be routed via tunnel is supported. The app tries to detect networks that should not be routed over tunnel (e.g. route x.x.x.x y.y.y.y net_gateway) and calculates a route set that excludes this routes to emulate the behaviour of other platforms. The log windows shows the configuration of the VPNService upon establishing a connection. Ne pas couper la connexion VPN lors de la reconnexion d\'OpenVPN. Persistance de l\'interface TUN Log OpenVPN diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml new file mode 100755 index 00000000..e362c81a --- /dev/null +++ b/app/src/main/res/values-hu/strings.xml @@ -0,0 +1,6 @@ + + + + + OpenVPN Androidhoz + diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml new file mode 100755 index 00000000..715057ae --- /dev/null +++ b/app/src/main/res/values-in/strings.xml @@ -0,0 +1,6 @@ + + + + + OpenVPN untuk Android + diff --git a/app/src/main/res/values-ja/strings-icsopenvpn.xml b/app/src/main/res/values-ja/strings-icsopenvpn.xml index c96b9b8e..d537e3d8 100755 --- a/app/src/main/res/values-ja/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ja/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml new file mode 100755 index 00000000..aa233bb7 --- /dev/null +++ b/app/src/main/res/values-pl/strings.xml @@ -0,0 +1,6 @@ + + + + + OpenVPN dla Androida + diff --git a/app/src/main/res/values-pt/strings-icsopenvpn.xml b/app/src/main/res/values-pt/strings-icsopenvpn.xml new file mode 100755 index 00000000..30bf569e --- /dev/null +++ b/app/src/main/res/values-pt/strings-icsopenvpn.xml @@ -0,0 +1,139 @@ + + + + + + Endereço do Servidor: + Porta: + Localização + Não foi possível ler o diretório + Selecionar + Cancelar + Não há dados + Compressão LZO + Sem Certificado + Certificado do Cliente + Chave do Certificado do Cliente + Arquivo PKCS12 + Certificado CA + Você deve selecionar um certificado + O código fonte e o rastreamento de incidentes estão disponíveis em http://code.google.com/p/ics-openvpn/ + Este programa utiliza os seguintes componentes; veja o código fonte para mais detalhes das licenças + Sobre + Perfis + Tipo + Senha do PKCS12 + Selecionar… + Você deve selecionar um arquivo + Utilizar Autenticação TLS + Direção TLS + Entre o Endereço IPv6/CIDR (ex: 2000:dd::23/64) + Entre o endereço IPv4/CIDR (ex: 1.2.3.4/24) + Endereço IPv4 + Endereço IPv6 + Insira as opções personalizadas para o OpenVPN. Utilize com cuidado. Observe também que muitas das opções relacionadas ao tun do OpenVPN não podem ser suportadas pelo design do VPNSettings. Contate o autor se você acha que uma opção importante está faltando. + Usuário + Senha + Para a configuração estática as chaves de autenticação de TLS serão utilizadas como chaves estáticas + Configurar VPN + Adicionar Perfil + Digite um nome que identifica o novo perfil + Por favor, digite um nome de perfil único + Nome do perfil + Você deve selecionar um certificado de usuário + Nenhum erro encontrado + Erro na configuração + Erro ao analisar o endereço IPv4 + Erro ao analisar as rotas personalizadas + (deixe em branco para consulta sob demanda) + Atalho do OpenVPN + Conectar a VPN + O perfil especificado no atalho não foi encontrado + Prefixo de Host aleatório + Adiciona 6 caracteres aleatórios na frente do hostname + Habilitar opções personalizadas + Opções personalizadas. Use com cuidado! + Rota rejeitada pelo Android + Desconectar + Desconectar VPN + limpar log + Cancelar confirmação + Desconectar a VPN conectada/cancelar a tentativa de conexão? + Remover VPN + Verifica se o servidor usa um certificado com as extensões de servidor TLS (- servidor remoto-cert-TLS) + Esperar certificado do servidor TLS + Verifica o DN Subject do certificado do servidor remoto + Verificar o Hostname do Certificado + Especificar a conta usada para verificar o certificado remoto DN (por exemplo, C = DE, L = Paderborn, UO = aviária operadoras IP, CN=openvpn.blinkt.de)\n\Especificar o DN completo ou o RDN (openvpn.blinkt.de no exemplo) ou um prefixo RDN para verification.\n\nWhen usando o prefixo RDN \"Servidor\" corresponde a \"Server-1\" e \"Server-2\" \n\nDeixando vazio, o campo de texto irá verificar o RDN contra o servidor hostname.\n\nPara mais detalhes consulte a página principal do 2.3.1+ OpenVPN sob — verificar-X509-nome + Subject do certificado remoto + Permite a Autenticação de Chave TLS + Arquivo de Auth TLS + Solicitações de endereços de IP, rotas e opções de sincronização do servidor. + Nenhuma informação é solicitada do servidor. Configurações precisam ser especificadas abaixo. + Obter Configurações + DNS + Substituir as configurações de DNS pelo servidor + Use seus próprios servidores de DNS + Domínio de pesquisa + Servidor DNS a ser usado. + Servidor DNS + Servidor DNS secundário utilizado caso o servidor primário esteja inacessível. + Servidor DNS alternativo + Ignorar rotas empurradas + Ignorar rota empurrada pelo servidor. + Redireccionar todo o tráfego pela VPN + Usar rota padrão + Digite rotas personalizadas. Apenas indique destino em formato CIDR. \"10.0.0.0 / 8 2002 :: / 16\" iria dirigir as redes 10.0.0.0 / 8 e 2002 :: / 16 sobre a VPN. + As rotas que não devem ser encaminhados pelo VPN. Use a mesma sintaxe para rotas incluídas. + Rotas personalizadas + Redes excluídas + Nível de complexidade do log + Permite pacotes autenticados a partir de qualquer IP + Permitir servidor flutuante + Opções personalizadas + Editar configurações de VPN + Remover o perfil VPN \'%s\'? + Em algumas imagens ICS personalizado a permissão em / dev / tun pode estar errada, ou o módulo tun pode estar faltando completamente. Para imagens CM9 tente a opção correção propriedade sobre as configurações gerais + Falha ao abrir a interface de tun + "Erro:" + Claro + Abrindo a interface tun: + Local IPv4: %1$s/%2$d IPv6:%3$s MTU:%4$d + Servidor DNS: %1$s, domínio: %2$s + Rotas: %1$s %2$s + Rotas excluídas: %1$s %2$s + Rotas VpnService instaladas: %1$s %2$s + Existem múltiplas informações de interface, %1$s e %2$s, a aplicação assume que o segundo endereço é um endereço \'peer\' do endereço remoto. Será usada uma máscara de rede /32 para o IP local. O modo estabelecido pela OpenVPN é \"%3$s\". + Não consigo entender %1$s e %2$s como uma rota IP com máscara de rede CIDR, usando /32 como máscara de rede. + A rota %1$s/%2$s foi corrigida para %3$s/%2$s + Não é possível aceder aos certificados \'Keychain Android\'. Isso pode ter sido causado por uma atualização de firmware ou uma restauração das configurações da app/app. Será necessário editar o perfil VPN e selecionar novamente o certificado nas configurações básicas para recriar a permissão e possibilitar o acesso ao certificado. + %1$s %2$s + Enviar arquivo de log + Enviar + Ficheiro de registo do ICS OpenVPN + Entrada de registo copiada para a área de transferência + Entrada de registo copiada para a área de transferência + A API VPN não permite o modo Tap em dispositivos sem acesso root. Desta forma não é possível oferecer suporte Tap nesta aplicação + Novamente? Você está brincando? Não, o modo tap não é suportado de maneira nenhuma e enviar mais emails a perguntar se eventualmente será, não irá ajudar. + Perguntas frequentes + Encriptação + Importar + Importar + IPv4 + IPv6 + Senha + Configurações + Avançado + Ignorar + Reiniciar + Conectando + Autenticando + Conectado + Add + Pausa VPN + Retomar VPN + Upload + Download + Vpn Status + Ver opções + diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml new file mode 100755 index 00000000..29eff2ba --- /dev/null +++ b/app/src/main/res/values-pt/strings.xml @@ -0,0 +1,6 @@ + + + + + OpenVPN para Android + diff --git a/app/src/main/res/values-ru/strings-icsopenvpn.xml b/app/src/main/res/values-ru/strings-icsopenvpn.xml index 999df70b..400269ec 100755 --- a/app/src/main/res/values-ru/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ru/strings-icsopenvpn.xml @@ -1,5 +1,5 @@ - + @@ -215,6 +215,7 @@ Используйте <img src=\"ic_menu_archive\"/> кнопку для импорта существующих профилей (.ovpn or .conf) с вашей карты памяти. Не забудьте заглянуть в FAQ. Также имеется краткое руководство. Конфигурация маршрутизации/интерфейса + Конфигурация маршрутизации и интерфейса производится не через традиционные ifconfig/route команды, а с помощью VPNService API. Это приводит к созданию другой конфигурации маршрутизации, отличной от конфигураций, используемых на других ОС. Конфигурация VPN-туннеля состоит из IP-адресов и сетей, которые должны направляться через этот интерфейс. Никаких особых партнерских адресов или адресов шлюза не требуется. Также не требуются и специальные маршруты для соединения с VPN-сервером (например, добавленные при использовании redirect-gateway). Следовательно, приложение будет игнорировать эти параметры при импорте конфигурации. Приложение с помощью VPNService API гарантирует, что подключение к серверу не направляется через VPN-туннель. Поддерживается направление через туннель только определенных сетей. Приложение пытается определить сети, которые не должны быть направлены через туннель (например, маршрут x.x.x.x y.y.y.y net_gateway) и вычисляет список маршрутов, в который не включаются эти маршруты, чтобы эмулировать поведение других платформ. Окна журналов и логов показывают конфигурацию сервиса VPN после установления соединения. Не открывать диалог, когда происходит переподключение VPN. Постоянный tun OpenVPN Журнал @@ -291,6 +292,8 @@ Поведение VPN Разрешить изменение VPN-профилей Аппаратное хранилище ключей: + Иконка приложения пытается использовать OpenVPN для Android + «Начиная с Android 4.3, диалог подтверждения VPN-соединения защищен от приложений, \"накладывающихся поверх экрана». Это приводит к тому, что диалоговое окно подтверждения не реагирует на сенсорные нажатия. Если у вас имеется приложение, использующее наложения, то это может вызвать такое поведение. Если вы обнаружите где-либо такое приложение, свяжитесь с автором приложения. Эта проблема затрагивает все VPN приложения на Android 4.3 и более поздних версиях. Смотрите также < a href = \"http://code.google.com/p/ics-openvpn/issues/detail?id=185\" > Проблему 185 < > для получения дополнительных сведений» Окно подтверждения VPN для Android 4.3 и позже Также Вы можете выразить благодарность в виде пожертвования на Play Store: Спасибо за пожертвование %s! @@ -308,8 +311,10 @@ Неопознання ошибка: %1$s\n\n%2$s %3$s: %1$s\n\n%2$s Если на Вашем устройстве установлены Рут права, Вы можете установить <a href=\"http://xposed.info/\">Xposed framework</a> и <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">модуль автоматического подтверждения диалога подключения VPN</a> на свой страх и риск + Полные тексты лицензий Сети напрямую доступные через локальный интерфейс не будут маршрутизированы через VPN. Отключите эту опцию чтобы направить трафик через VPN. Не использовать VPN для локальных адресов + Файл логина и пароля [Импортировано из: %s] Некоторые файлы не найдены. Выберите файлы для импорта в профиль: Для использования данного приложения Вам необходим VPN провайдер/шлюз поддерживающий OpenVPN. Для получения информации по настройке собственного OpenVPN сервера: http://community.openvpn.net/ diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml new file mode 100755 index 00000000..9e2326bf --- /dev/null +++ b/app/src/main/res/values-sv/strings.xml @@ -0,0 +1,6 @@ + + + + + OpenVPN för Android + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml new file mode 100755 index 00000000..1ab863d1 --- /dev/null +++ b/app/src/main/res/values-tr/strings.xml @@ -0,0 +1,6 @@ + + + + + Android için OpenVPN + diff --git a/app/src/main/res/values/strings-icsopenvpn.xml b/app/src/main/res/values/strings-icsopenvpn.xml index 40698afa..aadbff32 100755 --- a/app/src/main/res/values/strings-icsopenvpn.xml +++ b/app/src/main/res/values/strings-icsopenvpn.xml @@ -254,7 +254,7 @@ Connecting to VPN %s Some versions of Android 4.1 have problems if the name of the keystore certificate contains non alphanumeric characters (like spaces, underscores or dashes). Try to reimport the certificate without special characters Encryption cipher - Packets authentication + Packet authentication Enter packet authentication method Running on %1$s (%2$s) %3$s, Android API %4$d, version %5$s, %6$s built by %s @@ -319,4 +319,9 @@ To use this app you need a VPN provider/VPN gateway supporting OpenVPN (often provided by your employer). Check out http://community.openvpn.net/ for more information on OpenVPN and how to setup your own OpenVPN server. Import log: Vpn topology \"%3$s\" specified but ifconfig %1$s %2$s looks more like an IP address with a network mask. Assuming \"subnet\" topology. + mssfix value has to be a integer between 0 and 9000 + Announce to TCP sessions running over the tunnel that they should limit their send packet sizes such that after OpenVPN has encapsulated them, the resulting UDP packet size that OpenVPN sends to its peer will not exceed this number of bytes. (default is 1450) + Override MSS value of TCP payload + Set MSS of TCP payload + diff --git a/app/src/main/res/values/untranslatable.xml b/app/src/main/res/values/untranslatable.xml index 90090c52..b45d5ae7 100644 --- a/app/src/main/res/values/untranslatable.xml +++ b/app/src/main/res/values/untranslatable.xml @@ -1290,6 +1290,1145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OpenVPN for Android crashed, crash reported + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3