Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures...
- Autores:
-
Dussán Rueda, Luis Felipe
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2024
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- eng
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/75259
- Acceso en línea:
- https://hdl.handle.net/1992/75259
- Palabra clave:
- SelfHealing
Systems
Predicates
Dynamic
Ingeniería
- Rights
- openAccess
- License
- Attribution-NonCommercial-NoDerivatives 4.0 International
id |
UNIANDES2_f2d09e605c98238dd65fe657a7043e83 |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/75259 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.eng.fl_str_mv |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
title |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
spellingShingle |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates SelfHealing Systems Predicates Dynamic Ingeniería |
title_short |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
title_full |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
title_fullStr |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
title_full_unstemmed |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
title_sort |
Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates |
dc.creator.fl_str_mv |
Dussán Rueda, Luis Felipe |
dc.contributor.advisor.none.fl_str_mv |
Sanabria Ardila, Mateo Cardozo Álvarez, Nicolás |
dc.contributor.author.none.fl_str_mv |
Dussán Rueda, Luis Felipe |
dc.subject.keyword.eng.fl_str_mv |
SelfHealing Systems Predicates Dynamic |
topic |
SelfHealing Systems Predicates Dynamic Ingeniería |
dc.subject.themes.none.fl_str_mv |
Ingeniería |
description |
Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures, and maintain optimal performance and resilience. They dynamically adapt to changing conditions, reducing downtime and enhancing reliability, making them essential for managing complex, dynamic environments where traditional static monitoring falls short. This thesis examines self-healing systems within the Transport System Implementation framework, emphasizing dynamic predicates and Reinforcement Learning to enhance adaptability and responsiveness. Through analysis and simulation, it highlights their benefits and potential applications across various domains. |
publishDate |
2024 |
dc.date.accessioned.none.fl_str_mv |
2024-12-11T13:20:45Z |
dc.date.available.none.fl_str_mv |
2024-12-11T13:20:45Z |
dc.date.issued.none.fl_str_mv |
2024-12-10 |
dc.type.none.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.none.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 |
https://hdl.handle.net/1992/75259 |
dc.identifier.instname.none.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.none.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.none.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
https://hdl.handle.net/1992/75259 |
identifier_str_mv |
instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.none.fl_str_mv |
eng |
language |
eng |
dc.relation.references.none.fl_str_mv |
M. Sanabria, Learning Recovery Strategies for Dynamic Self-healing in Reactive Systems, Journal/-Conference Name, Year. N. Cardozo and I. Dusparic, Learning Run-time Compositions of Interacting Adaptations, 2020. N. Cardozo and I. Dusparic, Next generation context-oriented programming: Embracing dynamic generation of adaptations, Journal of Object Technology, vol. 21, pp. 1–6, 2022. N. Cardozo and I. Dusparic, Auto-COP: Adaptation generation in context-oriented programming using reinforcement learning options, Information and Software Technology, vol. 164, 2023. N. Cardozo, I. Dusparic, and J. H. Castro, Peace corp: Learning to solve conflicts between contexts, Proc. of the 9th Intl. Workshop on Context-Oriented Programming, 2017, pp. 1–6. C. Elliott and P. Hudak, Functional reactive animation, Intl. Conf. on Functional Programming, 1997. R. Hirschfeld, P. Costanza, and O. Nierstrasz, Context-oriented programming, Jour. of Object technology, vol. 7, pp. 125–151, 2008. R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, Bradford Book. The MIT Press, Cambridge, Massachusetts, 1998. G. Salvaneschi, G. Hintz, and M. Mezini, Rescala: Bridging between object-oriented and functional style in reactive applications, Proc. of the 13th Intl. Conf. on Modularity, 2014, pp. 25–36. G. Salvaneschi, C. Ghezzi, and M. Pradella, Contexterlang: A language for distributed contextaware self-adaptive applications, Science of Computer Programming, vol. 102, pp. 20–43, 2015. M. Stolle and D. Precup, Learning options in reinforcement learning, En: Intl. Symp. on abstraction, reformulation, and approximation, Springer, 2002, pp. 212–223. S. Girgin and F. Polat, Option discovery in reinforcement learning using frequent common subsequences of actions, En: Intl. Conf. on Computational Intelligence for Modelling, Control and Automation and Intl. Conf. on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC’06), IEEE, 2005, pp. 371–376. R. S. Sutton, D. Precup, and S. P. Singh, Intraoption learning about temporally abstract actions, ICML, 1998, pp. 556–564. J. Randlov, Learning macro-actions in reinforcement learning, En: Advances in Neural Information Processing Systems, vol. 11, 1998. |
dc.rights.en.fl_str_mv |
Attribution-NonCommercial-NoDerivatives 4.0 International |
dc.rights.uri.none.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/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 |
Attribution-NonCommercial-NoDerivatives 4.0 International http://creativecommons.org/licenses/by-nc-nd/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
9 páginas |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.none.fl_str_mv |
Ingeniería de Sistemas y Computación |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.none.fl_str_mv |
Departamento de Ingeniería de Sistemas y Computación |
publisher.none.fl_str_mv |
Universidad de los Andes |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/ebccd431-03cd-420b-b7ab-a9ea4928e7a1/download https://repositorio.uniandes.edu.co/bitstreams/c4daee0e-4dcc-466e-b56d-2e9f5082fac0/download https://repositorio.uniandes.edu.co/bitstreams/9709210c-1f59-450b-9f98-37269401ea53/download https://repositorio.uniandes.edu.co/bitstreams/6a985665-8abe-4997-804b-2f3baaf4f136/download https://repositorio.uniandes.edu.co/bitstreams/442b8b81-2337-4ab0-a483-abd4699a6db9/download https://repositorio.uniandes.edu.co/bitstreams/ea274c5e-1fc8-4b4d-879d-75a881349560/download https://repositorio.uniandes.edu.co/bitstreams/702ee29a-e894-4f4e-948e-29085365c083/download https://repositorio.uniandes.edu.co/bitstreams/be01ac29-6050-4eb1-adc7-738ede1ceef2/download |
bitstream.checksum.fl_str_mv |
a06821979a0e3d47395cbf09708e49ed 3a21d65ae217c53369a6afdb3c8992b9 4460e5956bc1d1639be9ae6146a50347 ae9e573a68e7f92501b6913cc846c39f eca735113c2f0cf7e364d806cc4d28f4 47206a54ef48f38b016f13218c814efc 316ee071ed0a99a15cf1fbb83a3b1f05 65a41c1bb456108c8d3caf34caa0dbe9 |
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_ |
1828159256243732480 |
spelling |
Sanabria Ardila, MateoCardozo Álvarez, Nicolásvirtual::21821-1Dussán Rueda, Luis Felipe2024-12-11T13:20:45Z2024-12-11T13:20:45Z2024-12-10https://hdl.handle.net/1992/75259instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures, and maintain optimal performance and resilience. They dynamically adapt to changing conditions, reducing downtime and enhancing reliability, making them essential for managing complex, dynamic environments where traditional static monitoring falls short. This thesis examines self-healing systems within the Transport System Implementation framework, emphasizing dynamic predicates and Reinforcement Learning to enhance adaptability and responsiveness. Through analysis and simulation, it highlights their benefits and potential applications across various domains.Pregrado9 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution-NonCommercial-NoDerivatives 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicatesTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPSelfHealingSystemsPredicatesDynamicIngenieríaM. Sanabria, Learning Recovery Strategies for Dynamic Self-healing in Reactive Systems, Journal/-Conference Name, Year.N. Cardozo and I. Dusparic, Learning Run-time Compositions of Interacting Adaptations, 2020.N. Cardozo and I. Dusparic, Next generation context-oriented programming: Embracing dynamic generation of adaptations, Journal of Object Technology, vol. 21, pp. 1–6, 2022.N. Cardozo and I. Dusparic, Auto-COP: Adaptation generation in context-oriented programming using reinforcement learning options, Information and Software Technology, vol. 164, 2023.N. Cardozo, I. Dusparic, and J. H. Castro, Peace corp: Learning to solve conflicts between contexts, Proc. of the 9th Intl. Workshop on Context-Oriented Programming, 2017, pp. 1–6.C. Elliott and P. Hudak, Functional reactive animation, Intl. Conf. on Functional Programming, 1997.R. Hirschfeld, P. Costanza, and O. Nierstrasz, Context-oriented programming, Jour. of Object technology, vol. 7, pp. 125–151, 2008.R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, Bradford Book. The MIT Press, Cambridge, Massachusetts, 1998.G. Salvaneschi, G. Hintz, and M. Mezini, Rescala: Bridging between object-oriented and functional style in reactive applications, Proc. of the 13th Intl. Conf. on Modularity, 2014, pp. 25–36.G. Salvaneschi, C. Ghezzi, and M. Pradella, Contexterlang: A language for distributed contextaware self-adaptive applications, Science of Computer Programming, vol. 102, pp. 20–43, 2015.M. Stolle and D. Precup, Learning options in reinforcement learning, En: Intl. Symp. on abstraction, reformulation, and approximation, Springer, 2002, pp. 212–223.S. Girgin and F. Polat, Option discovery in reinforcement learning using frequent common subsequences of actions, En: Intl. Conf. on Computational Intelligence for Modelling, Control and Automation and Intl. Conf. on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC’06), IEEE, 2005, pp. 371–376.R. S. Sutton, D. Precup, and S. P. Singh, Intraoption learning about temporally abstract actions, ICML, 1998, pp. 556–564.J. Randlov, Learning macro-actions in reinforcement learning, En: Advances in Neural Information Processing Systems, vol. 11, 1998.201912308Publicationhttps://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::21821-10000-0002-1094-9952virtual::21821-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::21821-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::21821-1ORIGINALLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdfLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdfapplication/pdf664609https://repositorio.uniandes.edu.co/bitstreams/ebccd431-03cd-420b-b7ab-a9ea4928e7a1/downloada06821979a0e3d47395cbf09708e49edMD51autorizacion tesis.pdfautorizacion tesis.pdfHIDEapplication/pdf350342https://repositorio.uniandes.edu.co/bitstreams/c4daee0e-4dcc-466e-b56d-2e9f5082fac0/download3a21d65ae217c53369a6afdb3c8992b9MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repositorio.uniandes.edu.co/bitstreams/9709210c-1f59-450b-9f98-37269401ea53/download4460e5956bc1d1639be9ae6146a50347MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/6a985665-8abe-4997-804b-2f3baaf4f136/downloadae9e573a68e7f92501b6913cc846c39fMD54TEXTLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.txtLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.txtExtracted texttext/plain42740https://repositorio.uniandes.edu.co/bitstreams/442b8b81-2337-4ab0-a483-abd4699a6db9/downloadeca735113c2f0cf7e364d806cc4d28f4MD55autorizacion tesis.pdf.txtautorizacion tesis.pdf.txtExtracted texttext/plain2083https://repositorio.uniandes.edu.co/bitstreams/ea274c5e-1fc8-4b4d-879d-75a881349560/download47206a54ef48f38b016f13218c814efcMD57THUMBNAILLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.jpgLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.jpgGenerated Thumbnailimage/jpeg14735https://repositorio.uniandes.edu.co/bitstreams/702ee29a-e894-4f4e-948e-29085365c083/download316ee071ed0a99a15cf1fbb83a3b1f05MD56autorizacion tesis.pdf.jpgautorizacion tesis.pdf.jpgGenerated Thumbnailimage/jpeg11237https://repositorio.uniandes.edu.co/bitstreams/be01ac29-6050-4eb1-adc7-738ede1ceef2/download65a41c1bb456108c8d3caf34caa0dbe9MD581992/75259oai:repositorio.uniandes.edu.co:1992/752592024-12-16 10:16:58.957http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |