Rewriting Logic Semantics of a Plan Execution Language

The Plan Execution Interchange Language (PLEXIL) is a synchronous language developed by NASA to support autonomous spacecraft operations. In this paper, we propose a rewriting logic semantics of PLEXIL in Maude, a high-performance logical engine. The rewriting logic semantics is by itself a formal i...

Full description

Autores:
Dowek, Gilles
Muñoz, César
Rocha, Camilo
Tipo de recurso:
Article of journal
Fecha de publicación:
2010
Institución:
Escuela Colombiana de Ingeniería Julio Garavito
Repositorio:
Repositorio Institucional ECI
Idioma:
eng
OAI Identifier:
oai:repositorio.escuelaing.edu.co:001/1902
Acceso en línea:
https://repositorio.escuelaing.edu.co/handle/001/1902
Palabra clave:
Lenguajes de programación
Lógica en Ciencias de la Computación
Programming Languages
Logic in Computer Science
Rights
openAccess
License
c G. Dowek & C. Munoz & C. Rocha
id ESCUELAIG2_7af1cbec076e61b56d8d66d8c6349d40
oai_identifier_str oai:repositorio.escuelaing.edu.co:001/1902
network_acronym_str ESCUELAIG2
network_name_str Repositorio Institucional ECI
repository_id_str
dc.title.eng.fl_str_mv Rewriting Logic Semantics of a Plan Execution Language
title Rewriting Logic Semantics of a Plan Execution Language
spellingShingle Rewriting Logic Semantics of a Plan Execution Language
Lenguajes de programación
Lógica en Ciencias de la Computación
Programming Languages
Logic in Computer Science
title_short Rewriting Logic Semantics of a Plan Execution Language
title_full Rewriting Logic Semantics of a Plan Execution Language
title_fullStr Rewriting Logic Semantics of a Plan Execution Language
title_full_unstemmed Rewriting Logic Semantics of a Plan Execution Language
title_sort Rewriting Logic Semantics of a Plan Execution Language
dc.creator.fl_str_mv Dowek, Gilles
Muñoz, César
Rocha, Camilo
dc.contributor.author.none.fl_str_mv Dowek, Gilles
Muñoz, César
Rocha, Camilo
dc.contributor.researchgroup.spa.fl_str_mv Informática
dc.subject.armarc.spa.fl_str_mv Lenguajes de programación
Lógica en Ciencias de la Computación
topic Lenguajes de programación
Lógica en Ciencias de la Computación
Programming Languages
Logic in Computer Science
dc.subject.proposal.eng.fl_str_mv Programming Languages
Logic in Computer Science
description The Plan Execution Interchange Language (PLEXIL) is a synchronous language developed by NASA to support autonomous spacecraft operations. In this paper, we propose a rewriting logic semantics of PLEXIL in Maude, a high-performance logical engine. The rewriting logic semantics is by itself a formal interpreter of the language and can be used as a semantic benchmark for the implementation of PLEXIL executives. The implementation in Maude has the additional benefit of making available to PLEXIL designers and developers all the formal analysis and verification tools provided by Maude. The formalization of the PLEXIL semantics in rewriting logic poses an interesting challenge due to the synchronous nature of the language and the prioritized rules defining its semantics. To overcome this difficulty, we propose a general procedure for simulating synchronous set relations in rewriting logic that is sound and, for deterministic relations, complete. We also report on two issues at the design level of the original PLEXIL semantics that were identified with the help of the executable specification in Maude.
publishDate 2010
dc.date.issued.none.fl_str_mv 2010
dc.date.accessioned.none.fl_str_mv 2021-12-03T20:54:01Z
dc.date.available.none.fl_str_mv 2021-12-03T20:54:01Z
dc.type.spa.fl_str_mv Artículo de revista
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_2df8fbb1
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_6501
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/article
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/ART
format http://purl.org/coar/resource_type/c_6501
status_str publishedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.escuelaing.edu.co/handle/001/1902
url https://repositorio.escuelaing.edu.co/handle/001/1902
dc.language.iso.spa.fl_str_mv eng
language eng
dc.relation.citationendpage.spa.fl_str_mv 91
dc.relation.citationstartpage.spa.fl_str_mv 77
dc.relation.citationvolume.spa.fl_str_mv 18
dc.relation.indexed.spa.fl_str_mv N/A
dc.relation.ispartofjournal.eng.fl_str_mv Electronic Proceedings in Theoretical Computer Science
dc.relation.references.spa.fl_str_mv M. AlTurki & J. Meseguer (2008): Reduction Semantics and Formal Analysis of Orc Programs. Electr. Notes Theor. Comput. Sci. 200(3), pp. 25–41.
G. Berry (2000): The Foundations of Esterel. In: Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge, MA, USA, pp. 425–454.
R. Bruni & J. Meseguer (2006): Semantic foundations for generalized rewrite theories. Theor. Comput. Sci. 360(1-3), pp. 386–414. Available at http://dx.doi.org/10.1016/j.tcs.2006.04.012.
P. Caspi, D. Pilaud, N. Halbwachs & J. A. Plaice (1987): LUSTRE: a declarative language for real-time programming. In: POPL ’87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. ACM, New York, NY, USA, pp. 178–188.
M. Clavel, F. Duran, S. Eker, J. Meseguer, P. Lincoln, N. Mart ´ ´ı-Oliet & C. Talcott (2007): All About Maude - A High-Performance Logical Framework. Springer LNCS Vol. 4350, 1st edition.
N. Dershowitz & J. P. Jouannaud (1990): Rewrite Systems. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B). The MIT Press, pp. 243–320.
G. Dowek, C. Munoz & C. P ˜ as˘ areanu (2007): ˘ A Formal Analysis Framework for PLEXIL. In: Proceedings of 3rd Workshop on Planning and Plan Execution for Real-World Systems. pp. 45–51.
G. Dowek, C. Munoz & C. P ˜ as˘ areanu (2008): ˘ A Small-Step Semantics OF PLEXIL. Technical Report 2008- 11, National Institute of Aerospace, Hampton, VA.
T. Estlin, A. Jonsson, C. P ´ as˘ areanu, R. Simmons, K. Tso & V. Verna (2006): ˘ Plan Execution Interchange Language (PLEXIL). Technical Memorandum TM-2006-213483, NASA.
D. Lucanu (2009): Strategy-Based Rewrite Semantics for Membrane Systems Preserves Maximal Concurrency of Evolution Rule Actions. Electr. Notes Theor. Comput. Sci. 237, pp. 107–125.
J. Meseguer (1992): Conditional Rewriting Logic as a Unified Model of Concurrency. Theoretical Computer Science 96(1), pp. 73–155.
J. Meseguer & G. Rosu (2007): The rewriting logic semantics project. Theor. Comput. Sci. 373(3), pp. 213–237. Available at http://dx.doi.org/10.1016/j.tcs.2006.12.018.
S. Owre, J. Rushby & N. Shankar (1992): PVS: A Prototype Verification System. In: Deepak Kapur, editor: 11th International Conference on Automated Deduction (CADE), Lecture Notes in Artificial Intelligence 607. Springer-Verlag, Saratoga, NY, pp. 748–752.
G. D. Plotkin (2004): A structural approach to operational semantics. J. Log. Alg. Prog. 60-61, pp. 17–139.
C. Rocha, C. Munoz & H. Cadavid (2009): ˜ A Graphical Environment for the Semantic Validation of a Plan Execution Language. IEEE International Conference on Space Mission Challenges for Information Technology 0, pp. 201–207.
T. Serbanuta, G. Rosu & J. Meseguer (2009): A rewriting logic approach to operational semantics. Inf. Comput. 207(2), pp. 305–340.
T. Serbanuta, G. Stefanescu & G. Rosu (2008): Defining and Executing P Systems with Structured Data in K. In: David W. Corne, Pierluigi Frisco, Gheorghe Paun, Grzegorz Rozenberg & Arto Salomaa, editors: Workshop on Membrane Computing, Lecture Notes in Computer Science 5391. Springer, pp. 374–393.
O. Tardieu (2007): A deterministic logical semantics for pure Esterel. ACM Trans. Program. Lang. Syst. 29(2), p. 8.
A. Verdejo & N. Mart´ı-Oliet (2006): Executable structural operational semantics in Maude. J. Log. Algebr. Program. 67(1-2), pp. 226–293.
V. Verna, A. Jonsson, C. P ´ as˘ areanu & M. Latauro (2006): ˘ Universal Executive and PLEXIL: Engine and Language for Robust Spacecraft Control and Operations. In: Proceedings of the American Institute of Aeronautics and Astronautics Space Conference.
P. Viry (2002): Equational rules for rewriting logic. Theoretical Computer Science 285, pp. 487–517.
dc.rights.eng.fl_str_mv c G. Dowek & C. Munoz & C. Rocha
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
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/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución 4.0 Internacional (CC BY 4.0)
rights_invalid_str_mv c G. Dowek & C. Munoz & C. Rocha
https://creativecommons.org/licenses/by/4.0/
Atribución 4.0 Internacional (CC BY 4.0)
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv 15 páginas.
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.place.spa.fl_str_mv E.E.U.U.
dc.source.spa.fl_str_mv https://arxiv.org/abs/1002.2872
institution Escuela Colombiana de Ingeniería Julio Garavito
bitstream.url.fl_str_mv https://repositorio.escuelaing.edu.co/bitstream/001/1902/1/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf
https://repositorio.escuelaing.edu.co/bitstream/001/1902/2/license.txt
https://repositorio.escuelaing.edu.co/bitstream/001/1902/3/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/1902/4/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf.jpg
bitstream.checksum.fl_str_mv 1aba4849620e8fcbd3fb62317db1f1e3
5a7ca94c2e5326ee169f979d71d0f06e
15295e7166e734afe54099909e38e082
3412ec2f31765c3720865f24b81837cb
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_ 1814355610006716416
spelling Dowek, Gilles76d5ba62f6773dccda4db68e64e2b416600Muñoz, César70953c4ce36fbd95e2df915d4688e3b1600Rocha, Camiloebfd407af468605647a49186059da397600Informática2021-12-03T20:54:01Z2021-12-03T20:54:01Z2010https://repositorio.escuelaing.edu.co/handle/001/1902The Plan Execution Interchange Language (PLEXIL) is a synchronous language developed by NASA to support autonomous spacecraft operations. In this paper, we propose a rewriting logic semantics of PLEXIL in Maude, a high-performance logical engine. The rewriting logic semantics is by itself a formal interpreter of the language and can be used as a semantic benchmark for the implementation of PLEXIL executives. The implementation in Maude has the additional benefit of making available to PLEXIL designers and developers all the formal analysis and verification tools provided by Maude. The formalization of the PLEXIL semantics in rewriting logic poses an interesting challenge due to the synchronous nature of the language and the prioritized rules defining its semantics. To overcome this difficulty, we propose a general procedure for simulating synchronous set relations in rewriting logic that is sound and, for deterministic relations, complete. We also report on two issues at the design level of the original PLEXIL semantics that were identified with the help of the executable specification in Maude.El lenguaje de intercambio de ejecución de planes (PLEXIL) es un lenguaje sincrónico desarrollado por la NASA para respaldar las operaciones de naves espaciales autónomas. En este artículo, proponemos una reescritura de la semántica lógica de PLEXIL en Maude, un motor lógico de alto rendimiento. La semántica de reescritura lógica es por sí misma un intérprete formal del lenguaje y puede ser utilizada como referencia semántica para la implementación de ejecutivos de PLEXIL. La implementación en Maude tiene el beneficio adicional de poner a disposición de los diseñadores y desarrolladores de PLEXIL todas las herramientas formales de análisis y verificación proporcionadas por Maude. La formalización de la semántica de PLEXIL en la reescritura lógica plantea un interesante desafío debido a la naturaleza sincrónica del lenguaje y las reglas priorizadas que definen su semántica. Para superar esta dificultad, proponemos un procedimiento general para simular relaciones de conjuntos síncronos en la reescritura de la lógica que es sólida y, para las relaciones deterministas, completa. También informamos sobre dos problemas a nivel de diseño de la semántica PLEXIL original que se identificaron con la ayuda de la especificación ejecutable en Maude.15 páginas.application/pdfengc G. Dowek & C. Munoz & C. Rochahttps://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccessAtribución 4.0 Internacional (CC BY 4.0)http://purl.org/coar/access_right/c_abf2https://arxiv.org/abs/1002.2872Rewriting Logic Semantics of a Plan Execution LanguageArtículo de revistainfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_6501http://purl.org/coar/resource_type/c_2df8fbb1Textinfo:eu-repo/semantics/articlehttp://purl.org/redcol/resource_type/ARThttp://purl.org/coar/version/c_970fb48d4fbd8a85E.E.U.U.917718N/AElectronic Proceedings in Theoretical Computer ScienceM. AlTurki & J. Meseguer (2008): Reduction Semantics and Formal Analysis of Orc Programs. Electr. Notes Theor. Comput. Sci. 200(3), pp. 25–41.G. Berry (2000): The Foundations of Esterel. In: Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge, MA, USA, pp. 425–454.R. Bruni & J. Meseguer (2006): Semantic foundations for generalized rewrite theories. Theor. Comput. Sci. 360(1-3), pp. 386–414. Available at http://dx.doi.org/10.1016/j.tcs.2006.04.012.P. Caspi, D. Pilaud, N. Halbwachs & J. A. Plaice (1987): LUSTRE: a declarative language for real-time programming. In: POPL ’87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. ACM, New York, NY, USA, pp. 178–188.M. Clavel, F. Duran, S. Eker, J. Meseguer, P. Lincoln, N. Mart ´ ´ı-Oliet & C. Talcott (2007): All About Maude - A High-Performance Logical Framework. Springer LNCS Vol. 4350, 1st edition.N. Dershowitz & J. P. Jouannaud (1990): Rewrite Systems. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B). The MIT Press, pp. 243–320.G. Dowek, C. Munoz & C. P ˜ as˘ areanu (2007): ˘ A Formal Analysis Framework for PLEXIL. In: Proceedings of 3rd Workshop on Planning and Plan Execution for Real-World Systems. pp. 45–51.G. Dowek, C. Munoz & C. P ˜ as˘ areanu (2008): ˘ A Small-Step Semantics OF PLEXIL. Technical Report 2008- 11, National Institute of Aerospace, Hampton, VA.T. Estlin, A. Jonsson, C. P ´ as˘ areanu, R. Simmons, K. Tso & V. Verna (2006): ˘ Plan Execution Interchange Language (PLEXIL). Technical Memorandum TM-2006-213483, NASA.D. Lucanu (2009): Strategy-Based Rewrite Semantics for Membrane Systems Preserves Maximal Concurrency of Evolution Rule Actions. Electr. Notes Theor. Comput. Sci. 237, pp. 107–125.J. Meseguer (1992): Conditional Rewriting Logic as a Unified Model of Concurrency. Theoretical Computer Science 96(1), pp. 73–155.J. Meseguer & G. Rosu (2007): The rewriting logic semantics project. Theor. Comput. Sci. 373(3), pp. 213–237. Available at http://dx.doi.org/10.1016/j.tcs.2006.12.018.S. Owre, J. Rushby & N. Shankar (1992): PVS: A Prototype Verification System. In: Deepak Kapur, editor: 11th International Conference on Automated Deduction (CADE), Lecture Notes in Artificial Intelligence 607. Springer-Verlag, Saratoga, NY, pp. 748–752.G. D. Plotkin (2004): A structural approach to operational semantics. J. Log. Alg. Prog. 60-61, pp. 17–139.C. Rocha, C. Munoz & H. Cadavid (2009): ˜ A Graphical Environment for the Semantic Validation of a Plan Execution Language. IEEE International Conference on Space Mission Challenges for Information Technology 0, pp. 201–207.T. Serbanuta, G. Rosu & J. Meseguer (2009): A rewriting logic approach to operational semantics. Inf. Comput. 207(2), pp. 305–340.T. Serbanuta, G. Stefanescu & G. Rosu (2008): Defining and Executing P Systems with Structured Data in K. In: David W. Corne, Pierluigi Frisco, Gheorghe Paun, Grzegorz Rozenberg & Arto Salomaa, editors: Workshop on Membrane Computing, Lecture Notes in Computer Science 5391. Springer, pp. 374–393.O. Tardieu (2007): A deterministic logical semantics for pure Esterel. ACM Trans. Program. Lang. Syst. 29(2), p. 8.A. Verdejo & N. Mart´ı-Oliet (2006): Executable structural operational semantics in Maude. J. Log. Algebr. Program. 67(1-2), pp. 226–293.V. Verna, A. Jonsson, C. P ´ as˘ areanu & M. Latauro (2006): ˘ Universal Executive and PLEXIL: Engine and Language for Robust Spacecraft Control and Operations. In: Proceedings of the American Institute of Aeronautics and Astronautics Space Conference.P. Viry (2002): Equational rules for rewriting logic. Theoretical Computer Science 285, pp. 487–517.Lenguajes de programaciónLógica en Ciencias de la ComputaciónProgramming LanguagesLogic in Computer ScienceORIGINALRewriting Logic Semantics of a Plan Execution Language ∗.pdfRewriting Logic Semantics of a Plan Execution Language ∗.pdfArtículo principal.application/pdf280691https://repositorio.escuelaing.edu.co/bitstream/001/1902/1/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf1aba4849620e8fcbd3fb62317db1f1e3MD51metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81881https://repositorio.escuelaing.edu.co/bitstream/001/1902/2/license.txt5a7ca94c2e5326ee169f979d71d0f06eMD52open accessTEXTRewriting Logic Semantics of a Plan Execution Language ∗.pdf.txtRewriting Logic Semantics of a Plan Execution Language ∗.pdf.txtExtracted texttext/plain52711https://repositorio.escuelaing.edu.co/bitstream/001/1902/3/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf.txt15295e7166e734afe54099909e38e082MD53open accessTHUMBNAILRewriting Logic Semantics of a Plan Execution Language ∗.pdf.jpgRewriting Logic Semantics of a Plan Execution Language ∗.pdf.jpgGenerated Thumbnailimage/jpeg13384https://repositorio.escuelaing.edu.co/bitstream/001/1902/4/Rewriting%20Logic%20Semantics%20of%20a%20Plan%20Execution%20Language%20%e2%88%97.pdf.jpg3412ec2f31765c3720865f24b81837cbMD54open access001/1902oai:repositorio.escuelaing.edu.co:001/19022022-07-01 14:58:08.879metadata only accessRepositorio Escuela Colombiana de Ingeniería Julio Garavitorepositorio.eci@escuelaing.edu.coU0kgVVNURUQgSEFDRSBQQVJURSBERUwgR1JVUE8gREUgUEFSRVMgRVZBTFVBRE9SRVMgREUgTEEgQ09MRUNDScOTTiAiUEVFUiBSRVZJRVciLCBPTUlUQSBFU1RBIExJQ0VOQ0lBLgoKQXV0b3Jpem8gYSBsYSBFc2N1ZWxhIENvbG9tYmlhbmEgZGUgSW5nZW5pZXLDrWEgSnVsaW8gR2FyYXZpdG8gcGFyYSBwdWJsaWNhciBlbCB0cmFiYWpvIGRlIGdyYWRvLCBhcnTDrWN1bG8sIHZpZGVvLCAKY29uZmVyZW5jaWEsIGxpYnJvLCBpbWFnZW4sIGZvdG9ncmFmw61hLCBhdWRpbywgcHJlc2VudGFjacOzbiB1IG90cm8gKGVuICAgIGFkZWxhbnRlIGRvY3VtZW50bykgcXVlIGVuIGxhIGZlY2hhIAplbnRyZWdvIGVuIGZvcm1hdG8gZGlnaXRhbCwgeSBsZSBwZXJtaXRvIGRlIGZvcm1hIGluZGVmaW5pZGEgcXVlIGxvIHB1YmxpcXVlIGVuIGVsIHJlcG9zaXRvcmlvIGluc3RpdHVjaW9uYWwsIAplbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIHkgZGVtw6FzIGxleWVzIHkganVyaXNwcnVkZW5jaWEgdmlnZW50ZQphbCByZXNwZWN0bywgcGFyYSBmaW5lcyBlZHVjYXRpdm9zIHkgbm8gbHVjcmF0aXZvcy4gRXN0YSBhdXRvcml6YWNpw7NuIGVzIHbDoWxpZGEgcGFyYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIAp1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbDsgeSBwYXJhIHVzb3MgZW4gcmVkZXMsIGludGVybmV0LCBleHRyYW5ldCwgeSBjdWFscXVpZXIgCmZvcm1hdG8gbyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyLgpFbiBtaSBjYWxpZGFkIGRlIGF1dG9yLCBleHByZXNvIHF1ZSBlbCBkb2N1bWVudG8gb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsbyBlbGFib3LDqSBzaW4gCnF1ZWJyYW50YXIgbmkgc3VwbGFudGFyIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcy4gUG9yIGxvIHRhbnRvLCBlcyBkZSBtaSBleGNsdXNpdmEgYXV0b3LDrWEgeSwgZW4gY29uc2VjdWVuY2lhLCAKdGVuZ28gbGEgdGl0dWxhcmlkYWQgc29icmUgw6lsLiBFbiBjYXNvIGRlIHF1ZWphIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyByZWZlcmVudGUgYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgCmVsIGRvY3VtZW50byBlbiBjdWVzdGnDs24sIGFzdW1pcsOpIGxhIHJlc3BvbnNhYmlsaWRhZCB0b3RhbCB5IHNhbGRyw6kgZW4gZGVmZW5zYSBkZSBsb3MgZGVyZWNob3MgYXF1w60gYXV0b3JpemFkb3MuIEVzdG8gCnNpZ25pZmljYSBxdWUsIHBhcmEgdG9kb3MgbG9zIGVmZWN0b3MsIGxhIEVzY3VlbGEgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIEVzY3VlbGEsIGVsIENhdMOhbG9nbyBlbiBsw61uZWEgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljbywgCnBvZHLDoSBjb3BpYXIgYXBhcnRlcyBkZWwgdGV4dG8sIGNvbiBlbCBjb21wcm9taXNvIGRlIGNpdGFyIHNpZW1wcmUgbGEgZnVlbnRlLCBsYSBjdWFsIGluY2x1eWUgZWwgdMOtdHVsbyBkZWwgdHJhYmFqbyB5IGVsIAphdXRvci5Fc3RhIGF1dG9yaXphY2nDs24gbm8gaW1wbGljYSByZW51bmNpYSBhIGxhIGZhY3VsdGFkIHF1ZSB0ZW5nbyBkZSBwdWJsaWNhciB0b3RhbCBvIHBhcmNpYWxtZW50ZSBsYSBvYnJhIGVuIG90cm9zIAptZWRpb3MuRXN0YSBhdXRvcml6YWNpw7NuIGVzdMOhIHJlc3BhbGRhZGEgcG9yIGxhcyBmaXJtYXMgZGVsIChsb3MpIGF1dG9yKGVzKSBkZWwgZG9jdW1lbnRvLiAKU8OtIGF1dG9yaXpvIChhbWJvcykK