Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS

ilustraciones, fotografías, graficas

Autores:
Cuero Ortega, Jairo David
Tipo de recurso:
Fecha de publicación:
2022
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/81612
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/81612
https://repositorio.unal.edu.co/
Palabra clave:
530 - Física::537 - Electricidad y electrónica
ROBOTICA
Robotics
Automata
Robot
ROBOTS
ROS
FPGA
Robot móvil
Particionamiento de tareas
Codiseño HW/SW
Mobile Robot
Task partitioning
HW/SW Codesign
Rights
openAccess
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
id UNACIONAL2_c277000cee4d9cff5539a3f7ab7f558b
oai_identifier_str oai:repositorio.unal.edu.co:unal/81612
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
dc.title.spa.fl_str_mv Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
dc.title.translated.eng.fl_str_mv HW/SW architecture for mobile robot task acceleration by integrating FPGA and ROS
title Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
spellingShingle Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
530 - Física::537 - Electricidad y electrónica
ROBOTICA
Robotics
Automata
Robot
ROBOTS
ROS
FPGA
Robot móvil
Particionamiento de tareas
Codiseño HW/SW
Mobile Robot
Task partitioning
HW/SW Codesign
title_short Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
title_full Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
title_fullStr Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
title_full_unstemmed Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
title_sort Arquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROS
dc.creator.fl_str_mv Cuero Ortega, Jairo David
dc.contributor.advisor.none.fl_str_mv Cárdenas Herrera, Pedro Fabián
Gómez, Edwar Jacinto
dc.contributor.author.none.fl_str_mv Cuero Ortega, Jairo David
dc.subject.ddc.spa.fl_str_mv 530 - Física::537 - Electricidad y electrónica
topic 530 - Física::537 - Electricidad y electrónica
ROBOTICA
Robotics
Automata
Robot
ROBOTS
ROS
FPGA
Robot móvil
Particionamiento de tareas
Codiseño HW/SW
Mobile Robot
Task partitioning
HW/SW Codesign
dc.subject.lemb.none.fl_str_mv ROBOTICA
Robotics
Automata
Robot
ROBOTS
dc.subject.proposal.none.fl_str_mv ROS
FPGA
dc.subject.proposal.spa.fl_str_mv Robot móvil
Particionamiento de tareas
Codiseño HW/SW
dc.subject.proposal.eng.fl_str_mv Mobile Robot
Task partitioning
HW/SW Codesign
description ilustraciones, fotografías, graficas
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-06-17T19:58:12Z
dc.date.available.none.fl_str_mv 2022-06-17T19:58:12Z
dc.date.issued.none.fl_str_mv 2022
dc.type.spa.fl_str_mv Trabajo de grado - Maestría
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/masterThesis
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.content.spa.fl_str_mv Text
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TM
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.unal.edu.co/handle/unal/81612
dc.identifier.instname.spa.fl_str_mv Universidad Nacional de Colombia
dc.identifier.reponame.spa.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
dc.identifier.repourl.spa.fl_str_mv https://repositorio.unal.edu.co/
url https://repositorio.unal.edu.co/handle/unal/81612
https://repositorio.unal.edu.co/
identifier_str_mv Universidad Nacional de Colombia
Repositorio Institucional Universidad Nacional de Colombia
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.references.spa.fl_str_mv Azzedine, A., Diguet, J. P., & Pillippe, J. L. (2002). Large exploration for HW/SW partitioning of multirate and aperiodic real-time systems. Hardware/Software Codesign - Proceedings of the International Workshop, 85–90. https://doi.org/10.1145/774801.774807
Asqui, L. (2017). Planificación Y Seguimiento De Caminos De Manera Autónoma Para Robots Móviles Tipo Uniciclo.
Albaladejo, J., De Andrés, D., Lemus, L., & Salvi, J. (2004). Codesign methodology for computer vision applications. Microprocessors and Microsystems, 28(5-6 SPEC. ISS.), 303–316. https://doi.org/10.1016/j.micpro.2004.03.010
Acosta, I. (2018). Mobile robot for research on path planning algotithsms: planning system. 79.
Castellet, D. (2018). Estudio para el diseño y programación de un algoritmo de planificación de trayectorias para un coche autónomo. Universitat Politecnica de Catalunya
Biookaghazadeh, S., Ren, F., & Zhao, M. (2018). Are FPGAs Suitable for Edge Computing? The USENIX Workshop on Hot Topics in Edge Computing. http://arxiv.org/abs/1804.06404
Bingo, H. (2018). Development of a Control Target Recognition for Autonomous Vehicle Using FPGA with Python. Proceedings - 2018 International Conference on FieldProgrammable Technology, FPT 2018, 422–423. https://doi.org/10.1109/FPT.2018.00089
Barber, R., Crespo, J., Gómez, C., Hernámdez, A., & Galli, M. (2018). Mobile Robot Navigation in Indoor Environments Geometric, Topological, and Semantic Navigation. IntechOpen, i(tourism), 25.
Cebollada, S., Payá, L., Flores, M., Peidró, A., & Reinoso, O. (2021). A state-of-the-art review on mobile robotics tasks using artificial intelligence and visual data. Expert Systems with Applications, 167, 114195. https://doi.org/10.1016/J.ESWA.2020.114195
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv x, 71 páginas
dc.format.mimetype.spa.fl_str_mv text/html
dc.publisher.spa.fl_str_mv Universidad Nacional de Colombia
dc.publisher.program.spa.fl_str_mv Bogotá - Ingeniería - Maestría en Ingeniería - Automatización Industrial
dc.publisher.department.spa.fl_str_mv Departamento de Ingeniería Eléctrica y Electrónica
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingeniería
dc.publisher.place.spa.fl_str_mv Bogotá, Colombia
dc.publisher.branch.spa.fl_str_mv Universidad Nacional de Colombia - Sede Bogotá
institution Universidad Nacional de Colombia
bitstream.url.fl_str_mv https://repositorio.unal.edu.co/bitstream/unal/81612/1/1121841693.2022%20-%20Jairo%20David%20Cuero%20Ortega.pdf
https://repositorio.unal.edu.co/bitstream/unal/81612/2/license.txt
https://repositorio.unal.edu.co/bitstream/unal/81612/3/1121841693.2022%20-%20Jairo%20David%20Cuero%20Ortega.pdf.jpg
bitstream.checksum.fl_str_mv 0e351428ed4559a84a98a4ee9dcd7e60
8153f7789df02f0a4c9e079953658ab2
4bbb1ac8a8b6e27e70bd178c5d4e8b62
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
repository.mail.fl_str_mv repositorio_nal@unal.edu.co
_version_ 1806886703954132992
spelling Atribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Cárdenas Herrera, Pedro Fabiánf2a5d883628e057fb0a0370af163e714Gómez, Edwar Jacintof3c62243a49e7608f9bb1342476d0a7bCuero Ortega, Jairo David55ef664844f260b839b5f075e632e62a2022-06-17T19:58:12Z2022-06-17T19:58:12Z2022https://repositorio.unal.edu.co/handle/unal/81612Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustraciones, fotografías, graficasLa complejidad inherente de los robots móviles ha requerido un trabajo interdisciplinario de varios campos de la ingeniería, como las tecnologías de la información y las comunicaciones, la inteligencia artificial y el desarrollo de software. A su vez, la comunidad de ingenieros y desarrolladores que utilizan ROS ha contribuido a que los robots sean mejores, más accesibles y estén presentes casi en cualquier tipo de aplicación. Cada vez más, los robots integran múltiples sensores y actuadores heterogéneos para realizar tareas más complejas que a menudo son computacionalmente intensivas o requieren procesamiento en tiempo real que los procesadores, sin importar cuántos núcleos tengan, no pueden cumplir. Para abordar este problema, se propone desarrollar, evaluar y demostrar en una plataforma robótica prototipo la integración de ROS con dispositivos SoC FPGA que combinan unidades de procesamiento y recursos de hardware reconfigurables en un chip. La plataforma robótica objetivo fue un robot móvil de tracción diferencial utilizado en educación, investigación y desarrollo llamado Turtlebot3 Burger. Este robot compatible con ROS incluye un sensor LiDAR y una placa Raspberry Pi como unidad de procesamiento. La Raspberry se reemplazó por el SoC FPGA Ultra96v2 para implementar una rutina de software para crear el mapa de ocupación a partir de los datos del sensor LiDAR. Se midió el tiempo de ejecución del algoritmo y luego se desarrolló un diseño de hardware para reemplazar parte de la rutina en el software. La partición y la asignación de tareas al hardware programable mejoraron el rendimiento al acelerar hasta diez veces la construcción del mapa de ocupación en el entorno del robot. (Texto tomado de la fuente)The inherent complexity of mobile robots has required interdisciplinary work from several engineering fields, such as information and communications technology, artificial intelligence, and software development. In turn, the community of engineers and developers using ROS has contributed to making robots better, more accessible, and ubiquitous in almost any type of application. Robots increasingly integrate multiple heterogeneous sensors and actuators to perform more complex tasks that are often computationally intensive or require real-time processing that CPUs, no matter how many cores they have, cannot fulfill. To address this problem, we propose developing, evaluating, and demonstrating on a prototype robotic platform the integration of ROS with SoC FPGA devices that combine both processing units and reconfigurable hardware resources on a chip. The target robotic platform was a differential drive mobile robot used in education, research, and development called Turtlebot3 Burger. This ROS-enabled robot includes a LiDAR sensor and a Raspberry Pi board as a processing unit. A SoC FPGA Ultra96v2 replaced the Raspberry to implement a software routine to create the occupancy map from the LiDAR sensor data. Then, we measured the algorithm execution time and developed a hardware design to replace part of the routine in software. The partitioning and the task assignment to the programmable hardware improved the performance by speeding up the construction of the occupancy map in the robot environment by up to ten times.MaestríaMagíster en Ingeniería - Automatización IndustrialRobóticax, 71 páginastext/htmlspaUniversidad Nacional de ColombiaBogotá - Ingeniería - Maestría en Ingeniería - Automatización IndustrialDepartamento de Ingeniería Eléctrica y ElectrónicaFacultad de IngenieríaBogotá, ColombiaUniversidad Nacional de Colombia - Sede Bogotá530 - Física::537 - Electricidad y electrónicaROBOTICARoboticsAutomataRobotROBOTSROSFPGARobot móvilParticionamiento de tareasCodiseño HW/SWMobile RobotTask partitioningHW/SW CodesignArquitectura HW/SW para la aceleración de tareas de robots móviles mediante la integración de FPGA y ROSHW/SW architecture for mobile robot task acceleration by integrating FPGA and ROSTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TMAzzedine, A., Diguet, J. P., & Pillippe, J. L. (2002). Large exploration for HW/SW partitioning of multirate and aperiodic real-time systems. Hardware/Software Codesign - Proceedings of the International Workshop, 85–90. https://doi.org/10.1145/774801.774807Asqui, L. (2017). Planificación Y Seguimiento De Caminos De Manera Autónoma Para Robots Móviles Tipo Uniciclo.Albaladejo, J., De Andrés, D., Lemus, L., & Salvi, J. (2004). Codesign methodology for computer vision applications. Microprocessors and Microsystems, 28(5-6 SPEC. ISS.), 303–316. https://doi.org/10.1016/j.micpro.2004.03.010Acosta, I. (2018). Mobile robot for research on path planning algotithsms: planning system. 79.Castellet, D. (2018). Estudio para el diseño y programación de un algoritmo de planificación de trayectorias para un coche autónomo. Universitat Politecnica de CatalunyaBiookaghazadeh, S., Ren, F., & Zhao, M. (2018). Are FPGAs Suitable for Edge Computing? The USENIX Workshop on Hot Topics in Edge Computing. http://arxiv.org/abs/1804.06404Bingo, H. (2018). Development of a Control Target Recognition for Autonomous Vehicle Using FPGA with Python. Proceedings - 2018 International Conference on FieldProgrammable Technology, FPT 2018, 422–423. https://doi.org/10.1109/FPT.2018.00089Barber, R., Crespo, J., Gómez, C., Hernámdez, A., & Galli, M. (2018). Mobile Robot Navigation in Indoor Environments Geometric, Topological, and Semantic Navigation. IntechOpen, i(tourism), 25.Cebollada, S., Payá, L., Flores, M., Peidró, A., & Reinoso, O. (2021). A state-of-the-art review on mobile robotics tasks using artificial intelligence and visual data. Expert Systems with Applications, 167, 114195. https://doi.org/10.1016/J.ESWA.2020.114195InvestigadoresProveedores de ayuda financiera para estudiantesReceptores de fondos federales y solicitantesORIGINAL1121841693.2022 - Jairo David Cuero Ortega.pdf1121841693.2022 - Jairo David Cuero Ortega.pdfTesis de Maestría en Ingeniería – Automatización Industrialapplication/pdf2989251https://repositorio.unal.edu.co/bitstream/unal/81612/1/1121841693.2022%20-%20Jairo%20David%20Cuero%20Ortega.pdf0e351428ed4559a84a98a4ee9dcd7e60MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-84074https://repositorio.unal.edu.co/bitstream/unal/81612/2/license.txt8153f7789df02f0a4c9e079953658ab2MD52THUMBNAIL1121841693.2022 - Jairo David Cuero Ortega.pdf.jpg1121841693.2022 - Jairo David Cuero Ortega.pdf.jpgGenerated Thumbnailimage/jpeg5411https://repositorio.unal.edu.co/bitstream/unal/81612/3/1121841693.2022%20-%20Jairo%20David%20Cuero%20Ortega.pdf.jpg4bbb1ac8a8b6e27e70bd178c5d4e8b62MD53unal/81612oai:repositorio.unal.edu.co:unal/816122024-08-06 23:10:34.158Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUExBTlRJTExBIERFUMOTU0lUTwoKQ29tbyBlZGl0b3IgZGUgZXN0ZSDDrXRlbSwgdXN0ZWQgcHVlZGUgbW92ZXJsbyBhIHJldmlzacOzbiBzaW4gYW50ZXMgcmVzb2x2ZXIgbG9zIHByb2JsZW1hcyBpZGVudGlmaWNhZG9zLCBkZSBsbyBjb250cmFyaW8sIGhhZ2EgY2xpYyBlbiBHdWFyZGFyIHBhcmEgZ3VhcmRhciBlbCDDrXRlbSB5IHNvbHVjaW9uYXIgZXN0b3MgcHJvYmxlbWFzIG1hcyB0YXJkZS4KClBhcmEgdHJhYmFqb3MgZGVwb3NpdGFkb3MgcG9yIHN1IHByb3BpbyBhdXRvcjoKIApBbCBhdXRvYXJjaGl2YXIgZXN0ZSBncnVwbyBkZSBhcmNoaXZvcyBkaWdpdGFsZXMgeSBzdXMgbWV0YWRhdG9zLCB5byBnYXJhbnRpem8gYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVbmFsIGVsIGRlcmVjaG8gYSBhbG1hY2VuYXJsb3MgeSBtYW50ZW5lcmxvcyBkaXNwb25pYmxlcyBlbiBsw61uZWEgZGUgbWFuZXJhIGdyYXR1aXRhLiBEZWNsYXJvIHF1ZSBsYSBvYnJhIGVzIGRlIG1pIHByb3BpZWRhZCBpbnRlbGVjdHVhbCB5IHF1ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVuYWwgbm8gYXN1bWUgbmluZ3VuYSByZXNwb25zYWJpbGlkYWQgc2kgaGF5IGFsZ3VuYSB2aW9sYWNpw7NuIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGFsIGRpc3RyaWJ1aXIgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuIChTZSByZWNvbWllbmRhIGEgdG9kb3MgbG9zIGF1dG9yZXMgYSBpbmRpY2FyIHN1cyBkZXJlY2hvcyBkZSBhdXRvciBlbiBsYSBww6FnaW5hIGRlIHTDrXR1bG8gZGUgc3UgZG9jdW1lbnRvLikgRGUgbGEgbWlzbWEgbWFuZXJhLCBhY2VwdG8gbG9zIHTDqXJtaW5vcyBkZSBsYSBzaWd1aWVudGUgbGljZW5jaWE6IExvcyBhdXRvcmVzIG8gdGl0dWxhcmVzIGRlbCBkZXJlY2hvIGRlIGF1dG9yIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gY29uZmllcmVuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgdW5hIGxpY2VuY2lhIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBzZSBpbnRlZ3JhIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHF1ZSBzZSBhanVzdGEgYSBsYXMgc2lndWllbnRlcyBjYXJhY3RlcsOtc3RpY2FzOiBhKSBFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWUgZW4gZWwgcmVwb3NpdG9yaW8sIHF1ZSBzZXLDoW4gcHJvcnJvZ2FibGVzIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gcGF0cmltb25pYWwgZGVsIGF1dG9yLiBFbCBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgbGljZW5jaWEgc29saWNpdMOhbmRvbG8gYSBsYSBVbml2ZXJzaWRhZC4gYikgTG9zIGF1dG9yZXMgYXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBwdWJsaWNhciBsYSBvYnJhIGVuIGVsIGZvcm1hdG8gcXVlIGVsIHJlcG9zaXRvcmlvIGxvIHJlcXVpZXJhIChpbXByZXNvLCBkaWdpdGFsLCBlbGVjdHLDs25pY28gbyBjdWFscXVpZXIgb3RybyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSB5IGNvbm9jZW4gcXVlIGRhZG8gcXVlIHNlIHB1YmxpY2EgZW4gSW50ZXJuZXQgcG9yIGVzdGUgaGVjaG8gY2lyY3VsYSBjb24gYWxjYW5jZSBtdW5kaWFsLiBjKSBMb3MgYXV0b3JlcyBhY2VwdGFuIHF1ZSBsYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIHJlbnVuY2lhbiBhIHJlY2liaXIgZW1vbHVtZW50byBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBjb24gcXVlIHNlIHB1YmxpY2EuIGQpIExvcyBhdXRvcmVzIG1hbmlmaWVzdGFuIHF1ZSBzZSB0cmF0YSBkZSB1bmEgb2JyYSBvcmlnaW5hbCBzb2JyZSBsYSBxdWUgdGllbmVuIGxvcyBkZXJlY2hvcyBxdWUgYXV0b3JpemFuIHkgcXVlIHNvbiBlbGxvcyBxdWllbmVzIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uIGUpIExvcyBhdXRvcmVzIGF1dG9yaXphbiBhIGxhIFVuaXZlcnNpZGFkIHBhcmEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcywgaW5kaWNlc3MgeSBidXNjYWRvcmVzIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBzdSBkaWZ1c2nDs24uIGYpIExvcyBhdXRvcmVzIGFjZXB0YW4gcXVlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHB1ZWRhIGNvbnZlcnRpciBlbCBkb2N1bWVudG8gYSBjdWFscXVpZXIgbWVkaW8gbyBmb3JtYXRvIHBhcmEgcHJvcMOzc2l0b3MgZGUgcHJlc2VydmFjacOzbiBkaWdpdGFsLiBTSSBFTCBET0NVTUVOVE8gU0UgQkFTQSBFTiBVTiBUUkFCQUpPIFFVRSBIQSBTSURPIFBBVFJPQ0lOQURPIE8gQVBPWUFETyBQT1IgVU5BIEFHRU5DSUEgTyBVTkEgT1JHQU5JWkFDScOTTiwgQ09OIEVYQ0VQQ0nDk04gREUgTEEgVU5JVkVSU0lEQUQgTkFDSU9OQUwgREUgQ09MT01CSUEsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uIAoKUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igb3RyYXMgcGVyc29uYXMgZGlzdGludGFzIGEgc3UgYXV0b3I6IAoKRGVjbGFybyBxdWUgZWwgZ3J1cG8gZGUgYXJjaGl2b3MgZGlnaXRhbGVzIHkgbWV0YWRhdG9zIGFzb2NpYWRvcyBxdWUgZXN0b3kgYXJjaGl2YW5kbyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVOKSBlcyBkZSBkb21pbmlvIHDDumJsaWNvLiBTaSBubyBmdWVzZSBlbCBjYXNvLCBhY2VwdG8gdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgcG9yIGN1YWxxdWllciBpbmZyYWNjacOzbiBkZSBkZXJlY2hvcyBkZSBhdXRvciBxdWUgY29ubGxldmUgbGEgZGlzdHJpYnVjacOzbiBkZSBlc3RvcyBhcmNoaXZvcyB5IG1ldGFkYXRvcy4KTk9UQTogU0kgTEEgVEVTSVMgQSBQVUJMSUNBUiBBRFFVSVJJw5MgQ09NUFJPTUlTT1MgREUgQ09ORklERU5DSUFMSURBRCBFTiBFTCBERVNBUlJPTExPIE8gUEFSVEVTIERFTCBET0NVTUVOVE8uIFNJR0EgTEEgRElSRUNUUklaIERFIExBIFJFU09MVUNJw5NOIDAyMyBERSAyMDE1LCBQT1IgTEEgQ1VBTCBTRSBFU1RBQkxFQ0UgRUwgUFJPQ0VESU1JRU5UTyBQQVJBIExBIFBVQkxJQ0FDScOTTiBERSBURVNJUyBERSBNQUVTVFLDjUEgWSBET0NUT1JBRE8gREUgTE9TIEVTVFVESUFOVEVTIERFIExBIFVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU4sIEVYUEVESURBIFBPUiBMQSBTRUNSRVRBUsONQSBHRU5FUkFMLiAqTEEgVEVTSVMgQSBQVUJMSUNBUiBERUJFIFNFUiBMQSBWRVJTScOTTiBGSU5BTCBBUFJPQkFEQS4gCgpBbCBoYWNlciBjbGljIGVuIGVsIHNpZ3VpZW50ZSBib3TDs24sIHVzdGVkIGluZGljYSBxdWUgZXN0w6EgZGUgYWN1ZXJkbyBjb24gZXN0b3MgdMOpcm1pbm9zLiBTaSB0aWVuZSBhbGd1bmEgZHVkYSBzb2JyZSBsYSBsaWNlbmNpYSwgcG9yIGZhdm9yLCBjb250YWN0ZSBjb24gZWwgYWRtaW5pc3RyYWRvciBkZWwgc2lzdGVtYS4KClVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIC0gw5psdGltYSBtb2RpZmljYWNpw7NuIDE5LzEwLzIwMjEK