Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps
El presente documento describe las actividades realizadas en la empresa FosterApps durante el desarrollo de la práctica social, empresarial y solidaria, como modalidad de grado. Komercia es una plataforma de comercio electrónico para la gestión de inventario y la creación de tiendas virtuales, siend...
- Autores:
-
Escobar Parrado, Dany Alexander
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2020
- Institución:
- Universidad Cooperativa de Colombia
- Repositorio:
- Repositorio UCC
- Idioma:
- OAI Identifier:
- oai:repository.ucc.edu.co:20.500.12494/18016
- Acceso en línea:
- https://hdl.handle.net/20.500.12494/18016
- Palabra clave:
- Pruebas de extremo a extremo
Integración continua
Despliegue continuo
Cypress
Canalizaciones
Frontend
End-to-end testing
Continuous integration
Continuous deployment
Cypress
Pipelines
Frontend
- Rights
- openAccess
- License
- Atribución – No comercial – Sin Derivar
id |
COOPER2_ff5f81cd6d163dafab174f2e6b1e6a58 |
---|---|
oai_identifier_str |
oai:repository.ucc.edu.co:20.500.12494/18016 |
network_acronym_str |
COOPER2 |
network_name_str |
Repositorio UCC |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
title |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
spellingShingle |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps Pruebas de extremo a extremo Integración continua Despliegue continuo Cypress Canalizaciones Frontend End-to-end testing Continuous integration Continuous deployment Cypress Pipelines Frontend |
title_short |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
title_full |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
title_fullStr |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
title_full_unstemmed |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
title_sort |
Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps |
dc.creator.fl_str_mv |
Escobar Parrado, Dany Alexander |
dc.contributor.advisor.none.fl_str_mv |
Ojeda Enríquez, Miguel Antonio |
dc.contributor.author.none.fl_str_mv |
Escobar Parrado, Dany Alexander |
dc.subject.spa.fl_str_mv |
Pruebas de extremo a extremo Integración continua Despliegue continuo Cypress Canalizaciones Frontend |
topic |
Pruebas de extremo a extremo Integración continua Despliegue continuo Cypress Canalizaciones Frontend End-to-end testing Continuous integration Continuous deployment Cypress Pipelines Frontend |
dc.subject.other.spa.fl_str_mv |
End-to-end testing Continuous integration Continuous deployment Cypress Pipelines Frontend |
description |
El presente documento describe las actividades realizadas en la empresa FosterApps durante el desarrollo de la práctica social, empresarial y solidaria, como modalidad de grado. Komercia es una plataforma de comercio electrónico para la gestión de inventario y la creación de tiendas virtuales, siendo el producto principal de FosterApps. Debido a su crecimiento, se hace necesario la implantación de un sistema de integración continua en su proyecto, con el fin de lograr el mayor nivel de automatización posible en la ejecución de las pruebas, permitiendo así a los desarrolladores ahorrar tiempo en estas tareas, para centrarse en otras relacionadas con el proyecto. FosterApps es consciente de la importancia de aplicar las pruebas de extremo a extremo, inicialmente en algunos de los componentes del checkout y secciones del panel de administración de las tiendas de su proyecto Komercia, para probar los procesos y las funcionalidades de estos mismos desde la perspectiva del usuario real y final. Por este motivo, surge también como parte de la pasantía, el implementar las pruebas e2e, con el fin de ayudar a la detección de errores, a garantizar y mejorar la calidad en la entrega del producto a cliente y que el desarrollo final del mismo no contenga errores. |
publishDate |
2020 |
dc.date.accessioned.none.fl_str_mv |
2020-06-26T04:12:03Z |
dc.date.available.none.fl_str_mv |
2020-06-26T04:12:03Z |
dc.date.issued.none.fl_str_mv |
2020-06-25 |
dc.type.none.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/20.500.12494/18016 |
dc.identifier.bibliographicCitation.spa.fl_str_mv |
Escobar Parrado, D. A. (2020). Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps [Trabajo de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional UCC. https://repository.ucc.edu.co/handle/20.500.12494/18016 |
url |
https://hdl.handle.net/20.500.12494/18016 |
identifier_str_mv |
Escobar Parrado, D. A. (2020). Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps [Trabajo de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional UCC. https://repository.ucc.edu.co/handle/20.500.12494/18016 |
dc.relation.references.spa.fl_str_mv |
cypress. (2020). cypress. Obtenido de Cypress Documentation: https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshell Fernández, N. (24 de Febrero de 2016). Naiara Fernández - Comunicación Online. Obtenido de Naiara Fernández - Comunicación Online: http://www.naiarafernandez.com/tutorial-slack-que-es-para-que-sirve-y-como-funciona/ FosterApps S.A.S. (2020). fosterapps. Obtenido de fosterapps: http://www.fosterapps.com/ Fowler, M. (01 de Mayo de 2006). martinfowler.com. Obtenido de Continuous Integration: https://www.martinfowler.com/articles/continuousIntegration.html Khetarpal, A. (04 de Abril de 2020). TOOLSQA. Obtenido de TOOLSQA: https://www.toolsqa.com/cypress/what-is-cypress/ Netlify. (2020). Netlify: All-in-one platform for automating modern web projects. Obtenido de Welcome to Netlify | Netlify Docs: https://docs.netlify.com/#get-started Nuxt.js. (2020). Nuxt.js - The Vue.js Framework. Obtenido de Introduction - NuxtJS: https://nuxtjs.org/guide Parquesoftmeta. (2020). ParqueSoft Meta. Obtenido de ParqueSoft Meta: http://parquesoftmeta.com/nosotros Sebastián Divinsky. (2016). Cessi Argentina. Obtenido de Analista tester: https://www.cessi.org.ar/perfilesit/detalle-de-analista-tester-tester-9 Vue.js. (2020). Vue.js. Obtenido de Introduction — Vue.js: https://vuejs.org/v2/guide/ |
dc.rights.license.none.fl_str_mv |
Atribución – No comercial – Sin Derivar |
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 |
Atribución – No comercial – Sin Derivar http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.spa.fl_str_mv |
78 p. |
dc.publisher.spa.fl_str_mv |
Universidad Cooperativa de Colombia, Facultad de Ingenierías, Ingeniería de Sistemas, Villavicencio |
dc.publisher.program.spa.fl_str_mv |
Ingeniería de Sistemas |
dc.publisher.place.spa.fl_str_mv |
Villavicencio |
institution |
Universidad Cooperativa de Colombia |
bitstream.url.fl_str_mv |
https://repository.ucc.edu.co/bitstreams/f61bd462-427a-44de-bc0f-5c9b25ab8fcd/download https://repository.ucc.edu.co/bitstreams/c8656c23-f032-4966-b9a4-48f341474a77/download https://repository.ucc.edu.co/bitstreams/51341fce-cecd-4ce6-9a5b-e0deb5c44686/download https://repository.ucc.edu.co/bitstreams/e6874fec-c6c0-4398-8fda-29b98b6d3d02/download https://repository.ucc.edu.co/bitstreams/d9490fb9-d15f-448e-b5a2-936b6599dc09/download https://repository.ucc.edu.co/bitstreams/4bd47d78-1043-46ed-8829-d15fc257274c/download https://repository.ucc.edu.co/bitstreams/5c975a5c-9618-49e4-9f38-8e7d834d867a/download |
bitstream.checksum.fl_str_mv |
3bce4f7ab09dfc588f126e1e36e98a45 bd9dc7caa8e35b8f72d7cbbc79f1bf88 3f0b9d1d8c2e1f59c551925ac5c0c3e3 26911347754a57a19f8ac707175b1dfb 2677d59821f70ea457442cbe1cad398f 5826c1e69bb45a707e881060d6689803 8f7e67db12cd6aa4d31c3dfd60eeeb9c |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Cooperativa de Colombia |
repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
_version_ |
1814247356037595136 |
spelling |
Ojeda Enríquez, Miguel AntonioEscobar Parrado, Dany Alexander2020-06-26T04:12:03Z2020-06-26T04:12:03Z2020-06-25https://hdl.handle.net/20.500.12494/18016Escobar Parrado, D. A. (2020). Implementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster Apps [Trabajo de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional UCC. https://repository.ucc.edu.co/handle/20.500.12494/18016El presente documento describe las actividades realizadas en la empresa FosterApps durante el desarrollo de la práctica social, empresarial y solidaria, como modalidad de grado. Komercia es una plataforma de comercio electrónico para la gestión de inventario y la creación de tiendas virtuales, siendo el producto principal de FosterApps. Debido a su crecimiento, se hace necesario la implantación de un sistema de integración continua en su proyecto, con el fin de lograr el mayor nivel de automatización posible en la ejecución de las pruebas, permitiendo así a los desarrolladores ahorrar tiempo en estas tareas, para centrarse en otras relacionadas con el proyecto. FosterApps es consciente de la importancia de aplicar las pruebas de extremo a extremo, inicialmente en algunos de los componentes del checkout y secciones del panel de administración de las tiendas de su proyecto Komercia, para probar los procesos y las funcionalidades de estos mismos desde la perspectiva del usuario real y final. Por este motivo, surge también como parte de la pasantía, el implementar las pruebas e2e, con el fin de ayudar a la detección de errores, a garantizar y mejorar la calidad en la entrega del producto a cliente y que el desarrollo final del mismo no contenga errores.This document describes the activities carried out in the company FosterApps during the development of social, business and solidarity practice, as a degree modality. Komercia is an e-commerce platform for inventory management and virtual store creation, being the main product of FosterApps. Due to its growth, it is necessary to implement a continuous integration system in their project, in order to achieve the highest possible level of automation in the execution of tests, thus allowing developers to save time on these tasks, to focus on others related to the project. FosterApps is aware of the importance of applying end-to-end testing, initially in some of the checkout components and sections of the store administration panel of their Komercia project, to test their processes and functionalities from the perspective from the real and end user. For this reason, the implementation of e2e tests also arises as part of the internship, in order to help error detection, guarantee and improve the quality of the product delivery to the client and that the final development of the same does not contain errors.Capítulo 1. Información de la empresa. -- 1.1. Descripción y naturaleza de la organización. -- 1.2. Misión. -- 1.3. Visión. -- 1.4. Objetivos estratégicos. -- 1.5. Valores de FosterApps. -- 1.6. Organigrama. -- Capítulo 2. Requerimientos de la organización. -- 2.1. Funciones a desarrollar. -- 2.2. Requisitos tecnológicos. -- Capítulo 3. Plan de acción. -- Capítulo 4. Actividades realizadas. -- 4.1. Determinar el alcance del proyecto. -- 4.2. Gestionar el armado de ambientes de prueba. -- 4.3. Definir los casos de prueba de e2e que se realizarán. -- 4.4. Desarrollar y ejecutar de forma manual los casos de prueba de e2e. -- 4.5. Análisis y Feedback de los resultados de las pruebas manuales. -- 4.6. Realizar la configuración para implementar la Integración Continua. -- 4.7. Automatizar las pruebas e2e de Cypress al subir cambios al repositorio del proyecto. -- 4.8. Aplicar la Integración y despliegue continuos, junto con la automatización de pruebas. -- 4.9. Realizar la documentación de las pruebas (evidencia) y el proceso de Integración y despliegue continuos. -- 4.10. Puesta en marcha. -- Capítulo 5. Logros y lecciones aprendidas. -- Capítulo 6. Limitaciones, conclusiones y recomendaciones. -- Anexos. -- Anexo A. Certificado de Práctica FosterApps S.A.S. -- Anexo B. Matriz de Pruebas. -- Referencias.dany.escobarpc@campusucc.edu.co78 p.Universidad Cooperativa de Colombia, Facultad de Ingenierías, Ingeniería de Sistemas, VillavicencioIngeniería de SistemasVillavicencioPruebas de extremo a extremoIntegración continuaDespliegue continuoCypressCanalizacionesFrontendEnd-to-end testingContinuous integrationContinuous deploymentCypressPipelinesFrontendImplementar la integración continua y aplicar el modelo de testing de extremo a extremo en el proyecto Komercia de la empresa Foster AppsTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionAtribución – No comercial – Sin Derivarinfo:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2cypress. (2020). cypress. Obtenido de Cypress Documentation: https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshellFernández, N. (24 de Febrero de 2016). Naiara Fernández - Comunicación Online. Obtenido de Naiara Fernández - Comunicación Online: http://www.naiarafernandez.com/tutorial-slack-que-es-para-que-sirve-y-como-funciona/FosterApps S.A.S. (2020). fosterapps. Obtenido de fosterapps: http://www.fosterapps.com/Fowler, M. (01 de Mayo de 2006). martinfowler.com. Obtenido de Continuous Integration: https://www.martinfowler.com/articles/continuousIntegration.htmlKhetarpal, A. (04 de Abril de 2020). TOOLSQA. Obtenido de TOOLSQA: https://www.toolsqa.com/cypress/what-is-cypress/Netlify. (2020). Netlify: All-in-one platform for automating modern web projects. Obtenido de Welcome to Netlify | Netlify Docs: https://docs.netlify.com/#get-startedNuxt.js. (2020). Nuxt.js - The Vue.js Framework. Obtenido de Introduction - NuxtJS: https://nuxtjs.org/guideParquesoftmeta. (2020). ParqueSoft Meta. Obtenido de ParqueSoft Meta: http://parquesoftmeta.com/nosotrosSebastián Divinsky. (2016). Cessi Argentina. Obtenido de Analista tester: https://www.cessi.org.ar/perfilesit/detalle-de-analista-tester-tester-9Vue.js. (2020). Vue.js. Obtenido de Introduction — Vue.js: https://vuejs.org/v2/guide/PublicationLICENSElicense.txtlicense.txttext/plain; charset=utf-84334https://repository.ucc.edu.co/bitstreams/f61bd462-427a-44de-bc0f-5c9b25ab8fcd/download3bce4f7ab09dfc588f126e1e36e98a45MD53ORIGINAL2020_Implementar_integración_continua.pdf2020_Implementar_integración_continua.pdfTrabajo finalapplication/pdf1946008https://repository.ucc.edu.co/bitstreams/c8656c23-f032-4966-b9a4-48f341474a77/downloadbd9dc7caa8e35b8f72d7cbbc79f1bf88MD512020_Implementar_integración_continua_Formato.pdf2020_Implementar_integración_continua_Formato.pdfFormato Licencia de Usoapplication/pdf208978https://repository.ucc.edu.co/bitstreams/51341fce-cecd-4ce6-9a5b-e0deb5c44686/download3f0b9d1d8c2e1f59c551925ac5c0c3e3MD52THUMBNAIL2020_Implementar_integración_continua.pdf.jpg2020_Implementar_integración_continua.pdf.jpgGenerated Thumbnailimage/jpeg3055https://repository.ucc.edu.co/bitstreams/e6874fec-c6c0-4398-8fda-29b98b6d3d02/download26911347754a57a19f8ac707175b1dfbMD542020_Implementar_integración_continua_Formato.pdf.jpg2020_Implementar_integración_continua_Formato.pdf.jpgGenerated Thumbnailimage/jpeg5143https://repository.ucc.edu.co/bitstreams/d9490fb9-d15f-448e-b5a2-936b6599dc09/download2677d59821f70ea457442cbe1cad398fMD55TEXT2020_Implementar_integración_continua.pdf.txt2020_Implementar_integración_continua.pdf.txtExtracted texttext/plain76599https://repository.ucc.edu.co/bitstreams/4bd47d78-1043-46ed-8829-d15fc257274c/download5826c1e69bb45a707e881060d6689803MD562020_Implementar_integración_continua_Formato.pdf.txt2020_Implementar_integración_continua_Formato.pdf.txtExtracted texttext/plain5906https://repository.ucc.edu.co/bitstreams/5c975a5c-9618-49e4-9f38-8e7d834d867a/download8f7e67db12cd6aa4d31c3dfd60eeeb9cMD5720.500.12494/18016oai:repository.ucc.edu.co:20.500.12494/180162024-08-10 21:44:50.689open.accesshttps://repository.ucc.edu.coRepositorio Institucional Universidad Cooperativa de Colombiabdigital@metabiblioteca.comVU5JVkVSU0lEQUQgQ09PUEVSQVRJVkEgREUgQ09MT01CSUEKUkVQT1NJVE9SSU9TIElOU1RJVFVDSU9OQUxFUwpMSUNFTkNJQSBERSBVU08KClBvciBtZWRpbyBkZWwgcHJlc2VudGUgZG9jdW1lbnRvLCBlbCBBdXRvcihlcyksIG1heW9yIChlcykgZGUgZWRhZCwgcXVpZW4gZW4gYWRlbGFudGUgc2UgZGVub21pbmFyw6EgZWwgQVVUT1IsIGNvbmZpZXJlIGEgbGEgVU5JVkVSU0lEQUQgQ09PUEVSQVRJVkEgREUgQ09MT01CSUEsIGNvbiBOSVQuIDg2MC0wMjk5MjQtNywgdW5hIExJQ0VOQ0lBIERFIFVTTyBkZSBvYnJhLCBiYWpvIGxhcyBzaWd1aWVudGVzIGNvbmRpY2lvbmVzLgoKQ0zDgVVTVUxBUwoKUFJJTUVSQS4gT2JqZXRvLiBFTCBBVVRPUiBwb3IgZXN0ZSBhY3RvIGF1dG9yaXphIGxhIHV0aWxpemFjacOzbiBkZSBsYSBvYnJhLCBkZSBjb25mb3JtaWRhZCBjb24gbG8gZXN0aXB1bGFkbyBhIGNvbnRpbnVhY2nDs246IAoKKGEpIFBhcmEgZWZlY3RvcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSBzZSBhdXRvcml6YSBsYSByZXByb2R1Y2Npw7NuIGRlIGxhIG9icmEgYW50ZXJpb3JtZW50ZSBjaXRhZGEsIGxhIGN1YWwgc2UgYWxvamFyw6EgZW4gZm9ybWF0byBkaWdpdGFsIGVuIGxhcyBwbGF0YWZvcm1hcyBvIHJlcG9zaXRvcmlvcyBhZG1pbmlzdHJhZG9zIHBvciBsYSBVTklWRVJTSURBRCBvIGVuIG90cm8gdGlwbyBkZSByZXBvc2l0b3Jpb3MgZXh0ZXJub3MgbyBww6FnaW5hcyB3ZWIgZXNjb2dpZG9zIHBvciBsYSBVTklWRVJTSURBRCwgcGFyYSBmaW5lcyBkZSBkaWZ1c2nDs24geSBkaXZ1bGdhY2nDs24uIEFkaWNpb25hbG1lbnRlLCBzZSBhdXRvcml6YSBhIHF1ZSBsb3MgdXN1YXJpb3MgaW50ZXJub3MgeSBleHRlcm5vcyBkZSBkaWNoYXMgcGxhdGFmb3JtYXMgbyByZXBvc2l0b3Jpb3MgcmVwcm9kdXpjYW4gbyBkZXNjYXJndWVuIGxhIG9icmEsIHNpbiDDoW5pbW8gZGUgbHVjcm8sIHBhcmEgZmluZXMgcHJpdmFkb3MsIGVkdWNhdGl2b3MgbyBhY2Fkw6ltaWNvczsgc2llbXByZSB5IGN1YW5kbyBubyBzZSB2aW9sZW4gYWN1ZXJkb3MgY29uIGVkaXRvcmVzLCBwZXJpb2RvcyBkZSBlbWJhcmdvIG8gYWN1ZXJkb3MgZGUgY29uZmlkZW5jaWFsaWRhZCBxdWUgYXBsaXF1ZW4uCgooYikgU2UgYXV0b3JpemEgbGEgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGxhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBkZSBsYSBvYnJhIG1lbmNpb25hZGEsIGVuIGFjY2VzbyBhYmllcnRvLCBwYXJhIHN1IHV0aWxpemFjacOzbiBlbiBsYXMgcGxhdGFmb3JtYXMgbyByZXBvc2l0b3Jpb3MgYWRtaW5pc3RyYWRvcyBwb3IgbGEgVU5JVkVSU0lEQUQuCgooYykgTG8gYW50ZXJpb3IgZXN0YXLDoSBzdWpldG8gYSBsYXMgZGVmaW5pY2lvbmVzIGNvbnRlbmlkYXMgZW4gbGEgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MyB5IGxhIExleSAyMyBkZSAxOTgyLgoKClNFR1VOREEuIE9yaWdpbmFsaWRhZCB5IHJlY2xhbWFjaW9uZXMuIEVsIEFVVE9SIGRlY2xhcmEgcXVlIGxhIE9CUkEgZXMgb3JpZ2luYWwgeSBxdWUgZXMgZGUgc3UgY3JlYWNpw7NuIGV4Y2x1c2l2YSwgbm8gZXhpc3RpZW5kbyBpbXBlZGltZW50byBkZSBjdWFscXVpZXIgbmF0dXJhbGV6YSAoZW1iYXJnb3MsIHVzbyBkZSBtYXRlcmlhbCBwcm90ZWdpZG8gcG9yIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGxhIGNvbmNlc2nDs24gZGUgbG9zIGRlcmVjaG9zIHByZXZpc3RvcyBlbiBlc3RlIGFjdWVyZG8uIEVsIEFVVE9SIHJlc3BvbmRlcsOhIHBvciBjdWFscXVpZXIgYWNjacOzbiBkZSByZWl2aW5kaWNhY2nDs24sIHBsYWdpbyB1IG90cmEgY2xhc2UgZGUgcmVjbGFtYWNpw7NuIHF1ZSBhbCByZXNwZWN0byBwdWRpZXJhIHNvYnJldmVuaXIuCgpURVJDRVJBLiBDb250cmFwcmVzdGFjacOzbi4gRWwgQVVUT1IgYXV0b3JpemEgYSBxdWUgc3Ugb2JyYSBzZWEgdXRpbGl6YWRhIGRlIGNvbmZvcm1pZGFkIGNvbiBsYSBjbMOhdXN1bGEgUFJJTUVSQSBkZSBmb3JtYSBncmF0dWl0YSwgZXMgZGVjaXIsIHF1ZSBsYSB1dGlsaXphY2nDs24gZGUgbGEgbWlzbWEgbm8gZ2VuZXJhIG5pbmfDum4gcGFnbyBvIHJlZ2Fsw61hcyBlbiBmYXZvciBkZSBlc3RlLgoKQ1VBUlRBLiBUaXR1bGFyaWRhZCBkZSBkZXJlY2hvcy4gRWwgcHJlc2VudGUgY29udHJhdG8gbm8gdHJhbnNmaWVyZSBsYSB0aXR1bGFyaWRhZCBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBzb2JyZSBsYXMgb2JyYXMgYW50ZXJpb3JtZW50ZSBtZW5jaW9uYWRhcyBhIGxhIFVOSVZFUlNJREFELiDDmm5pY2FtZW50ZSBoYWNlIHJlbGFjacOzbiBhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEgZW4gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGFudGVyaW9ybWVudGUgcGFjdGFkb3MuCgpRVUlOVEEuIENyw6lkaXRvcy4gTGEgVU5JVkVSU0lEQUQgc2UgY29tcHJvbWV0ZSBhIGRhciBhbCBBVVRPUiwgZWwgcmVjb25vY2ltaWVudG8gZGVudHJvIGNhZGEgZm9ybWEgZGUgdXRpbGl6YWNpw7NuIGVuIGxhIG9icmEuIExvcyBjcsOpZGl0b3MgZGViZW4gZmlndXJhciBlbiBjYWRhIHVubyBkZSBsb3MgZm9ybWF0b3MgbyByZWdpc3Ryb3MgZGUgcHVibGljYWNpw7NuLiBObyBjb25zdGl0dWlyw6EgdW5hIHZpb2xhY2nDs24gYSBsb3MgZGVyZWNob3MgbW9yYWxlcyBkZWwgYXV0b3IgbGEgbm8gcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBvIGRlbcOhcyB1dGlsaXphY2lvbmVzIGRlIGxhIG9icmEuIExhIHV0aWxpemFjacOzbiBvIG5vIGRlIGxhIG9icmEsIGFzw60gY29tbyBzdSBmb3JtYSBkZSB1dGlsaXphY2nDs24gc2Vyw6EgZmFjdWx0YWQgZXhjbHVzaXZhIGRlIGxhIFVOSVZFUlNJREFELgogClNFWFRBLiBEdXJhY2nDs24geSB0ZXJyaXRvcmlvLiBMYSBwcmVzZW50ZSBsaWNlbmNpYSBkZSB1c28gcXVlIHNlIG90b3JnYSBhIGZhdm9yIGRlIGxhIFVOSVZFUlNJREFEIHRlbmRyw6EgdW5hIGR1cmFjacOzbiBlcXVpdmFsZW50ZSBhbCB0w6lybWlubyBkZSBwcm90ZWNjacOzbiBsZWdhbCBkZSBsYSBvYnJhIHkgcGFyYSB0b2RvcyBsb3MgcGHDrXNlcyBkZWwgbXVuZG8uCgpTw4lQVElNQS4gVXNvIGRlIENyZWF0aXZlIENvbW1vbnMuIEVsIEFVVE9SIGF1dG9yaXphcsOhIGxhIGRpZnVzacOzbiBkZSBzdSBjb250ZW5pZG8gYmFqbyB1bmEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBhdHJpYnVjacOzbiA0LjAgaW50ZXJuYWNpb25hbCwgcXVlIGRlYmVyw6EgaW5jbHVpcnNlIGVuIGVsIGNvbnRlbmlkby4gCgpPQ1RBVkEuIERlcmVjaG8gZGUgZXhjbHVzacOzbi4gQ2FkYSBhdXRvciBwdWVkZSBpbmRpY2FyIGVuIGVsIG1vbWVudG8gZGUgZGVww7NzaXRvIGRlbCBjb250ZW5pZG8gcXVlIGVsIHRleHRvIGNvbXBsZXRvIGRlIGxhIHByb2R1Y2Npw7NuIGFjYWTDqW1pY2EgbyBjaWVudMOtZmljYSBubyBlc3RlIGNvbiBhY2Nlc28gYWJpZXJ0byBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIHBvciBtb3Rpdm9zIGRlIGNvbmZpZGVuY2lhbGlkYWQsIHBvcnF1ZSBzZSBlbmN1ZW50cmUgZW4gdsOtYXMgZGUgb2J0ZW5lciB1biBkZXJlY2hvIGRlIHByb3BpZWRhZCBpbmR1c3RyaWFsIG8gZXhpc3RpciBhY3VlcmRvcyBwcmV2aW9zIGNvbiB0ZXJjZXJvcyAoZWRpdG9yaWFsZXMsIHJldmlzdGFzIGNpZW50w61maWNhcywgb3RyYXMgaW5zdGl0dWNpb25lcykuIEVsIGF1dG9yIHNlIGNvbXByb21ldGUgYSBkZXBvc2l0YXIgbG9zIG1ldGFkYXRvcyBlIGluZm9ybWFyIGVsIHRpZW1wbyBkZSBlbWJhcmdvIGR1cmFudGUgZWwgY3VhbCBlbCB0ZXh0byBjb21wbGV0byB0ZW5kcsOhIGFjY2VzbyByZXN0cmluZ2lkby4gCgpOT1ZFTkEuIEVsIEFVVE9SIGFsIGFjZXB0YXIgZXN0YSBsaWNlbmNpYSBhZHVjZSBxdWUgZXN0YSBwcm9kdWNjacOzbiBzZSBkZXNhcnJvbGzDsyBlbiBlbCBwZXJpb2RvIGVuIHF1ZSBzZSBlbmN1ZW50cmEgY29uIHbDrW5jdWxvcyBjb24gTGEgVW5pdmVyc2lkYWQuCgpEw4lDSU1BLiBOb3JtYXMgYXBsaWNhYmxlcy4gUGFyYSBsYSBpbnRlcnByZXRhY2nDs24geSBjdW1wbGltaWVudG8gZGVsIHByZXNlbnRlIGFjdWVyZG8gbGFzIHBhcnRlcyBzZSBzb21ldGVuIGEgbGEgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgbGEgTGV5IDIzIGRlIDE5ODIgeSBkZW3DoXMgbm9ybWFzIGFwbGljYWJsZXMgZGUgQ29sb21iaWEuIEFkZW3DoXMsIGEgbGFzIG5vcm1hcyBJbnN0aXR1Y2lvbmFsZXMgcXVlIGFwbGlxdWVuLgoKTGEgcHJlc2VudGUgbGljZW5jaWEgc2UgYXV0b3JpemEgZW4gbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuIGVuIGxvcyByZXBvc2l0b3Jpb3MgaW5zdGl0dWNpb25hbGVzLgo= |