Brailleeasy - una solución de iomt para aprender braille de manera autónoma

Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La i...

Full description

Autores:
Moreno León, Wilmer Andrés
Moreno León, Fausto Leonardo
Tipo de recurso:
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
OAI Identifier:
oai:repository.udistrital.edu.co:11349/93388
Acceso en línea:
http://hdl.handle.net/11349/93388
Palabra clave:
Sistema Braille
Aplicación web
Comandos de voz
Servicios en la nube
Dispositivo electromecánico
Tecnología en Electrónica -- Tesis y disertaciones académicas
Esctitura para ciegos
Adaptación de tecnología
Internet de las cosas médicas (IoMT)
Aplicaciones web accesibles
Braille system
Web application
Voice commands
Cloud services
Electromechanical device
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_05f03a8ddfb7f21b8f7790b3e143d212
oai_identifier_str oai:repository.udistrital.edu.co:11349/93388
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Brailleeasy - una solución de iomt para aprender braille de manera autónoma
dc.title.titleenglish.none.fl_str_mv Brailleeasy - an iomt solution for autonomous braille learning
title Brailleeasy - una solución de iomt para aprender braille de manera autónoma
spellingShingle Brailleeasy - una solución de iomt para aprender braille de manera autónoma
Sistema Braille
Aplicación web
Comandos de voz
Servicios en la nube
Dispositivo electromecánico
Tecnología en Electrónica -- Tesis y disertaciones académicas
Esctitura para ciegos
Adaptación de tecnología
Internet de las cosas médicas (IoMT)
Aplicaciones web accesibles
Braille system
Web application
Voice commands
Cloud services
Electromechanical device
title_short Brailleeasy - una solución de iomt para aprender braille de manera autónoma
title_full Brailleeasy - una solución de iomt para aprender braille de manera autónoma
title_fullStr Brailleeasy - una solución de iomt para aprender braille de manera autónoma
title_full_unstemmed Brailleeasy - una solución de iomt para aprender braille de manera autónoma
title_sort Brailleeasy - una solución de iomt para aprender braille de manera autónoma
dc.creator.fl_str_mv Moreno León, Wilmer Andrés
Moreno León, Fausto Leonardo
dc.contributor.advisor.none.fl_str_mv Hernández Martínez , Henry Alberto
dc.contributor.author.none.fl_str_mv Moreno León, Wilmer Andrés
Moreno León, Fausto Leonardo
dc.subject.none.fl_str_mv Sistema Braille
Aplicación web
Comandos de voz
Servicios en la nube
Dispositivo electromecánico
topic Sistema Braille
Aplicación web
Comandos de voz
Servicios en la nube
Dispositivo electromecánico
Tecnología en Electrónica -- Tesis y disertaciones académicas
Esctitura para ciegos
Adaptación de tecnología
Internet de las cosas médicas (IoMT)
Aplicaciones web accesibles
Braille system
Web application
Voice commands
Cloud services
Electromechanical device
dc.subject.lemb.none.fl_str_mv Tecnología en Electrónica -- Tesis y disertaciones académicas
Esctitura para ciegos
Adaptación de tecnología
Internet de las cosas médicas (IoMT)
Aplicaciones web accesibles
dc.subject.keyword.none.fl_str_mv Braille system
Web application
Voice commands
Cloud services
Electromechanical device
description Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La implementación del proyecto se realizó mediante el desarrollo de una AW accesible desde cualquier navegador, construida con NextJS y diseñada para integrarse con los servicios de Azure. Esta AW se comunica con Azure IoT Hub, el cual gestiona la interacción con el microcontrolador AZ3166, que ejecuta un Sistema Operativo en Tiempo Real (RTOS) basado en Eclipse ThreadX. El acceso a la AW es posible a través de una URL, un código QR o tecnología NFC, todos ellos integrados en el DE, facilitando así la interacción del usuario con el proyecto. Una vez dentro de la AW, el usuario puede interactuar mediante comandos de voz en idioma español, la interfaz captura el audio generado por el usuario, extrae el texto del audio capturado, procesa la intención del usuario a partir del texto, genera una respuesta conforme a las instrucciones recibidas, sintetiza el audio acorde a la respuesta generada y envía los caracteres correspondientes al DE para que este accione un conjunto de servomotores que suben y bajan un mecanismo de palancas para formar una superficie de contacto en función del carácter del SB seleccionado, De esta manera, el dispositivo forma carácter por carácter, palabras o frases en SB.
publishDate 2024
dc.date.created.none.fl_str_mv 2024-10-08
dc.date.accessioned.none.fl_str_mv 2025-03-07T16:10:22Z
dc.date.available.none.fl_str_mv 2025-03-07T16:10:22Z
dc.type.none.fl_str_mv bachelorThesis
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.degree.none.fl_str_mv Monografía
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/93388
url http://hdl.handle.net/11349/93388
dc.relation.references.none.fl_str_mv “Geoportal del DANE - Geovisor CNPV 2018". Geoportal DANE - Inicio. https://geoportal.dane.gov.co/geovisores/sociedad/cnpv-2018/ (accedido el 25 de abril de 2023)
Equipo de Expertos en Educación. "Principales dificultades en el aprendizaje del sistema braile". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/principales-dificultades-en-el-aprendizaje-del-sistema-braile (accedido el 25 de abril de 2023)
Equipo de Expertos en Educación. "Las tecnologías como complemento del Braille, no como sustituto". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/el-uso-del-braille-aplicado-las-nuevas-tecnologiase (accedido el 25 de abril de 2023)
P. Cantón Romero. "APLICACIONES MÓVILES (APPs) | ALBOR: Tic y Nee | EducaMadrid". EducaMadrid. https://www.educa2.madrid.org/web/albor/aplicaciones-moviles/-/visor/braille-tutor (accedido el 25 de abril de 2023)
Index Braille. "BrailleBox V5". https://www.indexbraille.com/en-us/braille-embossers/braillebox-v5 (accedido el 6 de abril de 2023)
Braillio - A fun and fully accessible typing tutor for blind and visually impaired students". Accessibyte. https://www.accessibyte.com/braillio-online-page/ (accedido el 25 de abril de 2023).
Western Governors University. "What is tactile learning?" Western Governors University. https://www.wgu.edu/blog/what-tactilelearning2008. html#openSubscriberModal (accedido el 25 de abril de 2023).
Ruíz. A. (s/f). 4 cursos para aprender Lengua de Señas Colombiana, Braille y más ¡Inscríbete!, de https://bogota.gov.co/servicios/oportunidades-y-apoyos/4-cursos-paraaprender- lengua-de-senas-colombiana-braille-y-mas-inscribete (accedido el 01 de septiembre de 2024).
Suscripciones y cuentas de AWS y Azure - Azure Architecture Center | Microsoft Learn. (n.d.) https://learn.microsoft.com/es-es/azure/architecture/awsprofessional/ accounts (accedido el 02 de abril de 2024).
Eclipse ThreadX · GitHub. (n.d.). https://github.com/eclipse-threadx (accedido el 02 de abril de 2024).
Control access with shared access signatures - Azure IoT Hub | Microsoft Learn. (n.d.), https://learn.microsoft.com/en-us/azure/iot-hub/authenticate-authorize-sas?tabs=node (accedido el 02 de abril de 2024).
The Principles of Standardization. (2012). www.ipc.org.
Conversión de ancho de traza de PCB | DigiKey. (n.d.). https://www.digikey.com/es/resources/conversion-calculators/conversion-calculatorpcb- trace-width (accedido el 02 de abril de 2024).
Docs | Next.js. (n.d.). from https://nextjs.org/docs (accedido el 02 de abril de 2024).
3.13: Porcentaje de Error - LibreTexts Español. (n.d.). https://espanol.libretexts.org/Quimica/Qu%C3%ADmica_Introductoria%2C_Conceptual _y_GOB/Qu%C3%ADmica_Introductoria_(CK- 12)/03%3A_Mediciones/3.13%3A_Porcentaje_de_Error (accedido el 02 de abril de 2024).
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.acceso.none.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.none.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/6ac56c7c-4080-462c-bff1-5ef496510158/download
https://repository.udistrital.edu.co/bitstreams/3fb2b778-8245-4887-9408-e12df1e625e8/download
https://repository.udistrital.edu.co/bitstreams/ba9f877b-0afe-4f7e-a541-c94fb41e10b1/download
https://repository.udistrital.edu.co/bitstreams/86ddf411-1ab6-4603-9713-22df65a97afa/download
https://repository.udistrital.edu.co/bitstreams/5fdf9df4-d69d-4149-8719-7b3762025240/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
76e3f5e83ac7c65b6a75ae911de91b63
0992234b48aedc3621a0f388792610c9
84eadd7cac9f3236b4a05f2ee7945faa
4188e104fa21fa782956f566b79c42f0
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1828165893961547776
spelling Hernández Martínez , Henry AlbertoMoreno León, Wilmer AndrésMoreno León, Fausto Leonardo2025-03-07T16:10:22Z2025-03-07T16:10:22Z2024-10-08http://hdl.handle.net/11349/93388Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La implementación del proyecto se realizó mediante el desarrollo de una AW accesible desde cualquier navegador, construida con NextJS y diseñada para integrarse con los servicios de Azure. Esta AW se comunica con Azure IoT Hub, el cual gestiona la interacción con el microcontrolador AZ3166, que ejecuta un Sistema Operativo en Tiempo Real (RTOS) basado en Eclipse ThreadX. El acceso a la AW es posible a través de una URL, un código QR o tecnología NFC, todos ellos integrados en el DE, facilitando así la interacción del usuario con el proyecto. Una vez dentro de la AW, el usuario puede interactuar mediante comandos de voz en idioma español, la interfaz captura el audio generado por el usuario, extrae el texto del audio capturado, procesa la intención del usuario a partir del texto, genera una respuesta conforme a las instrucciones recibidas, sintetiza el audio acorde a la respuesta generada y envía los caracteres correspondientes al DE para que este accione un conjunto de servomotores que suben y bajan un mecanismo de palancas para formar una superficie de contacto en función del carácter del SB seleccionado, De esta manera, el dispositivo forma carácter por carácter, palabras o frases en SB.With the objective of supporting the user in autonomous learning of the Braille System (SB), the BrailleEasy project integrates a Web Application (WA) as a user interface and an Electromechanical Device (ED), which are part of a solution based on the Internet of Medical Things (IoMT). The project implementation was done by developing an AW accessible from any browser, built with NextJS and designed to integrate with Azure services. This AW communicates with Azure IoT Hub, which manages the interaction with the AZ3166 microcontroller, running a Real-Time Operating System (RTOS) based on Eclipse ThreadX. Access to the AW is possible through a URL, a QR code or NFC technology, all of them integrated in the DE, thus facilitating the user's interaction with the project. Once inside the AW, the user can interact through voice commands in Spanish language, the interface captures the audio generated by the user, extracts the text from the captured audio, processes the user's intention from the text, generates a response according to the instructions received, synthesizes the audio according to the instructions received, and synthesizes the audio according to the instructions received, synthesizes the audio according to the generated response and sends the corresponding characters to the DE so that it drives a set of servomotors that raise and lower a lever mechanism to form a contact surface depending on the character of the selected SB. In this way, the device forms character by character, words or sentences in SB.pdfSistema BrailleAplicación webComandos de vozServicios en la nubeDispositivo electromecánicoTecnología en Electrónica -- Tesis y disertaciones académicasEsctitura para ciegosAdaptación de tecnologíaInternet de las cosas médicas (IoMT)Aplicaciones web accesiblesBraille systemWeb applicationVoice commandsCloud servicesElectromechanical deviceBrailleeasy - una solución de iomt para aprender braille de manera autónomaBrailleeasy - an iomt solution for autonomous braille learningbachelorThesisMonografíahttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2“Geoportal del DANE - Geovisor CNPV 2018". Geoportal DANE - Inicio. https://geoportal.dane.gov.co/geovisores/sociedad/cnpv-2018/ (accedido el 25 de abril de 2023)Equipo de Expertos en Educación. "Principales dificultades en el aprendizaje del sistema braile". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/principales-dificultades-en-el-aprendizaje-del-sistema-braile (accedido el 25 de abril de 2023)Equipo de Expertos en Educación. "Las tecnologías como complemento del Braille, no como sustituto". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/el-uso-del-braille-aplicado-las-nuevas-tecnologiase (accedido el 25 de abril de 2023)P. Cantón Romero. "APLICACIONES MÓVILES (APPs) | ALBOR: Tic y Nee | EducaMadrid". EducaMadrid. https://www.educa2.madrid.org/web/albor/aplicaciones-moviles/-/visor/braille-tutor (accedido el 25 de abril de 2023)Index Braille. "BrailleBox V5". https://www.indexbraille.com/en-us/braille-embossers/braillebox-v5 (accedido el 6 de abril de 2023)Braillio - A fun and fully accessible typing tutor for blind and visually impaired students". Accessibyte. https://www.accessibyte.com/braillio-online-page/ (accedido el 25 de abril de 2023).Western Governors University. "What is tactile learning?" Western Governors University. https://www.wgu.edu/blog/what-tactilelearning2008. html#openSubscriberModal (accedido el 25 de abril de 2023).Ruíz. A. (s/f). 4 cursos para aprender Lengua de Señas Colombiana, Braille y más ¡Inscríbete!, de https://bogota.gov.co/servicios/oportunidades-y-apoyos/4-cursos-paraaprender- lengua-de-senas-colombiana-braille-y-mas-inscribete (accedido el 01 de septiembre de 2024).Suscripciones y cuentas de AWS y Azure - Azure Architecture Center | Microsoft Learn. (n.d.) https://learn.microsoft.com/es-es/azure/architecture/awsprofessional/ accounts (accedido el 02 de abril de 2024).Eclipse ThreadX · GitHub. (n.d.). https://github.com/eclipse-threadx (accedido el 02 de abril de 2024).Control access with shared access signatures - Azure IoT Hub | Microsoft Learn. (n.d.), https://learn.microsoft.com/en-us/azure/iot-hub/authenticate-authorize-sas?tabs=node (accedido el 02 de abril de 2024).The Principles of Standardization. (2012). www.ipc.org.Conversión de ancho de traza de PCB | DigiKey. (n.d.). https://www.digikey.com/es/resources/conversion-calculators/conversion-calculatorpcb- trace-width (accedido el 02 de abril de 2024).Docs | Next.js. (n.d.). from https://nextjs.org/docs (accedido el 02 de abril de 2024).3.13: Porcentaje de Error - LibreTexts Español. (n.d.). https://espanol.libretexts.org/Quimica/Qu%C3%ADmica_Introductoria%2C_Conceptual _y_GOB/Qu%C3%ADmica_Introductoria_(CK- 12)/03%3A_Mediciones/3.13%3A_Porcentaje_de_Error (accedido el 02 de abril de 2024).LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/6ac56c7c-4080-462c-bff1-5ef496510158/download997daf6c648c962d566d7b082dac908dMD51ORIGINALMorenoLeónWilmerAndrés2024.pdfMorenoLeónWilmerAndrés2024.pdfapplication/pdf1307505https://repository.udistrital.edu.co/bitstreams/3fb2b778-8245-4887-9408-e12df1e625e8/download76e3f5e83ac7c65b6a75ae911de91b63MD52Licencia de uso y autorizaciónLicencia de uso y autorizaciónapplication/pdf2933455https://repository.udistrital.edu.co/bitstreams/ba9f877b-0afe-4f7e-a541-c94fb41e10b1/download0992234b48aedc3621a0f388792610c9MD53THUMBNAILMorenoLeónWilmerAndrés2024.pdf.jpgMorenoLeónWilmerAndrés2024.pdf.jpgIM Thumbnailimage/jpeg7281https://repository.udistrital.edu.co/bitstreams/86ddf411-1ab6-4603-9713-22df65a97afa/download84eadd7cac9f3236b4a05f2ee7945faaMD54Licencia de uso y autorización.jpgLicencia de uso y autorización.jpgIM Thumbnailimage/jpeg9871https://repository.udistrital.edu.co/bitstreams/5fdf9df4-d69d-4149-8719-7b3762025240/download4188e104fa21fa782956f566b79c42f0MD5511349/93388oai:repository.udistrital.edu.co:11349/933882025-03-08 01:10:24.384open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK