Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior
El columnista de Opinión Miguel Pérez, Gerente General de NovaRed, “El avance en la sofisticación de las amenazas informáticas debe motivar tanto al sector privado, para reforzar sus medidas de seguridad, como al Estado, para hacer de este tema un área de preocupación permanente que permita adelanta...
- Autores:
-
De Ávila Arce, Daniel Eduardo
Peñaloza Urbina, Jonathan Alexander
Llanes Baquero, Sergio Daniel
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2017
- Institución:
- Universidad Cooperativa de Colombia
- Repositorio:
- Repositorio UCC
- Idioma:
- OAI Identifier:
- oai:repository.ucc.edu.co:20.500.12494/13053
- Acceso en línea:
- https://hdl.handle.net/20.500.12494/13053
- Palabra clave:
- PHP
Versión 5.6
- Rights
- closedAccess
- License
- Atribución – Sin Derivar
id |
COOPER2_02ac64bbeefbc503613645b150e2acd0 |
---|---|
oai_identifier_str |
oai:repository.ucc.edu.co:20.500.12494/13053 |
network_acronym_str |
COOPER2 |
network_name_str |
Repositorio UCC |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
title |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
spellingShingle |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior PHP Versión 5.6 |
title_short |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
title_full |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
title_fullStr |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
title_full_unstemmed |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
title_sort |
Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior |
dc.creator.fl_str_mv |
De Ávila Arce, Daniel Eduardo Peñaloza Urbina, Jonathan Alexander Llanes Baquero, Sergio Daniel |
dc.contributor.advisor.none.fl_str_mv |
Castellanos Guarín, Luis Fernando |
dc.contributor.author.none.fl_str_mv |
De Ávila Arce, Daniel Eduardo Peñaloza Urbina, Jonathan Alexander Llanes Baquero, Sergio Daniel |
dc.subject.spa.fl_str_mv |
PHP Versión 5.6 |
topic |
PHP Versión 5.6 |
description |
El columnista de Opinión Miguel Pérez, Gerente General de NovaRed, “El avance en la sofisticación de las amenazas informáticas debe motivar tanto al sector privado, para reforzar sus medidas de seguridad, como al Estado, para hacer de este tema un área de preocupación permanente que permita adelantarse a los peligros y contar con las herramientas correspondientes” (Pérez, 2016). Se está de acuerdo con este planteamiento y por ello se ha analizado el ataque Cross Site Request Forgery para poder crear un método que disminuya la vulnerabilidad de ser víctima de él en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior. En este documento se mostrará en qué consiste este ataque, cómo funciona y las herramientas existentes para su detección, así como también se mostrará el método desarrollado por los autores para contrarrestarlo. |
publishDate |
2017 |
dc.date.issued.none.fl_str_mv |
2017 |
dc.date.accessioned.none.fl_str_mv |
2019-07-26T19:44:16Z |
dc.date.available.none.fl_str_mv |
2019-07-26T19:44:16Z |
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/13053 |
dc.identifier.bibliographicCitation.spa.fl_str_mv |
De Ávila Arce, D.E., Peñaloza Urbina, J. A. y Llanes Baquero, S. D. (2017)Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior (Tesis de pregrado) Recuperado de: http://repository.ucc.edu.co/handle/ucc/13053 |
url |
https://hdl.handle.net/20.500.12494/13053 |
identifier_str_mv |
De Ávila Arce, D.E., Peñaloza Urbina, J. A. y Llanes Baquero, S. D. (2017)Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior (Tesis de pregrado) Recuperado de: http://repository.ucc.edu.co/handle/ucc/13053 |
dc.relation.references.spa.fl_str_mv |
Acunetix. (14 de 1 de 2017). WordPress 3.4.2 cross site request forgery. Obtenido de Acunetix: https://www.acunetix.com/vulnerabilities/web/wordpress-3-4-2-cross-site-request-forgery Better Explained. (31 de 10 de 2016). Gmail contacts flaw overview and suggestions. Obtenido de Better Explained: https://betterexplained.com/articles/gmail-contacts-flaw-overview- and-suggestions/ Django. (14 de 1 de 2017). Django REST framework. Obtenido de Django: http://www.django- rest-framework.org/topics/ajax-csrf-cors/ Erickson, A. (23 de 11 de 2016). Developing a Web Based Content Management System Using PHP . Obtenido de a-erickson: http://a-erickson.com/wp-content/uploads/2014/05/Adam- M-Erickson-December-2012-PHP-Development.pdf Framework, Zend. (14 de 1 de 2017). Documentation. Obtenido de Zend Framework: https://framework.zend.com/manual/2.4/en/modules/zend.form.element.csrf.html Grossman, J. (01 de 11 de 2016). J.Grossman. CSRF,the sleeping giant. Obtenido de Jeremiahgrossman:http://jeremiahgrossman.blogspot.com/2006/09/csrf-sleeping- giant.html Grossman, J. (01 de 11 de 2016). More on netflixs csrf advisory. Obtenido de Jeremiahgrossman: http://blog.jeremiahgrossman.com/2006/10/more-on-netflixs-csrf-advisory.html Gutiérrez, J. (23 de 11 de 2016). LSI. Obtenido de ¿Qué es un framework web? : http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf Hernández, R., Fernández, C., & Baptista, P. (2006). Metodología de la investigación. México: MacGraw-Hill. Jacobson, I. (28 de 11 de 2016). IT-SMC. Obtenido de The Essential Unified Process: http://www.it-smc.com/Articles/The%20Essential%20Unified%20Process.pdf Laravel. (14 de 1 de 2017). CSRF Protection. Obtenido de Laravel: https://laravel.com/docs/5.3/csrf Mitchell, J. C. (27 de 10 de 2016). Stanford University. Obtenido de Robust Defenses for Cross- Site Request Forgery: https://seclab.stanford.edu/websec/csrf/csrf.pdf O'Grady, S. (20 de 07 de 2016). RedMonk the developer-focused industry analyst film. Obtenido de Redmonk: http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/ OWASP. (2 de 1 de 2017). Cross-Site Request Forgery (CSRF). Obtenido de OWASP: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) Pérez, M. (30 de 11 de 2016). Channel News. Obtenido de Grupo Editorial y comunicaciones: http://www.emb.cl/channelnews/articulo.mvc?xid=1939&edi=103&xit=ataques- informaticos-en-crecimiento Play. (1 de 14 de 2017). Protecting against Cross Site Request Forgery. Obtenido de Play Framework: https://www.playframework.com/documentation/2.5.x/ScalaCsrf Seclists. (02 de 11 de 2016). Never ending Refer arguments. Obtenido de Seclists: http://seclists.org/bugtraq/2001/Jun/280 Security,CGI.(15de11de2016).CSRF.ObtenidodeCGisecurity: http://www.cgisecurity.com/csrf-faq.html Slim. (14 de 1 de 2017). CSRF Protection. Obtenido de Slim: https://www.slimframework.com/docs/features/csrf.html Zeller, W., & Felten, E. W. (16 de 12 de 2016). Cross Site Request Forgeries: Explotation and prevention.ObtenidodeTheuniversityofTexas: http://www.cs.utexas.edu/~shmat/courses/cs378/zeller.pdf |
dc.rights.license.none.fl_str_mv |
Atribución – Sin Derivar |
dc.rights.accessrights.none.fl_str_mv |
info:eu-repo/semantics/closedAccess |
dc.rights.coar.none.fl_str_mv |
http://purl.org/coar/access_right/c_14cb |
rights_invalid_str_mv |
Atribución – Sin Derivar http://purl.org/coar/access_right/c_14cb |
eu_rights_str_mv |
closedAccess |
dc.format.extent.spa.fl_str_mv |
35 p. |
dc.publisher.spa.fl_str_mv |
Universidad Cooperativa de Colombia, Facultad de Ingenierías, Ingeniería de Sistemas, Bucaramanga |
dc.publisher.program.spa.fl_str_mv |
Ingeniería de Sistemas |
dc.publisher.place.spa.fl_str_mv |
Bucaramanga |
institution |
Universidad Cooperativa de Colombia |
bitstream.url.fl_str_mv |
https://repository.ucc.edu.co/bitstreams/b74ede00-ca05-408c-88ff-f570ca211e20/download https://repository.ucc.edu.co/bitstreams/8fb1dc33-1429-4fb1-9148-0dc9b9db54f1/download https://repository.ucc.edu.co/bitstreams/8e567948-140f-41c3-8297-ace5a40ea879/download https://repository.ucc.edu.co/bitstreams/675ac76c-50ca-4773-8494-567ce044ea00/download |
bitstream.checksum.fl_str_mv |
ede8ef8755cdb1d4a95dd0fb203aa5a5 3bce4f7ab09dfc588f126e1e36e98a45 e9882de656b0b67d23f62c78b1ac6138 b41ee839d46ba5a0bea42b9869a2c083 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Cooperativa de Colombia |
repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
_version_ |
1814246919931691008 |
spelling |
Castellanos Guarín, Luis FernandoDe Ávila Arce, Daniel EduardoPeñaloza Urbina, Jonathan AlexanderLlanes Baquero, Sergio Daniel2019-07-26T19:44:16Z2019-07-26T19:44:16Z2017https://hdl.handle.net/20.500.12494/13053De Ávila Arce, D.E., Peñaloza Urbina, J. A. y Llanes Baquero, S. D. (2017)Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior (Tesis de pregrado) Recuperado de: http://repository.ucc.edu.co/handle/ucc/13053El columnista de Opinión Miguel Pérez, Gerente General de NovaRed, “El avance en la sofisticación de las amenazas informáticas debe motivar tanto al sector privado, para reforzar sus medidas de seguridad, como al Estado, para hacer de este tema un área de preocupación permanente que permita adelantarse a los peligros y contar con las herramientas correspondientes” (Pérez, 2016). Se está de acuerdo con este planteamiento y por ello se ha analizado el ataque Cross Site Request Forgery para poder crear un método que disminuya la vulnerabilidad de ser víctima de él en aplicaciones WEB desarrolladas con PHP versión 5.6 o superior. En este documento se mostrará en qué consiste este ataque, cómo funciona y las herramientas existentes para su detección, así como también se mostrará el método desarrollado por los autores para contrarrestarlo.1.Introducción. -- 2. Planteamiento del Problema. -- 3. Justificación. -- 4. Objetivos. -- 4.1Objetivo General. -- 4.2Objetivos específicos. -- 5. Marco Conceptual. -- 5.1Historia. -- 5.2Funcionamiento. -- 5.3Formas de ataque. -- 5.4Métodos HTML. -- 5.5JavaScript Methods. -- 5.6Mozilla. -- 5.7Mayores Vulnerabilidades Conocidas. -- 5.8Frameworks en PHP que tienen soporte para Cross Site Request Forgery (CSFR) . -- 5.9 Laravel. -- 5.10Zend Framework. -- 5.11Django. -- 5.12Play framework. -- 5.13Slim micro Framework. -- 5.14Content Management System (CMS) en PHP que tienen soporte para Cross-Site Request. -- Forgery (CSRF). -- 5.15WordPress. -- 5.16Librerías existentes para la prevención Del ataque Cross Site Request Forgery (CSRF). -- 5.17Synchronizer Token Pattern (STP). -- 5.18 Cookie-to-header token. -- 6. Metodología. -- 6.1Fase I: Inicio. -- 6.2Fase II: Elaboración. -- 6.2.1Descripción de la fase. -- 6.3Fase III: Pruebas. -- 6.3.1Descripción de la fase. -- 7. Resultados. -- 7.1 Primer momento de la investigación. -- 7.2Segundo momento de la investigación. -- 8. Conclusiones. -- 9. Discusión. -- 10. Bibliografía. -- 11. Anexos.daniel.deavila@campusucc.edu.cojonathan.penaloza@campusucc.edu.cosergio.llanes@campusucc.edu.co35 p.Universidad Cooperativa de Colombia, Facultad de Ingenierías, Ingeniería de Sistemas, BucaramangaIngeniería de SistemasBucaramangaPHPVersión 5.6Análisis del ataque Cross-Site Request Forgery (Falsificación de petición en sitios cruzados) en aplicaciones WEB desarrolladas con PHP versión 5.6 o superiorTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionAtribución – Sin Derivarinfo:eu-repo/semantics/closedAccesshttp://purl.org/coar/access_right/c_14cbAcunetix. (14 de 1 de 2017). WordPress 3.4.2 cross site request forgery. Obtenido de Acunetix: https://www.acunetix.com/vulnerabilities/web/wordpress-3-4-2-cross-site-request-forgeryBetter Explained. (31 de 10 de 2016). Gmail contacts flaw overview and suggestions. Obtenido de Better Explained: https://betterexplained.com/articles/gmail-contacts-flaw-overview- and-suggestions/Django. (14 de 1 de 2017). Django REST framework. Obtenido de Django: http://www.django- rest-framework.org/topics/ajax-csrf-cors/Erickson, A. (23 de 11 de 2016). Developing a Web Based Content Management System Using PHP . Obtenido de a-erickson: http://a-erickson.com/wp-content/uploads/2014/05/Adam- M-Erickson-December-2012-PHP-Development.pdfFramework, Zend. (14 de 1 de 2017). Documentation. Obtenido de Zend Framework: https://framework.zend.com/manual/2.4/en/modules/zend.form.element.csrf.htmlGrossman, J. (01 de 11 de 2016). J.Grossman. CSRF,the sleeping giant. Obtenido de Jeremiahgrossman:http://jeremiahgrossman.blogspot.com/2006/09/csrf-sleeping- giant.htmlGrossman, J. (01 de 11 de 2016). More on netflixs csrf advisory. Obtenido de Jeremiahgrossman: http://blog.jeremiahgrossman.com/2006/10/more-on-netflixs-csrf-advisory.htmlGutiérrez, J. (23 de 11 de 2016). LSI. Obtenido de ¿Qué es un framework web? : http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdfHernández, R., Fernández, C., & Baptista, P. (2006). Metodología de la investigación. México: MacGraw-Hill.Jacobson, I. (28 de 11 de 2016). IT-SMC. Obtenido de The Essential Unified Process: http://www.it-smc.com/Articles/The%20Essential%20Unified%20Process.pdfLaravel. (14 de 1 de 2017). CSRF Protection. Obtenido de Laravel: https://laravel.com/docs/5.3/csrfMitchell, J. C. (27 de 10 de 2016). Stanford University. Obtenido de Robust Defenses for Cross- Site Request Forgery: https://seclab.stanford.edu/websec/csrf/csrf.pdfO'Grady, S. (20 de 07 de 2016). RedMonk the developer-focused industry analyst film. Obtenido de Redmonk: http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/OWASP. (2 de 1 de 2017). Cross-Site Request Forgery (CSRF). Obtenido de OWASP: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)Pérez, M. (30 de 11 de 2016). Channel News. Obtenido de Grupo Editorial y comunicaciones: http://www.emb.cl/channelnews/articulo.mvc?xid=1939&edi=103&xit=ataques- informaticos-en-crecimientoPlay. (1 de 14 de 2017). Protecting against Cross Site Request Forgery. Obtenido de Play Framework: https://www.playframework.com/documentation/2.5.x/ScalaCsrfSeclists. (02 de 11 de 2016). Never ending Refer arguments. Obtenido de Seclists: http://seclists.org/bugtraq/2001/Jun/280Security,CGI.(15de11de2016).CSRF.ObtenidodeCGisecurity: http://www.cgisecurity.com/csrf-faq.htmlSlim. (14 de 1 de 2017). CSRF Protection. Obtenido de Slim: https://www.slimframework.com/docs/features/csrf.htmlZeller, W., & Felten, E. W. (16 de 12 de 2016). Cross Site Request Forgeries: Explotation and prevention.ObtenidodeTheuniversityofTexas: http://www.cs.utexas.edu/~shmat/courses/cs378/zeller.pdfPublicationORIGINAL2017_Análisis_ataque.pdf2017_Análisis_ataque.pdfTrabajo de gradoapplication/pdf575464https://repository.ucc.edu.co/bitstreams/b74ede00-ca05-408c-88ff-f570ca211e20/downloadede8ef8755cdb1d4a95dd0fb203aa5a5MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-84334https://repository.ucc.edu.co/bitstreams/8fb1dc33-1429-4fb1-9148-0dc9b9db54f1/download3bce4f7ab09dfc588f126e1e36e98a45MD52THUMBNAIL2017_Análisis_ataque.pdf.jpg2017_Análisis_ataque.pdf.jpgGenerated Thumbnailimage/jpeg3502https://repository.ucc.edu.co/bitstreams/8e567948-140f-41c3-8297-ace5a40ea879/downloade9882de656b0b67d23f62c78b1ac6138MD53TEXT2017_Análisis_ataque.pdf.txt2017_Análisis_ataque.pdf.txtExtracted texttext/plain47610https://repository.ucc.edu.co/bitstreams/675ac76c-50ca-4773-8494-567ce044ea00/downloadb41ee839d46ba5a0bea42b9869a2c083MD5420.500.12494/13053oai:repository.ucc.edu.co:20.500.12494/130532024-08-10 21:25:00.769restrictedhttps://repository.ucc.edu.coRepositorio Institucional Universidad Cooperativa de Colombiabdigital@metabiblioteca.comVU5JVkVSU0lEQUQgQ09PUEVSQVRJVkEgREUgQ09MT01CSUEKUkVQT1NJVE9SSU9TIElOU1RJVFVDSU9OQUxFUwpMSUNFTkNJQSBERSBVU08KClBvciBtZWRpbyBkZWwgcHJlc2VudGUgZG9jdW1lbnRvLCBlbCBBdXRvcihlcyksIG1heW9yIChlcykgZGUgZWRhZCwgcXVpZW4gZW4gYWRlbGFudGUgc2UgZGVub21pbmFyw6EgZWwgQVVUT1IsIGNvbmZpZXJlIGEgbGEgVU5JVkVSU0lEQUQgQ09PUEVSQVRJVkEgREUgQ09MT01CSUEsIGNvbiBOSVQuIDg2MC0wMjk5MjQtNywgdW5hIExJQ0VOQ0lBIERFIFVTTyBkZSBvYnJhLCBiYWpvIGxhcyBzaWd1aWVudGVzIGNvbmRpY2lvbmVzLgoKQ0zDgVVTVUxBUwoKUFJJTUVSQS4gT2JqZXRvLiBFTCBBVVRPUiBwb3IgZXN0ZSBhY3RvIGF1dG9yaXphIGxhIHV0aWxpemFjacOzbiBkZSBsYSBvYnJhLCBkZSBjb25mb3JtaWRhZCBjb24gbG8gZXN0aXB1bGFkbyBhIGNvbnRpbnVhY2nDs246IAoKKGEpIFBhcmEgZWZlY3RvcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSBzZSBhdXRvcml6YSBsYSByZXByb2R1Y2Npw7NuIGRlIGxhIG9icmEgYW50ZXJpb3JtZW50ZSBjaXRhZGEsIGxhIGN1YWwgc2UgYWxvamFyw6EgZW4gZm9ybWF0byBkaWdpdGFsIGVuIGxhcyBwbGF0YWZvcm1hcyBvIHJlcG9zaXRvcmlvcyBhZG1pbmlzdHJhZG9zIHBvciBsYSBVTklWRVJTSURBRCBvIGVuIG90cm8gdGlwbyBkZSByZXBvc2l0b3Jpb3MgZXh0ZXJub3MgbyBww6FnaW5hcyB3ZWIgZXNjb2dpZG9zIHBvciBsYSBVTklWRVJTSURBRCwgcGFyYSBmaW5lcyBkZSBkaWZ1c2nDs24geSBkaXZ1bGdhY2nDs24uIEFkaWNpb25hbG1lbnRlLCBzZSBhdXRvcml6YSBhIHF1ZSBsb3MgdXN1YXJpb3MgaW50ZXJub3MgeSBleHRlcm5vcyBkZSBkaWNoYXMgcGxhdGFmb3JtYXMgbyByZXBvc2l0b3Jpb3MgcmVwcm9kdXpjYW4gbyBkZXNjYXJndWVuIGxhIG9icmEsIHNpbiDDoW5pbW8gZGUgbHVjcm8sIHBhcmEgZmluZXMgcHJpdmFkb3MsIGVkdWNhdGl2b3MgbyBhY2Fkw6ltaWNvczsgc2llbXByZSB5IGN1YW5kbyBubyBzZSB2aW9sZW4gYWN1ZXJkb3MgY29uIGVkaXRvcmVzLCBwZXJpb2RvcyBkZSBlbWJhcmdvIG8gYWN1ZXJkb3MgZGUgY29uZmlkZW5jaWFsaWRhZCBxdWUgYXBsaXF1ZW4uCgooYikgU2UgYXV0b3JpemEgbGEgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGxhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBkZSBsYSBvYnJhIG1lbmNpb25hZGEsIGVuIGFjY2VzbyBhYmllcnRvLCBwYXJhIHN1IHV0aWxpemFjacOzbiBlbiBsYXMgcGxhdGFmb3JtYXMgbyByZXBvc2l0b3Jpb3MgYWRtaW5pc3RyYWRvcyBwb3IgbGEgVU5JVkVSU0lEQUQuCgooYykgTG8gYW50ZXJpb3IgZXN0YXLDoSBzdWpldG8gYSBsYXMgZGVmaW5pY2lvbmVzIGNvbnRlbmlkYXMgZW4gbGEgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MyB5IGxhIExleSAyMyBkZSAxOTgyLgoKClNFR1VOREEuIE9yaWdpbmFsaWRhZCB5IHJlY2xhbWFjaW9uZXMuIEVsIEFVVE9SIGRlY2xhcmEgcXVlIGxhIE9CUkEgZXMgb3JpZ2luYWwgeSBxdWUgZXMgZGUgc3UgY3JlYWNpw7NuIGV4Y2x1c2l2YSwgbm8gZXhpc3RpZW5kbyBpbXBlZGltZW50byBkZSBjdWFscXVpZXIgbmF0dXJhbGV6YSAoZW1iYXJnb3MsIHVzbyBkZSBtYXRlcmlhbCBwcm90ZWdpZG8gcG9yIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGxhIGNvbmNlc2nDs24gZGUgbG9zIGRlcmVjaG9zIHByZXZpc3RvcyBlbiBlc3RlIGFjdWVyZG8uIEVsIEFVVE9SIHJlc3BvbmRlcsOhIHBvciBjdWFscXVpZXIgYWNjacOzbiBkZSByZWl2aW5kaWNhY2nDs24sIHBsYWdpbyB1IG90cmEgY2xhc2UgZGUgcmVjbGFtYWNpw7NuIHF1ZSBhbCByZXNwZWN0byBwdWRpZXJhIHNvYnJldmVuaXIuCgpURVJDRVJBLiBDb250cmFwcmVzdGFjacOzbi4gRWwgQVVUT1IgYXV0b3JpemEgYSBxdWUgc3Ugb2JyYSBzZWEgdXRpbGl6YWRhIGRlIGNvbmZvcm1pZGFkIGNvbiBsYSBjbMOhdXN1bGEgUFJJTUVSQSBkZSBmb3JtYSBncmF0dWl0YSwgZXMgZGVjaXIsIHF1ZSBsYSB1dGlsaXphY2nDs24gZGUgbGEgbWlzbWEgbm8gZ2VuZXJhIG5pbmfDum4gcGFnbyBvIHJlZ2Fsw61hcyBlbiBmYXZvciBkZSBlc3RlLgoKQ1VBUlRBLiBUaXR1bGFyaWRhZCBkZSBkZXJlY2hvcy4gRWwgcHJlc2VudGUgY29udHJhdG8gbm8gdHJhbnNmaWVyZSBsYSB0aXR1bGFyaWRhZCBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBzb2JyZSBsYXMgb2JyYXMgYW50ZXJpb3JtZW50ZSBtZW5jaW9uYWRhcyBhIGxhIFVOSVZFUlNJREFELiDDmm5pY2FtZW50ZSBoYWNlIHJlbGFjacOzbiBhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEgZW4gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGFudGVyaW9ybWVudGUgcGFjdGFkb3MuCgpRVUlOVEEuIENyw6lkaXRvcy4gTGEgVU5JVkVSU0lEQUQgc2UgY29tcHJvbWV0ZSBhIGRhciBhbCBBVVRPUiwgZWwgcmVjb25vY2ltaWVudG8gZGVudHJvIGNhZGEgZm9ybWEgZGUgdXRpbGl6YWNpw7NuIGVuIGxhIG9icmEuIExvcyBjcsOpZGl0b3MgZGViZW4gZmlndXJhciBlbiBjYWRhIHVubyBkZSBsb3MgZm9ybWF0b3MgbyByZWdpc3Ryb3MgZGUgcHVibGljYWNpw7NuLiBObyBjb25zdGl0dWlyw6EgdW5hIHZpb2xhY2nDs24gYSBsb3MgZGVyZWNob3MgbW9yYWxlcyBkZWwgYXV0b3IgbGEgbm8gcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBvIGRlbcOhcyB1dGlsaXphY2lvbmVzIGRlIGxhIG9icmEuIExhIHV0aWxpemFjacOzbiBvIG5vIGRlIGxhIG9icmEsIGFzw60gY29tbyBzdSBmb3JtYSBkZSB1dGlsaXphY2nDs24gc2Vyw6EgZmFjdWx0YWQgZXhjbHVzaXZhIGRlIGxhIFVOSVZFUlNJREFELgogClNFWFRBLiBEdXJhY2nDs24geSB0ZXJyaXRvcmlvLiBMYSBwcmVzZW50ZSBsaWNlbmNpYSBkZSB1c28gcXVlIHNlIG90b3JnYSBhIGZhdm9yIGRlIGxhIFVOSVZFUlNJREFEIHRlbmRyw6EgdW5hIGR1cmFjacOzbiBlcXVpdmFsZW50ZSBhbCB0w6lybWlubyBkZSBwcm90ZWNjacOzbiBsZWdhbCBkZSBsYSBvYnJhIHkgcGFyYSB0b2RvcyBsb3MgcGHDrXNlcyBkZWwgbXVuZG8uCgpTw4lQVElNQS4gVXNvIGRlIENyZWF0aXZlIENvbW1vbnMuIEVsIEFVVE9SIGF1dG9yaXphcsOhIGxhIGRpZnVzacOzbiBkZSBzdSBjb250ZW5pZG8gYmFqbyB1bmEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBhdHJpYnVjacOzbiA0LjAgaW50ZXJuYWNpb25hbCwgcXVlIGRlYmVyw6EgaW5jbHVpcnNlIGVuIGVsIGNvbnRlbmlkby4gCgpPQ1RBVkEuIERlcmVjaG8gZGUgZXhjbHVzacOzbi4gQ2FkYSBhdXRvciBwdWVkZSBpbmRpY2FyIGVuIGVsIG1vbWVudG8gZGUgZGVww7NzaXRvIGRlbCBjb250ZW5pZG8gcXVlIGVsIHRleHRvIGNvbXBsZXRvIGRlIGxhIHByb2R1Y2Npw7NuIGFjYWTDqW1pY2EgbyBjaWVudMOtZmljYSBubyBlc3RlIGNvbiBhY2Nlc28gYWJpZXJ0byBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIHBvciBtb3Rpdm9zIGRlIGNvbmZpZGVuY2lhbGlkYWQsIHBvcnF1ZSBzZSBlbmN1ZW50cmUgZW4gdsOtYXMgZGUgb2J0ZW5lciB1biBkZXJlY2hvIGRlIHByb3BpZWRhZCBpbmR1c3RyaWFsIG8gZXhpc3RpciBhY3VlcmRvcyBwcmV2aW9zIGNvbiB0ZXJjZXJvcyAoZWRpdG9yaWFsZXMsIHJldmlzdGFzIGNpZW50w61maWNhcywgb3RyYXMgaW5zdGl0dWNpb25lcykuIEVsIGF1dG9yIHNlIGNvbXByb21ldGUgYSBkZXBvc2l0YXIgbG9zIG1ldGFkYXRvcyBlIGluZm9ybWFyIGVsIHRpZW1wbyBkZSBlbWJhcmdvIGR1cmFudGUgZWwgY3VhbCBlbCB0ZXh0byBjb21wbGV0byB0ZW5kcsOhIGFjY2VzbyByZXN0cmluZ2lkby4gCgpOT1ZFTkEuIEVsIEFVVE9SIGFsIGFjZXB0YXIgZXN0YSBsaWNlbmNpYSBhZHVjZSBxdWUgZXN0YSBwcm9kdWNjacOzbiBzZSBkZXNhcnJvbGzDsyBlbiBlbCBwZXJpb2RvIGVuIHF1ZSBzZSBlbmN1ZW50cmEgY29uIHbDrW5jdWxvcyBjb24gTGEgVW5pdmVyc2lkYWQuCgpEw4lDSU1BLiBOb3JtYXMgYXBsaWNhYmxlcy4gUGFyYSBsYSBpbnRlcnByZXRhY2nDs24geSBjdW1wbGltaWVudG8gZGVsIHByZXNlbnRlIGFjdWVyZG8gbGFzIHBhcnRlcyBzZSBzb21ldGVuIGEgbGEgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgbGEgTGV5IDIzIGRlIDE5ODIgeSBkZW3DoXMgbm9ybWFzIGFwbGljYWJsZXMgZGUgQ29sb21iaWEuIEFkZW3DoXMsIGEgbGFzIG5vcm1hcyBJbnN0aXR1Y2lvbmFsZXMgcXVlIGFwbGlxdWVuLgoKTGEgcHJlc2VudGUgbGljZW5jaWEgc2UgYXV0b3JpemEgZW4gbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuIGVuIGxvcyByZXBvc2l0b3Jpb3MgaW5zdGl0dWNpb25hbGVzLgo= |