RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales

Con el avance de los programas satelitales en resolución, ya sea espacial o radiométrica, el desarrollo de nuevas técnicas a partir de algoritmos de Machine Learning y Deep Learning no paran de surgir. En los últimos años el interés por la automatización de procesos y por obtener clasificaciones sup...

Full description

Autores:
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2021
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/29617
Acceso en línea:
http://hdl.handle.net/11349/29617
Palabra clave:
Convolucionales
Redes Neuronales
Algoritmo
Imágenes
Especialización en Sistemas de Información Geográfica - Tesis y Disertaciones Académicas
Sistema de información geográfico
Procesamiento digital de imágenes
Imágenes de detección a distancia - Clasificación
Redes neuronales (Computadores)
Neural Networks
Convolutional
Learning
Deep
Rights
License
Atribución-NoComercial-SinDerivadas 2.5 Colombia
id UDISTRITA2_385dbf88dab7522aff851a77fa13ccf2
oai_identifier_str oai:repository.udistrital.edu.co:11349/29617
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
dc.title.titleenglish.spa.fl_str_mv RNC Plugin: QGIS Plugin to classify satellite imagery using convolutional neural networks
title RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
spellingShingle RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
Convolucionales
Redes Neuronales
Algoritmo
Imágenes
Especialización en Sistemas de Información Geográfica - Tesis y Disertaciones Académicas
Sistema de información geográfico
Procesamiento digital de imágenes
Imágenes de detección a distancia - Clasificación
Redes neuronales (Computadores)
Neural Networks
Convolutional
Learning
Deep
title_short RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
title_full RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
title_fullStr RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
title_full_unstemmed RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
title_sort RNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionales
dc.contributor.advisor.none.fl_str_mv Cifuentes Contreras, Germán
Reyes Combariza, Jorge Alberto
dc.subject.spa.fl_str_mv Convolucionales
Redes Neuronales
Algoritmo
Imágenes
topic Convolucionales
Redes Neuronales
Algoritmo
Imágenes
Especialización en Sistemas de Información Geográfica - Tesis y Disertaciones Académicas
Sistema de información geográfico
Procesamiento digital de imágenes
Imágenes de detección a distancia - Clasificación
Redes neuronales (Computadores)
Neural Networks
Convolutional
Learning
Deep
dc.subject.lemb.spa.fl_str_mv Especialización en Sistemas de Información Geográfica - Tesis y Disertaciones Académicas
Sistema de información geográfico
Procesamiento digital de imágenes
Imágenes de detección a distancia - Clasificación
Redes neuronales (Computadores)
dc.subject.keyword.spa.fl_str_mv Neural Networks
Convolutional
Learning
Deep
description Con el avance de los programas satelitales en resolución, ya sea espacial o radiométrica, el desarrollo de nuevas técnicas a partir de algoritmos de Machine Learning y Deep Learning no paran de surgir. En los últimos años el interés por la automatización de procesos y por obtener clasificaciones supervisadas óptimas ha llevado a la creación de diferentes algoritmos que permiten una aproximación más cercana a la realidad en terreno, así pues, se presenta un plugin que clasifica las imágenes satelitales dadas por el usuario, según las clases señaladas, a partir del algoritmo de Deep Learning Redes Neuorales Convolucionales en el software de escritorio QGIS con el fin de facilitar el rápido acceso a la clasificación de imágenes satelitales.
publishDate 2021
dc.date.created.none.fl_str_mv 2021-12-11
dc.date.accessioned.none.fl_str_mv 2022-07-07T20:43:14Z
dc.date.available.none.fl_str_mv 2022-07-07T20:43:14Z
dc.type.degree.spa.fl_str_mv Monografía
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
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/29617
url http://hdl.handle.net/11349/29617
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Atribución-NoComercial-SinDerivadas 2.5 Colombia
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/2.5/co/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Atribución-NoComercial-SinDerivadas 2.5 Colombia
http://creativecommons.org/licenses/by-nc-nd/2.5/co/
Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv http://repository.udistrital.edu.co/bitstream/11349/29617/1/ReyesL%c3%b3pezDuvanMauricio2021.pdf
http://repository.udistrital.edu.co/bitstream/11349/29617/2/JaramilloArangoLauraJuliana.pdf
http://repository.udistrital.edu.co/bitstream/11349/29617/3/ReyesL%c3%b3pezDuvanMauricio.pdf
http://repository.udistrital.edu.co/bitstream/11349/29617/4/Licencia%20de%20uso%20y%20publicacion%20editable.pdf
http://repository.udistrital.edu.co/bitstream/11349/29617/5/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/29617/6/license.txt
http://repository.udistrital.edu.co/bitstream/11349/29617/7/ReyesL%c3%b3pezDuvanMauricio2021.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/29617/8/JaramilloArangoLauraJuliana.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/29617/9/ReyesL%c3%b3pezDuvanMauricio.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/29617/10/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpg
bitstream.checksum.fl_str_mv 799fed4f1cc0435c2fb349a4f69a61a3
0a4e241f1fec71ea66a2147ffd11ebf2
e13eecf344fcfb7144e3a758fab8d733
bef00f39a7e4af41ba77868cbd5b81fe
217700a34da79ed616c2feb68d4c5e06
997daf6c648c962d566d7b082dac908d
e56df0034c7962b8e2c022bc4401f3b0
d3ec5cdaec0372aeee491befcf766889
fb525f36821b704427fd1bc0b136b0a9
b1b61b68868038813e593716d1e87d06
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Distrital - RIUD
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1814111789383680000
spelling Cifuentes Contreras, GermánReyes Combariza, Jorge AlbertoJaramillo Arango, Laura JulianaReyes López, Duvan Mauricio2022-07-07T20:43:14Z2022-07-07T20:43:14Z2021-12-11http://hdl.handle.net/11349/29617Con el avance de los programas satelitales en resolución, ya sea espacial o radiométrica, el desarrollo de nuevas técnicas a partir de algoritmos de Machine Learning y Deep Learning no paran de surgir. En los últimos años el interés por la automatización de procesos y por obtener clasificaciones supervisadas óptimas ha llevado a la creación de diferentes algoritmos que permiten una aproximación más cercana a la realidad en terreno, así pues, se presenta un plugin que clasifica las imágenes satelitales dadas por el usuario, según las clases señaladas, a partir del algoritmo de Deep Learning Redes Neuorales Convolucionales en el software de escritorio QGIS con el fin de facilitar el rápido acceso a la clasificación de imágenes satelitales.With the advance of satellite programs in resolution, either spatial or radiometric, the development of new techniques based on Machine Learning and Deep Learning algorithms are constantly emerging. In recent years the interest in automating processes and obtaining optimal supervised classifications has led to the creation of different algorithms that allow a closer approximation to the reality on the ground, thus, we present a plugin that classifies the satellite images given by the user, according to the classes indicated, from the Deep Learning algorithm Convolutional Neural Networks in the desktop software QGIS in order to facilitate quick access to the classification of satellite images.pdfspaAtribución-NoComercial-SinDerivadas 2.5 Colombiahttp://creativecommons.org/licenses/by-nc-nd/2.5/co/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2ConvolucionalesRedes NeuronalesAlgoritmoImágenesEspecialización en Sistemas de Información Geográfica - Tesis y Disertaciones AcadémicasSistema de información geográficoProcesamiento digital de imágenesImágenes de detección a distancia - ClasificaciónRedes neuronales (Computadores)Neural NetworksConvolutionalLearningDeepRNC Plugin: Plugin de QGIS para clasificar imágenes satelitales mediante redes neuronales convolucionalesRNC Plugin: QGIS Plugin to classify satellite imagery using convolutional neural networksMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALReyesLópezDuvanMauricio2021.pdfReyesLópezDuvanMauricio2021.pdfReyesLópezDuvanMauricio2021.pdfapplication/pdf827631http://repository.udistrital.edu.co/bitstream/11349/29617/1/ReyesL%c3%b3pezDuvanMauricio2021.pdf799fed4f1cc0435c2fb349a4f69a61a3MD51open accessJaramilloArangoLauraJuliana.pdfJaramilloArangoLauraJuliana.pdfapplication/pdf515894http://repository.udistrital.edu.co/bitstream/11349/29617/2/JaramilloArangoLauraJuliana.pdf0a4e241f1fec71ea66a2147ffd11ebf2MD52open accessReyesLópezDuvanMauricio.pdfReyesLópezDuvanMauricio.pdfapplication/pdf201108http://repository.udistrital.edu.co/bitstream/11349/29617/3/ReyesL%c3%b3pezDuvanMauricio.pdfe13eecf344fcfb7144e3a758fab8d733MD53open accessLicencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfapplication/pdf226509http://repository.udistrital.edu.co/bitstream/11349/29617/4/Licencia%20de%20uso%20y%20publicacion%20editable.pdfbef00f39a7e4af41ba77868cbd5b81feMD54metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811http://repository.udistrital.edu.co/bitstream/11349/29617/5/license_rdf217700a34da79ed616c2feb68d4c5e06MD55open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/29617/6/license.txt997daf6c648c962d566d7b082dac908dMD56open accessTHUMBNAILReyesLópezDuvanMauricio2021.pdf.jpgReyesLópezDuvanMauricio2021.pdf.jpgIM Thumbnailimage/jpeg6212http://repository.udistrital.edu.co/bitstream/11349/29617/7/ReyesL%c3%b3pezDuvanMauricio2021.pdf.jpge56df0034c7962b8e2c022bc4401f3b0MD57open accessJaramilloArangoLauraJuliana.pdf.jpgJaramilloArangoLauraJuliana.pdf.jpgIM Thumbnailimage/jpeg13331http://repository.udistrital.edu.co/bitstream/11349/29617/8/JaramilloArangoLauraJuliana.pdf.jpgd3ec5cdaec0372aeee491befcf766889MD58open accessReyesLópezDuvanMauricio.pdf.jpgReyesLópezDuvanMauricio.pdf.jpgIM Thumbnailimage/jpeg9120http://repository.udistrital.edu.co/bitstream/11349/29617/9/ReyesL%c3%b3pezDuvanMauricio.pdf.jpgfb525f36821b704427fd1bc0b136b0a9MD59open accessLicencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg13137http://repository.udistrital.edu.co/bitstream/11349/29617/10/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpgb1b61b68868038813e593716d1e87d06MD510open access11349/29617oai:repository.udistrital.edu.co:11349/296172023-06-13 15:33:48.114open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK