REAL-T: Time Modularization in Reactive Distributed Applications
In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event mod...
- Autores:
-
Benavides Navarro, Luis Daniel
Pimienta, Camilo
Sanabria, Mateo
Díaz, Daniel
Garzón, Wilmer
Melo, Willson
Arboleda, Hugo
- Tipo de recurso:
- Part of book
- Fecha de publicación:
- 2018
- Institución:
- Escuela Colombiana de Ingeniería Julio Garavito
- Repositorio:
- Repositorio Institucional ECI
- Idioma:
- eng
- OAI Identifier:
- oai:repositorio.escuelaing.edu.co:001/1476
- Acceso en línea:
- https://repositorio.escuelaing.edu.co/handle/001/1476
https://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9
- Palabra clave:
- Lenguaje de programación
Programación distribuida
Programación orientada a eventos
Distributed programming
Event oriented programming
Explicit and implicit time management
- Rights
- closedAccess
- License
- https://creativecommons.org/licenses/by/4.0/
id |
ESCUELAIG2_f551f55a670acc2fb9445c0abf1919b8 |
---|---|
oai_identifier_str |
oai:repositorio.escuelaing.edu.co:001/1476 |
network_acronym_str |
ESCUELAIG2 |
network_name_str |
Repositorio Institucional ECI |
repository_id_str |
|
dc.title.spa.fl_str_mv |
REAL-T: Time Modularization in Reactive Distributed Applications |
title |
REAL-T: Time Modularization in Reactive Distributed Applications |
spellingShingle |
REAL-T: Time Modularization in Reactive Distributed Applications Lenguaje de programación Programación distribuida Programación orientada a eventos Distributed programming Event oriented programming Explicit and implicit time management |
title_short |
REAL-T: Time Modularization in Reactive Distributed Applications |
title_full |
REAL-T: Time Modularization in Reactive Distributed Applications |
title_fullStr |
REAL-T: Time Modularization in Reactive Distributed Applications |
title_full_unstemmed |
REAL-T: Time Modularization in Reactive Distributed Applications |
title_sort |
REAL-T: Time Modularization in Reactive Distributed Applications |
dc.creator.fl_str_mv |
Benavides Navarro, Luis Daniel Pimienta, Camilo Sanabria, Mateo Díaz, Daniel Garzón, Wilmer Melo, Willson Arboleda, Hugo |
dc.contributor.author.none.fl_str_mv |
Benavides Navarro, Luis Daniel Pimienta, Camilo Sanabria, Mateo Díaz, Daniel Garzón, Wilmer Melo, Willson Arboleda, Hugo |
dc.contributor.researchgroup.spa.fl_str_mv |
CTG-Informática |
dc.subject.armarc.spa.fl_str_mv |
Lenguaje de programación Programación distribuida Programación orientada a eventos |
topic |
Lenguaje de programación Programación distribuida Programación orientada a eventos Distributed programming Event oriented programming Explicit and implicit time management |
dc.subject.proposal.eng.fl_str_mv |
Distributed programming Event oriented programming Explicit and implicit time management |
description |
In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event model. We have developed a compiler for the language and a dynamic run-time framework. To validate the proposal we study detection of complex patterns of security vulnerabilities in IoT scenarios. |
publishDate |
2018 |
dc.date.issued.none.fl_str_mv |
2018 |
dc.date.accessioned.none.fl_str_mv |
2021-05-24T21:50:20Z 2021-10-01T17:22:43Z |
dc.date.available.none.fl_str_mv |
2021-05-24T21:50:20Z 2021-10-01T17:22:43Z |
dc.type.spa.fl_str_mv |
Capítulo - Parte de libro |
dc.type.coar.fl_str_mv |
http://purl.org/coar/resource_type/c_c94f |
dc.type.coarversion.fl_str_mv |
http://purl.org/coar/version/c_970fb48d4fbd8a85 |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_3248 |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/conferenceObject |
dc.type.redcol.spa.fl_str_mv |
https://purl.org/redcol/resource_type/CAP_LIB |
format |
http://purl.org/coar/resource_type/c_3248 |
status_str |
publishedVersion |
dc.identifier.isbn.none.fl_str_mv |
978-3-319-98997-6 978-3-319-98998-3 |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.escuelaing.edu.co/handle/001/1476 |
dc.identifier.doi.none.fl_str_mv |
doi.org/10.1007/978-3-319-98998-3_9 |
dc.identifier.url.none.fl_str_mv |
https://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9 |
identifier_str_mv |
978-3-319-98997-6 978-3-319-98998-3 doi.org/10.1007/978-3-319-98998-3_9 |
url |
https://repositorio.escuelaing.edu.co/handle/001/1476 https://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9 |
dc.language.iso.spa.fl_str_mv |
eng |
language |
eng |
dc.relation.ispartofseries.none.fl_str_mv |
Communications in Computer and Information Science book series (CCIS, volume 885); |
dc.relation.citationedition.spa.fl_str_mv |
CCIS, volume 885 |
dc.relation.citationendpage.spa.fl_str_mv |
127 |
dc.relation.citationstartpage.spa.fl_str_mv |
113 |
dc.relation.indexed.spa.fl_str_mv |
N/A |
dc.relation.ispartofbook.spa.fl_str_mv |
Advances in Computing |
dc.relation.references.spa.fl_str_mv |
Baier, C., Katoen, J.P.: Principles of Model Checking. MIT press, Cambridge (2008) Ban, B., Grinovero, S.: JGroups (2011) Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Program monitoring with LTL in EAGLE. In: 18th International Parallel and Distributed Processing Symposium 2004, April 2004 Benavides Navarro, L.D., Barrera, A., Garcés, K., Arboleda, H.: Detecting and coordinating complex patterns of distributed events with KETAL. Electron. Notes Theor. Comput. Sci. 281, 127–141 (2011) Benavides Navarro, L.D., Douence, R., Südholt, M.: Debugging and testing middleware with aspect-based control-flow and causal patterns. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 183–202. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89856-6_10 Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for c#. ACM Trans. Program. Lang. Syst. 26(5), 769–804 (2004) Büchi, J.R.: Symposium on decision problems on a decision method in restricted second order arithmetic. Stud. Log. Found. Math. 44, 1–11 (1966) Chen, F., Roşu, G.: Java-MOP: a monitoring oriented programming environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-31980-1_36 Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: ACM SIGPLAN Notices, vol. 42. ACM (2007) Fisher, M.: An Introduction to Practical Formal Methods Using Temporal Logic. Wiley, Hoboken (2011) Furia, C.A., Mandrioli, D., Morzenti, A., Rossi, M.: Modeling time in computing: a taxonomy and a comparative survey. ACM Comput. Surv. 42(2), 1–59 (2010) Giannakopoulou, D., Lerda, F.: From states to transitions: improving translation of LTL formulae to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36135-9_20 Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987). https://doi.org/10.1016/0167-6423(87)90035-9 Haydar, M., Boroday, S., Petrenko, A., Sahraoui, H.: Propositional scopes in linear temporal logic. In: Proceedings of the 5th International Conference on Novelles Technologies de la Repartition (NOTERE 2005) (2005) Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997). Konur, S.: A survey on temporal logics for specifying and verifying real-time systems. Front. Comput. Sci. 7(3), 370–403 (2013) Kröger, F., Merz, S.: Temporal Logic and State Systems. Springer, Berlin (2008). https://doi.org/10.1007/978-3-540-68635-4 Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978) Lee, I., Lee, K.: The internet of things (IoT): applications, investments, and challenges for enterprises. Bus. Horiz. 58(4), 431–440 (2015) Mattern, F., et al.: Virtual time and global states of distributed systems. Parallel Distrib. Algorithms 1(23), 215–226 (1989) Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249–289 (2012) Møller, A.: dk.brics.automaton – finite-state automata and regular expressions for Java (2017). http://www.brics.dk/automaton/ Naldurg, P., Sen, K., Thati, P.: A temporal logic based framework for intrusion detection. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 359–376. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30232-2_23 Ousterhout, J.: Why threads are a bad idea (for most purposes). In: Invited talk Given at USENIX Technical Conference (1996). https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf Petri, C.A.: Fundamentals of a theory of asynchronous information flow. In: IFIP Congress (1962) van Renesse, R., Birman, K.P., Maffeis, S.: Horus: a flexible group communication system. Commun. ACM 39(4), 76–83 (1996) Robiah, Y., Rahayu, S.S., Shahrin, S., Faizal, M., Zaki, M.M., Marliza, R.: New multi-step worm attack model. arXiv preprint arXiv:1001.3477 (2010) |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_14cb |
dc.rights.uri.spa.fl_str_mv |
https://creativecommons.org/licenses/by/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/closedAccess |
dc.rights.creativecommons.eng.fl_str_mv |
Atribución 4.0 Internacional (CC BY 4.0) |
rights_invalid_str_mv |
https://creativecommons.org/licenses/by/4.0/ Atribución 4.0 Internacional (CC BY 4.0) http://purl.org/coar/access_right/c_14cb |
eu_rights_str_mv |
closedAccess |
dc.format.extent.spa.fl_str_mv |
15 páginas |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Springer Nature |
dc.publisher.place.spa.fl_str_mv |
Suiza |
dc.source.spa.fl_str_mv |
https://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9 |
institution |
Escuela Colombiana de Ingeniería Julio Garavito |
bitstream.url.fl_str_mv |
https://repositorio.escuelaing.edu.co/bitstream/001/1476/1/license.txt https://repositorio.escuelaing.edu.co/bitstream/001/1476/2/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf https://repositorio.escuelaing.edu.co/bitstream/001/1476/3/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txt https://repositorio.escuelaing.edu.co/bitstream/001/1476/4/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.jpg |
bitstream.checksum.fl_str_mv |
5a7ca94c2e5326ee169f979d71d0f06e b36d565a3f5d278a2ab9d51e58fd0312 d784fa8b6d98d27699781bd9a7cf19f0 21304017e87a8a277bedb6caab956bc3 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Escuela Colombiana de Ingeniería Julio Garavito |
repository.mail.fl_str_mv |
repositorio.eci@escuelaing.edu.co |
_version_ |
1814355610150371328 |
spelling |
Benavides Navarro, Luis Daniel6fb8a207341d8b2f068df4c441aa67dd600Pimienta, Camiloedee336840ceb732be273e88017718c5600Sanabria, Mateo7ce70020c113039fb221b87674cf694c600Díaz, Daniel1f25d140d104722cf16f9d82f4d8475a600Garzón, Wilmer6b04a33a7db33dd5cc3491063fc48a95600Melo, Willson018ad359ec0022463ecab400cee645a3600Arboleda, Hugof8462780e6dbe96346932fa9632d2bf3600CTG-Informática2021-05-24T21:50:20Z2021-10-01T17:22:43Z2021-05-24T21:50:20Z2021-10-01T17:22:43Z2018978-3-319-98997-6978-3-319-98998-3https://repositorio.escuelaing.edu.co/handle/001/1476doi.org/10.1007/978-3-319-98998-3_9https://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event model. We have developed a compiler for the language and a dynamic run-time framework. To validate the proposal we study detection of complex patterns of security vulnerabilities in IoT scenarios.En este artículo, proponemos REAL-T, un lenguaje distribuido basado en eventos con soporte explícito para la manipulación del tiempo. El lenguaje introduce autómatas para la manipulación del tiempo operacional, construcciones de causalidad y lógica temporal lineal para predicados de tiempo declarativos, y un modelo de eventos de tiempo distribuido. Hemos desarrollado un compilador para el lenguaje y un marco de tiempo de ejecución dinámico. Para validar la propuesta estudiamos la detección de patrones complejos de vulnerabilidades de seguridad en escenarios de IoT.15 páginasapplication/pdfengSpringer NatureSuizaCommunications in Computer and Information Science book series (CCIS, volume 885);CCIS, volume 885127113N/AAdvances in ComputingBaier, C., Katoen, J.P.: Principles of Model Checking. MIT press, Cambridge (2008)Ban, B., Grinovero, S.: JGroups (2011)Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Program monitoring with LTL in EAGLE. In: 18th International Parallel and Distributed Processing Symposium 2004, April 2004Benavides Navarro, L.D., Barrera, A., Garcés, K., Arboleda, H.: Detecting and coordinating complex patterns of distributed events with KETAL. Electron. Notes Theor. Comput. Sci. 281, 127–141 (2011)Benavides Navarro, L.D., Douence, R., Südholt, M.: Debugging and testing middleware with aspect-based control-flow and causal patterns. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 183–202. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89856-6_10Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for c#. ACM Trans. Program. Lang. Syst. 26(5), 769–804 (2004)Büchi, J.R.: Symposium on decision problems on a decision method in restricted second order arithmetic. Stud. Log. Found. Math. 44, 1–11 (1966)Chen, F., Roşu, G.: Java-MOP: a monitoring oriented programming environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-31980-1_36Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: ACM SIGPLAN Notices, vol. 42. ACM (2007)Fisher, M.: An Introduction to Practical Formal Methods Using Temporal Logic. Wiley, Hoboken (2011)Furia, C.A., Mandrioli, D., Morzenti, A., Rossi, M.: Modeling time in computing: a taxonomy and a comparative survey. ACM Comput. Surv. 42(2), 1–59 (2010)Giannakopoulou, D., Lerda, F.: From states to transitions: improving translation of LTL formulae to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36135-9_20Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987). https://doi.org/10.1016/0167-6423(87)90035-9Haydar, M., Boroday, S., Petrenko, A., Sahraoui, H.: Propositional scopes in linear temporal logic. In: Proceedings of the 5th International Conference on Novelles Technologies de la Repartition (NOTERE 2005) (2005)Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997).Konur, S.: A survey on temporal logics for specifying and verifying real-time systems. Front. Comput. Sci. 7(3), 370–403 (2013)Kröger, F., Merz, S.: Temporal Logic and State Systems. Springer, Berlin (2008). https://doi.org/10.1007/978-3-540-68635-4Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)Lee, I., Lee, K.: The internet of things (IoT): applications, investments, and challenges for enterprises. Bus. Horiz. 58(4), 431–440 (2015)Mattern, F., et al.: Virtual time and global states of distributed systems. Parallel Distrib. Algorithms 1(23), 215–226 (1989)Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249–289 (2012)Møller, A.: dk.brics.automaton – finite-state automata and regular expressions for Java (2017). http://www.brics.dk/automaton/Naldurg, P., Sen, K., Thati, P.: A temporal logic based framework for intrusion detection. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 359–376. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30232-2_23Ousterhout, J.: Why threads are a bad idea (for most purposes). In: Invited talk Given at USENIX Technical Conference (1996). https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdfPetri, C.A.: Fundamentals of a theory of asynchronous information flow. In: IFIP Congress (1962)van Renesse, R., Birman, K.P., Maffeis, S.: Horus: a flexible group communication system. Commun. ACM 39(4), 76–83 (1996)Robiah, Y., Rahayu, S.S., Shahrin, S., Faizal, M., Zaki, M.M., Marliza, R.: New multi-step worm attack model. arXiv preprint arXiv:1001.3477 (2010)https://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/closedAccessAtribución 4.0 Internacional (CC BY 4.0)http://purl.org/coar/access_right/c_14cbhttps://link.springer.com/chapter/10.1007%2F978-3-319-98998-3_9REAL-T: Time Modularization in Reactive Distributed ApplicationsCapítulo - Parte de libroinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_3248http://purl.org/coar/resource_type/c_c94fTextinfo:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/conferenceObjecthttps://purl.org/redcol/resource_type/CAP_LIBhttp://purl.org/coar/version/c_970fb48d4fbd8a85Lenguaje de programaciónProgramación distribuidaProgramación orientada a eventosDistributed programmingEvent oriented programmingExplicit and implicit time managementLICENSElicense.txttext/plain1881https://repositorio.escuelaing.edu.co/bitstream/001/1476/1/license.txt5a7ca94c2e5326ee169f979d71d0f06eMD51open accessORIGINALREAL-T - Time Modularization in Reactive Distributed Applications.pdfapplication/pdf97263https://repositorio.escuelaing.edu.co/bitstream/001/1476/2/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdfb36d565a3f5d278a2ab9d51e58fd0312MD52open accessTEXTREAL-T - Time Modularization in Reactive Distributed Applications.pdf.txtREAL-T - Time Modularization in Reactive Distributed Applications.pdf.txtExtracted texttext/plain2https://repositorio.escuelaing.edu.co/bitstream/001/1476/3/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txtd784fa8b6d98d27699781bd9a7cf19f0MD53open accessTHUMBNAILREAL-T - Time Modularization in Reactive Distributed Applications.pdf.jpgREAL-T - Time Modularization in Reactive Distributed Applications.pdf.jpgGenerated Thumbnailimage/jpeg7514https://repositorio.escuelaing.edu.co/bitstream/001/1476/4/REAL-T%20-%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.jpg21304017e87a8a277bedb6caab956bc3MD54open access001/1476oai:repositorio.escuelaing.edu.co:001/14762022-10-27 12:30:27.626open accessRepositorio Escuela Colombiana de Ingeniería Julio Garavitorepositorio.eci@escuelaing.edu.coU0kgVVNURUQgSEFDRSBQQVJURSBERUwgR1JVUE8gREUgUEFSRVMgRVZBTFVBRE9SRVMgREUgTEEgQ09MRUNDScOTTiAiUEVFUiBSRVZJRVciLCBPTUlUQSBFU1RBIExJQ0VOQ0lBLgoKQXV0b3Jpem8gYSBsYSBFc2N1ZWxhIENvbG9tYmlhbmEgZGUgSW5nZW5pZXLDrWEgSnVsaW8gR2FyYXZpdG8gcGFyYSBwdWJsaWNhciBlbCB0cmFiYWpvIGRlIGdyYWRvLCBhcnTDrWN1bG8sIHZpZGVvLCAKY29uZmVyZW5jaWEsIGxpYnJvLCBpbWFnZW4sIGZvdG9ncmFmw61hLCBhdWRpbywgcHJlc2VudGFjacOzbiB1IG90cm8gKGVuICAgIGFkZWxhbnRlIGRvY3VtZW50bykgcXVlIGVuIGxhIGZlY2hhIAplbnRyZWdvIGVuIGZvcm1hdG8gZGlnaXRhbCwgeSBsZSBwZXJtaXRvIGRlIGZvcm1hIGluZGVmaW5pZGEgcXVlIGxvIHB1YmxpcXVlIGVuIGVsIHJlcG9zaXRvcmlvIGluc3RpdHVjaW9uYWwsIAplbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIHkgZGVtw6FzIGxleWVzIHkganVyaXNwcnVkZW5jaWEgdmlnZW50ZQphbCByZXNwZWN0bywgcGFyYSBmaW5lcyBlZHVjYXRpdm9zIHkgbm8gbHVjcmF0aXZvcy4gRXN0YSBhdXRvcml6YWNpw7NuIGVzIHbDoWxpZGEgcGFyYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIAp1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbDsgeSBwYXJhIHVzb3MgZW4gcmVkZXMsIGludGVybmV0LCBleHRyYW5ldCwgeSBjdWFscXVpZXIgCmZvcm1hdG8gbyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyLgpFbiBtaSBjYWxpZGFkIGRlIGF1dG9yLCBleHByZXNvIHF1ZSBlbCBkb2N1bWVudG8gb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsbyBlbGFib3LDqSBzaW4gCnF1ZWJyYW50YXIgbmkgc3VwbGFudGFyIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcy4gUG9yIGxvIHRhbnRvLCBlcyBkZSBtaSBleGNsdXNpdmEgYXV0b3LDrWEgeSwgZW4gY29uc2VjdWVuY2lhLCAKdGVuZ28gbGEgdGl0dWxhcmlkYWQgc29icmUgw6lsLiBFbiBjYXNvIGRlIHF1ZWphIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyByZWZlcmVudGUgYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgCmVsIGRvY3VtZW50byBlbiBjdWVzdGnDs24sIGFzdW1pcsOpIGxhIHJlc3BvbnNhYmlsaWRhZCB0b3RhbCB5IHNhbGRyw6kgZW4gZGVmZW5zYSBkZSBsb3MgZGVyZWNob3MgYXF1w60gYXV0b3JpemFkb3MuIEVzdG8gCnNpZ25pZmljYSBxdWUsIHBhcmEgdG9kb3MgbG9zIGVmZWN0b3MsIGxhIEVzY3VlbGEgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIEVzY3VlbGEsIGVsIENhdMOhbG9nbyBlbiBsw61uZWEgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljbywgCnBvZHLDoSBjb3BpYXIgYXBhcnRlcyBkZWwgdGV4dG8sIGNvbiBlbCBjb21wcm9taXNvIGRlIGNpdGFyIHNpZW1wcmUgbGEgZnVlbnRlLCBsYSBjdWFsIGluY2x1eWUgZWwgdMOtdHVsbyBkZWwgdHJhYmFqbyB5IGVsIAphdXRvci5Fc3RhIGF1dG9yaXphY2nDs24gbm8gaW1wbGljYSByZW51bmNpYSBhIGxhIGZhY3VsdGFkIHF1ZSB0ZW5nbyBkZSBwdWJsaWNhciB0b3RhbCBvIHBhcmNpYWxtZW50ZSBsYSBvYnJhIGVuIG90cm9zIAptZWRpb3MuRXN0YSBhdXRvcml6YWNpw7NuIGVzdMOhIHJlc3BhbGRhZGEgcG9yIGxhcyBmaXJtYXMgZGVsIChsb3MpIGF1dG9yKGVzKSBkZWwgZG9jdW1lbnRvLiAKU8OtIGF1dG9yaXpvIChhbWJvcykK |