Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos

Este artículo explora en profundidad la integración de técnicas avanzadas de machine learning mediante la metodología Retrieval Augmented Generation (RAG). Se analiza la arquitectura dual que combina procesos de recuperación y generación de información, resaltando su impacto en el entrenamiento de m...

Full description

Autores:
Gonzalez Torres, Daniel Leonardo
Santa Quintero, Ricardo Andres
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2025
Institución:
Universidad Libre
Repositorio:
RIU - Repositorio Institucional UniLibre
Idioma:
OAI Identifier:
oai:repository.unilibre.edu.co:10901/31241
Acceso en línea:
https://hdl.handle.net/10901/31241
Palabra clave:
Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Bases de Datos Vectoriales
Grafos
Modelos de Lenguaje (LLM)
Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Vector database
Graph
Language Models (LLM)
Gestión de datos
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-nd/2.5/co/
id RULIBRE2_1d4d4b4e95b54640cde00563881f0a5b
oai_identifier_str oai:repository.unilibre.edu.co:10901/31241
network_acronym_str RULIBRE2
network_name_str RIU - Repositorio Institucional UniLibre
repository_id_str
dc.title.spa.fl_str_mv Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
dc.title.alternative.spa.fl_str_mv Written Work: RAG Architecture for Context in NLP: Intelligent Data Generation and Access
title Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
spellingShingle Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Bases de Datos Vectoriales
Grafos
Modelos de Lenguaje (LLM)
Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Vector database
Graph
Language Models (LLM)
Gestión de datos
title_short Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
title_full Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
title_fullStr Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
title_full_unstemmed Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
title_sort Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos
dc.creator.fl_str_mv Gonzalez Torres, Daniel Leonardo
Santa Quintero, Ricardo Andres
dc.contributor.advisor.none.fl_str_mv Gonzalez Torres, Daniel Leonardo
Santa Quintero, Ricardo Andres
dc.contributor.author.none.fl_str_mv Gonzalez Torres, Daniel Leonardo
Santa Quintero, Ricardo Andres
dc.subject.spa.fl_str_mv Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Bases de Datos Vectoriales
Grafos
Modelos de Lenguaje (LLM)
topic Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Bases de Datos Vectoriales
Grafos
Modelos de Lenguaje (LLM)
Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Vector database
Graph
Language Models (LLM)
Gestión de datos
dc.subject.subjectenglish.spa.fl_str_mv Retrieval Augmented Generation (RAG)
Machine Learning
Natural Language Processing (NLP)
Corrective RAG
Advanced RAG
JurislibreIA
Sensorama
Vector database
Graph
Language Models (LLM)
dc.subject.lemb.spa.fl_str_mv Gestión de datos
description Este artículo explora en profundidad la integración de técnicas avanzadas de machine learning mediante la metodología Retrieval Augmented Generation (RAG). Se analiza la arquitectura dual que combina procesos de recuperación y generación de información, resaltando su impacto en el entrenamiento de modelos de lenguaje natural. Asimismo, se presentan variantes especializadas como el Corrective RAG y el Advanced RAG, que incorporan mecanismos de retroalimentación y optimización en tiempo real. Se incluye, además, una mención del producto JurislibreIA, desarrollado por el semillero Sensorama, ejemplificando aplicaciones prácticas en dominios complejos como el legal. El estudio se fundamenta en ejemplos de implementación en Python, diagramas explicativos y una revisión crítica de las fuentes relevantes, ofreciendo una guía completa para investigadores y desarrolladores interesados en impulsar soluciones innovadoras basadas en RAG.
publishDate 2025
dc.date.accessioned.none.fl_str_mv 2025-06-04T15:32:03Z
dc.date.available.none.fl_str_mv 2025-06-04T15:32:03Z
dc.date.created.none.fl_str_mv 2025-03-06
dc.type.local.spa.fl_str_mv Tesis de Pregrado
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv https://hdl.handle.net/10901/31241
url https://hdl.handle.net/10901/31241
dc.relation.references.spa.fl_str_mv P. Lewis, et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks," Advances in Neural Information Processing Systems (NeurIPS), 2020.
J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," Proc. of NAACL, 2018.
T. Mikolov, et al., "Distributed Representations of Words and Phrases and their Compositionality," Advances in Neural Information Processing Systems (NeurIPS), 2013.
A. Vaswani, et al., "Attention is All You Need," Advances in Neural Information Processing Systems (NeurIPS), 2017.
I. Sutskever, O. Vinyals, and Q. V. Le, "Sequence to Sequence Learning with Neural Networks," Advances in Neural Information Processing Systems (NeurIPS), 2014.
S. Hochreiter and J. Schmidhuber, "Long Short-Term Memory," Neural Computation, vol. 9, no. 8, pp. 1735–1780, 1997.
Y. Kim, "Convolutional Neural Networks for Sentence Classification," Proc. of EMNLP, 2014.
R. Johnson, et al., "Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation," arXiv:1609.08144, 2016.
Z. Yang, et al., "XLNet: Generalized Autoregressive Pretraining for Language Understanding," Advances in Neural Information Processing Systems (NeurIPS), 2019.
K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition," Proc. of CVPR, 2016.
M. Abadi, et al., "TensorFlow: A System for Large-Scale Machine Learning," Proc. of OSDI, 2016.
F. Chollet, "Keras," GitHub repository, 2015. [Online]. Available: https://github.com/keras-team/keras.
P. Russell and S. Norvig, Artificial Intelligence: A Modern Approach, 3rd ed. Prentice Hall, 2010.
S. Bengio and Y. LeCun, "Scaling Learning Algorithms towards AI," in Large-Scale Kernel Machines, 2007.
Hugging Face, "Retrieval-Augmented Generation (RAG)," [Online]. Available: https://huggingface.co/docs/transformers/model_doc/rag Accessed: Feb. 18, 2025.
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/2.5/co/
dc.rights.license.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 2.5 Colombia
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.spa.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/2.5/co/
Atribución-NoComercial-SinDerivadas 2.5 Colombia
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.spa.fl_str_mv PDF
dc.coverage.spatial.spa.fl_str_mv Bogotá
institution Universidad Libre
bitstream.url.fl_str_mv http://repository.unilibre.edu.co/bitstream/10901/31241/4/Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf.jpg
http://repository.unilibre.edu.co/bitstream/10901/31241/5/Formato%20autorizaci%c3%b3n%20PUBLICACI%c3%93N%20DE%20OBRAS%20-%20Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf.jpg
http://repository.unilibre.edu.co/bitstream/10901/31241/3/license.txt
http://repository.unilibre.edu.co/bitstream/10901/31241/1/Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf
http://repository.unilibre.edu.co/bitstream/10901/31241/2/Formato%20autorizaci%c3%b3n%20PUBLICACI%c3%93N%20DE%20OBRAS%20-%20Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf
bitstream.checksum.fl_str_mv 145769aae497a291718eb9dbcc182095
be2d77281a10d69e5d260845e7817b9c
8a4605be74aa9ea9d79846c1fba20a33
55756d05af8c1db1d60d6bed4befc29e
abe59f74156accd7bc9fa0ec0c5ddead
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Unilibre
repository.mail.fl_str_mv repositorio@unilibrebog.edu.co
_version_ 1837099489766146048
spelling Gonzalez Torres, Daniel LeonardoSanta Quintero, Ricardo AndresGonzalez Torres, Daniel LeonardoSanta Quintero, Ricardo AndresBogotá2025-06-04T15:32:03Z2025-06-04T15:32:03Z2025-03-06https://hdl.handle.net/10901/31241Este artículo explora en profundidad la integración de técnicas avanzadas de machine learning mediante la metodología Retrieval Augmented Generation (RAG). Se analiza la arquitectura dual que combina procesos de recuperación y generación de información, resaltando su impacto en el entrenamiento de modelos de lenguaje natural. Asimismo, se presentan variantes especializadas como el Corrective RAG y el Advanced RAG, que incorporan mecanismos de retroalimentación y optimización en tiempo real. Se incluye, además, una mención del producto JurislibreIA, desarrollado por el semillero Sensorama, ejemplificando aplicaciones prácticas en dominios complejos como el legal. El estudio se fundamenta en ejemplos de implementación en Python, diagramas explicativos y una revisión crítica de las fuentes relevantes, ofreciendo una guía completa para investigadores y desarrolladores interesados en impulsar soluciones innovadoras basadas en RAG.Universidad Libre -- Ingenieria -- Ingenieria de sistemasThis article explores in depth the integration of advanced machine learning techniques using the Retrieval Augmented Generation (RAG) methodology. The dual architecture that combines information retrieval and generation processes is analyzed, highlighting its impact on the training of natural language models. Likewise, specialized variants such as Corrective RAG and Advanced RAG are presented, which incorporate real-time feedback and optimization mechanisms. Also included a mention of the JurislibreIA product, developed by the Sensorama research group, exemplifying practical applications in complex domains such as the legal one. The study is based on implementation examples in Python, explanatory diagrams and a critical review of relevant sources, offering a complete guide for researchers and developers interested in promoting innovative solutions based on RAG.PDFhttp://creativecommons.org/licenses/by-nc-nd/2.5/co/Atribución-NoComercial-SinDerivadas 2.5 Colombiainfo:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Retrieval Augmented Generation (RAG)Machine LearningNatural Language Processing (NLP)Corrective RAGAdvanced RAGJurislibreIASensoramaBases de Datos VectorialesGrafosModelos de Lenguaje (LLM)Retrieval Augmented Generation (RAG)Machine LearningNatural Language Processing (NLP)Corrective RAGAdvanced RAGJurislibreIASensoramaVector databaseGraphLanguage Models (LLM)Gestión de datosArquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de DatosWritten Work: RAG Architecture for Context in NLP: Intelligent Data Generation and AccessTesis de Pregradohttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/bachelorThesisP. Lewis, et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks," Advances in Neural Information Processing Systems (NeurIPS), 2020.J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," Proc. of NAACL, 2018.T. Mikolov, et al., "Distributed Representations of Words and Phrases and their Compositionality," Advances in Neural Information Processing Systems (NeurIPS), 2013.A. Vaswani, et al., "Attention is All You Need," Advances in Neural Information Processing Systems (NeurIPS), 2017.I. Sutskever, O. Vinyals, and Q. V. Le, "Sequence to Sequence Learning with Neural Networks," Advances in Neural Information Processing Systems (NeurIPS), 2014.S. Hochreiter and J. Schmidhuber, "Long Short-Term Memory," Neural Computation, vol. 9, no. 8, pp. 1735–1780, 1997.Y. Kim, "Convolutional Neural Networks for Sentence Classification," Proc. of EMNLP, 2014.R. Johnson, et al., "Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation," arXiv:1609.08144, 2016.Z. Yang, et al., "XLNet: Generalized Autoregressive Pretraining for Language Understanding," Advances in Neural Information Processing Systems (NeurIPS), 2019.K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition," Proc. of CVPR, 2016.M. Abadi, et al., "TensorFlow: A System for Large-Scale Machine Learning," Proc. of OSDI, 2016.F. Chollet, "Keras," GitHub repository, 2015. [Online]. Available: https://github.com/keras-team/keras.P. Russell and S. Norvig, Artificial Intelligence: A Modern Approach, 3rd ed. Prentice Hall, 2010.S. Bengio and Y. LeCun, "Scaling Learning Algorithms towards AI," in Large-Scale Kernel Machines, 2007.Hugging Face, "Retrieval-Augmented Generation (RAG)," [Online]. Available: https://huggingface.co/docs/transformers/model_doc/rag Accessed: Feb. 18, 2025.THUMBNAILTrabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdf.jpgTrabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdf.jpgimage/jpeg52927http://repository.unilibre.edu.co/bitstream/10901/31241/4/Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf.jpg145769aae497a291718eb9dbcc182095MD54Formato autorización PUBLICACIÓN DE OBRAS - Trabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdf.jpgFormato autorización PUBLICACIÓN DE OBRAS - Trabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdf.jpgIM Thumbnailimage/jpeg32168http://repository.unilibre.edu.co/bitstream/10901/31241/5/Formato%20autorizaci%c3%b3n%20PUBLICACI%c3%93N%20DE%20OBRAS%20-%20Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf.jpgbe2d77281a10d69e5d260845e7817b9cMD55LICENSElicense.txtlicense.txttext/plain; charset=utf-81748http://repository.unilibre.edu.co/bitstream/10901/31241/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53ORIGINALTrabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdfTrabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdfapplication/pdf711480http://repository.unilibre.edu.co/bitstream/10901/31241/1/Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdf55756d05af8c1db1d60d6bed4befc29eMD51Formato autorización PUBLICACIÓN DE OBRAS - Trabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdfFormato autorización PUBLICACIÓN DE OBRAS - Trabajo Escrito Arquitectura RAG para el Contexto en PLN Generación y Acceso Inteligente de Datos.pdfapplication/pdf187174http://repository.unilibre.edu.co/bitstream/10901/31241/2/Formato%20autorizaci%c3%b3n%20PUBLICACI%c3%93N%20DE%20OBRAS%20-%20Trabajo%20Escrito%20Arquitectura%20RAG%20para%20el%20Contexto%20en%20PLN%20Generaci%c3%b3n%20y%20Acceso%20Inteligente%20de%20Datos.pdfabe59f74156accd7bc9fa0ec0c5ddeadMD5210901/31241oai:repository.unilibre.edu.co:10901/312412025-06-20 06:01:16.92Repositorio Institucional Unilibrerepositorio@unilibrebog.edu.coTk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=