Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.

ARMOS (Arquitecturas Modernas para Sistemas de Alimentación) es un grupo de investigación de la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas, que actualmente desarrolla proyectos de las líneas de investigación, desarrollo e innovación en: arquitectura para sistemas de en...

Full description

Autores:
Escobar Guzmán, Johann
Vásquez Gómez, Daniel Andrés
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/93350
Acceso en línea:
http://hdl.handle.net/11349/93350
Palabra clave:
W801
Armos
Transcompilar
API
PWM
UART
Digital
Ingeniería eléctrica por ciclos propedéuticos -- Tesis y disertaciones a cadémicas
W801
Armos
Transcompilation
API
PWM
UART
Digital
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_ac1e85fb6f871d1f4fa9fff12cb31ec8
oai_identifier_str oai:repository.udistrital.edu.co:11349/93350
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
dc.title.titleenglish.none.fl_str_mv Inclusion to the AIXT project of the Winner Micro w801 microcontroller for the transcompilation of its source code from a V-based language to C language.
title Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
spellingShingle Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
W801
Armos
Transcompilar
API
PWM
UART
Digital
Ingeniería eléctrica por ciclos propedéuticos -- Tesis y disertaciones a cadémicas
W801
Armos
Transcompilation
API
PWM
UART
Digital
title_short Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
title_full Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
title_fullStr Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
title_full_unstemmed Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
title_sort Inclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.
dc.creator.fl_str_mv Escobar Guzmán, Johann
Vásquez Gómez, Daniel Andrés
dc.contributor.advisor.none.fl_str_mv Martínez Santa, Fernando
dc.contributor.author.none.fl_str_mv Escobar Guzmán, Johann
Vásquez Gómez, Daniel Andrés
dc.subject.none.fl_str_mv W801
Armos
Transcompilar
API
PWM
UART
Digital
topic W801
Armos
Transcompilar
API
PWM
UART
Digital
Ingeniería eléctrica por ciclos propedéuticos -- Tesis y disertaciones a cadémicas
W801
Armos
Transcompilation
API
PWM
UART
Digital
dc.subject.lemb.none.fl_str_mv Ingeniería eléctrica por ciclos propedéuticos -- Tesis y disertaciones a cadémicas
dc.subject.keyword.none.fl_str_mv W801
Armos
Transcompilation
API
PWM
UART
Digital
description ARMOS (Arquitecturas Modernas para Sistemas de Alimentación) es un grupo de investigación de la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas, que actualmente desarrolla proyectos de las líneas de investigación, desarrollo e innovación en: arquitectura para sistemas de energía, calidad y eficiencia energética, control, robótica y sistemas inteligentes, educación tecnológica basada en las TIC, gestión energética y economía, procesamiento de señales, recursos energéticos distribuidos y redes de comunicación de datos. El grupo de investigación apoya el área de electrónica de potencia de los programas de Tecnología en Electricidad de Media y Baja Tensión (Por ciclos propedéuticos) e Ingeniería Eléctrica (Por ciclos propedéuticos). El grupo se encuentra en continua actividad, desarrollando proyectos de investigación e innovación, capacitación y de otras actividades afines. El proyecto Aixt [1] está inscrito al grupo de investigación ARMOS. El proyecto AIXT surge en el año 2022 en base del proyecto SOKAE, estableciendo un puente entre la estructura de programación, Arduino y microphyton “La estructura de programación está compuesta de tres componentes principales, Lenguaje de programación AIXT, basado en el lenguaje de programación V, Un lenguaje de programación definido como RUST a C y una API. El proyecto AIXT desarrolla una solución a la migración entre los diferentes lenguajes de programación de manera sencilla. Actualmente en el mercado existen variados lenguajes de programación y en cada uno de ellos se debe de compilar los datos para luego ser procesados en los microcontroladores, en el caso puntual del proyecto Aixt se compila en el lenguaje V. En este proyecto se desarrolló un código que permite la transcompilación del lenguaje V a su homónimo en C, puntualmente para el Microcontrolador Winner Micro W801.
publishDate 2024
dc.date.created.none.fl_str_mv 2024-10-15
dc.date.accessioned.none.fl_str_mv 2025-03-06T19:16:18Z
dc.date.available.none.fl_str_mv 2025-03-06T19:16:18Z
dc.type.none.fl_str_mv bachelorThesis
dc.type.degree.none.fl_str_mv Pasantía
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.none.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/93350
url http://hdl.handle.net/11349/93350
dc.language.iso.none.fl_str_mv spa
language spa
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
dc.publisher.none.fl_str_mv Universidad Distrital Francisco José de Caldas
publisher.none.fl_str_mv Universidad Distrital Francisco José de Caldas
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/7256a386-ed4c-4f53-98e5-7d237eff7d0a/download
https://repository.udistrital.edu.co/bitstreams/e6e1b303-9d6c-4c63-bbb4-bfc3343000f8/download
https://repository.udistrital.edu.co/bitstreams/18dbffad-64a1-46d3-bef7-763a52137cda/download
https://repository.udistrital.edu.co/bitstreams/f57055d4-e72c-4d64-8e0f-47e018b5dccd/download
https://repository.udistrital.edu.co/bitstreams/672f2d24-8d08-48dd-a78f-63b6ef74ecdd/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
e166b5cc7a5a5fd95ce13d076bedb5b8
4a8894f5e747a8a78c79896b1b967190
121755585d160b2cedeee404f4adaa2f
ceda8a3845c1967e7e71a5a73cb3f675
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_ 1837007044092100608
spelling Martínez Santa, FernandoEscobar Guzmán, JohannVásquez Gómez, Daniel Andrés2025-03-06T19:16:18Z2025-03-06T19:16:18Z2024-10-15http://hdl.handle.net/11349/93350ARMOS (Arquitecturas Modernas para Sistemas de Alimentación) es un grupo de investigación de la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas, que actualmente desarrolla proyectos de las líneas de investigación, desarrollo e innovación en: arquitectura para sistemas de energía, calidad y eficiencia energética, control, robótica y sistemas inteligentes, educación tecnológica basada en las TIC, gestión energética y economía, procesamiento de señales, recursos energéticos distribuidos y redes de comunicación de datos. El grupo de investigación apoya el área de electrónica de potencia de los programas de Tecnología en Electricidad de Media y Baja Tensión (Por ciclos propedéuticos) e Ingeniería Eléctrica (Por ciclos propedéuticos). El grupo se encuentra en continua actividad, desarrollando proyectos de investigación e innovación, capacitación y de otras actividades afines. El proyecto Aixt [1] está inscrito al grupo de investigación ARMOS. El proyecto AIXT surge en el año 2022 en base del proyecto SOKAE, estableciendo un puente entre la estructura de programación, Arduino y microphyton “La estructura de programación está compuesta de tres componentes principales, Lenguaje de programación AIXT, basado en el lenguaje de programación V, Un lenguaje de programación definido como RUST a C y una API. El proyecto AIXT desarrolla una solución a la migración entre los diferentes lenguajes de programación de manera sencilla. Actualmente en el mercado existen variados lenguajes de programación y en cada uno de ellos se debe de compilar los datos para luego ser procesados en los microcontroladores, en el caso puntual del proyecto Aixt se compila en el lenguaje V. En este proyecto se desarrolló un código que permite la transcompilación del lenguaje V a su homónimo en C, puntualmente para el Microcontrolador Winner Micro W801.ARMOS (Modern Architectures for Power Systems) is a research group within the Technological Faculty at the Universidad Distrital Francisco José de Caldas, currently developing projects in research, development, and innovation in the following areas: energy systems architecture, energy quality and efficiency, control, robotics and intelligent systems, ICT-based technology education, energy management and economics, signal processing, distributed energy resources, and data communication networks. The research group supports the power electronics area in the Medium and Low Voltage Electricity Technology programs (via propaedeutic cycles) and the Electrical Engineering programs (via propaedeutic cycles). The group remains actively engaged in developing research and innovation projects, training programs, and other related activities. The Aixt project is affiliated with the ARMOS research group. The AIXT project began in 2022, building on the SOKAE project and establishing a bridge between programming structures, Arduino, and MicroPython. "The programming structure consists of three main components: the AIXT programming language, based on the V programming language; a programming language defined as RUST to C; and an API. The AIXT project provides a solution for the migration between different programming languages in a straightforward manner. Currently, there are various programming languages available in the market, and for each of them, data must be compiled before being processed in microcontrollers. In the specific case of the AIXT project, compilation is performed in the V language. In this project, a code was developed that allows for the transcompilation of the V language to its counterpart in C, specifically for the Winner Micro W801 microcontroller.pdfspaUniversidad Distrital Francisco José de CaldasW801ArmosTranscompilarAPIPWMUARTDigitalIngeniería eléctrica por ciclos propedéuticos -- Tesis y disertaciones a cadémicasW801ArmosTranscompilationAPIPWMUARTDigitalInclusión al proyecto AIXT del microcontrolador Winner Micro w801 para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C.Inclusion to the AIXT project of the Winner Micro w801 microcontroller for the transcompilation of its source code from a V-based language to C language.bachelorThesisPasantíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/7256a386-ed4c-4f53-98e5-7d237eff7d0a/download997daf6c648c962d566d7b082dac908dMD51ORIGINALEscobarGuzmanJohann2024.pdfEscobarGuzmanJohann2024.pdfapplication/pdf995573https://repository.udistrital.edu.co/bitstreams/e6e1b303-9d6c-4c63-bbb4-bfc3343000f8/downloade166b5cc7a5a5fd95ce13d076bedb5b8MD52Licencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfapplication/pdf374362https://repository.udistrital.edu.co/bitstreams/18dbffad-64a1-46d3-bef7-763a52137cda/download4a8894f5e747a8a78c79896b1b967190MD53THUMBNAILEscobarGuzmanJohann2024.pdf.jpgEscobarGuzmanJohann2024.pdf.jpgIM Thumbnailimage/jpeg4218https://repository.udistrital.edu.co/bitstreams/f57055d4-e72c-4d64-8e0f-47e018b5dccd/download121755585d160b2cedeee404f4adaa2fMD54Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg9508https://repository.udistrital.edu.co/bitstreams/672f2d24-8d08-48dd-a78f-63b6ef74ecdd/downloadceda8a3845c1967e7e71a5a73cb3f675MD5511349/93350oai:repository.udistrital.edu.co:11349/933502025-03-10 01:13:18.104open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK