Analysis of software engineering automation tools for Go
In this paper we discuss different software automation tools used for developing applications with the Go programming language. In this study we experimented with different kinds of tools, including code generating tools, static analysis tools, dynamic analysis tools, debuggers, formatters, and docu...
- Autores:
-
Hoyos Ruge, Miguel
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2021
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- eng
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/54945
- Acceso en línea:
- http://hdl.handle.net/1992/54945
- Palabra clave:
- go
golang
software engineering
devops
automation
GO (Programa para computador)
Ingeniería de software realizada por computador
Automatización
Lenguajes de programación
Ingeniería
- Rights
- openAccess
- License
- http://creativecommons.org/licenses/by-nc-nd/4.0/
id |
UNIANDES2_65578861faf2f2453c76f80b17535f1a |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/54945 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.none.fl_str_mv |
Analysis of software engineering automation tools for Go |
title |
Analysis of software engineering automation tools for Go |
spellingShingle |
Analysis of software engineering automation tools for Go go golang software engineering devops automation GO (Programa para computador) Ingeniería de software realizada por computador Automatización Lenguajes de programación Ingeniería |
title_short |
Analysis of software engineering automation tools for Go |
title_full |
Analysis of software engineering automation tools for Go |
title_fullStr |
Analysis of software engineering automation tools for Go |
title_full_unstemmed |
Analysis of software engineering automation tools for Go |
title_sort |
Analysis of software engineering automation tools for Go |
dc.creator.fl_str_mv |
Hoyos Ruge, Miguel |
dc.contributor.advisor.none.fl_str_mv |
Linares Vásquez, Mario Cardozo Álvarez, Nicolás |
dc.contributor.author.none.fl_str_mv |
Hoyos Ruge, Miguel |
dc.subject.keyword.none.fl_str_mv |
go golang software engineering devops automation |
topic |
go golang software engineering devops automation GO (Programa para computador) Ingeniería de software realizada por computador Automatización Lenguajes de programación Ingeniería |
dc.subject.armarc.none.fl_str_mv |
GO (Programa para computador) Ingeniería de software realizada por computador Automatización Lenguajes de programación |
dc.subject.themes.es_CO.fl_str_mv |
Ingeniería |
description |
In this paper we discuss different software automation tools used for developing applications with the Go programming language. In this study we experimented with different kinds of tools, including code generating tools, static analysis tools, dynamic analysis tools, debuggers, formatters, and documentation generating tools. We focus on how these tools can be used to increase developer productivity while reducing possible bugs that could be solved at the development stage. |
publishDate |
2021 |
dc.date.issued.none.fl_str_mv |
2021-07-15 |
dc.date.accessioned.none.fl_str_mv |
2022-02-18T20:51:04Z |
dc.date.available.none.fl_str_mv |
2022-02-18T20:51:04Z |
dc.type.spa.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.coarversion.fl_str_mv |
http://purl.org/coar/version/c_970fb48d4fbd8a85 |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
http://purl.org/redcol/resource_type/TP |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/1992/54945 |
dc.identifier.instname.spa.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.spa.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.spa.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
http://hdl.handle.net/1992/54945 |
identifier_str_mv |
instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.es_CO.fl_str_mv |
eng |
language |
eng |
dc.relation.references.es_CO.fl_str_mv |
C. Ou, "Go: A Documentary." https://golang.design/history/ R. C. Martin, Chapter 1 What Is Design and Architecture? - Clean Architecture: A Craftsman's Guide to Software Structure and Design, First Edition. Accessed: May 17, 2021. [Online]. Available: https://learning.oreilly.com/library/view/clean-architecture-a/9780134494272/ch1.xhtml A. Anagnostopoulos, Hands-On Software Engineering with Golang. O'Riley. Accessed: Feb. 14, 2021. [Online]. Available: https://learning-oreilly-com.ezproxy.uniandes.edu.co:8443/library/view/hands-on-software-engineering/9781838554491/679a586a-b9ec-452a-8481-affd8e963bd0.xhtml golang/mock. Go, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/golang/mock vektra/mockery: A mock code autogenerator for Golang. Accessed: May 25, 2021. [Online]. Available: https://github.com/vektra/mockery scaffold · pkg.go.dev. Accessed: May 25, 2021. [Online]. Available: https://pkg.go.dev/github.com/metakeule/scaffold 99designs/gqlgen. 99designs, 2021. Accessed: Feb. 14, 2021. [Online]. Available: https://github.com/99designs/gqlgen gRPC. Accessed: May 25, 2021. [Online]. Available: https://grpc.io/docs/languages/go/ opennota / check. Accessed: May 25, 2021. [Online]. Available: https://gitlab.com/opennota/check M. Bohuslávek, mibk/dupl. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/mibk/dupl K. Kisiel, kisielk/errcheck. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/kisielk/errcheck fzipp, fzipp/gocyclo. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/fzipp/gocyclo gosec: Golang security checker. Accessed: May 25, 2021. [Online]. Available: https://github.com/securego/gosec A. Kohler, alexkohler/prealloc. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/alexkohler/prealloc stripe/safesql. Stripe, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/stripe/safesql Introducing the Go Race Detector - The Go Blog. Accessed: May 25, 2021. [Online]. Available: https://blog.golang.org/race-detector testing - The Go Programming Language. Accessed: May 25, 2021. [Online]. Available: https://golang.org/pkg/testing/ go-delve/delve. go-delve, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/go-delve/delve gofmt. Accessed: May 25, 2021. [Online]. Available: https://golang.org/cmd/gofmt/ Godoc: documenting Go code. Accessed: May 25, 2021. [Online]. Available: https://blog.golang.org/godoc stretchr/testify. Stretchr, Inc., 2021. Accessed: May 17, 2021. [Online]. Available: https://github.com/stretchr/testify Helm. Accessed: May 17, 2021. [Online]. Available: https://helm.sh/ A. Gerrand, ¿Go Slices: usage and internals - The Go Blog, Jan. 05, 2011. https://blog.golang.org/slices-intro (accessed May 17, 2021) A. Khot, Race conditions and heisenbugs - Concurrent Patterns and Best Practices. Accessed: May 17, 2021. [Online]. Available: https://learning.oreilly.com/library/view/concurrent-patterns-and/9781788627900/f6273961-8089-4a16-9cf9-9d9d0df651a4.xhtml |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.coar.spa.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.es_CO.fl_str_mv |
22 hojas |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.es_CO.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.es_CO.fl_str_mv |
Ingeniería de Sistemas y Computación |
dc.publisher.faculty.es_CO.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.es_CO.fl_str_mv |
Departamento de Ingeniería de Sistemas y Computación |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/7b8ec419-3b6d-4f47-8748-2ce455452bfb/download https://repositorio.uniandes.edu.co/bitstreams/a522aa67-76ae-4303-b58c-17fa62a9124c/download https://repositorio.uniandes.edu.co/bitstreams/098501d9-fc38-46a3-b32e-a181e1b97303/download https://repositorio.uniandes.edu.co/bitstreams/960d3f57-2885-45e0-a296-e9189d3f1d2c/download https://repositorio.uniandes.edu.co/bitstreams/2d10df78-3d37-4e3c-a20c-84a96eefb743/download https://repositorio.uniandes.edu.co/bitstreams/e275b8bc-89c9-4f24-a363-17ce0394c276/download https://repositorio.uniandes.edu.co/bitstreams/fc420dcd-8579-442a-8c71-feaa7dd989a7/download https://repositorio.uniandes.edu.co/bitstreams/3a89f624-6d27-49ae-9630-cc683bdc0924/download |
bitstream.checksum.fl_str_mv |
80b66422e1c35248ba8d2964e4a14eb1 1e09bab484c6c38d59a26e2a340290dd cbb822630a5a6841ff6dded20b75b07a 1cb82e5dfb3bfc9c153392a299a30438 d41d8cd98f00b204e9800998ecf8427e 5aa5c691a1ffe97abd12c2966efcb8d6 c2ba08fe57410ed9921b560c84ea85be 4f803bc4cccda99b83be9484b8011fc1 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio institucional Séneca |
repository.mail.fl_str_mv |
adminrepositorio@uniandes.edu.co |
_version_ |
1812133921215741952 |
spelling |
Al consultar y hacer uso de este recurso, está aceptando las condiciones de uso establecidas por los autores.http://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Linares Vásquez, Mariovirtual::7795-1Cardozo Álvarez, Nicolásvirtual::7796-1Hoyos Ruge, Miguelca79f6ea-430f-4b9f-adb5-e8d03da04a296002022-02-18T20:51:04Z2022-02-18T20:51:04Z2021-07-15http://hdl.handle.net/1992/54945instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/In this paper we discuss different software automation tools used for developing applications with the Go programming language. In this study we experimented with different kinds of tools, including code generating tools, static analysis tools, dynamic analysis tools, debuggers, formatters, and documentation generating tools. We focus on how these tools can be used to increase developer productivity while reducing possible bugs that could be solved at the development stage.Ingeniero de Sistemas y ComputaciónPregrado22 hojasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAnalysis of software engineering automation tools for GoTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fhttp://purl.org/coar/version/c_970fb48d4fbd8a85Texthttp://purl.org/redcol/resource_type/TPgogolangsoftware engineeringdevopsautomationGO (Programa para computador)Ingeniería de software realizada por computadorAutomatizaciónLenguajes de programaciónIngenieríaC. Ou, "Go: A Documentary." https://golang.design/history/R. C. Martin, Chapter 1 What Is Design and Architecture? - Clean Architecture: A Craftsman's Guide to Software Structure and Design, First Edition. Accessed: May 17, 2021. [Online]. Available: https://learning.oreilly.com/library/view/clean-architecture-a/9780134494272/ch1.xhtmlA. Anagnostopoulos, Hands-On Software Engineering with Golang. O'Riley. Accessed: Feb. 14, 2021. [Online]. Available: https://learning-oreilly-com.ezproxy.uniandes.edu.co:8443/library/view/hands-on-software-engineering/9781838554491/679a586a-b9ec-452a-8481-affd8e963bd0.xhtmlgolang/mock. Go, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/golang/mockvektra/mockery: A mock code autogenerator for Golang. Accessed: May 25, 2021. [Online]. Available: https://github.com/vektra/mockeryscaffold · pkg.go.dev. Accessed: May 25, 2021. [Online]. Available: https://pkg.go.dev/github.com/metakeule/scaffold99designs/gqlgen. 99designs, 2021. Accessed: Feb. 14, 2021. [Online]. Available: https://github.com/99designs/gqlgengRPC. Accessed: May 25, 2021. [Online]. Available: https://grpc.io/docs/languages/go/opennota / check. Accessed: May 25, 2021. [Online]. Available: https://gitlab.com/opennota/checkM. Bohuslávek, mibk/dupl. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/mibk/duplK. Kisiel, kisielk/errcheck. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/kisielk/errcheckfzipp, fzipp/gocyclo. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/fzipp/gocyclogosec: Golang security checker. Accessed: May 25, 2021. [Online]. Available: https://github.com/securego/gosecA. Kohler, alexkohler/prealloc. 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/alexkohler/preallocstripe/safesql. Stripe, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/stripe/safesqlIntroducing the Go Race Detector - The Go Blog. Accessed: May 25, 2021. [Online]. Available: https://blog.golang.org/race-detectortesting - The Go Programming Language. Accessed: May 25, 2021. [Online]. Available: https://golang.org/pkg/testing/go-delve/delve. go-delve, 2021. Accessed: May 25, 2021. [Online]. Available: https://github.com/go-delve/delvegofmt. Accessed: May 25, 2021. [Online]. Available: https://golang.org/cmd/gofmt/Godoc: documenting Go code. Accessed: May 25, 2021. [Online]. Available: https://blog.golang.org/godocstretchr/testify. Stretchr, Inc., 2021. Accessed: May 17, 2021. [Online]. Available: https://github.com/stretchr/testifyHelm. Accessed: May 17, 2021. [Online]. Available: https://helm.sh/A. Gerrand, ¿Go Slices: usage and internals - The Go Blog, Jan. 05, 2011. https://blog.golang.org/slices-intro (accessed May 17, 2021)A. Khot, Race conditions and heisenbugs - Concurrent Patterns and Best Practices. Accessed: May 17, 2021. [Online]. Available: https://learning.oreilly.com/library/view/concurrent-patterns-and/9781788627900/f6273961-8089-4a16-9cf9-9d9d0df651a4.xhtml201632643Publicationhttps://scholar.google.es/citations?user=55fmMcoAAAAJvirtual::7795-1https://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::7796-10000-0003-0161-2888virtual::7795-10000-0002-1094-9952virtual::7796-10cbe51ff-e35a-4c3a-ad77-609b3cdfc9b2virtual::7795-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::7796-10cbe51ff-e35a-4c3a-ad77-609b3cdfc9b2virtual::7795-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::7796-1TEXTDocumentv2.pdf.txtDocumentv2.pdf.txtExtracted texttext/plain40028https://repositorio.uniandes.edu.co/bitstreams/7b8ec419-3b6d-4f47-8748-2ce455452bfb/download80b66422e1c35248ba8d2964e4a14eb1MD54Analysis-of-software-articulo.pdf.txtAnalysis-of-software-articulo.pdf.txtExtracted texttext/plain33946https://repositorio.uniandes.edu.co/bitstreams/a522aa67-76ae-4303-b58c-17fa62a9124c/download1e09bab484c6c38d59a26e2a340290ddMD57ORIGINALDocumentv2.pdfDocumentv2.pdfTrabajo de gradoapplication/pdf454649https://repositorio.uniandes.edu.co/bitstreams/098501d9-fc38-46a3-b32e-a181e1b97303/downloadcbb822630a5a6841ff6dded20b75b07aMD53Analysis-of-software-articulo.pdfAnalysis-of-software-articulo.pdfapplication/pdf332564https://repositorio.uniandes.edu.co/bitstreams/960d3f57-2885-45e0-a296-e9189d3f1d2c/download1cb82e5dfb3bfc9c153392a299a30438MD56CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80https://repositorio.uniandes.edu.co/bitstreams/2d10df78-3d37-4e3c-a20c-84a96eefb743/downloadd41d8cd98f00b204e9800998ecf8427eMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81810https://repositorio.uniandes.edu.co/bitstreams/e275b8bc-89c9-4f24-a363-17ce0394c276/download5aa5c691a1ffe97abd12c2966efcb8d6MD51THUMBNAILDocumentv2.pdf.jpgDocumentv2.pdf.jpgIM Thumbnailimage/jpeg9613https://repositorio.uniandes.edu.co/bitstreams/fc420dcd-8579-442a-8c71-feaa7dd989a7/downloadc2ba08fe57410ed9921b560c84ea85beMD55Analysis-of-software-articulo.pdf.jpgAnalysis-of-software-articulo.pdf.jpgIM Thumbnailimage/jpeg22351https://repositorio.uniandes.edu.co/bitstreams/3a89f624-6d27-49ae-9630-cc683bdc0924/download4f803bc4cccda99b83be9484b8011fc1MD581992/54945oai:repositorio.uniandes.edu.co:1992/549452024-03-13 13:31:16.621http://creativecommons.org/licenses/by-nc-nd/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coWW8sIGVuIG1pIGNhbGlkYWQgZGUgYXV0b3IgZGVsIHRyYWJham8gZGUgdGVzaXMsIG1vbm9ncmFmw61hIG8gdHJhYmFqbyBkZSBncmFkbywgaGFnbyBlbnRyZWdhIGRlbCBlamVtcGxhciByZXNwZWN0aXZvIHkgZGUgc3VzIGFuZXhvcyBkZSBzZXIgZWwgY2FzbywgZW4gZm9ybWF0byBkaWdpdGFsIHkvbyBlbGVjdHLDs25pY28geSBhdXRvcml6byBhIGxhIFVuaXZlcnNpZGFkIGRlIGxvcyBBbmRlcyBwYXJhIHF1ZSByZWFsaWNlIGxhIHB1YmxpY2FjacOzbiBlbiBlbCBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIG8gZW4gY3VhbHF1aWVyIG90cm8gc2lzdGVtYSBvIGJhc2UgZGUgZGF0b3MgcHJvcGlvIG8gYWplbm8gYSBsYSBVbml2ZXJzaWRhZCB5IHBhcmEgcXVlIGVuIGxvcyB0w6lybWlub3MgZXN0YWJsZWNpZG9zIGVuIGxhIExleSAyMyBkZSAxOTgyLCBMZXkgNDQgZGUgMTk5MywgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgRGVjcmV0byA0NjAgZGUgMTk5NSB5IGRlbcOhcyBub3JtYXMgZ2VuZXJhbGVzIHNvYnJlIGxhIG1hdGVyaWEsIHV0aWxpY2UgZW4gdG9kYXMgc3VzIGZvcm1hcywgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSwgdHJhbnNmb3JtYWNpw7NuIHkgZGlzdHJpYnVjacOzbiAoYWxxdWlsZXIsIHByw6lzdGFtbyBww7pibGljbyBlIGltcG9ydGFjacOzbikgcXVlIG1lIGNvcnJlc3BvbmRlbiBjb21vIGNyZWFkb3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50by4gIAoKCkxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgZW1pdGUgZW4gY2FsaWRhZCBkZSBhdXRvciBkZSBsYSBvYnJhIG9iamV0byBkZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgbm8gY29ycmVzcG9uZGUgYSBjZXNpw7NuIGRlIGRlcmVjaG9zLCBzaW5vIGEgbGEgYXV0b3JpemFjacOzbiBkZSB1c28gYWNhZMOpbWljbyBkZSBjb25mb3JtaWRhZCBjb24gbG8gYW50ZXJpb3JtZW50ZSBzZcOxYWxhZG8uIExhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgaGFjZSBleHRlbnNpdmEgbm8gc29sbyBhIGxhcyBmYWN1bHRhZGVzIHkgZGVyZWNob3MgZGUgdXNvIHNvYnJlIGxhIG9icmEgZW4gZm9ybWF0byBvIHNvcG9ydGUgbWF0ZXJpYWwsIHNpbm8gdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGVsZWN0csOzbmljbywgeSBlbiBnZW5lcmFsIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gCgoKRWwgYXV0b3IsIG1hbmlmaWVzdGEgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsYSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcywgcG9yIGxvIHRhbnRvLCBsYSBvYnJhIGVzIGRlIHN1IGV4Y2x1c2l2YSBhdXRvcsOtYSB5IHRpZW5lIGxhIHRpdHVsYXJpZGFkIHNvYnJlIGxhIG1pc21hLiAKCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAKCg== |