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

Full description

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