Generative AI for software architecture

This thesis explores the integration of Generative Artificial Intelligence (GenAI) tools, exemplified by ChatGPT, into software architecture practices, particularly focusing on Attribute Driven Design 3.0 (ADD 3.0). The goal is to develop a GenAI prototype that facilitates software architects in the...

Full description

Autores:
Rivera Hernández, Brian Manuel
Santos Ayala, Juan Martín
Méndez Melo, Julián Andrés
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/74979
Acceso en línea:
https://hdl.handle.net/1992/74979
Palabra clave:
GenAI
Software Architecture
ADD 3.0
Attribute Driven Design
Inteligencia Artificial Generativa
Arquitectura de Software
Ingeniería
Rights
openAccess
License
Attribution-NonCommercial 4.0 International
id UNIANDES2_3d99bc92c117bd5f5559a2474d7ad0bc
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/74979
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.eng.fl_str_mv Generative AI for software architecture
title Generative AI for software architecture
spellingShingle Generative AI for software architecture
GenAI
Software Architecture
ADD 3.0
Attribute Driven Design
Inteligencia Artificial Generativa
Arquitectura de Software
Ingeniería
title_short Generative AI for software architecture
title_full Generative AI for software architecture
title_fullStr Generative AI for software architecture
title_full_unstemmed Generative AI for software architecture
title_sort Generative AI for software architecture
dc.creator.fl_str_mv Rivera Hernández, Brian Manuel
Santos Ayala, Juan Martín
Méndez Melo, Julián Andrés
dc.contributor.advisor.none.fl_str_mv Correal Torres, Dario Ernesto
dc.contributor.author.none.fl_str_mv Rivera Hernández, Brian Manuel
Santos Ayala, Juan Martín
Méndez Melo, Julián Andrés
dc.contributor.jury.none.fl_str_mv Correal Torres, Dario Ernesto
dc.subject.keyword.eng.fl_str_mv GenAI
Software Architecture
ADD 3.0
Attribute Driven Design
topic GenAI
Software Architecture
ADD 3.0
Attribute Driven Design
Inteligencia Artificial Generativa
Arquitectura de Software
Ingeniería
dc.subject.keyword.spa.fl_str_mv Inteligencia Artificial Generativa
Arquitectura de Software
dc.subject.themes.spa.fl_str_mv Ingeniería
description This thesis explores the integration of Generative Artificial Intelligence (GenAI) tools, exemplified by ChatGPT, into software architecture practices, particularly focusing on Attribute Driven Design 3.0 (ADD 3.0). The goal is to develop a GenAI prototype that facilitates software architects in the initial stages of design within the ADD 3.0 framework. By leveraging AI capabilities, the project aims to enhance the quality and efficiency of software architecture processes by providing intelligent support to architects. The resulting tool demonstrates expertise in ADD 3.0 methodology, offering recommendations on patterns, tactics, and styles tailored to the quality scenarios defined by users. Through this integration, GenAI becomes an asset in guiding architects through complex design decisions, ultimately streamlining the software architecture development process.
publishDate 2024
dc.date.accessioned.none.fl_str_mv 2024-08-05T15:29:35Z
dc.date.available.none.fl_str_mv 2024-08-05T15:29:35Z
dc.date.issued.none.fl_str_mv 2024-08-02
dc.type.none.fl_str_mv Trabajo de grado - Pregrado
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.coar.none.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.none.fl_str_mv Text
dc.type.redcol.none.fl_str_mv http://purl.org/redcol/resource_type/TP
format http://purl.org/coar/resource_type/c_7a1f
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://hdl.handle.net/1992/74979
dc.identifier.instname.none.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.none.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.none.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url https://hdl.handle.net/1992/74979
identifier_str_mv instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.none.fl_str_mv eng
language eng
dc.relation.references.none.fl_str_mv Cervantes, H. & Kazman, R. (2016). Designing Software Architectures: A Practical Approach.
Zhang, P., & Kamel Boulos, M. N. (2023). Generative AI in medicine and healthcare: Promises, opportunities, and challenges. Future Internet, 15(286).
Zhang, E. Y., Cheok, A. D., Pan, Z., Cai, J., & Yan, Y. (2023). From Turing to Transformers: A comprehensive review and tutorial on the evolution and applications of generative transformer models. Sci, 5(46). https://doi.org/10.3390/sci5040046
Zhao, W. X., Zhou, K., Li, J., Tang, T., Wang, X., Hou, Y., Min, Y., Zhang, B., Zhang, J., Dong, Z., Du, Y., Yang, C., Chen, Y., Chen, Z., Jiang, J., Ren, R., Li, Y., Tang, X., Liu, Z., Liu, P., Nie, J.-Y., & Wen, J.-R. (2023). A survey of large language models. arXiv. https://arxiv.org/abs/2303.18223
Liu, Y., Han, T., Ma, S., Zhang, J., Yang, Y., Tian, J., ... & Ge, B. (2023). Summary of ChatGPT-related research and perspective towards the future of large language models. arXiv preprint arXiv:2304.01852v4.
Meta. (2024). Introducing Meta Llama 3: The most capable openly available LLM to date. Retrieved from https://ai.meta.com/blog/meta-llama-3/
Vellum.ai. (2024). Llama 3 70B vs GPT-4: Comparison analysis. Retrieved from https://www.vellum.ai/articles/llama-3-70b-vs-gpt-4
Artificial Analysis. (2024). LLM Leaderboard - Comparison of over 30 AI models. Retrieved from https://artificialanalysis.ai/leaderboards/models
Dataconomy. (2024). Llama 3 benchmark: Meta AI vs ChatGPT vs Gemini. Retrieved from https://dataconomy.com/2024/04/llama-3-benchmark-meta-ai-vs-chatgpt-vs-gemini/
Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., ... & Kiela, D. (2020). Retrieval-augmented generation for knowledge-intensive NLP tasks. arXiv preprint arXiv:2005.11401.
Zhou, Y., Muresanu, A. I., Han, Z., Paster, K., Pitis, S., Chan, H., & Ba, J. (2023). Large language models are human-level prompt engineers. In Proceedings of the International Conference on Learning Representations (ICLR 2023). https://arxiv.org/abs/2211.01910
Wooldridge, M., & Jennings, N. (1995). Intelligent agents: Theory and practice. The Knowledge Engineering Review, 10, 115-152.
Andreas, J. (2022). Language models as agent models. arXiv. https://arxiv.org/abs/2211.01910
Context.ai. (2024). Llama 3 70B instruct model card. Retrieved from https://context.ai/model/llama3-70b-instruct-v1
Huggingface.co. (2024). Welcome Llama 3 - Meta's new open LLM. Retrieved from https://huggingface.co/models/meta-llama/Meta-Llama-3-70B-instruct
Hacker News. (2024). Run Llama 3 locally with 1M token context. Retrieved from https://news.ycombinator.com/item?id=30820932
Shazeer, N., Mirhoseini, A., Maziarz, K., Davis, A., Le, Q., Hinton, G., & Dean, J. (2017). Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv. https://arxiv.org/abs/1701.06538
dc.rights.en.fl_str_mv Attribution-NonCommercial 4.0 International
dc.rights.uri.none.fl_str_mv http://creativecommons.org/licenses/by-nc/4.0/
dc.rights.accessrights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.none.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv Attribution-NonCommercial 4.0 International
http://creativecommons.org/licenses/by-nc/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.none.fl_str_mv 94 páginas
dc.format.mimetype.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de los Andes
dc.publisher.program.none.fl_str_mv Ingeniería de Sistemas y Computación
dc.publisher.faculty.none.fl_str_mv Facultad de Ingeniería
dc.publisher.department.none.fl_str_mv Departamento de Ingeniería de Sistemas y Computación
publisher.none.fl_str_mv Universidad de los Andes
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/ad030b11-8043-4832-a59c-642d72f72948/download
https://repositorio.uniandes.edu.co/bitstreams/9abda9f8-9523-4e38-997a-dcdffab4ce0c/download
https://repositorio.uniandes.edu.co/bitstreams/19d8e021-48c5-44dd-996c-01fa4190eb25/download
https://repositorio.uniandes.edu.co/bitstreams/6cd51770-655b-4d0d-ba03-f292c13fe691/download
https://repositorio.uniandes.edu.co/bitstreams/abd64ba1-b2fb-4ccb-b7db-45a1f7378a5c/download
https://repositorio.uniandes.edu.co/bitstreams/af7e08eb-fe8b-48ed-92b1-c8181ba4c1cb/download
https://repositorio.uniandes.edu.co/bitstreams/e679df85-f8c5-46ab-ac72-d937d6e1162b/download
https://repositorio.uniandes.edu.co/bitstreams/ba8e80bd-7662-4b04-83ec-4e55a2d1ecdf/download
bitstream.checksum.fl_str_mv 80bdd22f4c9fbcc22c7ccef6712d2d53
fc39f12b87e08f29a811923850797427
24013099e9e6abb1575dc6ce0855efd5
ae9e573a68e7f92501b6913cc846c39f
0163b08394145232c03e6fdd19ba48c4
c1ef7f43cf28a3c6a315fd9e804acd1f
bb53c0142a6d200315b05e5f25fbb14d
327694fc3543d5fb773c87748cfb0402
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio institucional Séneca
repository.mail.fl_str_mv adminrepositorio@uniandes.edu.co
_version_ 1812134068170522624
spelling Correal Torres, Dario Ernestovirtual::19758-1Rivera Hernández, Brian ManuelSantos Ayala, Juan MartínMéndez Melo, Julián AndrésCorreal Torres, Dario Ernesto2024-08-05T15:29:35Z2024-08-05T15:29:35Z2024-08-02https://hdl.handle.net/1992/74979instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/This thesis explores the integration of Generative Artificial Intelligence (GenAI) tools, exemplified by ChatGPT, into software architecture practices, particularly focusing on Attribute Driven Design 3.0 (ADD 3.0). The goal is to develop a GenAI prototype that facilitates software architects in the initial stages of design within the ADD 3.0 framework. By leveraging AI capabilities, the project aims to enhance the quality and efficiency of software architecture processes by providing intelligent support to architects. The resulting tool demonstrates expertise in ADD 3.0 methodology, offering recommendations on patterns, tactics, and styles tailored to the quality scenarios defined by users. Through this integration, GenAI becomes an asset in guiding architects through complex design decisions, ultimately streamlining the software architecture development process.Pregrado94 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution-NonCommercial 4.0 Internationalhttp://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Generative AI for software architectureTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPGenAISoftware ArchitectureADD 3.0Attribute Driven DesignInteligencia Artificial GenerativaArquitectura de SoftwareIngenieríaCervantes, H. & Kazman, R. (2016). Designing Software Architectures: A Practical Approach.Zhang, P., & Kamel Boulos, M. N. (2023). Generative AI in medicine and healthcare: Promises, opportunities, and challenges. Future Internet, 15(286).Zhang, E. Y., Cheok, A. D., Pan, Z., Cai, J., & Yan, Y. (2023). From Turing to Transformers: A comprehensive review and tutorial on the evolution and applications of generative transformer models. Sci, 5(46). https://doi.org/10.3390/sci5040046Zhao, W. X., Zhou, K., Li, J., Tang, T., Wang, X., Hou, Y., Min, Y., Zhang, B., Zhang, J., Dong, Z., Du, Y., Yang, C., Chen, Y., Chen, Z., Jiang, J., Ren, R., Li, Y., Tang, X., Liu, Z., Liu, P., Nie, J.-Y., & Wen, J.-R. (2023). A survey of large language models. arXiv. https://arxiv.org/abs/2303.18223Liu, Y., Han, T., Ma, S., Zhang, J., Yang, Y., Tian, J., ... & Ge, B. (2023). Summary of ChatGPT-related research and perspective towards the future of large language models. arXiv preprint arXiv:2304.01852v4.Meta. (2024). Introducing Meta Llama 3: The most capable openly available LLM to date. Retrieved from https://ai.meta.com/blog/meta-llama-3/Vellum.ai. (2024). Llama 3 70B vs GPT-4: Comparison analysis. Retrieved from https://www.vellum.ai/articles/llama-3-70b-vs-gpt-4Artificial Analysis. (2024). LLM Leaderboard - Comparison of over 30 AI models. Retrieved from https://artificialanalysis.ai/leaderboards/modelsDataconomy. (2024). Llama 3 benchmark: Meta AI vs ChatGPT vs Gemini. Retrieved from https://dataconomy.com/2024/04/llama-3-benchmark-meta-ai-vs-chatgpt-vs-gemini/Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., ... & Kiela, D. (2020). Retrieval-augmented generation for knowledge-intensive NLP tasks. arXiv preprint arXiv:2005.11401.Zhou, Y., Muresanu, A. I., Han, Z., Paster, K., Pitis, S., Chan, H., & Ba, J. (2023). Large language models are human-level prompt engineers. In Proceedings of the International Conference on Learning Representations (ICLR 2023). https://arxiv.org/abs/2211.01910Wooldridge, M., & Jennings, N. (1995). Intelligent agents: Theory and practice. The Knowledge Engineering Review, 10, 115-152.Andreas, J. (2022). Language models as agent models. arXiv. https://arxiv.org/abs/2211.01910Context.ai. (2024). Llama 3 70B instruct model card. Retrieved from https://context.ai/model/llama3-70b-instruct-v1Huggingface.co. (2024). Welcome Llama 3 - Meta's new open LLM. Retrieved from https://huggingface.co/models/meta-llama/Meta-Llama-3-70B-instructHacker News. (2024). Run Llama 3 locally with 1M token context. Retrieved from https://news.ycombinator.com/item?id=30820932Shazeer, N., Mirhoseini, A., Maziarz, K., Davis, A., Le, Q., Hinton, G., & Dean, J. (2017). Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv. https://arxiv.org/abs/1701.06538202015320202013610201920623Publicationhttps://scholar.google.es/citations?user=Bo4lXDAtq9QCvirtual::19758-1https://scholar.google.es/citations?user=Bo4lXDAtq9QChttps://scholar.google.es/citations?user=Bo4lXDAtq9QC0000-0001-9502-4504virtual::19758-10000-0001-9502-45040000-0001-9502-4504https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000251631virtual::19758-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000251631https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=00002516311b8e646a-b3b6-4384-9e86-be6d0e4acadfvirtual::19758-11b8e646a-b3b6-4384-9e86-be6d0e4acadf1b8e646a-b3b6-4384-9e86-be6d0e4acadf1b8e646a-b3b6-4384-9e86-be6d0e4acadfvirtual::19758-1ORIGINALGenerative AI for software architecture.pdfGenerative AI for software architecture.pdfapplication/pdf6605476https://repositorio.uniandes.edu.co/bitstreams/ad030b11-8043-4832-a59c-642d72f72948/download80bdd22f4c9fbcc22c7ccef6712d2d53MD52autorizacion tesis.pdfautorizacion tesis.pdfHIDEapplication/pdf223015https://repositorio.uniandes.edu.co/bitstreams/9abda9f8-9523-4e38-997a-dcdffab4ce0c/downloadfc39f12b87e08f29a811923850797427MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8914https://repositorio.uniandes.edu.co/bitstreams/19d8e021-48c5-44dd-996c-01fa4190eb25/download24013099e9e6abb1575dc6ce0855efd5MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/6cd51770-655b-4d0d-ba03-f292c13fe691/downloadae9e573a68e7f92501b6913cc846c39fMD54TEXTGenerative AI for software architecture.pdf.txtGenerative AI for software architecture.pdf.txtExtracted texttext/plain100130https://repositorio.uniandes.edu.co/bitstreams/abd64ba1-b2fb-4ccb-b7db-45a1f7378a5c/download0163b08394145232c03e6fdd19ba48c4MD55autorizacion tesis.pdf.txtautorizacion tesis.pdf.txtExtracted texttext/plain1503https://repositorio.uniandes.edu.co/bitstreams/af7e08eb-fe8b-48ed-92b1-c8181ba4c1cb/downloadc1ef7f43cf28a3c6a315fd9e804acd1fMD57THUMBNAILGenerative AI for software architecture.pdf.jpgGenerative AI for software architecture.pdf.jpgGenerated Thumbnailimage/jpeg8050https://repositorio.uniandes.edu.co/bitstreams/e679df85-f8c5-46ab-ac72-d937d6e1162b/downloadbb53c0142a6d200315b05e5f25fbb14dMD56autorizacion tesis.pdf.jpgautorizacion tesis.pdf.jpgGenerated Thumbnailimage/jpeg10368https://repositorio.uniandes.edu.co/bitstreams/ba8e80bd-7662-4b04-83ec-4e55a2d1ecdf/download327694fc3543d5fb773c87748cfb0402MD581992/74979oai:repositorio.uniandes.edu.co:1992/749792024-09-12 16:20:18.804http://creativecommons.org/licenses/by-nc/4.0/Attribution-NonCommercial 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K