Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del pr...
- Autores:
-
Zona Moreno, Sergio Julián
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2023
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/70669
- Acceso en línea:
- http://hdl.handle.net/1992/70669
- Palabra clave:
- Video juegos
Agente de juego
Aprendizaje profundo por refuerzo
PPO
Juego por cuenta propia
Inteligencia artificial
Ingeniería
- Rights
- openAccess
- License
- Atribución 4.0 Internacional
id |
UNIANDES2_c862090fdcd591960ede8646d1926dc8 |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/70669 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.none.fl_str_mv |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
title |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
spellingShingle |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" Video juegos Agente de juego Aprendizaje profundo por refuerzo PPO Juego por cuenta propia Inteligencia artificial Ingeniería |
title_short |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
title_full |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
title_fullStr |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
title_full_unstemmed |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
title_sort |
Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!" |
dc.creator.fl_str_mv |
Zona Moreno, Sergio Julián |
dc.contributor.advisor.none.fl_str_mv |
Takahashi Rodríguez, Silvia |
dc.contributor.author.none.fl_str_mv |
Zona Moreno, Sergio Julián |
dc.contributor.researchgroup.es_CO.fl_str_mv |
FLAG |
dc.subject.keyword.none.fl_str_mv |
Video juegos Agente de juego Aprendizaje profundo por refuerzo PPO Juego por cuenta propia Inteligencia artificial |
topic |
Video juegos Agente de juego Aprendizaje profundo por refuerzo PPO Juego por cuenta propia Inteligencia artificial Ingeniería |
dc.subject.themes.es_CO.fl_str_mv |
Ingeniería |
description |
A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del proyecto es desarrollar un Game Agent utilizando técnicas de aprendizaje profundo en el videojuego "Osu!" con el fin de evaluar su efectividad en un juego de ritmo. Particularmente, se implementó la técnica de aprendizaje profundo Proximal Policy Optimization (PPO) para determinar si su uso puede extrapolarse a otros contextos, situaciones y/o proyectos de la vida cotidiana. |
publishDate |
2023 |
dc.date.accessioned.none.fl_str_mv |
2023-09-15T15:30:09Z |
dc.date.available.none.fl_str_mv |
2023-09-15T15:30:09Z |
dc.date.issued.none.fl_str_mv |
2023-09-11 |
dc.type.es_CO.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.content.es_CO.fl_str_mv |
Text |
dc.type.redcol.none.fl_str_mv |
http://purl.org/redcol/resource_type/TP |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/1992/70669 |
dc.identifier.instname.es_CO.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.es_CO.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.es_CO.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
http://hdl.handle.net/1992/70669 |
identifier_str_mv |
instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.es_CO.fl_str_mv |
spa |
language |
spa |
dc.relation.references.es_CO.fl_str_mv |
Risi, S., & Preuss, · Mike. (2020). From Chess and Atari to StarCraft and Beyond: How Game AI is Driving the World of AI. KI - Künstliche Intelligenz, 34, 7-17. https://doi.org/10.1007/s13218-020-00647-w AI for Good. (2021, septiembre 2). How video games can help Artificial Intelligence deliver real-world impact. https://aiforgood.itu.int/how-video-games-can-help-artificialintelligence-deliver-real-world-impact/ Nield, T. (2019, julio 10). The Practical Value of Game AI. https://towardsdatascience.com/ai-research-and-the-video-game-fetish-71cb62ffd6b3 van Stee, J. (2020). Creating an AI for the Rhytm Game osu! [Leiden Institute of Advanced Computer Science (LIACS)]. https://theses.liacs.nl/pdf/2019-2020-SteeJvander.pdf Vedal, J. (2022, diciembre 19). Neuro-sama Ch. Vedal AI. https://www.youtube.com/@Neurosama Open AI. (2022). Gymnasium documentation. https://gymnasium.farama.org/ Russel, S., & Norvig, P. (2010). Artificial Intelligence - A Modern Approach. Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms. van Heeswijk, W. (2022, noviembre 29). Proximal Policy Optimization (PPO) Explained. https://towardsdatascience.com/proximal-policy-optimization-ppo-explainedabed1952457b Open AI. (2023, febrero 2). ChatGPT: Optimizing Language Models for Dialogue. . https://openai.com/blog/chatgpt Marcin Szczepanski, & European Parliamentary Research Service. (2019). Economic impacts of artificial intelligence (AI). https://www.europarl.europa.eu/RegData/etudes/BRIE/2019/637967/EPRS_BRI(2019)6 37967_EN.pdf Stanford University. (2021). Artificial Intelligence Index Report 2021. https://aiindex.stanford.edu/wp-content/uploads/2021/03/2021-AI-Index-Report- _Chapter-1.pdf IBM. (s. f.). ¿Qué es Deep Learning? Recuperado 14 de marzo de 2023, de https://www.ibm.com/es-es/topics/deep-learning Bhatt, S. (2018, marzo 19). Reinforcement Learning 101. Towards Data Science. https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292 Arxiv Insights. (2018, octubre 1). An introduction to Policy Gradient methods - Deep Reinforcement Learning. https://www.youtube.com/watch?v=5P7I-xPq8u8 Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms. https://arxiv.org/abs/1707.06347v2 Intel Corporation. (2022). OpenCV - Open Computer Vision Library. 4.7.0. https://opencv.org/ Google Brain Team. (s. f.). TensorFlow. 2015. Recuperado 14 de febrero de 2023, de https://www.tensorflow.org/?hl=es-419 Chollet, F. (2015). Keras: Deep Learning for humans. https://keras.io/ Hammond, M. (2018). pyWin32 - Python for Windows Extensions. https://sourceforge.net/projects/pywin32/ NVIDIA. (s. f.). CUDA Toolkit . Recuperado 17 de febrero de 2023, de https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html Sweigart, A. (s. f.). PyAutoGUI. Recuperado 17 de febrero de 2023, de https://github.com/asweigart/pyautogui note35. (2018). Osu Map Parser. 2018 Learn Code By Learning. (2020). OpenCV Object Detection in Games. https://www.youtube.com/playlist?list=PL1m2M8LQlzfKtkKq2lK5xko4X-8EZzFPI Roger, K. (2022). Music: An Appreciation (10th Edition). McGrawHill. Baldisseri, F., Maiani, A., Montecchiani, E., Delli Priscoli, F., Giuseppi, A., Menegatti, D., & Fogliati, V. (2022). An Integrated Music and Artificial Intelligence System in Support of Pediatric Neurorehabilitation. Healthcare 2022, Vol. 10, Page 2014, 10(10), 2014. https://doi.org/10.3390/HEALTHCARE10102014 Heijnen, E. (2023). Cheat Engine. https://www.cheatengine.org/ |
dc.rights.license.*.fl_str_mv |
Atribución 4.0 Internacional |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by/4.0/ |
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 4.0 Internacional http://creativecommons.org/licenses/by/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.es_CO.fl_str_mv |
38 páginas |
dc.format.mimetype.es_CO.fl_str_mv |
application/pdf |
dc.publisher.es_CO.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.es_CO.fl_str_mv |
Ingeniería de Sistemas y Computación |
dc.publisher.faculty.es_CO.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.es_CO.fl_str_mv |
Departamento de Ingeniería Sistemas y Computación |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/5e7fb701-93ad-41f0-80a5-a652517c03ca/download https://repositorio.uniandes.edu.co/bitstreams/f8a33fba-191a-4903-843e-6f6fc66d6bb1/download https://repositorio.uniandes.edu.co/bitstreams/464ffbb3-4c02-40b6-9f3b-7331f7bc2d8c/download https://repositorio.uniandes.edu.co/bitstreams/96fc2432-9cab-4488-a2b8-e764f6e76ce2/download https://repositorio.uniandes.edu.co/bitstreams/4d61d68b-be88-4197-8c53-478ad1d014eb/download https://repositorio.uniandes.edu.co/bitstreams/01855d89-38d2-4f37-bc7f-b24a01ce5968/download https://repositorio.uniandes.edu.co/bitstreams/a29b7971-0b7d-4725-ba61-365f4c8d10e8/download https://repositorio.uniandes.edu.co/bitstreams/d7df1ed6-5176-4c3b-8d12-e1889c35eab3/download |
bitstream.checksum.fl_str_mv |
e0c2b19a263cfe74b653e01ea85e0822 552760792d9e9600b70b7b019a73b6cc 0175ea4a2d4caec4bbcc37e300941108 5aa5c691a1ffe97abd12c2966efcb8d6 c0f3b6a581d01a96eaa8c812384b2b4b 08b106dfeb12472e88207a069e15ba30 2001f171c64a41890176d7ecd128bc47 6dc5e5a387222453aef5817d61ea950c |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio institucional Séneca |
repository.mail.fl_str_mv |
adminrepositorio@uniandes.edu.co |
_version_ |
1828159303067893760 |
spelling |
Atribución 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Takahashi Rodríguez, Silviavirtual::5462-1Zona Moreno, Sergio Juliáne907688f-459a-48fd-bf76-1e9b513a5025600FLAG2023-09-15T15:30:09Z2023-09-15T15:30:09Z2023-09-11http://hdl.handle.net/1992/70669instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del proyecto es desarrollar un Game Agent utilizando técnicas de aprendizaje profundo en el videojuego "Osu!" con el fin de evaluar su efectividad en un juego de ritmo. Particularmente, se implementó la técnica de aprendizaje profundo Proximal Policy Optimization (PPO) para determinar si su uso puede extrapolarse a otros contextos, situaciones y/o proyectos de la vida cotidiana.Ingeniero de Sistemas y ComputaciónPregrado38 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónAplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"Trabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPVideo juegosAgente de juegoAprendizaje profundo por refuerzoPPOJuego por cuenta propiaInteligencia artificialIngenieríaRisi, S., & Preuss, · Mike. (2020). From Chess and Atari to StarCraft and Beyond: How Game AI is Driving the World of AI. KI - Künstliche Intelligenz, 34, 7-17. https://doi.org/10.1007/s13218-020-00647-wAI for Good. (2021, septiembre 2). How video games can help Artificial Intelligence deliver real-world impact. https://aiforgood.itu.int/how-video-games-can-help-artificialintelligence-deliver-real-world-impact/Nield, T. (2019, julio 10). The Practical Value of Game AI. https://towardsdatascience.com/ai-research-and-the-video-game-fetish-71cb62ffd6b3van Stee, J. (2020). Creating an AI for the Rhytm Game osu! [Leiden Institute of Advanced Computer Science (LIACS)]. https://theses.liacs.nl/pdf/2019-2020-SteeJvander.pdfVedal, J. (2022, diciembre 19). Neuro-sama Ch. Vedal AI. https://www.youtube.com/@NeurosamaOpen AI. (2022). Gymnasium documentation. https://gymnasium.farama.org/Russel, S., & Norvig, P. (2010). Artificial Intelligence - A Modern Approach.Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms.van Heeswijk, W. (2022, noviembre 29). Proximal Policy Optimization (PPO) Explained. https://towardsdatascience.com/proximal-policy-optimization-ppo-explainedabed1952457bOpen AI. (2023, febrero 2). ChatGPT: Optimizing Language Models for Dialogue. . https://openai.com/blog/chatgptMarcin Szczepanski, & European Parliamentary Research Service. (2019). Economic impacts of artificial intelligence (AI). https://www.europarl.europa.eu/RegData/etudes/BRIE/2019/637967/EPRS_BRI(2019)6 37967_EN.pdfStanford University. (2021). Artificial Intelligence Index Report 2021. https://aiindex.stanford.edu/wp-content/uploads/2021/03/2021-AI-Index-Report- _Chapter-1.pdfIBM. (s. f.). ¿Qué es Deep Learning? Recuperado 14 de marzo de 2023, de https://www.ibm.com/es-es/topics/deep-learningBhatt, S. (2018, marzo 19). Reinforcement Learning 101. Towards Data Science. https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292Arxiv Insights. (2018, octubre 1). An introduction to Policy Gradient methods - Deep Reinforcement Learning. https://www.youtube.com/watch?v=5P7I-xPq8u8Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms. https://arxiv.org/abs/1707.06347v2Intel Corporation. (2022). OpenCV - Open Computer Vision Library. 4.7.0. https://opencv.org/Google Brain Team. (s. f.). TensorFlow. 2015. Recuperado 14 de febrero de 2023, de https://www.tensorflow.org/?hl=es-419Chollet, F. (2015). Keras: Deep Learning for humans. https://keras.io/Hammond, M. (2018). pyWin32 - Python for Windows Extensions. https://sourceforge.net/projects/pywin32/NVIDIA. (s. f.). CUDA Toolkit . Recuperado 17 de febrero de 2023, de https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htmlSweigart, A. (s. f.). PyAutoGUI. Recuperado 17 de febrero de 2023, de https://github.com/asweigart/pyautoguinote35. (2018). Osu Map Parser. 2018Learn Code By Learning. (2020). OpenCV Object Detection in Games. https://www.youtube.com/playlist?list=PL1m2M8LQlzfKtkKq2lK5xko4X-8EZzFPIRoger, K. (2022). Music: An Appreciation (10th Edition). McGrawHill.Baldisseri, F., Maiani, A., Montecchiani, E., Delli Priscoli, F., Giuseppi, A., Menegatti, D., & Fogliati, V. (2022). An Integrated Music and Artificial Intelligence System in Support of Pediatric Neurorehabilitation. Healthcare 2022, Vol. 10, Page 2014, 10(10), 2014. https://doi.org/10.3390/HEALTHCARE10102014Heijnen, E. (2023). Cheat Engine. https://www.cheatengine.org/201914936Publicationhttps://scholar.google.es/citations?user=x7gjZ04AAAAJvirtual::5462-10000-0001-7971-8979virtual::5462-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000143898virtual::5462-17ab9a4e1-60f0-4e06-936b-39f2bf93d8a0virtual::5462-17ab9a4e1-60f0-4e06-936b-39f2bf93d8a0virtual::5462-1ORIGINALAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdfAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdfProyecto de gradoapplication/pdf952711https://repositorio.uniandes.edu.co/bitstreams/5e7fb701-93ad-41f0-80a5-a652517c03ca/downloade0c2b19a263cfe74b653e01ea85e0822MD54Autorizacio¿n tesis - Firmada.pdfAutorizacio¿n tesis - Firmada.pdfHIDEapplication/pdf241858https://repositorio.uniandes.edu.co/bitstreams/f8a33fba-191a-4903-843e-6f6fc66d6bb1/download552760792d9e9600b70b7b019a73b6ccMD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/464ffbb3-4c02-40b6-9f3b-7331f7bc2d8c/download0175ea4a2d4caec4bbcc37e300941108MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81810https://repositorio.uniandes.edu.co/bitstreams/96fc2432-9cab-4488-a2b8-e764f6e76ce2/download5aa5c691a1ffe97abd12c2966efcb8d6MD51TEXTAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.txtAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.txtExtracted texttext/plain48508https://repositorio.uniandes.edu.co/bitstreams/4d61d68b-be88-4197-8c53-478ad1d014eb/downloadc0f3b6a581d01a96eaa8c812384b2b4bMD55Autorizacio¿n tesis - Firmada.pdf.txtAutorizacio¿n tesis - Firmada.pdf.txtExtracted texttext/plain1161https://repositorio.uniandes.edu.co/bitstreams/01855d89-38d2-4f37-bc7f-b24a01ce5968/download08b106dfeb12472e88207a069e15ba30MD57THUMBNAILAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.jpgAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.jpgIM Thumbnailimage/jpeg9164https://repositorio.uniandes.edu.co/bitstreams/a29b7971-0b7d-4725-ba61-365f4c8d10e8/download2001f171c64a41890176d7ecd128bc47MD56Autorizacio¿n tesis - Firmada.pdf.jpgAutorizacio¿n tesis - Firmada.pdf.jpgIM Thumbnailimage/jpeg16258https://repositorio.uniandes.edu.co/bitstreams/d7df1ed6-5176-4c3b-8d12-e1889c35eab3/download6dc5e5a387222453aef5817d61ea950cMD581992/70669oai:repositorio.uniandes.edu.co:1992/706692024-03-13 12:56:51.858http://creativecommons.org/licenses/by/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coWW8sIGVuIG1pIGNhbGlkYWQgZGUgYXV0b3IgZGVsIHRyYWJham8gZGUgdGVzaXMsIG1vbm9ncmFmw61hIG8gdHJhYmFqbyBkZSBncmFkbywgaGFnbyBlbnRyZWdhIGRlbCBlamVtcGxhciByZXNwZWN0aXZvIHkgZGUgc3VzIGFuZXhvcyBkZSBzZXIgZWwgY2FzbywgZW4gZm9ybWF0byBkaWdpdGFsIHkvbyBlbGVjdHLDs25pY28geSBhdXRvcml6byBhIGxhIFVuaXZlcnNpZGFkIGRlIGxvcyBBbmRlcyBwYXJhIHF1ZSByZWFsaWNlIGxhIHB1YmxpY2FjacOzbiBlbiBlbCBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIG8gZW4gY3VhbHF1aWVyIG90cm8gc2lzdGVtYSBvIGJhc2UgZGUgZGF0b3MgcHJvcGlvIG8gYWplbm8gYSBsYSBVbml2ZXJzaWRhZCB5IHBhcmEgcXVlIGVuIGxvcyB0w6lybWlub3MgZXN0YWJsZWNpZG9zIGVuIGxhIExleSAyMyBkZSAxOTgyLCBMZXkgNDQgZGUgMTk5MywgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgRGVjcmV0byA0NjAgZGUgMTk5NSB5IGRlbcOhcyBub3JtYXMgZ2VuZXJhbGVzIHNvYnJlIGxhIG1hdGVyaWEsIHV0aWxpY2UgZW4gdG9kYXMgc3VzIGZvcm1hcywgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSwgdHJhbnNmb3JtYWNpw7NuIHkgZGlzdHJpYnVjacOzbiAoYWxxdWlsZXIsIHByw6lzdGFtbyBww7pibGljbyBlIGltcG9ydGFjacOzbikgcXVlIG1lIGNvcnJlc3BvbmRlbiBjb21vIGNyZWFkb3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50by4gIAoKCkxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgZW1pdGUgZW4gY2FsaWRhZCBkZSBhdXRvciBkZSBsYSBvYnJhIG9iamV0byBkZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgbm8gY29ycmVzcG9uZGUgYSBjZXNpw7NuIGRlIGRlcmVjaG9zLCBzaW5vIGEgbGEgYXV0b3JpemFjacOzbiBkZSB1c28gYWNhZMOpbWljbyBkZSBjb25mb3JtaWRhZCBjb24gbG8gYW50ZXJpb3JtZW50ZSBzZcOxYWxhZG8uIExhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgaGFjZSBleHRlbnNpdmEgbm8gc29sbyBhIGxhcyBmYWN1bHRhZGVzIHkgZGVyZWNob3MgZGUgdXNvIHNvYnJlIGxhIG9icmEgZW4gZm9ybWF0byBvIHNvcG9ydGUgbWF0ZXJpYWwsIHNpbm8gdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGVsZWN0csOzbmljbywgeSBlbiBnZW5lcmFsIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gCgoKRWwgYXV0b3IsIG1hbmlmaWVzdGEgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsYSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcywgcG9yIGxvIHRhbnRvLCBsYSBvYnJhIGVzIGRlIHN1IGV4Y2x1c2l2YSBhdXRvcsOtYSB5IHRpZW5lIGxhIHRpdHVsYXJpZGFkIHNvYnJlIGxhIG1pc21hLiAKCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAKCg== |