Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC

A lo largo de este documento se presenta la experiencia obtenida al realizar un desarrollo de software web para la universidad Antonio José Camacho aplicando la técnica Test Driven Development con los elementos Scrum, encontrando las ventajas y desventajas de la técnica de programación con la experi...

Full description

Autores:
Botina Caipe, Cristian Leandro
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2018
Institución:
Institución Universitaria Antonio Jose Camacho
Repositorio:
Repositorio Uniajc
Idioma:
spa
OAI Identifier:
oai:repositorio.uniajc.edu.co:uniajc/1111
Acceso en línea:
https://repositorio.uniajc.edu.co/handle/uniajc/1111
Palabra clave:
TDD
ATD
Scrum
Agiles
Documentación
Documentation
Agile
Rights
closedAccess
License
Institución Universitaria Antonio José Camacho,2018
id Uniajc2_cd93cbc47c2e15f83c451536c4899590
oai_identifier_str oai:repositorio.uniajc.edu.co:uniajc/1111
network_acronym_str Uniajc2
network_name_str Repositorio Uniajc
repository_id_str
dc.title.spa.fl_str_mv Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
title Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
spellingShingle Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
TDD
ATD
Scrum
Agiles
Documentación
Documentation
Agile
title_short Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
title_full Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
title_fullStr Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
title_full_unstemmed Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
title_sort Documentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJC
dc.creator.fl_str_mv Botina Caipe, Cristian Leandro
dc.contributor.advisor.none.fl_str_mv Marín Ospina, Beatriz Eugenia
dc.contributor.author.none.fl_str_mv Botina Caipe, Cristian Leandro
dc.subject.proposal.spa.fl_str_mv TDD
ATD
Scrum
Agiles
Documentación
topic TDD
ATD
Scrum
Agiles
Documentación
Documentation
Agile
dc.subject.proposal.eng.fl_str_mv Documentation
Agile
description A lo largo de este documento se presenta la experiencia obtenida al realizar un desarrollo de software web para la universidad Antonio José Camacho aplicando la técnica Test Driven Development con los elementos Scrum, encontrando las ventajas y desventajas de la técnica de programación con la experiencia propia y enriquecedora adquirida. Para lograr esto se propuso trabajar técnica Test Driven Development con la metodología Scrum aplicando las fases de inicio, la planeación y estimación, se hace énfasis en la fase de implementación ya que es donde se aplica la técnica en la programación, analizando cada día un listado de pruebas y aplicando los paso del ciclo Test Driven Development en ese listado para ir logrando terminar la historia de usuario paso a paso de forma incremental. Basado en la experiencia obtenida en el desarrollo de este proyecto se puede concluir que la aplicación de la técnica es una mejor alternativa para el desarrollo de software logrando una mayor calidad en producto de software entregado y el programador puede realizar menos trabajo resolviendo errores que se pueden producir a futuro.
publishDate 2018
dc.date.issued.none.fl_str_mv 2018
dc.date.accessioned.none.fl_str_mv 2022-05-13T23:27:00Z
dc.date.available.none.fl_str_mv 2022-05-13T23:27:00Z
dc.type.spa.fl_str_mv Trabajo de grado - Pregrado
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.redcol.spa.fl_str_mv https://purl.org/redcol/resource_type/TP
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/publishedVersion
format http://purl.org/coar/resource_type/c_7a1f
status_str publishedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.uniajc.edu.co/handle/uniajc/1111
url https://repositorio.uniajc.edu.co/handle/uniajc/1111
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.spa.fl_str_mv Institución Universitaria Antonio José Camacho,2018
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_14cb
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/closedAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
rights_invalid_str_mv Institución Universitaria Antonio José Camacho,2018
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
http://purl.org/coar/access_right/c_14cb
eu_rights_str_mv closedAccess
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Institución Universitaria Antonio José Camacho
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingenierías
dc.publisher.place.spa.fl_str_mv Santiago de Cali
dc.publisher.program.spa.fl_str_mv Ingeniería de Sistemas
institution Institución Universitaria Antonio Jose Camacho
bitstream.url.fl_str_mv https://repositorio.uniajc.edu.co/bitstreams/33223179-8eeb-4daa-a6ed-03c7e01b95e9/download
https://repositorio.uniajc.edu.co/bitstreams/b6bfc21f-1bdb-4442-b797-04ae2636fc34/download
https://repositorio.uniajc.edu.co/bitstreams/a765c3dc-f90c-4981-b1ca-27c5f9d7b771/download
https://repositorio.uniajc.edu.co/bitstreams/21bdcc59-ba40-4142-90cd-fa9161a45f2b/download
https://repositorio.uniajc.edu.co/bitstreams/aada8e11-c089-47cc-ae33-598ad0f81049/download
https://repositorio.uniajc.edu.co/bitstreams/a6ff15dd-a383-4654-89a1-d9dbb11290ca/download
https://repositorio.uniajc.edu.co/bitstreams/e854a91c-5c99-4388-9f62-af6a5b695d54/download
bitstream.checksum.fl_str_mv 433ae9bebdb8f5dc01cafe3bd7f236c7
7ed33eebdda6991afdb9421cb9775c3b
2f9959eaf5b71fae44bbf9ec84150c7a
dc0367667be48efb51f170171f40e125
2228e977ebea8966e27929f43e39cb67
fe7e1ca7d6dd17051299a64193e87048
36433463fcb8563e051ff66daee539ea
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital Uniajc
repository.mail.fl_str_mv bdigital@metabiblioteca.com
_version_ 1813799850624417792
spelling Marín Ospina, Beatriz Eugenia3b73c10cfcd45839905f4eacbc3192baBotina Caipe, Cristian Leandro5d683a928e2891b83a6250f35415018f2022-05-13T23:27:00Z2022-05-13T23:27:00Z2018https://repositorio.uniajc.edu.co/handle/uniajc/1111A lo largo de este documento se presenta la experiencia obtenida al realizar un desarrollo de software web para la universidad Antonio José Camacho aplicando la técnica Test Driven Development con los elementos Scrum, encontrando las ventajas y desventajas de la técnica de programación con la experiencia propia y enriquecedora adquirida. Para lograr esto se propuso trabajar técnica Test Driven Development con la metodología Scrum aplicando las fases de inicio, la planeación y estimación, se hace énfasis en la fase de implementación ya que es donde se aplica la técnica en la programación, analizando cada día un listado de pruebas y aplicando los paso del ciclo Test Driven Development en ese listado para ir logrando terminar la historia de usuario paso a paso de forma incremental. Basado en la experiencia obtenida en el desarrollo de este proyecto se puede concluir que la aplicación de la técnica es una mejor alternativa para el desarrollo de software logrando una mayor calidad en producto de software entregado y el programador puede realizar menos trabajo resolviendo errores que se pueden producir a futuro.Throughout this document we present the experience obtained when developing a web software for Antonio José Camacho University applying the Test Driven Development technique with the Scrum elements, finding the advantages and disadvantages of the programming technique with the own experience and acquired enrichment. To achieve this, it was proposed to work with Test Driven Development technique with the Scrum methodology, applying the phases of initiation, planning and estimation, emphasis is placed on the implementation phase since it is where the technique is applied in the programming, analyzing every day a list of tests and applying the steps of the Test Driven Development cycle in that list to be able to finish the user story incrementally step by step. Based on the experience gained in the development of this project, it can be concluded that the application of the technique is a better alternative for software development, achieving a higher quality in delivered software product and the programmer can perform less work solving errors that can be produce in the future.PregradoIngeniero(a) de Sistemasapplication/pdfspaInstitución Universitaria Antonio José CamachoFacultad de IngenieríasSantiago de CaliIngeniería de SistemasInstitución Universitaria Antonio José Camacho,2018info:eu-repo/semantics/closedAccessAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)http://purl.org/coar/access_right/c_14cbDocumentación de la técnica TDD en el marco de una metodología ágil utilizando como caso de estudio el desarrollo de un software de control de proyectos de grados para el programa de ingeniería de sistemas de la UNIAJCTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesishttps://purl.org/redcol/resource_type/TPinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/version/c_970fb48d4fbd8a85TDDATDScrumAgilesDocumentaciónDocumentationAgilePublicationORIGINALDOCUMENTACION DE LA TECNICA TDD V10.pdfDOCUMENTACION DE LA TECNICA TDD V10.pdfTrabajo de gradoapplication/pdf1891381https://repositorio.uniajc.edu.co/bitstreams/33223179-8eeb-4daa-a6ed-03c7e01b95e9/download433ae9bebdb8f5dc01cafe3bd7f236c7MD51AUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdfAUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdfAutorizaciónapplication/pdf2889708https://repositorio.uniajc.edu.co/bitstreams/b6bfc21f-1bdb-4442-b797-04ae2636fc34/download7ed33eebdda6991afdb9421cb9775c3bMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-814828https://repositorio.uniajc.edu.co/bitstreams/a765c3dc-f90c-4981-b1ca-27c5f9d7b771/download2f9959eaf5b71fae44bbf9ec84150c7aMD53TEXTDOCUMENTACION DE LA TECNICA TDD V10.pdf.txtDOCUMENTACION DE LA TECNICA TDD V10.pdf.txtExtracted texttext/plain124483https://repositorio.uniajc.edu.co/bitstreams/21bdcc59-ba40-4142-90cd-fa9161a45f2b/downloaddc0367667be48efb51f170171f40e125MD54AUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdf.txtAUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdf.txtExtracted texttext/plain3https://repositorio.uniajc.edu.co/bitstreams/aada8e11-c089-47cc-ae33-598ad0f81049/download2228e977ebea8966e27929f43e39cb67MD56THUMBNAILDOCUMENTACION DE LA TECNICA TDD V10.pdf.jpgDOCUMENTACION DE LA TECNICA TDD V10.pdf.jpgGenerated Thumbnailimage/jpeg7269https://repositorio.uniajc.edu.co/bitstreams/a6ff15dd-a383-4654-89a1-d9dbb11290ca/downloadfe7e1ca7d6dd17051299a64193e87048MD55AUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdf.jpgAUTORIZACION DE PUBLICACION REPOSITORIO_0026.pdf.jpgGenerated Thumbnailimage/jpeg19971https://repositorio.uniajc.edu.co/bitstreams/e854a91c-5c99-4388-9f62-af6a5b695d54/download36433463fcb8563e051ff66daee539eaMD57uniajc/1111oai:repositorio.uniajc.edu.co:uniajc/11112024-09-25 18:58:22.297open.accesshttps://repositorio.uniajc.edu.coBiblioteca Digital Uniajcbdigital@metabiblioteca.comTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCgpNRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuCjEuIERlZmluaWNpb25lcwoKYS4JT2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLgoKYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgoKYy4JTGljZW5jaWFudGUsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgcXVlIG9mcmVjZSBsYSBPYnJhIGVuIGNvbmZvcm1pZGFkIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4KCmQuCUF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuCgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCgpmLglVc3RlZCwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCBxdWUgZWplcmNpdGEgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSB5IHF1ZSBjb24gYW50ZXJpb3JpZGFkIG5vIGhhIHZpb2xhZG8gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIG1pc21hIHJlc3BlY3RvIGEgbGEgT2JyYSwgbyBxdWUgaGF5YSBvYnRlbmlkbyBhdXRvcml6YWNpw7NuIGV4cHJlc2EgcG9yIHBhcnRlIGRlbCBMaWNlbmNpYW50ZSBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHBlc2UgYSB1bmEgdmlvbGFjacOzbiBhbnRlcmlvci4KCjIuIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgpOYWRhIGVuIGVzdGEgTGljZW5jaWEgcG9kcsOhIHNlciBpbnRlcnByZXRhZG8gY29tbyB1bmEgZGlzbWludWNpw7NuLCBsaW1pdGFjacOzbiBvIHJlc3RyaWNjacOzbiBkZSBsb3MgZGVyZWNob3MgZGVyaXZhZG9zIGRlbCB1c28gaG9ucmFkbyB5IG90cmFzIGxpbWl0YWNpb25lcyBvIGV4Y2VwY2lvbmVzIGEgbG9zIGRlcmVjaG9zIGRlbCBhdXRvciBiYWpvIGVsIHLDqWdpbWVuIGxlZ2FsIHZpZ2VudGUgbyBkZXJpdmFkbyBkZSBjdWFscXVpZXIgb3RyYSBub3JtYSBxdWUgc2UgbGUgYXBsaXF1ZS4KCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CgphLglSZXByb2R1Y2lyIGxhIE9icmEsIGluY29ycG9yYXIgbGEgT2JyYSBlbiB1bmEgbyBtw6FzIE9icmFzIENvbGVjdGl2YXMsIHkgcmVwcm9kdWNpciBsYSBPYnJhIGluY29ycG9yYWRhIGVuIGxhcyBPYnJhcyBDb2xlY3RpdmFzLgoKYi4JRGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLgoKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCgo0LiBSZXN0cmljY2lvbmVzLgpMYSBsaWNlbmNpYSBvdG9yZ2FkYSBlbiBsYSBhbnRlcmlvciBTZWNjacOzbiAzIGVzdMOhIGV4cHJlc2FtZW50ZSBzdWpldGEgeSBsaW1pdGFkYSBwb3IgbGFzIHNpZ3VpZW50ZXMgcmVzdHJpY2Npb25lczoKCmEuCVVzdGVkIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIHPDs2xvIGJham8gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIHkgVXN0ZWQgZGViZSBpbmNsdWlyIHVuYSBjb3BpYSBkZSBlc3RhIGxpY2VuY2lhIG8gZGVsIElkZW50aWZpY2Fkb3IgVW5pdmVyc2FsIGRlIFJlY3Vyc29zIGRlIGxhIG1pc21hIGNvbiBjYWRhIGNvcGlhIGRlIGxhIE9icmEgcXVlIGRpc3RyaWJ1eWEsIGV4aGliYSBww7pibGljYW1lbnRlLCBlamVjdXRlIHDDumJsaWNhbWVudGUgbyBwb25nYSBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4gTm8gZXMgcG9zaWJsZSBvZnJlY2VyIG8gaW1wb25lciBuaW5ndW5hIGNvbmRpY2nDs24gc29icmUgbGEgT2JyYSBxdWUgYWx0ZXJlIG8gbGltaXRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIG8gZWwgZWplcmNpY2lvIGRlIGxvcyBkZXJlY2hvcyBkZSBsb3MgZGVzdGluYXRhcmlvcyBvdG9yZ2Fkb3MgZW4gZXN0ZSBkb2N1bWVudG8uIE5vIGVzIHBvc2libGUgc3VibGljZW5jaWFyIGxhIE9icmEuIFVzdGVkIGRlYmUgbWFudGVuZXIgaW50YWN0b3MgdG9kb3MgbG9zIGF2aXNvcyBxdWUgaGFnYW4gcmVmZXJlbmNpYSBhIGVzdGEgTGljZW5jaWEgeSBhIGxhIGNsw6F1c3VsYSBkZSBsaW1pdGFjacOzbiBkZSBnYXJhbnTDrWFzLiBVc3RlZCBubyBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBjb24gYWxndW5hIG1lZGlkYSB0ZWNub2zDs2dpY2EgcXVlIGNvbnRyb2xlIGVsIGFjY2VzbyBvIGxhIHV0aWxpemFjacOzbiBkZSBlbGxhIGRlIHVuYSBmb3JtYSBxdWUgc2VhIGluY29uc2lzdGVudGUgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBMbyBhbnRlcmlvciBzZSBhcGxpY2EgYSBsYSBPYnJhIGluY29ycG9yYWRhIGEgdW5hIE9icmEgQ29sZWN0aXZhLCBwZXJvIGVzdG8gbm8gZXhpZ2UgcXVlIGxhIE9icmEgQ29sZWN0aXZhIGFwYXJ0ZSBkZSBsYSBvYnJhIG1pc21hIHF1ZWRlIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBTaSBVc3RlZCBjcmVhIHVuYSBPYnJhIENvbGVjdGl2YSwgcHJldmlvIGF2aXNvIGRlIGN1YWxxdWllciBMaWNlbmNpYW50ZSBkZWJlLCBlbiBsYSBtZWRpZGEgZGUgbG8gcG9zaWJsZSwgZWxpbWluYXIgZGUgbGEgT2JyYSBDb2xlY3RpdmEgY3VhbHF1aWVyIHJlZmVyZW5jaWEgYSBkaWNobyBMaWNlbmNpYW50ZSBvIGFsIEF1dG9yIE9yaWdpbmFsLCBzZWfDum4gbG8gc29saWNpdGFkbyBwb3IgZWwgTGljZW5jaWFudGUgeSBjb25mb3JtZSBsbyBleGlnZSBsYSBjbMOhdXN1bGEgNChjKS4KCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KCmMuCVNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLgoKZC4JUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBlcyB1bmEgY29tcG9zaWNpw7NuIG11c2ljYWw6CgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgoKaWkuCVJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgplLglHZXN0acOzbiBkZSBEZXJlY2hvcyBkZSBBdXRvciBzb2JyZSBJbnRlcnByZXRhY2lvbmVzIHkgRWplY3VjaW9uZXMgRGlnaXRhbGVzIChXZWJDYXN0aW5nKS4gUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBzZWEgdW4gZm9ub2dyYW1hLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpIHkgZGUgcmVjb2xlY3RhciwgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgQUNJTlBSTyksIGxhcyByZWdhbMOtYXMgcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbywgd2ViY2FzdCksIHN1amV0YSBhIGxhcyBkaXNwb3NpY2lvbmVzIGFwbGljYWJsZXMgZGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IsIHNpIGVzdGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjYuIExpbWl0YWNpw7NuIGRlIHJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFIExBIExFWSBBUExJQ0FCTEUsIEVMIExJQ0VOQ0lBTlRFIE5PIFNFUsOBIFJFU1BPTlNBQkxFIEFOVEUgVVNURUQgUE9SIERBw5FPIEFMR1VOTywgU0VBIFBPUiBSRVNQT05TQUJJTElEQUQgRVhUUkFDT05UUkFDVFVBTCwgUFJFQ09OVFJBQ1RVQUwgTyBDT05UUkFDVFVBTCwgT0JKRVRJVkEgTyBTVUJKRVRJVkEsIFNFIFRSQVRFIERFIERBw5FPUyBNT1JBTEVTIE8gUEFUUklNT05JQUxFUywgRElSRUNUT1MgTyBJTkRJUkVDVE9TLCBQUkVWSVNUT1MgTyBJTVBSRVZJU1RPUyBQUk9EVUNJRE9TIFBPUiBFTCBVU08gREUgRVNUQSBMSUNFTkNJQSBPIERFIExBIE9CUkEsIEFVTiBDVUFORE8gRUwgTElDRU5DSUFOVEUgSEFZQSBTSURPIEFEVkVSVElETyBERSBMQSBQT1NJQklMSURBRCBERSBESUNIT1MgREHDkU9TLiBBTEdVTkFTIExFWUVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgQ0lFUlRBIFJFU1BPTlNBQklMSURBRCwgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjcuIFTDqXJtaW5vLgoKYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCgpiLglTdWpldGEgYSBsYXMgY29uZGljaW9uZXMgeSB0w6lybWlub3MgYW50ZXJpb3JlcywgbGEgbGljZW5jaWEgb3RvcmdhZGEgYXF1w60gZXMgcGVycGV0dWEgKGR1cmFudGUgZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlIGxhIG9icmEpLiBObyBvYnN0YW50ZSBsbyBhbnRlcmlvciwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGEgcHVibGljYXIgeS9vIGVzdHJlbmFyIGxhIE9icmEgYmFqbyBjb25kaWNpb25lcyBkZSBsaWNlbmNpYSBkaWZlcmVudGVzIG8gYSBkZWphciBkZSBkaXN0cmlidWlybGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIExpY2VuY2lhIGVuIGN1YWxxdWllciBtb21lbnRvOyBlbiBlbCBlbnRlbmRpZG8sIHNpbiBlbWJhcmdvLCBxdWUgZXNhIGVsZWNjacOzbiBubyBzZXJ2aXLDoSBwYXJhIHJldm9jYXIgZXN0YSBsaWNlbmNpYSBvIHF1ZSBkZWJhIHNlciBvdG9yZ2FkYSAsIGJham8gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhKSwgeSBlc3RhIGxpY2VuY2lhIGNvbnRpbnVhcsOhIGVuIHBsZW5vIHZpZ29yIHkgZWZlY3RvIGEgbWVub3MgcXVlIHNlYSB0ZXJtaW5hZGEgY29tbyBzZSBleHByZXNhIGF0csOhcy4gTGEgTGljZW5jaWEgcmV2b2NhZGEgY29udGludWFyw6Egc2llbmRvIHBsZW5hbWVudGUgdmlnZW50ZSB5IGVmZWN0aXZhIHNpIG5vIHNlIGxlIGRhIHTDqXJtaW5vIGVuIGxhcyBjb25kaWNpb25lcyBpbmRpY2FkYXMgYW50ZXJpb3JtZW50ZS4KCjguIFZhcmlvcy4KCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCgpiLglTaSBhbGd1bmEgZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgcmVzdWx0YSBpbnZhbGlkYWRhIG8gbm8gZXhpZ2libGUsIHNlZ8O6biBsYSBsZWdpc2xhY2nDs24gdmlnZW50ZSwgZXN0byBubyBhZmVjdGFyw6EgbmkgbGEgdmFsaWRleiBuaSBsYSBhcGxpY2FiaWxpZGFkIGRlbCByZXN0byBkZSBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIHksIHNpbiBhY2Npw7NuIGFkaWNpb25hbCBwb3IgcGFydGUgZGUgbG9zIHN1amV0b3MgZGUgZXN0ZSBhY3VlcmRvLCBhcXXDqWxsYSBzZSBlbnRlbmRlcsOhIHJlZm9ybWFkYSBsbyBtw61uaW1vIG5lY2VzYXJpbyBwYXJhIGhhY2VyIHF1ZSBkaWNoYSBkaXNwb3NpY2nDs24gc2VhIHbDoWxpZGEgeSBleGlnaWJsZS4KCmMuCU5pbmfDum4gdMOpcm1pbm8gbyBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSBzZSBlc3RpbWFyw6EgcmVudW5jaWFkYSB5IG5pbmd1bmEgdmlvbGFjacOzbiBkZSBlbGxhIHNlcsOhIGNvbnNlbnRpZGEgYSBtZW5vcyBxdWUgZXNhIHJlbnVuY2lhIG8gY29uc2VudGltaWVudG8gc2VhIG90b3JnYWRvIHBvciBlc2NyaXRvIHkgZmlybWFkbyBwb3IgbGEgcGFydGUgcXVlIHJlbnVuY2llIG8gY29uc2llbnRhLgoKZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo=