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...

Full description

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=