A Roadmap to Robot Motion Planning Software Development

PhD programs and graduate studies in robotics usually include motion planning among its main subjects. Students that focus their research in this subject find themselves trapped in the necessity of programming an environment where to test and validate their theoretic contributions. The programming o...

Full description

Autores:
Pérez Ruiz, Alexander
Rosell, Jan
Tipo de recurso:
Article of investigation
Fecha de publicación:
2009
Institución:
Escuela Colombiana de Ingeniería Julio Garavito
Repositorio:
Repositorio Institucional ECI
Idioma:
eng
OAI Identifier:
oai:repositorio.escuelaing.edu.co:001/2336
Acceso en línea:
https://repositorio.escuelaing.edu.co/handle/001/2336
http://dx.doi.org/10.1002/cae.20269
http://hdl.handle.net/2117/115895
https://upcommons.upc.edu/handle/2117/115895
Palabra clave:
Robots - Programación
Desarrollo de software
Robótica
Educación - Enseñanza
Robots - Programming
Computer software - Development
Robotics
Education - Study and teaching
Robotics
Software development
Path planning
Rights
openAccess
License
https://creativecommons.org/licenses/by-nc-nd/4.0/
id ESCUELAIG2_afd500110ad4086686c3e89d1b6de590
oai_identifier_str oai:repositorio.escuelaing.edu.co:001/2336
network_acronym_str ESCUELAIG2
network_name_str Repositorio Institucional ECI
repository_id_str
dc.title.eng.fl_str_mv A Roadmap to Robot Motion Planning Software Development
title A Roadmap to Robot Motion Planning Software Development
spellingShingle A Roadmap to Robot Motion Planning Software Development
Robots - Programación
Desarrollo de software
Robótica
Educación - Enseñanza
Robots - Programming
Computer software - Development
Robotics
Education - Study and teaching
Robotics
Software development
Path planning
title_short A Roadmap to Robot Motion Planning Software Development
title_full A Roadmap to Robot Motion Planning Software Development
title_fullStr A Roadmap to Robot Motion Planning Software Development
title_full_unstemmed A Roadmap to Robot Motion Planning Software Development
title_sort A Roadmap to Robot Motion Planning Software Development
dc.creator.fl_str_mv Pérez Ruiz, Alexander
Rosell, Jan
dc.contributor.author.none.fl_str_mv Pérez Ruiz, Alexander
Rosell, Jan
dc.contributor.researchgroup.spa.fl_str_mv Grupo de Investigación Ecitrónica
dc.subject.armarc.spa.fl_str_mv Robots - Programación
Desarrollo de software
Robótica
Educación - Enseñanza
topic Robots - Programación
Desarrollo de software
Robótica
Educación - Enseñanza
Robots - Programming
Computer software - Development
Robotics
Education - Study and teaching
Robotics
Software development
Path planning
dc.subject.armarc.eng.fl_str_mv Robots - Programming
Computer software - Development
Robotics
Education - Study and teaching
dc.subject.proposal.eng.fl_str_mv Robotics
Software development
Path planning
description PhD programs and graduate studies in robotics usually include motion planning among its main subjects. Students that focus their research in this subject find themselves trapped in the necessity of programming an environment where to test and validate their theoretic contributions. The programming of this robot motion planning environment is a big challenge. It requires on the one hand good programming skills involving the use of software development tools, programming paradigms, or the knowledge of computational complexity and efficiency issues. On the other hand it requires coping with different related issues like the modeling of objects, computational geometry problems and graphical representations and interfaces. The mastering of all these techniques is good for the curricula of roboticists with a motion planning profile. Nevertheless, the time and effort devoted to this end must remain reasonable. Within this framework, the aim of this paper is to provide the students with a roadmap to help them in the development of the software tools needed to test and validate their robot motion planners. The proposals are made within the scope of multi-platform open source code.
publishDate 2009
dc.date.issued.none.fl_str_mv 2009
dc.date.accessioned.none.fl_str_mv 2023-05-16T17:19:28Z
dc.date.available.none.fl_str_mv 2023-05-16T17:19:28Z
dc.type.spa.fl_str_mv Artículo de revista
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_2df8fbb1
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/article
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/ART
format http://purl.org/coar/resource_type/c_2df8fbb1
status_str publishedVersion
dc.identifier.issn.spa.fl_str_mv 1061-3773
dc.identifier.uri.none.fl_str_mv https://repositorio.escuelaing.edu.co/handle/001/2336
dc.identifier.doi.none.fl_str_mv http://dx.doi.org/10.1002/cae.20269
dc.identifier.handle.none.fl_str_mv http://hdl.handle.net/2117/115895
dc.identifier.instname.spa.fl_str_mv Universitat Politècnica de Catalunya
dc.identifier.reponame.spa.fl_str_mv UPCommons
dc.identifier.repourl.spa.fl_str_mv http://hdl.handle.net/2117/115895
dc.identifier.url.none.fl_str_mv https://upcommons.upc.edu/handle/2117/115895
identifier_str_mv 1061-3773
Universitat Politècnica de Catalunya
UPCommons
url https://repositorio.escuelaing.edu.co/handle/001/2336
http://dx.doi.org/10.1002/cae.20269
http://hdl.handle.net/2117/115895
https://upcommons.upc.edu/handle/2117/115895
dc.language.iso.spa.fl_str_mv eng
language eng
dc.relation.citationendpage.spa.fl_str_mv 12
dc.relation.citationstartpage.spa.fl_str_mv 1
dc.relation.citationvolume.spa.fl_str_mv 18
dc.relation.indexed.spa.fl_str_mv N/A
dc.relation.ispartofjournal.eng.fl_str_mv Computer Applications in Engineering Education
dc.relation.references.spa.fl_str_mv J. C. Latombe, Robot motion planning, Kluwer Academic Publisher, New York, 1991.
S. M. LaValle, Planning algorithms, Cambridge University Press, New York, 2006.
L. E. Kavraki and S. M. LaValle, Handbook of robotics, Springer-Verlag, Berlin Heidelberg, 2008, pp 109-129.
E. Plaku, K. E. Bekris, and L. E. Kavraki, OOPS for planning: An online open-source programming system, IEEE Int Conf Robotics Autom (2007), 3711-3716.
L. Kavraki and J.-C. Latombe, Randomized preprocessing of configuration for fast path planning, IEEE Int Conf Robotics Autom (1994), 2138-2145.
J. J. Kuffner Jr., and S. M. LaValle, RRT-Connect: An efficient approach to single-query path planning, IEEE Int Conf Robotics Autom (2000), 995-1001.
G. Booch, Object-oriented analysis and design with applications, Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, 2004.
G. Booch, J. Rumbaugh, and I. Jacobson, The unified modeling language. Addison Wesley, Massachusetts, 1999.
B. Collins-Sussman, B. Fitzpatrick, and M. Pilato, Version control with subversion. O’Reilly Media Inc., Sebastopol, CA, 2007.
K. Martin and B. Hoffman, Mastering CMake: A cross-platform build system. Kitware Inc., New York, 2005.
J. Blanchette and M. Summerfield, Cþþ GUI programming with Qt 4. Prentice Hall PTR, Upper Saddle River, NJ, 2006.
S. Gottschalk, M. C. Lin and D. Manocha, OBBTree: A hierarchical structure for rapid interference detection, Computer Graphics 30 (1996), 171-180.
G. van den Bergen, Efficient collision detection of complex deformable models using AABB trees, J Graph Tools 2 (1997), 1-13
E. Larsen, S. Gottschalk, M. C. Lin, and D. Manocha, Fast proximity queries with swept sphere volumes, Department of Computer Science, University of North Carolina, Chapel Hill, 1999.
S. Rabin, AI game programmingn wisdom 2. Charles River Media Inc., Hingham, Massachusetts, 2003.
J. H. Halton, On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals, Numer Math 2 (1960), 84-90.
J. Rosell, M. Roa, A. Pérez, and F. García, A general deterministic sequence for sampling d-dimensional configuration spaces, J Intell Robotic Syst 50 (2007), 361-373.
S. Arya, D. M. Mount, N. S. Netanyahu, R. Silverman, and A. Y. Wu, An optimal algorithm for approximate nearest neighbor searching fixed dimensions, J ACM 45 (1998), 891-923.
A. Yershova and S. LaValle, Improving motionplanning algorithms by efficient nearest-neighbor searching, IEEE Trans Robotics 23 (2007), 151 -157.
L.-Q. Lee, J. G. Siek, and A. Lumsdaine, The generic graph component library, 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (1999), 399-414.
J. Rosell, C. Vázquez, A. Pérez, and P. Iñiguez, Motion planning for haptic guidance, J Intell Robotic Syst 53 (2008), 223-245.
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.spa.fl_str_mv https://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-nd/4.0/
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC 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 12 páginas
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Universitat Politècnica de Catalunya
dc.publisher.place.spa.fl_str_mv Barcelona - España
dc.source.spa.fl_str_mv https://upcommons.upc.edu/handle/2117/115895
institution Escuela Colombiana de Ingeniería Julio Garavito
bitstream.url.fl_str_mv https://repositorio.escuelaing.edu.co/bitstream/001/2336/4/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf.jpg
https://repositorio.escuelaing.edu.co/bitstream/001/2336/3/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/2336/2/license.txt
https://repositorio.escuelaing.edu.co/bitstream/001/2336/1/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf
bitstream.checksum.fl_str_mv a691302517f45cd41d1cec35de7f2ffd
213b32c5d9ff1d4138dacae1aa820460
5a7ca94c2e5326ee169f979d71d0f06e
722f7550afff1342838418ee46aa1c01
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Escuela Colombiana de Ingeniería Julio Garavito
repository.mail.fl_str_mv repositorio.eci@escuelaing.edu.co
_version_ 1814355622248841216
spelling Pérez Ruiz, Alexandera4a99b0ac2897508d25c0655728e3f04600Rosell, Jancd397ba9a746703b1ef736e468ed9318600Grupo de Investigación Ecitrónica2023-05-16T17:19:28Z2023-05-16T17:19:28Z20091061-3773https://repositorio.escuelaing.edu.co/handle/001/2336http://dx.doi.org/10.1002/cae.20269http://hdl.handle.net/2117/115895Universitat Politècnica de CatalunyaUPCommonshttp://hdl.handle.net/2117/115895https://upcommons.upc.edu/handle/2117/115895PhD programs and graduate studies in robotics usually include motion planning among its main subjects. Students that focus their research in this subject find themselves trapped in the necessity of programming an environment where to test and validate their theoretic contributions. The programming of this robot motion planning environment is a big challenge. It requires on the one hand good programming skills involving the use of software development tools, programming paradigms, or the knowledge of computational complexity and efficiency issues. On the other hand it requires coping with different related issues like the modeling of objects, computational geometry problems and graphical representations and interfaces. The mastering of all these techniques is good for the curricula of roboticists with a motion planning profile. Nevertheless, the time and effort devoted to this end must remain reasonable. Within this framework, the aim of this paper is to provide the students with a roadmap to help them in the development of the software tools needed to test and validate their robot motion planners. The proposals are made within the scope of multi-platform open source code.Los programas de doctorado y los estudios de postgrado en robótica suelen incluir la planificación del movimiento entre sus temas principales. Los estudiantes que centran su investigación en este tema se ven atrapados en la necesidad de programar un entorno donde probar y validar sus aportaciones teóricas. La programación de este entorno de planificación del movimiento del robot es un gran reto. Requiere, por un lado, buenas habilidades de programación que impliquen el uso de herramientas de desarrollo de software, paradigmas de programación o el conocimiento de cuestiones de complejidad y eficiencia computacional. Por otro lado, requiere hacer frente a diferentes cuestiones relacionadas, como el modelado de objetos, los problemas de geometría computacional y las representaciones e interfaces gráficas. El dominio de todas estas técnicas es bueno para los currículos de los roboticistas con un perfil de planificación del movimiento. Sin embargo, el tiempo y el esfuerzo dedicados a este fin deben seguir siendo razonables. En este marco, el objetivo de este artículo es proporcionar a los estudiantes una hoja de ruta que les ayude en el desarrollo de las herramientas de software necesarias para probar y validar sus planificadores de movimiento robótico. Las propuestas se realizan en el ámbito del código fuente abierto multiplataforma.12 páginasapplication/pdfengUniversitat Politècnica de CatalunyaBarcelona - Españahttps://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)http://purl.org/coar/access_right/c_abf2https://upcommons.upc.edu/handle/2117/115895A Roadmap to Robot Motion Planning Software DevelopmentArtículo de revistainfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_2df8fbb1Textinfo:eu-repo/semantics/articlehttp://purl.org/redcol/resource_type/ARThttp://purl.org/coar/version/c_970fb48d4fbd8a8512118N/AComputer Applications in Engineering EducationJ. C. Latombe, Robot motion planning, Kluwer Academic Publisher, New York, 1991.S. M. LaValle, Planning algorithms, Cambridge University Press, New York, 2006.L. E. Kavraki and S. M. LaValle, Handbook of robotics, Springer-Verlag, Berlin Heidelberg, 2008, pp 109-129.E. Plaku, K. E. Bekris, and L. E. Kavraki, OOPS for planning: An online open-source programming system, IEEE Int Conf Robotics Autom (2007), 3711-3716.L. Kavraki and J.-C. Latombe, Randomized preprocessing of configuration for fast path planning, IEEE Int Conf Robotics Autom (1994), 2138-2145.J. J. Kuffner Jr., and S. M. LaValle, RRT-Connect: An efficient approach to single-query path planning, IEEE Int Conf Robotics Autom (2000), 995-1001.G. Booch, Object-oriented analysis and design with applications, Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, 2004.G. Booch, J. Rumbaugh, and I. Jacobson, The unified modeling language. Addison Wesley, Massachusetts, 1999.B. Collins-Sussman, B. Fitzpatrick, and M. Pilato, Version control with subversion. O’Reilly Media Inc., Sebastopol, CA, 2007.K. Martin and B. Hoffman, Mastering CMake: A cross-platform build system. Kitware Inc., New York, 2005.J. Blanchette and M. Summerfield, Cþþ GUI programming with Qt 4. Prentice Hall PTR, Upper Saddle River, NJ, 2006.S. Gottschalk, M. C. Lin and D. Manocha, OBBTree: A hierarchical structure for rapid interference detection, Computer Graphics 30 (1996), 171-180.G. van den Bergen, Efficient collision detection of complex deformable models using AABB trees, J Graph Tools 2 (1997), 1-13E. Larsen, S. Gottschalk, M. C. Lin, and D. Manocha, Fast proximity queries with swept sphere volumes, Department of Computer Science, University of North Carolina, Chapel Hill, 1999.S. Rabin, AI game programmingn wisdom 2. Charles River Media Inc., Hingham, Massachusetts, 2003.J. H. Halton, On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals, Numer Math 2 (1960), 84-90.J. Rosell, M. Roa, A. Pérez, and F. García, A general deterministic sequence for sampling d-dimensional configuration spaces, J Intell Robotic Syst 50 (2007), 361-373.S. Arya, D. M. Mount, N. S. Netanyahu, R. Silverman, and A. Y. Wu, An optimal algorithm for approximate nearest neighbor searching fixed dimensions, J ACM 45 (1998), 891-923.A. Yershova and S. LaValle, Improving motionplanning algorithms by efficient nearest-neighbor searching, IEEE Trans Robotics 23 (2007), 151 -157.L.-Q. Lee, J. G. Siek, and A. Lumsdaine, The generic graph component library, 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (1999), 399-414.J. Rosell, C. Vázquez, A. Pérez, and P. Iñiguez, Motion planning for haptic guidance, J Intell Robotic Syst 53 (2008), 223-245.Robots - ProgramaciónDesarrollo de softwareRobóticaEducación - EnseñanzaRobots - ProgrammingComputer software - DevelopmentRoboticsEducation - Study and teachingRoboticsSoftware developmentPath planningTHUMBNAILA Roadmap to Robot Motion Planning Software Development.pdf.jpgA Roadmap to Robot Motion Planning Software Development.pdf.jpgGenerated Thumbnailimage/jpeg12479https://repositorio.escuelaing.edu.co/bitstream/001/2336/4/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf.jpga691302517f45cd41d1cec35de7f2ffdMD54open accessTEXTA Roadmap to Robot Motion Planning Software Development.pdf.txtA Roadmap to Robot Motion Planning Software Development.pdf.txtExtracted texttext/plain39364https://repositorio.escuelaing.edu.co/bitstream/001/2336/3/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf.txt213b32c5d9ff1d4138dacae1aa820460MD53open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81881https://repositorio.escuelaing.edu.co/bitstream/001/2336/2/license.txt5a7ca94c2e5326ee169f979d71d0f06eMD52open accessORIGINALA Roadmap to Robot Motion Planning Software Development.pdfA Roadmap to Robot Motion Planning Software Development.pdfArtículo de revistaapplication/pdf1263609https://repositorio.escuelaing.edu.co/bitstream/001/2336/1/A%20Roadmap%20to%20Robot%20Motion%20Planning%20Software%20Development.pdf722f7550afff1342838418ee46aa1c01MD51open access001/2336oai:repositorio.escuelaing.edu.co:001/23362023-09-15 10:56:31.289open accessRepositorio Escuela Colombiana de Ingeniería Julio Garavitorepositorio.eci@escuelaing.edu.coU0kgVVNURUQgSEFDRSBQQVJURSBERUwgR1JVUE8gREUgUEFSRVMgRVZBTFVBRE9SRVMgREUgTEEgQ09MRUNDScOTTiAiUEVFUiBSRVZJRVciLCBPTUlUQSBFU1RBIExJQ0VOQ0lBLgoKQXV0b3Jpem8gYSBsYSBFc2N1ZWxhIENvbG9tYmlhbmEgZGUgSW5nZW5pZXLDrWEgSnVsaW8gR2FyYXZpdG8gcGFyYSBwdWJsaWNhciBlbCB0cmFiYWpvIGRlIGdyYWRvLCBhcnTDrWN1bG8sIHZpZGVvLCAKY29uZmVyZW5jaWEsIGxpYnJvLCBpbWFnZW4sIGZvdG9ncmFmw61hLCBhdWRpbywgcHJlc2VudGFjacOzbiB1IG90cm8gKGVuICAgIGFkZWxhbnRlIGRvY3VtZW50bykgcXVlIGVuIGxhIGZlY2hhIAplbnRyZWdvIGVuIGZvcm1hdG8gZGlnaXRhbCwgeSBsZSBwZXJtaXRvIGRlIGZvcm1hIGluZGVmaW5pZGEgcXVlIGxvIHB1YmxpcXVlIGVuIGVsIHJlcG9zaXRvcmlvIGluc3RpdHVjaW9uYWwsIAplbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIHkgZGVtw6FzIGxleWVzIHkganVyaXNwcnVkZW5jaWEgdmlnZW50ZQphbCByZXNwZWN0bywgcGFyYSBmaW5lcyBlZHVjYXRpdm9zIHkgbm8gbHVjcmF0aXZvcy4gRXN0YSBhdXRvcml6YWNpw7NuIGVzIHbDoWxpZGEgcGFyYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIAp1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbDsgeSBwYXJhIHVzb3MgZW4gcmVkZXMsIGludGVybmV0LCBleHRyYW5ldCwgeSBjdWFscXVpZXIgCmZvcm1hdG8gbyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyLgpFbiBtaSBjYWxpZGFkIGRlIGF1dG9yLCBleHByZXNvIHF1ZSBlbCBkb2N1bWVudG8gb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsbyBlbGFib3LDqSBzaW4gCnF1ZWJyYW50YXIgbmkgc3VwbGFudGFyIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcy4gUG9yIGxvIHRhbnRvLCBlcyBkZSBtaSBleGNsdXNpdmEgYXV0b3LDrWEgeSwgZW4gY29uc2VjdWVuY2lhLCAKdGVuZ28gbGEgdGl0dWxhcmlkYWQgc29icmUgw6lsLiBFbiBjYXNvIGRlIHF1ZWphIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyByZWZlcmVudGUgYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgCmVsIGRvY3VtZW50byBlbiBjdWVzdGnDs24sIGFzdW1pcsOpIGxhIHJlc3BvbnNhYmlsaWRhZCB0b3RhbCB5IHNhbGRyw6kgZW4gZGVmZW5zYSBkZSBsb3MgZGVyZWNob3MgYXF1w60gYXV0b3JpemFkb3MuIEVzdG8gCnNpZ25pZmljYSBxdWUsIHBhcmEgdG9kb3MgbG9zIGVmZWN0b3MsIGxhIEVzY3VlbGEgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIEVzY3VlbGEsIGVsIENhdMOhbG9nbyBlbiBsw61uZWEgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljbywgCnBvZHLDoSBjb3BpYXIgYXBhcnRlcyBkZWwgdGV4dG8sIGNvbiBlbCBjb21wcm9taXNvIGRlIGNpdGFyIHNpZW1wcmUgbGEgZnVlbnRlLCBsYSBjdWFsIGluY2x1eWUgZWwgdMOtdHVsbyBkZWwgdHJhYmFqbyB5IGVsIAphdXRvci5Fc3RhIGF1dG9yaXphY2nDs24gbm8gaW1wbGljYSByZW51bmNpYSBhIGxhIGZhY3VsdGFkIHF1ZSB0ZW5nbyBkZSBwdWJsaWNhciB0b3RhbCBvIHBhcmNpYWxtZW50ZSBsYSBvYnJhIGVuIG90cm9zIAptZWRpb3MuRXN0YSBhdXRvcml6YWNpw7NuIGVzdMOhIHJlc3BhbGRhZGEgcG9yIGxhcyBmaXJtYXMgZGVsIChsb3MpIGF1dG9yKGVzKSBkZWwgZG9jdW1lbnRvLiAKU8OtIGF1dG9yaXpvIChhbWJvcykK