Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud

ilustraciones, diagramas, fotografías

Autores:
Ramírez Espejo, Roger Steven
Tipo de recurso:
Fecha de publicación:
2023
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/84828
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/84828
https://repositorio.unal.edu.co/
Palabra clave:
000 - Ciencias de la computación, información y obras generales
Industria de programas para internet
Internet software industry
analítica de software
análisis automático de código fuente
SAP Commerce
Migración a nube
nube pública
Microsoft Azure
PMD
estudios de caso
software analytics
automatic source code analysis
SAP Commerce
cloud migration
public cloud
Microsoft Azure
PMD
case studies
Rights
openAccess
License
Atribución-NoComercial-CompartirIgual 4.0 Internacional
id UNACIONAL2_3c3d22ba5ba30d0d2bb120d88ba9e264
oai_identifier_str oai:repositorio.unal.edu.co:unal/84828
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
dc.title.spa.fl_str_mv Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
dc.title.translated.eng.fl_str_mv Automatic source code analysis applied in software for e-commerce: SAP Commerce Cloud
title Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
spellingShingle Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
000 - Ciencias de la computación, información y obras generales
Industria de programas para internet
Internet software industry
analítica de software
análisis automático de código fuente
SAP Commerce
Migración a nube
nube pública
Microsoft Azure
PMD
estudios de caso
software analytics
automatic source code analysis
SAP Commerce
cloud migration
public cloud
Microsoft Azure
PMD
case studies
title_short Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
title_full Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
title_fullStr Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
title_full_unstemmed Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
title_sort Análisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce Cloud
dc.creator.fl_str_mv Ramírez Espejo, Roger Steven
dc.contributor.advisor.none.fl_str_mv Restrepo Calle, Felipe
dc.contributor.author.none.fl_str_mv Ramírez Espejo, Roger Steven
dc.contributor.researchgroup.spa.fl_str_mv Plas Programming languages And Systems
dc.contributor.orcid.spa.fl_str_mv Ramirez Espejo, Roger Steven [0009-0009-9287-0065]
dc.contributor.googlescholar.spa.fl_str_mv Ramírez Espejo, Roger Steven [UGBnq4wAAAAJ]
dc.subject.ddc.spa.fl_str_mv 000 - Ciencias de la computación, información y obras generales
topic 000 - Ciencias de la computación, información y obras generales
Industria de programas para internet
Internet software industry
analítica de software
análisis automático de código fuente
SAP Commerce
Migración a nube
nube pública
Microsoft Azure
PMD
estudios de caso
software analytics
automatic source code analysis
SAP Commerce
cloud migration
public cloud
Microsoft Azure
PMD
case studies
dc.subject.lemb.spa.fl_str_mv Industria de programas para internet
dc.subject.lemb.eng.fl_str_mv Internet software industry
dc.subject.proposal.spa.fl_str_mv analítica de software
análisis automático de código fuente
SAP Commerce
Migración a nube
nube pública
Microsoft Azure
PMD
estudios de caso
dc.subject.proposal.eng.fl_str_mv software analytics
automatic source code analysis
SAP Commerce
cloud migration
public cloud
Microsoft Azure
PMD
case studies
description ilustraciones, diagramas, fotografías
publishDate 2023
dc.date.accessioned.none.fl_str_mv 2023-10-24T19:49:33Z
dc.date.available.none.fl_str_mv 2023-10-24T19:49:33Z
dc.date.issued.none.fl_str_mv 2023-10-19
dc.type.spa.fl_str_mv Trabajo de grado - Maestría
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/masterThesis
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.content.spa.fl_str_mv Software
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TM
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.unal.edu.co/handle/unal/84828
dc.identifier.instname.spa.fl_str_mv Universidad Nacional de Colombia
dc.identifier.reponame.spa.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
dc.identifier.repourl.spa.fl_str_mv https://repositorio.unal.edu.co/
url https://repositorio.unal.edu.co/handle/unal/84828
https://repositorio.unal.edu.co/
identifier_str_mv Universidad Nacional de Colombia
Repositorio Institucional Universidad Nacional de Colombia
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.references.spa.fl_str_mv Akiyama, F. (1971). An example of software system debugging. In IFIP Congress
Anderson, W. (1987). Software validation techniques. Therapeutic Innovation & Regulatory Science, 21(4):461–469
Ann, G., Pbell, C., and Sa, S. C. (2021). A new way of measuring understandability cognitive complexity cognitive complexity-a new way of measuring understandability. Sonarsource
Antal, G., Szarka, A., and Hegedűs, P. (2018). A hands-on openstack code refactoring experience report, volume 10964 LNCS. Springer Science+Business Media
Anwar, H. and Pfahl, D. (2017). Towards greener software engineering using software analytics: A sys- tematic mapping. In Proceedings - 43rd Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2017, pages 157–166
Apache (2023). Apache license. https://www.apache.org/licenses/
Ashfaq, Q., Khan, R., and Farooq, S. (2019). A comparative analysis of static code analysis tools that check java code adherence to java coding standards. 2019 2nd International Conference on Communication, Computing and Digital Systems, C-CODE 2019, pages 98–103
Ayewah, N., Pugh, W., Hovemeyer, D., Morgenthaler, J. D., and Penix, J. (2008). Using static analysis to find bugs. IEEE Software, 25(5):22–29
Binkley, D. (2007). Source code analysis: A road map. In Source code analysis: A road map, pages 104–119
Blanchard, A., Loulergue, F., and Kosmatov, N. (2019). Towards full proof automation in Frama-C using auto-active verification. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), volume 11460 LNCS, pages 88– 105
Blumenthal, J. (2022). Thinking like a lawyer: Why you or your it team needs to keep your software systems up-to-date. SIGCAS Comput. Soc., 50(3):10
Bryman, A. (2016). Social research methods. Oxford university press
Buse, R. P. and Zimmermann, T. (2012). Information needs for software development analytics. In Proceedings - International Conference on Software Engineering, pages 987–996
Ceron, H. (2022). Cx works | sap commerce cloud architecture. https://www.sap.com/ cxworks/article/2589633403/sap_commerce_cloud_architecture. [Online; acces- sed 6-February-2022]
Chen, Y., Santosa, A. E., Yi, A. M., Sharma, A., Sharma, A., and Lo, D. (2020). A machine learning approach for vulnerability curation. Proceedings - 2020 IEEE/ACM 17th International Conference on Mining Software Repositories, MSR 2020, pages 32–42
Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., and Yakobowski, B. (2012). Frama-C: A software analysis perspective. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), volume 7504 LNCS, pages 233– 247
DeepCode, CodeScene, Semgrep, Codiga, and FFensive360 (2022). Best 104 java static analysis tools and linters. https://analysis-tools.dev/tag/java. [Online; accessed 27-November- 2022]
Devanbu, P., Zimmermann, T., and Bird, C. (2016). Belief & evidence in empirical software engineering. In Proceedings - International Conference on Software Engineering, volume 14-22-May-, pages 108– 119
Golubev, Y., Eliseeva, M., JetBrains, N. P., and Bryksin, T. (2020). A study of potential code borrowing and license violations in java projects on github. arxiv.
GradleInc (2023a). Gradle license information. https://docs.gradle.org/current/ userguide/licenses.html.
GradleInc (2023b). Organizing gradle projects. https://docs.gradle.org/current/ userguide/organizing_gradle_projects.html#sec:build_sources.
GradleInc (2023c). Structuring and building a software component with gradle. https://docs .gradle.org/current/userguide/multi_project_builds.html.
Huijgens, H., Spadini, D., Stevens, D., Visser, N., and Van Deursen, A. (2018). Software analytics in continuous delivery: A case study on success factors. In International Symposium on Empirical Software Engineering and Measurement.
Lanza, M. and Marinescu, R. (2006). Object-oriented metrics in practice: Using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object- Oriented Systems, pages 1–205
Lathar, P., Shah, R., and G, S. K. (2017). Stacy-static code analysis for enhanced vulnerability de- tection under a creative commons attribution (cc-by) 4.0 license stacy-static code analysis for enhanced vulnerability detection. Cogent Engineering, 4:1335470
Lieberherr, K. and Holland, I. (2023). Law of demeter: Principle of least knowledge. https://www .ccs.neu.edu/home/lieber/LoD.html. [Online; accessed 13-Februrary-2023]
MacWilliam, T. (2022). Cx works | measuring code quality with sonar. https://www.sap.com/ cxworks/article/2589634066/measuring_code_quality_with_sonar. [Online; ac- cessed 6-February-2022]
Mauerer, W. and Scherzinger, S. (2020). Educating future software architects in the art and science of analysing software data. In CEUR Workshop Proceedings, volume 2531, pages 56–60
McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4):308– 320
Menzies, T. (2019). Take Control : (On the Unreasonable Effectiveness of Software Analytics). In Pro- ceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2019, pages 265–266
Menzies, T. and Zimmermann, T. (2013). Software analytics: So what? IEEE Software, 30(4):31–37
Menzies, T. and Zimmermann, T. (2018). Software Analytics: What’s Next? IEEE Software, 35(5):64– 70
Ohlsson, N., Zhao, M., and Helander, M. (1998). Application of multivariate analysis for software fault prediction. Software Quality Journal, 7(1):51–66
OracleCorp (2023). Openjdk license. https://openjdk.org/legal/gplv2+ce.html
Park, W. and Lee, I. (2023). Log4j vulnerability analysis and detection pattern production technology based on snort rules. Studies in Computational Intelligence, 1075:165 – 174. Cited by: 0
Pfeiffer, R.-H. (2021). Identifying critical projects via pagerank and truck factor. In Identifying Critical Projects via PageRank and Truck Factor
PMD (2022). Ecmascript rules | pmd source code analyzer. https://pmd.github.io/latest/ pmd_rules_ecmascript.html. [Online; accessed 28-November-2022]
PMD (2023). Pmd license. https://docs.pmd-code.org/latest/license.html
Porter, J. D. (2023). Capitalization rules. https://wiki.c2.com/?CapitalizationRules. [On- line; accessed 13-Februrary-2023]
Pruijt, L., Köppe, C., and Brinkkemper, S. (2013). Architecture compliance checking of semantically rich modular architectures: A comparative study of tool support. In IEEE International Conference on Software Maintenance, ICSM, pages 220–229
Raibulet, C. and Arcelli Fontana, F. (2018). Collaborative and teamwork software development in an undergraduate software engineering course. Journal of Systems and Software, 144:409–422
Robles, G. and Gonzalez-Barahona, J. M. (2013). Mining student repositories to gain learning analy- tics. An experience report. In IEEE Global Engineering Education Conference, EDUCON, pages 1249– 1254
SAP (2020). E-commerce platform: Headless e-commerce in the cloud | sap. https:// www.sap.com/products/crm/e-commerce-platforms.html?btp=6cbf1321-d49b -4fb2-bf3e-f38e1a4a0911.
SAP About (2022). About SAP Commerce - SAP Help Portal.
SAP Help (2022). Sap help | development best practices. https://help .sap.com/viewer/129a68efcdaf43dc94243b57f9aba5ad/2105/en-US/ 2978af7252c4492da6b8a5f1a89c1da5.html. [Online; accessed 6-February-2022]
SAP Local extensions (2023). The localextensions.xml file | sap help por- tal - sap help portal. https://help.sap.com/docs/SAP_COMMERCE/ 3fb5dcdfe37f40edbac7098ed40442c0/31bf348455034a2299d34626c928309e.html ?locale=en-US.
SAP Managed Properties (2023). Managedproperties | sap help portal - sap help por- tal. https://help.sap.com/docs/SAP_COMMERCE_CLOUD_PUBLIC_CLOUD/1be46286b36a4aa48205be5a96240672/a30160b786b545959184898b51c737fa.html ?locale=en-US
SAP Sensitive configuration (2023). Uploading sensitive configuration data | sap help portal - sap help portal. https://help.sap.com/docs/SAP_COMMERCE_CLOUD_PUBLIC_CLOUD/ 0fa6bcf4736c46f78c248512391eb467/557da644ed1949de9d40a3e4615d8b9b.html ?locale=en-US
Signoles, J. (2015). Software architecture of code analysis frameworks matters: The Frama-C exam- ple. In Electronic Proceedings in Theoretical Computer Science, EPTCS, volume 187, pages 86–96
SLF4J (2023). Licensing terms for slf4j. https://www.slf4j.org/license.html
Soltanifar, B., Akbarinasaji, S., Caglayan, B., Bener, A., Filiz, A., and Kramer, B. (2016). Software analy- tics in practice: A defect prediction model using code smells. In ACM International Conference Proceeding Series, volume 11-13-July, pages 148–155
SonarSource (2022). About sonarqube. https://www.sonarqube.org/about/. [Online; accessed 6-February-2022]
SonatypeInc (2023). The central repository documentation | rest api. https://central.sonatype .org/search/rest-api-guide/
Spring (2020). Spring | why spring? https://spring.io/why-spring
Wilkes, M. (1985). Memoirs of a Computer Pioneer. Massachusetts Institute of Technology, USA
Zimmermann, T. (2015). Software Analytics for Digital Games. In Proceedings - 4th International Workshop on Games and Software Engineering, GAS 2015, pages 1–2
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Atribución-NoComercial-CompartirIgual 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by-nc-sa/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Atribución-NoComercial-CompartirIgual 4.0 Internacional
http://creativecommons.org/licenses/by-nc-sa/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv xvii, 233 páginas
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.program.spa.fl_str_mv Bogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y Computación
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingeniería
dc.publisher.place.spa.fl_str_mv Bogotá, Colombia
dc.publisher.branch.spa.fl_str_mv Universidad Nacional de Colombia - Sede Bogotá
institution Universidad Nacional de Colombia
bitstream.url.fl_str_mv https://repositorio.unal.edu.co/bitstream/unal/84828/5/license.txt
https://repositorio.unal.edu.co/bitstream/unal/84828/6/analisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf
https://repositorio.unal.edu.co/bitstream/unal/84828/7/analisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf.jpg
bitstream.checksum.fl_str_mv eb34b1cf90b7e1103fc9dfd26be24b4a
4e98be9c91abfa0e1dbb4f4302ca178f
505e4119d9f3333c70827dac5b26c0d5
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
repository.mail.fl_str_mv repositorio_nal@unal.edu.co
_version_ 1814089822350868480
spelling Atribución-NoComercial-CompartirIgual 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-sa/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Restrepo Calle, Felipe82117c6c71f31211f86863049b600db3Ramírez Espejo, Roger Steven88b65e351e65e7c92534106e42a58c46Plas Programming languages And SystemsRamirez Espejo, Roger Steven [0009-0009-9287-0065]Ramírez Espejo, Roger Steven [UGBnq4wAAAAJ]2023-10-24T19:49:33Z2023-10-24T19:49:33Z2023-10-19https://repositorio.unal.edu.co/handle/unal/84828Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustraciones, diagramas, fotografíasEste documento plantea un trabajo final de maestría para apoyar el proceso de migración de SAP Commerce a la nube pública de Microsoft Azure. Se destaca la importancia de la analítica de software y el análisis automático de código fuente para obtener datos concretos que respalden las decisiones de arquitectura, diseño y desarrollo. SAP Commerce Cloud, un producto utilizado para implementaciones de comercio en línea, presenta desafíos al ajustar y extender sus funcionalidades según las necesidades de cada cliente. Además, se menciona la falta de una herramienta automatizada que facilite la migración de SAP Commerce a la nube pública. En este contexto, se propone una estrategia que utiliza la herramienta de análisis de código fuente PMD para respaldar las migraciones a la arquitectura en la nube, y se evalúa su rendimiento a través de estudios de caso. (Texto tomado de la fuente)This document contains a master's final work project to support the process of migrating SAP Commerce to the public cloud of Microsoft Azure. It highlights the importance of software analytics and automatic source code analysis in obtaining concrete data to support architecture, design, and development decisions. SAP Commerce Cloud, a product used for online commerce implementations, presents challenges in adjusting and extending its functionalities to meet each client's needs. Furthermore, the lack of an automated tool to facilitate the migration of SAP Commerce to the public cloud is mentioned. In this context, a strategy is proposed that utilizes the PMD source code analysis tool to support migrations to the cloud architecture, and its performance is evaluated through case studies.MaestríaInvestigación aplicada mediante el uso de diseños cuantitativos bajo el marco metodológico de estudio de casoComputación aplicadaxvii, 233 páginasapplication/pdfspa000 - Ciencias de la computación, información y obras generalesIndustria de programas para internetInternet software industryanalítica de softwareanálisis automático de código fuenteSAP CommerceMigración a nubenube públicaMicrosoft AzurePMDestudios de casosoftware analyticsautomatic source code analysisSAP Commercecloud migrationpublic cloudMicrosoft AzurePMDcase studiesAnálisis automático de código fuente aplicado en el software para comercio en línea: SAP Commerce CloudAutomatic source code analysis applied in software for e-commerce: SAP Commerce CloudTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionSoftwarehttp://purl.org/redcol/resource_type/TMBogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y ComputaciónFacultad de IngenieríaBogotá, ColombiaUniversidad Nacional de Colombia - Sede BogotáAkiyama, F. (1971). An example of software system debugging. In IFIP CongressAnderson, W. (1987). Software validation techniques. Therapeutic Innovation & Regulatory Science, 21(4):461–469Ann, G., Pbell, C., and Sa, S. C. (2021). A new way of measuring understandability cognitive complexity cognitive complexity-a new way of measuring understandability. SonarsourceAntal, G., Szarka, A., and Hegedűs, P. (2018). A hands-on openstack code refactoring experience report, volume 10964 LNCS. Springer Science+Business MediaAnwar, H. and Pfahl, D. (2017). Towards greener software engineering using software analytics: A sys- tematic mapping. In Proceedings - 43rd Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2017, pages 157–166Apache (2023). Apache license. https://www.apache.org/licenses/Ashfaq, Q., Khan, R., and Farooq, S. (2019). A comparative analysis of static code analysis tools that check java code adherence to java coding standards. 2019 2nd International Conference on Communication, Computing and Digital Systems, C-CODE 2019, pages 98–103Ayewah, N., Pugh, W., Hovemeyer, D., Morgenthaler, J. D., and Penix, J. (2008). Using static analysis to find bugs. IEEE Software, 25(5):22–29Binkley, D. (2007). Source code analysis: A road map. In Source code analysis: A road map, pages 104–119Blanchard, A., Loulergue, F., and Kosmatov, N. (2019). Towards full proof automation in Frama-C using auto-active verification. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), volume 11460 LNCS, pages 88– 105Blumenthal, J. (2022). Thinking like a lawyer: Why you or your it team needs to keep your software systems up-to-date. SIGCAS Comput. Soc., 50(3):10Bryman, A. (2016). Social research methods. Oxford university pressBuse, R. P. and Zimmermann, T. (2012). Information needs for software development analytics. In Proceedings - International Conference on Software Engineering, pages 987–996Ceron, H. (2022). Cx works | sap commerce cloud architecture. https://www.sap.com/ cxworks/article/2589633403/sap_commerce_cloud_architecture. [Online; acces- sed 6-February-2022]Chen, Y., Santosa, A. E., Yi, A. M., Sharma, A., Sharma, A., and Lo, D. (2020). A machine learning approach for vulnerability curation. Proceedings - 2020 IEEE/ACM 17th International Conference on Mining Software Repositories, MSR 2020, pages 32–42Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., and Yakobowski, B. (2012). Frama-C: A software analysis perspective. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), volume 7504 LNCS, pages 233– 247DeepCode, CodeScene, Semgrep, Codiga, and FFensive360 (2022). Best 104 java static analysis tools and linters. https://analysis-tools.dev/tag/java. [Online; accessed 27-November- 2022]Devanbu, P., Zimmermann, T., and Bird, C. (2016). Belief & evidence in empirical software engineering. In Proceedings - International Conference on Software Engineering, volume 14-22-May-, pages 108– 119Golubev, Y., Eliseeva, M., JetBrains, N. P., and Bryksin, T. (2020). A study of potential code borrowing and license violations in java projects on github. arxiv.GradleInc (2023a). Gradle license information. https://docs.gradle.org/current/ userguide/licenses.html.GradleInc (2023b). Organizing gradle projects. https://docs.gradle.org/current/ userguide/organizing_gradle_projects.html#sec:build_sources.GradleInc (2023c). Structuring and building a software component with gradle. https://docs .gradle.org/current/userguide/multi_project_builds.html.Huijgens, H., Spadini, D., Stevens, D., Visser, N., and Van Deursen, A. (2018). Software analytics in continuous delivery: A case study on success factors. In International Symposium on Empirical Software Engineering and Measurement.Lanza, M. and Marinescu, R. (2006). Object-oriented metrics in practice: Using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object- Oriented Systems, pages 1–205Lathar, P., Shah, R., and G, S. K. (2017). Stacy-static code analysis for enhanced vulnerability de- tection under a creative commons attribution (cc-by) 4.0 license stacy-static code analysis for enhanced vulnerability detection. Cogent Engineering, 4:1335470Lieberherr, K. and Holland, I. (2023). Law of demeter: Principle of least knowledge. https://www .ccs.neu.edu/home/lieber/LoD.html. [Online; accessed 13-Februrary-2023]MacWilliam, T. (2022). Cx works | measuring code quality with sonar. https://www.sap.com/ cxworks/article/2589634066/measuring_code_quality_with_sonar. [Online; ac- cessed 6-February-2022]Mauerer, W. and Scherzinger, S. (2020). Educating future software architects in the art and science of analysing software data. In CEUR Workshop Proceedings, volume 2531, pages 56–60McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4):308– 320Menzies, T. (2019). Take Control : (On the Unreasonable Effectiveness of Software Analytics). In Pro- ceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2019, pages 265–266Menzies, T. and Zimmermann, T. (2013). Software analytics: So what? IEEE Software, 30(4):31–37Menzies, T. and Zimmermann, T. (2018). Software Analytics: What’s Next? IEEE Software, 35(5):64– 70Ohlsson, N., Zhao, M., and Helander, M. (1998). Application of multivariate analysis for software fault prediction. Software Quality Journal, 7(1):51–66OracleCorp (2023). Openjdk license. https://openjdk.org/legal/gplv2+ce.htmlPark, W. and Lee, I. (2023). Log4j vulnerability analysis and detection pattern production technology based on snort rules. Studies in Computational Intelligence, 1075:165 – 174. Cited by: 0Pfeiffer, R.-H. (2021). Identifying critical projects via pagerank and truck factor. In Identifying Critical Projects via PageRank and Truck FactorPMD (2022). Ecmascript rules | pmd source code analyzer. https://pmd.github.io/latest/ pmd_rules_ecmascript.html. [Online; accessed 28-November-2022]PMD (2023). Pmd license. https://docs.pmd-code.org/latest/license.htmlPorter, J. D. (2023). Capitalization rules. https://wiki.c2.com/?CapitalizationRules. [On- line; accessed 13-Februrary-2023]Pruijt, L., Köppe, C., and Brinkkemper, S. (2013). Architecture compliance checking of semantically rich modular architectures: A comparative study of tool support. In IEEE International Conference on Software Maintenance, ICSM, pages 220–229Raibulet, C. and Arcelli Fontana, F. (2018). Collaborative and teamwork software development in an undergraduate software engineering course. Journal of Systems and Software, 144:409–422Robles, G. and Gonzalez-Barahona, J. M. (2013). Mining student repositories to gain learning analy- tics. An experience report. In IEEE Global Engineering Education Conference, EDUCON, pages 1249– 1254SAP (2020). E-commerce platform: Headless e-commerce in the cloud | sap. https:// www.sap.com/products/crm/e-commerce-platforms.html?btp=6cbf1321-d49b -4fb2-bf3e-f38e1a4a0911.SAP About (2022). About SAP Commerce - SAP Help Portal.SAP Help (2022). Sap help | development best practices. https://help .sap.com/viewer/129a68efcdaf43dc94243b57f9aba5ad/2105/en-US/ 2978af7252c4492da6b8a5f1a89c1da5.html. [Online; accessed 6-February-2022]SAP Local extensions (2023). The localextensions.xml file | sap help por- tal - sap help portal. https://help.sap.com/docs/SAP_COMMERCE/ 3fb5dcdfe37f40edbac7098ed40442c0/31bf348455034a2299d34626c928309e.html ?locale=en-US.SAP Managed Properties (2023). Managedproperties | sap help portal - sap help por- tal. https://help.sap.com/docs/SAP_COMMERCE_CLOUD_PUBLIC_CLOUD/1be46286b36a4aa48205be5a96240672/a30160b786b545959184898b51c737fa.html ?locale=en-USSAP Sensitive configuration (2023). Uploading sensitive configuration data | sap help portal - sap help portal. https://help.sap.com/docs/SAP_COMMERCE_CLOUD_PUBLIC_CLOUD/ 0fa6bcf4736c46f78c248512391eb467/557da644ed1949de9d40a3e4615d8b9b.html ?locale=en-USSignoles, J. (2015). Software architecture of code analysis frameworks matters: The Frama-C exam- ple. In Electronic Proceedings in Theoretical Computer Science, EPTCS, volume 187, pages 86–96SLF4J (2023). Licensing terms for slf4j. https://www.slf4j.org/license.htmlSoltanifar, B., Akbarinasaji, S., Caglayan, B., Bener, A., Filiz, A., and Kramer, B. (2016). Software analy- tics in practice: A defect prediction model using code smells. In ACM International Conference Proceeding Series, volume 11-13-July, pages 148–155SonarSource (2022). About sonarqube. https://www.sonarqube.org/about/. [Online; accessed 6-February-2022]SonatypeInc (2023). The central repository documentation | rest api. https://central.sonatype .org/search/rest-api-guide/Spring (2020). Spring | why spring? https://spring.io/why-springWilkes, M. (1985). Memoirs of a Computer Pioneer. Massachusetts Institute of Technology, USAZimmermann, T. (2015). Software Analytics for Digital Games. In Proceedings - 4th International Workshop on Games and Software Engineering, GAS 2015, pages 1–2AdministradoresBibliotecariosEstudiantesInvestigadoresMaestrosPadres y familiasPúblico generalLICENSElicense.txtlicense.txttext/plain; charset=utf-85879https://repositorio.unal.edu.co/bitstream/unal/84828/5/license.txteb34b1cf90b7e1103fc9dfd26be24b4aMD55ORIGINALanalisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdfanalisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdfTesis de Maestría en Ingeniería - Ingeniería de Sistemas y Computaciónapplication/pdf4747834https://repositorio.unal.edu.co/bitstream/unal/84828/6/analisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf4e98be9c91abfa0e1dbb4f4302ca178fMD56THUMBNAILanalisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf.jpganalisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf.jpgGenerated Thumbnailimage/jpeg4720https://repositorio.unal.edu.co/bitstream/unal/84828/7/analisis_automatico_codigo_fuente_SAP_Commerce_RogerRamirez.pdf.jpg505e4119d9f3333c70827dac5b26c0d5MD57unal/84828oai:repositorio.unal.edu.co:unal/848282024-08-13 23:38:48.228Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUEFSVEUgMS4gVMOJUk1JTk9TIERFIExBIExJQ0VOQ0lBIFBBUkEgUFVCTElDQUNJw5NOIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KCkxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgYXV0b3IsIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgc2UgaW50ZWdyYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsLCBiYWpvIGxvcyBzaWd1aWVudGVzIHTDqXJtaW5vczoKCgphKQlMb3MgYXV0b3JlcyB5L28gbG9zIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEgcGFyYSByZWFsaXphciBsb3Mgc2lndWllbnRlcyBhY3RvcyBzb2JyZSBsYSBvYnJhOiBpKSByZXByb2R1Y2lyIGxhIG9icmEgZGUgbWFuZXJhIGRpZ2l0YWwsIHBlcm1hbmVudGUgbyB0ZW1wb3JhbCwgaW5jbHV5ZW5kbyBlbCBhbG1hY2VuYW1pZW50byBlbGVjdHLDs25pY28sIGFzw60gY29tbyBjb252ZXJ0aXIgZWwgZG9jdW1lbnRvIGVuIGVsIGN1YWwgc2UgZW5jdWVudHJhIGNvbnRlbmlkYSBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBleGlzdGVudGUgYSBsYSBmZWNoYSBkZSBsYSBzdXNjcmlwY2nDs24gZGUgbGEgcHJlc2VudGUgbGljZW5jaWEsIHkgaWkpIGNvbXVuaWNhciBhbCBww7pibGljbyBsYSBvYnJhIHBvciBjdWFscXVpZXIgbWVkaW8gbyBwcm9jZWRpbWllbnRvLCBlbiBtZWRpb3MgYWzDoW1icmljb3MgbyBpbmFsw6FtYnJpY29zLCBpbmNsdXllbmRvIGxhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBlbiBhY2Nlc28gYWJpZXJ0by4gQWRpY2lvbmFsIGEgbG8gYW50ZXJpb3IsIGVsIGF1dG9yIHkvbyB0aXR1bGFyIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBxdWUsIGVuIGxhIHJlcHJvZHVjY2nDs24geSBjb211bmljYWNpw7NuIGFsIHDDumJsaWNvIHF1ZSBsYSBVbml2ZXJzaWRhZCByZWFsaWNlIHNvYnJlIGxhIG9icmEsIGhhZ2EgbWVuY2nDs24gZGUgbWFuZXJhIGV4cHJlc2EgYWwgdGlwbyBkZSBsaWNlbmNpYSBDcmVhdGl2ZSBDb21tb25zIGJham8gbGEgY3VhbCBlbCBhdXRvciB5L28gdGl0dWxhciBkZXNlYSBvZnJlY2VyIHN1IG9icmEgYSBsb3MgdGVyY2Vyb3MgcXVlIGFjY2VkYW4gYSBkaWNoYSBvYnJhIGEgdHJhdsOpcyBkZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCwgY3VhbmRvIHNlYSBlbCBjYXNvLiBFbCBhdXRvciB5L28gdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgcHJlc2VudGUgbGljZW5jaWEgbWVkaWFudGUgc29saWNpdHVkIGVsZXZhZGEgYSBsYSBEaXJlY2Npw7NuIE5hY2lvbmFsIGRlIEJpYmxpb3RlY2FzIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLiAKCmIpIAlMb3MgYXV0b3JlcyB5L28gdGl0dWxhcmVzIGRlIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIGF1dG9yIHNvYnJlIGxhIG9icmEgY29uZmllcmVuIGxhIGxpY2VuY2lhIHNlw7FhbGFkYSBlbiBlbCBsaXRlcmFsIGEpIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gcG9yIGVsIHRpZW1wbyBkZSBwcm90ZWNjacOzbiBkZSBsYSBvYnJhIGVuIHRvZG9zIGxvcyBwYcOtc2VzIGRlbCBtdW5kbywgZXN0byBlcywgc2luIGxpbWl0YWNpw7NuIHRlcnJpdG9yaWFsIGFsZ3VuYS4KCmMpCUxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBtYW5pZmllc3RhbiBlc3RhciBkZSBhY3VlcmRvIGNvbiBxdWUgbGEgcHJlc2VudGUgbGljZW5jaWEgc2Ugb3RvcmdhIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCByZW51bmNpYW4gYSByZWNpYmlyIGN1YWxxdWllciByZXRyaWJ1Y2nDs24gZWNvbsOzbWljYSBvIGVtb2x1bWVudG8gYWxndW5vIHBvciBsYSBwdWJsaWNhY2nDs24sIGRpc3RyaWJ1Y2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EgeSBjdWFscXVpZXIgb3RybyB1c28gcXVlIHNlIGhhZ2EgZW4gbG9zIHTDqXJtaW5vcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGRlIGxhIGxpY2VuY2lhIENyZWF0aXZlIENvbW1vbnMgY29uIHF1ZSBzZSBwdWJsaWNhLgoKZCkJUXVpZW5lcyBmaXJtYW4gZWwgcHJlc2VudGUgZG9jdW1lbnRvIGRlY2xhcmFuIHF1ZSBwYXJhIGxhIGNyZWFjacOzbiBkZSBsYSBvYnJhLCBubyBzZSBoYW4gdnVsbmVyYWRvIGxvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwsIGluZHVzdHJpYWwsIG1vcmFsZXMgeSBwYXRyaW1vbmlhbGVzIGRlIHRlcmNlcm9zLiBEZSBvdHJhIHBhcnRlLCAgcmVjb25vY2VuIHF1ZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlIHkgc2UgZW5jdWVudHJhIGV4ZW50YSBkZSBjdWxwYSBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGFsZ8O6biB0aXBvIGRlIHJlY2xhbWFjacOzbiBlbiBtYXRlcmlhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIG8gcHJvcGllZGFkIGludGVsZWN0dWFsIGVuIGdlbmVyYWwuIFBvciBsbyB0YW50bywgbG9zIGZpcm1hbnRlcyAgYWNlcHRhbiBxdWUgY29tbyB0aXR1bGFyZXMgw7puaWNvcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciwgYXN1bWlyw6FuIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIGNpdmlsLCBhZG1pbmlzdHJhdGl2YSB5L28gcGVuYWwgcXVlIHB1ZWRhIGRlcml2YXJzZSBkZSBsYSBwdWJsaWNhY2nDs24gZGUgbGEgb2JyYS4gIAoKZikJQXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcyBkZSBjb250ZW5pZG9zLCBidXNjYWRvcmVzIGFjYWTDqW1pY29zLCBtZXRhYnVzY2Fkb3Jlcywgw61uZGljZXMgeSBkZW3DoXMgbWVkaW9zIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBlbCBhY2Nlc28geSBjb25zdWx0YSBkZSBsYSBtaXNtYS4gCgpnKQlFbiBlbCBjYXNvIGRlIGxhcyB0ZXNpcyBjcmVhZGFzIHBhcmEgb3B0YXIgZG9ibGUgdGl0dWxhY2nDs24sIGxvcyBmaXJtYW50ZXMgc2Vyw6FuIGxvcyByZXNwb25zYWJsZXMgZGUgY29tdW5pY2FyIGEgbGFzIGluc3RpdHVjaW9uZXMgbmFjaW9uYWxlcyBvIGV4dHJhbmplcmFzIGVuIGNvbnZlbmlvLCBsYXMgbGljZW5jaWFzIGRlIGFjY2VzbyBhYmllcnRvIENyZWF0aXZlIENvbW1vbnMgeSBhdXRvcml6YWNpb25lcyBhc2lnbmFkYXMgYSBzdSBvYnJhIHBhcmEgbGEgcHVibGljYWNpw7NuIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgVU5BTCBkZSBhY3VlcmRvIGNvbiBsYXMgZGlyZWN0cmljZXMgZGUgbGEgUG9sw610aWNhIEdlbmVyYWwgZGUgbGEgQmlibGlvdGVjYSBEaWdpdGFsLgoKCmgpCVNlIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgY29tbyByZXNwb25zYWJsZSBkZWwgdHJhdGFtaWVudG8gZGUgZGF0b3MgcGVyc29uYWxlcywgZGUgYWN1ZXJkbyBjb24gbGEgbGV5IDE1ODEgZGUgMjAxMiBlbnRlbmRpZW5kbyBxdWUgc2UgZW5jdWVudHJhbiBiYWpvIG1lZGlkYXMgcXVlIGdhcmFudGl6YW4gbGEgc2VndXJpZGFkLCBjb25maWRlbmNpYWxpZGFkIGUgaW50ZWdyaWRhZCwgeSBzdSB0cmF0YW1pZW50byB0aWVuZSB1bmEgZmluYWxpZGFkIGhpc3TDs3JpY2EsIGVzdGFkw61zdGljYSBvIGNpZW50w61maWNhIHNlZ8O6biBsbyBkaXNwdWVzdG8gZW4gbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMuCgoKClBBUlRFIDIuIEFVVE9SSVpBQ0nDk04gUEFSQSBQVUJMSUNBUiBZIFBFUk1JVElSIExBIENPTlNVTFRBIFkgVVNPIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KClNlIGF1dG9yaXphIGxhIHB1YmxpY2FjacOzbiBlbGVjdHLDs25pY2EsIGNvbnN1bHRhIHkgdXNvIGRlIGxhIG9icmEgcG9yIHBhcnRlIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgZGUgc3VzIHVzdWFyaW9zIGRlIGxhIHNpZ3VpZW50ZSBtYW5lcmE6CgphLglDb25jZWRvIGxpY2VuY2lhIGVuIGxvcyB0w6lybWlub3Mgc2XDsWFsYWRvcyBlbiBsYSBwYXJ0ZSAxIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGNvbiBlbCBvYmpldGl2byBkZSBxdWUgbGEgb2JyYSBlbnRyZWdhZGEgc2VhIHB1YmxpY2FkYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGVuIGFjY2VzbyBhYmllcnRvIHBhcmEgc3UgY29uc3VsdGEgcG9yIGxvcyB1c3VhcmlvcyBkZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSAgYSB0cmF2w6lzIGRlIGludGVybmV0LgoKCgpQQVJURSAzIEFVVE9SSVpBQ0nDk04gREUgVFJBVEFNSUVOVE8gREUgREFUT1MgUEVSU09OQUxFUy4KCkxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLCBjb21vIHJlc3BvbnNhYmxlIGRlbCBUcmF0YW1pZW50byBkZSBEYXRvcyBQZXJzb25hbGVzLCBpbmZvcm1hIHF1ZSBsb3MgZGF0b3MgZGUgY2Fyw6FjdGVyIHBlcnNvbmFsIHJlY29sZWN0YWRvcyBtZWRpYW50ZSBlc3RlIGZvcm11bGFyaW8sIHNlIGVuY3VlbnRyYW4gYmFqbyBtZWRpZGFzIHF1ZSBnYXJhbnRpemFuIGxhIHNlZ3VyaWRhZCwgY29uZmlkZW5jaWFsaWRhZCBlIGludGVncmlkYWQgeSBzdSB0cmF0YW1pZW50byBzZSByZWFsaXphIGRlIGFjdWVyZG8gYWwgY3VtcGxpbWllbnRvIG5vcm1hdGl2byBkZSBsYSBMZXkgMTU4MSBkZSAyMDEyIHkgZGUgbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMgZGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEuIFB1ZWRlIGVqZXJjZXIgc3VzIGRlcmVjaG9zIGNvbW8gdGl0dWxhciBhIGNvbm9jZXIsIGFjdHVhbGl6YXIsIHJlY3RpZmljYXIgeSByZXZvY2FyIGxhcyBhdXRvcml6YWNpb25lcyBkYWRhcyBhIGxhcyBmaW5hbGlkYWRlcyBhcGxpY2FibGVzIGEgdHJhdsOpcyBkZSBsb3MgY2FuYWxlcyBkaXNwdWVzdG9zIHkgZGlzcG9uaWJsZXMgZW4gd3d3LnVuYWwuZWR1LmNvIG8gZS1tYWlsOiBwcm90ZWNkYXRvc19uYUB1bmFsLmVkdS5jbyIKClRlbmllbmRvIGVuIGN1ZW50YSBsbyBhbnRlcmlvciwgYXV0b3Jpem8gZGUgbWFuZXJhIHZvbHVudGFyaWEsIHByZXZpYSwgZXhwbMOtY2l0YSwgaW5mb3JtYWRhIGUgaW5lcXXDrXZvY2EgYSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhIHRyYXRhciBsb3MgZGF0b3MgcGVyc29uYWxlcyBkZSBhY3VlcmRvIGNvbiBsYXMgZmluYWxpZGFkZXMgZXNwZWPDrWZpY2FzIHBhcmEgZWwgZGVzYXJyb2xsbyB5IGVqZXJjaWNpbyBkZSBsYXMgZnVuY2lvbmVzIG1pc2lvbmFsZXMgZGUgZG9jZW5jaWEsIGludmVzdGlnYWNpw7NuIHkgZXh0ZW5zacOzbiwgYXPDrSBjb21vIGxhcyByZWxhY2lvbmVzIGFjYWTDqW1pY2FzLCBsYWJvcmFsZXMsIGNvbnRyYWN0dWFsZXMgeSB0b2RhcyBsYXMgZGVtw6FzIHJlbGFjaW9uYWRhcyBjb24gZWwgb2JqZXRvIHNvY2lhbCBkZSBsYSBVbml2ZXJzaWRhZC4gCgo=