Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural

ilustraciones

Autores:
Tovar Onofre, Miguel Ángel
Tipo de recurso:
Fecha de publicación:
2023
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/83672
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/83672
https://repositorio.unal.edu.co/
Palabra clave:
Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.
Estructura de datos (computadores)
Computer engineering - study and teaching - congresses
Data structure (computer science)
Reconocimiento de patrones
Modelos computacionales
Procesamiento de lenguaje natural
Aprendizaje de maquina
Análisis de requerimientos
Historias de usuario
UML
Patterns recognition
Computational models
Natural language processing
Machine learning
Requirements analysis
User stories
Rights
openAccess
License
Reconocimiento 4.0 Internacional
id UNACIONAL2_c8b73614af4f79f94cde47f481e1f868
oai_identifier_str oai:repositorio.unal.edu.co:unal/83672
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
dc.title.spa.fl_str_mv Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
dc.title.translated.eng.fl_str_mv Generating class diagrams and use cases from user stories using natural language processing
title Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
spellingShingle Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.
Estructura de datos (computadores)
Computer engineering - study and teaching - congresses
Data structure (computer science)
Reconocimiento de patrones
Modelos computacionales
Procesamiento de lenguaje natural
Aprendizaje de maquina
Análisis de requerimientos
Historias de usuario
UML
Patterns recognition
Computational models
Natural language processing
Machine learning
Requirements analysis
User stories
title_short Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
title_full Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
title_fullStr Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
title_full_unstemmed Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
title_sort Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
dc.creator.fl_str_mv Tovar Onofre, Miguel Ángel
dc.contributor.advisor.none.fl_str_mv Camargo Mendoza, Jorge Eliecer
dc.contributor.author.none.fl_str_mv Tovar Onofre, Miguel Ángel
dc.contributor.researchgroup.spa.fl_str_mv Unsecurelab Cybersecurity Research Group
dc.subject.lemb.spa.fl_str_mv Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.
Estructura de datos (computadores)
topic Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.
Estructura de datos (computadores)
Computer engineering - study and teaching - congresses
Data structure (computer science)
Reconocimiento de patrones
Modelos computacionales
Procesamiento de lenguaje natural
Aprendizaje de maquina
Análisis de requerimientos
Historias de usuario
UML
Patterns recognition
Computational models
Natural language processing
Machine learning
Requirements analysis
User stories
dc.subject.lemb.eng.fl_str_mv Computer engineering - study and teaching - congresses
Data structure (computer science)
dc.subject.proposal.spa.fl_str_mv Reconocimiento de patrones
Modelos computacionales
Procesamiento de lenguaje natural
Aprendizaje de maquina
Análisis de requerimientos
Historias de usuario
dc.subject.proposal.eng.fl_str_mv UML
Patterns recognition
Computational models
Natural language processing
Machine learning
Requirements analysis
User stories
description ilustraciones
publishDate 2023
dc.date.accessioned.none.fl_str_mv 2023-03-29T19:54:54Z
dc.date.available.none.fl_str_mv 2023-03-29T19:54:54Z
dc.date.issued.none.fl_str_mv 2023
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/83672
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/83672
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 A. Batool, Y. Motla, B. Hamid, S. Asghar, M. Mukhtar, and M. Ahmed, “Comparative study of traditional requirement engineering and agile requirement engineering,” pp. 1006–1014, 01 2013.
H. Gomaa, “Software modeling and design: Uml, use cases, patterns, and software architectures,” Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, pp. 1–550, 01 2011.
J. Rumbaugh, G. Booch, and I. Jacobson, The Unified Modeling Language Reference Manual. Addison-Wesley, 2010.
R. Lee, Artificial Intelligence in Daily Life. 01 2020.
C. Narawita and K. Vidanage, “Uml generator – use case and class diagram generation from text requirements,” International Journal on Advances in ICT for Emerging Regions (ICTer), vol. 10, p. 1, 01 2018.
S. Vemuri, S. Chala, and M. Fathi, “Automated use case diagram generation from textual user requirement documents,” pp. 1–4, 04 2017.
F. Gilson and C. Irwin, “From user stories to use case scenarios - towards a generative approach,” 12 2018.
S. Nasiri, Y. Rhazali, M. Lahmer, and N. Chenfour, “Towards a generation of class diagram from user stories in agile methods,” Procedia Computer Science, vol. 170, pp. 831– 837, 01 2020.
S. Nasiri, Y. Rhazali, M. Lahmer, and A. Adadi, “From user stories to uml diagrams driven by ontological and production model,” International Journal of Advanced Computer Science and Applications, vol. 12, 01 2021.
A. M. Maatuk and E. A. Abdelnabi, “Generating uml use case and activity diagrams using nlp techniques and heuristics rules,” in International Conference on Data Science, E-Learning and Information Systems 2021, DATA’21, (New York, NY, USA), p. 271–277, Association for Computing Machinery, 2021.
S. Ahmed, A. Ahmed, and N. U. Eisty, “Automatic transformation of natural to unified modeling language: A systematic review,” in 2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 112–119, 2022.
E. A. Abdelnabi, A. M. Maatuk, and M. Hagal, “Generating uml class diagram from natural language requirements: A survey of approaches and techniques,” in 2021 IEEE 1st International Maghreb Meeting of the Conference on Sciences and Techniques of Automatic Control and Computer Engineering MI-STA, pp. 288–293, 2021.
M. H. Kassab, “The changing landscape of requirements engineering practices over the past decade,” 2015 IEEE Fifth International Workshop on Empirical Requirements Engineering (EmpiRE), pp. 1–8, 2015.
I. K. Raharjana, D. Siahaan, and C. Fatichah, “User stories and natural language processing: A systematic literature review,” IEEE Access, vol. 9, pp. 53811–53826, 2021.
G. Lucassen, F. Dalpiaz, J. M. Werf, and S. Brinkkemper, “The use and effectiveness of user stories in practice,” in Proceedings of the 22nd International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 9619, REFSQ 2016, (Berlin, Heidelberg), p. 205–222, Springer-Verlag, 2016.
E. Btoush and M. Hammad, “Generating er diagrams from requirement specifications based on natural language processing,” International Journal of Database Theory and Application, vol. 8, pp. 61–70, 04 2015.
E. Meryem, K. Nafil, and R. Touahni, “Automatic transformation of user stories into uml use case diagrams using nlp techniques,” Procedia Computer Science, vol. 130, pp. 42–49, 01 2018.
A. Gupta, “Generation of multiple conceptual models from user stories in agile,” in REFSQ Workshops, 2019.
Y. Rigou, D. Lamontagne, and I. Khriss, “A sketch of a deep learning approach for discovering uml class diagrams from system’s textual specification,” 2020 1st International Conference on Innovative Research in Applied Science, Engineering and Technology (IRASET), pp. 1–6, 2020.
T. Kochbati., S. Li., S. G´erard., and C. Mraidha., “From user stories to models: A machine learning empowered automation,” in Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development - MODELSWARD,, pp. 28–40, INSTICC, SciTePress, 2021.
F. Dalpiaz, “Requirements data sets (user stories),” 2018.
F. Dalpiaz, A. Sturm, and P. Gieske, “Extraction of conceptual models: User stories vs. use cases,” 2020.
A. N´ev´eol, H. Dalianis, S. Velupillai, G. Savova, and P. Zweigenbaum, “Clinical natural language processing in languages other than english: Opportunities and challenges,” Journal of biomedical semantics, vol. 9, p. 12, 03 2018.
M. S. M. Suhaimin, M. H. A. Hijazi, R. Alfred, and F. Coenen, “Natural language processing based features for sarcasm detection: An investigation using bilingual social media texts,” in 2017 8th International Conference on Information Technology (ICIT), pp. 703–709, 2017.
S. Elbasha, A. Elhawil, and N. Drawil, “Multilingual sentiment analysis to support business decision-making via machine learning models,” 12 2021.
S. N. Group., “Stanza – a python nlp package for many human languages.” Accedido en 24-09-2022 a https://stanfordnlp.github.io/stanza/, 2020.
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Reconocimiento 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Reconocimiento 4.0 Internacional
http://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv xvi, 95 páginas
dc.format.mimetype.spa.fl_str_mv application/pdf
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 - Ingeniería de Sistemas y Computación
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/83672/1/license.txt
https://repositorio.unal.edu.co/bitstream/unal/83672/2/1016095600.2023.pdf
https://repositorio.unal.edu.co/bitstream/unal/83672/3/1016095600.2023.pdf.jpg
bitstream.checksum.fl_str_mv eb34b1cf90b7e1103fc9dfd26be24b4a
e373461b1c8f54128fc4657ff8e22af0
909d2545e91d32a9d04e396267cd170e
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_ 1814089768706768896
spelling Reconocimiento 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Camargo Mendoza, Jorge Eliecer5348a4327d4ddf28ddd4bd4b01fcbff6Tovar Onofre, Miguel Ángel58fc896514f7fe1be64febf5f6ae1257Unsecurelab Cybersecurity Research Group2023-03-29T19:54:54Z2023-03-29T19:54:54Z2023https://repositorio.unal.edu.co/handle/unal/83672Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustracionesEl presente trabajo busca el desarrollo de un modelo computacional para la generación de diagramas UML a partir de historias de usuario en español, por medio de la aplicación de patrones gramaticales y procesamiento de lenguaje natural. Como conjunto de datos se tomaron diferentes conjuntos de historias de usuario traducidas al español y sus correspondientes diagramas generados manualmente. Los patrones aplicados fueron construidos con base en reglas establecidas para este proceso en idioma inglés, las cuales fueron adaptadas al idioma español y con base en los componentes extraídos, se construyen los diagramas. La evaluación del modelo computacional indica que es capaz de detectar los componentes como clases y actores, alcanzando un recall de hasta 0.8 en algunos casos. Sin embargo, presenta problemas de precisión al momento de extraer sus atributos, métodos o casos de uso, llegando a presentar valores inferiores a 0.1 en algunos componentes. Finalmente el modelo establece una base para guiar a los diseñadores y/o analistas en la implementación de proyectos de software. (Texto tomado de la fuente)The present work seeks to develop a computational model for the generation of UML diagrams from Spanish user stories by means of the application of grammatical patterns and natural language processing. Different sets of user stories translated into Spanish and their corresponding manually generated diagrams were taken as a dataset. The applied patterns were constructed based on rules established for this process in English language, which were adapted to Spanish language and based on the extracted components, the diagrams were constructed. The evaluation of the computational model indicates that it is capable of detecting components such as classes and actors, reaching a recall of up to 0.8 in some cases. However, it presents precision problems when extracting attributes, methods or use cases, presenting values lower than 0.1 in some components. Finally, the model establishes a basis to guide designers and/or analysts in the implementation of software projects.MaestríaMagíster en Ingeniería - Ingeniería de Sistemas y ComputaciónPara este trabajo, se solicitó a estudiantes de carreras a fines a la ingeniería de software, el análisis de distintos grupos de historias de usuario en español y la posterior generación manual de los diagramas de clase y casos de uso a partir de dicho análisis. De manera paralela, se aplicó procesamiento de lenguaje natural sobre las distintas historias de usuario con el fin de obtener sus características (Tokens, lemmas, etiquetas PoS) y de este modo, obtener mayor información sobre sus estructuras. Posteriormente, se construyeron reglas de patrones para la extracción de componentes UML con base en trabajos previos y las reglas gramaticales del idioma español, las cuales fueron aplicadas sobre las diferentes historias de usuario para la detección de los distintos componentes de los diagramas a construir, de acuerdo a la estructura gramatical de las mismas. Una vez extraídos, los componentes son organizados en un archivo de texto, el cual es procesado por un generador automático de diagramas UML y de este modo, obtener los diagramas correspondientes a los diferentes grupos de historias de usuario. Para la evaluación de desempeño del modelo computacional, se realizó una comparación de los componentes encontrados de manera automática y los componentes obtenidos manualmente, teniendo en cuenta diferentes umbrales de similaridad entre los componentes para calcular la precisión, recall y F1 del modelo computacional, frente a la generación manual de diagramas UML partiendo de historias de usuario.Ingeniería de Softwarexvi, 95 páginasapplication/pdfspaUniversidad Nacional de ColombiaBogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y ComputaciónFacultad de IngenieríaBogotá,ColombiaUniversidad Nacional de Colombia - Sede BogotáGeneración de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje naturalGenerating class diagrams and use cases from user stories using natural language processingTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TMA. Batool, Y. Motla, B. Hamid, S. Asghar, M. Mukhtar, and M. Ahmed, “Comparative study of traditional requirement engineering and agile requirement engineering,” pp. 1006–1014, 01 2013.H. Gomaa, “Software modeling and design: Uml, use cases, patterns, and software architectures,” Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, pp. 1–550, 01 2011.J. Rumbaugh, G. Booch, and I. Jacobson, The Unified Modeling Language Reference Manual. Addison-Wesley, 2010.R. Lee, Artificial Intelligence in Daily Life. 01 2020.C. Narawita and K. Vidanage, “Uml generator – use case and class diagram generation from text requirements,” International Journal on Advances in ICT for Emerging Regions (ICTer), vol. 10, p. 1, 01 2018.S. Vemuri, S. Chala, and M. Fathi, “Automated use case diagram generation from textual user requirement documents,” pp. 1–4, 04 2017.F. Gilson and C. Irwin, “From user stories to use case scenarios - towards a generative approach,” 12 2018.S. Nasiri, Y. Rhazali, M. Lahmer, and N. Chenfour, “Towards a generation of class diagram from user stories in agile methods,” Procedia Computer Science, vol. 170, pp. 831– 837, 01 2020.S. Nasiri, Y. Rhazali, M. Lahmer, and A. Adadi, “From user stories to uml diagrams driven by ontological and production model,” International Journal of Advanced Computer Science and Applications, vol. 12, 01 2021.A. M. Maatuk and E. A. Abdelnabi, “Generating uml use case and activity diagrams using nlp techniques and heuristics rules,” in International Conference on Data Science, E-Learning and Information Systems 2021, DATA’21, (New York, NY, USA), p. 271–277, Association for Computing Machinery, 2021.S. Ahmed, A. Ahmed, and N. U. Eisty, “Automatic transformation of natural to unified modeling language: A systematic review,” in 2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 112–119, 2022.E. A. Abdelnabi, A. M. Maatuk, and M. Hagal, “Generating uml class diagram from natural language requirements: A survey of approaches and techniques,” in 2021 IEEE 1st International Maghreb Meeting of the Conference on Sciences and Techniques of Automatic Control and Computer Engineering MI-STA, pp. 288–293, 2021.M. H. Kassab, “The changing landscape of requirements engineering practices over the past decade,” 2015 IEEE Fifth International Workshop on Empirical Requirements Engineering (EmpiRE), pp. 1–8, 2015.I. K. Raharjana, D. Siahaan, and C. Fatichah, “User stories and natural language processing: A systematic literature review,” IEEE Access, vol. 9, pp. 53811–53826, 2021.G. Lucassen, F. Dalpiaz, J. M. Werf, and S. Brinkkemper, “The use and effectiveness of user stories in practice,” in Proceedings of the 22nd International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 9619, REFSQ 2016, (Berlin, Heidelberg), p. 205–222, Springer-Verlag, 2016.E. Btoush and M. Hammad, “Generating er diagrams from requirement specifications based on natural language processing,” International Journal of Database Theory and Application, vol. 8, pp. 61–70, 04 2015.E. Meryem, K. Nafil, and R. Touahni, “Automatic transformation of user stories into uml use case diagrams using nlp techniques,” Procedia Computer Science, vol. 130, pp. 42–49, 01 2018.A. Gupta, “Generation of multiple conceptual models from user stories in agile,” in REFSQ Workshops, 2019.Y. Rigou, D. Lamontagne, and I. Khriss, “A sketch of a deep learning approach for discovering uml class diagrams from system’s textual specification,” 2020 1st International Conference on Innovative Research in Applied Science, Engineering and Technology (IRASET), pp. 1–6, 2020.T. Kochbati., S. Li., S. G´erard., and C. Mraidha., “From user stories to models: A machine learning empowered automation,” in Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development - MODELSWARD,, pp. 28–40, INSTICC, SciTePress, 2021.F. Dalpiaz, “Requirements data sets (user stories),” 2018.F. Dalpiaz, A. Sturm, and P. Gieske, “Extraction of conceptual models: User stories vs. use cases,” 2020.A. N´ev´eol, H. Dalianis, S. Velupillai, G. Savova, and P. Zweigenbaum, “Clinical natural language processing in languages other than english: Opportunities and challenges,” Journal of biomedical semantics, vol. 9, p. 12, 03 2018.M. S. M. Suhaimin, M. H. A. Hijazi, R. Alfred, and F. Coenen, “Natural language processing based features for sarcasm detection: An investigation using bilingual social media texts,” in 2017 8th International Conference on Information Technology (ICIT), pp. 703–709, 2017.S. Elbasha, A. Elhawil, and N. Drawil, “Multilingual sentiment analysis to support business decision-making via machine learning models,” 12 2021.S. N. Group., “Stanza – a python nlp package for many human languages.” Accedido en 24-09-2022 a https://stanfordnlp.github.io/stanza/, 2020.Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.Estructura de datos (computadores)Computer engineering - study and teaching - congressesData structure (computer science)Reconocimiento de patronesModelos computacionalesProcesamiento de lenguaje naturalAprendizaje de maquinaAnálisis de requerimientosHistorias de usuarioUMLPatterns recognitionComputational modelsNatural language processingMachine learningRequirements analysisUser storiesLICENSElicense.txtlicense.txttext/plain; charset=utf-85879https://repositorio.unal.edu.co/bitstream/unal/83672/1/license.txteb34b1cf90b7e1103fc9dfd26be24b4aMD51ORIGINAL1016095600.2023.pdf1016095600.2023.pdfMaestría en Ingeniería - Ingeniería de Sistemas y Computaciónapplication/pdf2400423https://repositorio.unal.edu.co/bitstream/unal/83672/2/1016095600.2023.pdfe373461b1c8f54128fc4657ff8e22af0MD52THUMBNAIL1016095600.2023.pdf.jpg1016095600.2023.pdf.jpgGenerated Thumbnailimage/jpeg4775https://repositorio.unal.edu.co/bitstream/unal/83672/3/1016095600.2023.pdf.jpg909d2545e91d32a9d04e396267cd170eMD53unal/83672oai:repositorio.unal.edu.co:unal/836722024-07-31 23:12:51.07Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUEFSVEUgMS4gVMOJUk1JTk9TIERFIExBIExJQ0VOQ0lBIFBBUkEgUFVCTElDQUNJw5NOIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KCkxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgYXV0b3IsIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgc2UgaW50ZWdyYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsLCBiYWpvIGxvcyBzaWd1aWVudGVzIHTDqXJtaW5vczoKCgphKQlMb3MgYXV0b3JlcyB5L28gbG9zIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEgcGFyYSByZWFsaXphciBsb3Mgc2lndWllbnRlcyBhY3RvcyBzb2JyZSBsYSBvYnJhOiBpKSByZXByb2R1Y2lyIGxhIG9icmEgZGUgbWFuZXJhIGRpZ2l0YWwsIHBlcm1hbmVudGUgbyB0ZW1wb3JhbCwgaW5jbHV5ZW5kbyBlbCBhbG1hY2VuYW1pZW50byBlbGVjdHLDs25pY28sIGFzw60gY29tbyBjb252ZXJ0aXIgZWwgZG9jdW1lbnRvIGVuIGVsIGN1YWwgc2UgZW5jdWVudHJhIGNvbnRlbmlkYSBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBleGlzdGVudGUgYSBsYSBmZWNoYSBkZSBsYSBzdXNjcmlwY2nDs24gZGUgbGEgcHJlc2VudGUgbGljZW5jaWEsIHkgaWkpIGNvbXVuaWNhciBhbCBww7pibGljbyBsYSBvYnJhIHBvciBjdWFscXVpZXIgbWVkaW8gbyBwcm9jZWRpbWllbnRvLCBlbiBtZWRpb3MgYWzDoW1icmljb3MgbyBpbmFsw6FtYnJpY29zLCBpbmNsdXllbmRvIGxhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBlbiBhY2Nlc28gYWJpZXJ0by4gQWRpY2lvbmFsIGEgbG8gYW50ZXJpb3IsIGVsIGF1dG9yIHkvbyB0aXR1bGFyIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBxdWUsIGVuIGxhIHJlcHJvZHVjY2nDs24geSBjb211bmljYWNpw7NuIGFsIHDDumJsaWNvIHF1ZSBsYSBVbml2ZXJzaWRhZCByZWFsaWNlIHNvYnJlIGxhIG9icmEsIGhhZ2EgbWVuY2nDs24gZGUgbWFuZXJhIGV4cHJlc2EgYWwgdGlwbyBkZSBsaWNlbmNpYSBDcmVhdGl2ZSBDb21tb25zIGJham8gbGEgY3VhbCBlbCBhdXRvciB5L28gdGl0dWxhciBkZXNlYSBvZnJlY2VyIHN1IG9icmEgYSBsb3MgdGVyY2Vyb3MgcXVlIGFjY2VkYW4gYSBkaWNoYSBvYnJhIGEgdHJhdsOpcyBkZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCwgY3VhbmRvIHNlYSBlbCBjYXNvLiBFbCBhdXRvciB5L28gdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgcHJlc2VudGUgbGljZW5jaWEgbWVkaWFudGUgc29saWNpdHVkIGVsZXZhZGEgYSBsYSBEaXJlY2Npw7NuIE5hY2lvbmFsIGRlIEJpYmxpb3RlY2FzIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLiAKCmIpIAlMb3MgYXV0b3JlcyB5L28gdGl0dWxhcmVzIGRlIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIGF1dG9yIHNvYnJlIGxhIG9icmEgY29uZmllcmVuIGxhIGxpY2VuY2lhIHNlw7FhbGFkYSBlbiBlbCBsaXRlcmFsIGEpIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gcG9yIGVsIHRpZW1wbyBkZSBwcm90ZWNjacOzbiBkZSBsYSBvYnJhIGVuIHRvZG9zIGxvcyBwYcOtc2VzIGRlbCBtdW5kbywgZXN0byBlcywgc2luIGxpbWl0YWNpw7NuIHRlcnJpdG9yaWFsIGFsZ3VuYS4KCmMpCUxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBtYW5pZmllc3RhbiBlc3RhciBkZSBhY3VlcmRvIGNvbiBxdWUgbGEgcHJlc2VudGUgbGljZW5jaWEgc2Ugb3RvcmdhIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCByZW51bmNpYW4gYSByZWNpYmlyIGN1YWxxdWllciByZXRyaWJ1Y2nDs24gZWNvbsOzbWljYSBvIGVtb2x1bWVudG8gYWxndW5vIHBvciBsYSBwdWJsaWNhY2nDs24sIGRpc3RyaWJ1Y2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EgeSBjdWFscXVpZXIgb3RybyB1c28gcXVlIHNlIGhhZ2EgZW4gbG9zIHTDqXJtaW5vcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGRlIGxhIGxpY2VuY2lhIENyZWF0aXZlIENvbW1vbnMgY29uIHF1ZSBzZSBwdWJsaWNhLgoKZCkJUXVpZW5lcyBmaXJtYW4gZWwgcHJlc2VudGUgZG9jdW1lbnRvIGRlY2xhcmFuIHF1ZSBwYXJhIGxhIGNyZWFjacOzbiBkZSBsYSBvYnJhLCBubyBzZSBoYW4gdnVsbmVyYWRvIGxvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwsIGluZHVzdHJpYWwsIG1vcmFsZXMgeSBwYXRyaW1vbmlhbGVzIGRlIHRlcmNlcm9zLiBEZSBvdHJhIHBhcnRlLCAgcmVjb25vY2VuIHF1ZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlIHkgc2UgZW5jdWVudHJhIGV4ZW50YSBkZSBjdWxwYSBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGFsZ8O6biB0aXBvIGRlIHJlY2xhbWFjacOzbiBlbiBtYXRlcmlhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIG8gcHJvcGllZGFkIGludGVsZWN0dWFsIGVuIGdlbmVyYWwuIFBvciBsbyB0YW50bywgbG9zIGZpcm1hbnRlcyAgYWNlcHRhbiBxdWUgY29tbyB0aXR1bGFyZXMgw7puaWNvcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciwgYXN1bWlyw6FuIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIGNpdmlsLCBhZG1pbmlzdHJhdGl2YSB5L28gcGVuYWwgcXVlIHB1ZWRhIGRlcml2YXJzZSBkZSBsYSBwdWJsaWNhY2nDs24gZGUgbGEgb2JyYS4gIAoKZikJQXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcyBkZSBjb250ZW5pZG9zLCBidXNjYWRvcmVzIGFjYWTDqW1pY29zLCBtZXRhYnVzY2Fkb3Jlcywgw61uZGljZXMgeSBkZW3DoXMgbWVkaW9zIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBlbCBhY2Nlc28geSBjb25zdWx0YSBkZSBsYSBtaXNtYS4gCgpnKQlFbiBlbCBjYXNvIGRlIGxhcyB0ZXNpcyBjcmVhZGFzIHBhcmEgb3B0YXIgZG9ibGUgdGl0dWxhY2nDs24sIGxvcyBmaXJtYW50ZXMgc2Vyw6FuIGxvcyByZXNwb25zYWJsZXMgZGUgY29tdW5pY2FyIGEgbGFzIGluc3RpdHVjaW9uZXMgbmFjaW9uYWxlcyBvIGV4dHJhbmplcmFzIGVuIGNvbnZlbmlvLCBsYXMgbGljZW5jaWFzIGRlIGFjY2VzbyBhYmllcnRvIENyZWF0aXZlIENvbW1vbnMgeSBhdXRvcml6YWNpb25lcyBhc2lnbmFkYXMgYSBzdSBvYnJhIHBhcmEgbGEgcHVibGljYWNpw7NuIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgVU5BTCBkZSBhY3VlcmRvIGNvbiBsYXMgZGlyZWN0cmljZXMgZGUgbGEgUG9sw610aWNhIEdlbmVyYWwgZGUgbGEgQmlibGlvdGVjYSBEaWdpdGFsLgoKCmgpCVNlIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgY29tbyByZXNwb25zYWJsZSBkZWwgdHJhdGFtaWVudG8gZGUgZGF0b3MgcGVyc29uYWxlcywgZGUgYWN1ZXJkbyBjb24gbGEgbGV5IDE1ODEgZGUgMjAxMiBlbnRlbmRpZW5kbyBxdWUgc2UgZW5jdWVudHJhbiBiYWpvIG1lZGlkYXMgcXVlIGdhcmFudGl6YW4gbGEgc2VndXJpZGFkLCBjb25maWRlbmNpYWxpZGFkIGUgaW50ZWdyaWRhZCwgeSBzdSB0cmF0YW1pZW50byB0aWVuZSB1bmEgZmluYWxpZGFkIGhpc3TDs3JpY2EsIGVzdGFkw61zdGljYSBvIGNpZW50w61maWNhIHNlZ8O6biBsbyBkaXNwdWVzdG8gZW4gbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMuCgoKClBBUlRFIDIuIEFVVE9SSVpBQ0nDk04gUEFSQSBQVUJMSUNBUiBZIFBFUk1JVElSIExBIENPTlNVTFRBIFkgVVNPIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KClNlIGF1dG9yaXphIGxhIHB1YmxpY2FjacOzbiBlbGVjdHLDs25pY2EsIGNvbnN1bHRhIHkgdXNvIGRlIGxhIG9icmEgcG9yIHBhcnRlIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgZGUgc3VzIHVzdWFyaW9zIGRlIGxhIHNpZ3VpZW50ZSBtYW5lcmE6CgphLglDb25jZWRvIGxpY2VuY2lhIGVuIGxvcyB0w6lybWlub3Mgc2XDsWFsYWRvcyBlbiBsYSBwYXJ0ZSAxIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGNvbiBlbCBvYmpldGl2byBkZSBxdWUgbGEgb2JyYSBlbnRyZWdhZGEgc2VhIHB1YmxpY2FkYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGVuIGFjY2VzbyBhYmllcnRvIHBhcmEgc3UgY29uc3VsdGEgcG9yIGxvcyB1c3VhcmlvcyBkZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSAgYSB0cmF2w6lzIGRlIGludGVybmV0LgoKCgpQQVJURSAzIEFVVE9SSVpBQ0nDk04gREUgVFJBVEFNSUVOVE8gREUgREFUT1MgUEVSU09OQUxFUy4KCkxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLCBjb21vIHJlc3BvbnNhYmxlIGRlbCBUcmF0YW1pZW50byBkZSBEYXRvcyBQZXJzb25hbGVzLCBpbmZvcm1hIHF1ZSBsb3MgZGF0b3MgZGUgY2Fyw6FjdGVyIHBlcnNvbmFsIHJlY29sZWN0YWRvcyBtZWRpYW50ZSBlc3RlIGZvcm11bGFyaW8sIHNlIGVuY3VlbnRyYW4gYmFqbyBtZWRpZGFzIHF1ZSBnYXJhbnRpemFuIGxhIHNlZ3VyaWRhZCwgY29uZmlkZW5jaWFsaWRhZCBlIGludGVncmlkYWQgeSBzdSB0cmF0YW1pZW50byBzZSByZWFsaXphIGRlIGFjdWVyZG8gYWwgY3VtcGxpbWllbnRvIG5vcm1hdGl2byBkZSBsYSBMZXkgMTU4MSBkZSAyMDEyIHkgZGUgbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMgZGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEuIFB1ZWRlIGVqZXJjZXIgc3VzIGRlcmVjaG9zIGNvbW8gdGl0dWxhciBhIGNvbm9jZXIsIGFjdHVhbGl6YXIsIHJlY3RpZmljYXIgeSByZXZvY2FyIGxhcyBhdXRvcml6YWNpb25lcyBkYWRhcyBhIGxhcyBmaW5hbGlkYWRlcyBhcGxpY2FibGVzIGEgdHJhdsOpcyBkZSBsb3MgY2FuYWxlcyBkaXNwdWVzdG9zIHkgZGlzcG9uaWJsZXMgZW4gd3d3LnVuYWwuZWR1LmNvIG8gZS1tYWlsOiBwcm90ZWNkYXRvc19uYUB1bmFsLmVkdS5jbyIKClRlbmllbmRvIGVuIGN1ZW50YSBsbyBhbnRlcmlvciwgYXV0b3Jpem8gZGUgbWFuZXJhIHZvbHVudGFyaWEsIHByZXZpYSwgZXhwbMOtY2l0YSwgaW5mb3JtYWRhIGUgaW5lcXXDrXZvY2EgYSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhIHRyYXRhciBsb3MgZGF0b3MgcGVyc29uYWxlcyBkZSBhY3VlcmRvIGNvbiBsYXMgZmluYWxpZGFkZXMgZXNwZWPDrWZpY2FzIHBhcmEgZWwgZGVzYXJyb2xsbyB5IGVqZXJjaWNpbyBkZSBsYXMgZnVuY2lvbmVzIG1pc2lvbmFsZXMgZGUgZG9jZW5jaWEsIGludmVzdGlnYWNpw7NuIHkgZXh0ZW5zacOzbiwgYXPDrSBjb21vIGxhcyByZWxhY2lvbmVzIGFjYWTDqW1pY2FzLCBsYWJvcmFsZXMsIGNvbnRyYWN0dWFsZXMgeSB0b2RhcyBsYXMgZGVtw6FzIHJlbGFjaW9uYWRhcyBjb24gZWwgb2JqZXRvIHNvY2lhbCBkZSBsYSBVbml2ZXJzaWRhZC4gCgo=