Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.

En este trabajo se presenta la implementación de una arquitectura de red neuronal convolucional-deconvolucional adaptada a la predicción de crimen en la ciudad de Bogotá. Específicamente, se diseña una arquitectura convolucional para extraer patrones espaciales de mapas bidimensionales de datos prov...

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/30328
Acceso en línea:
http://hdl.handle.net/11349/30328
Palabra clave:
Aprendizaje automático
Aprendizaje profundo
Red neuronal convolucional
Grafo computacional
Predicción de crimen urbano
Inteligencia artificial
Ingeniería Electrónica - Tesis y disertaciones académicas
Redes neurales (Informática) - Bogotá (Colombia)
Procesamiento de imágenes digitales - Bogotá (Colombia)
Procesamiento digital de imágenes - Bogotá (Colombia)
Aprendizaje automático (Inteligencia artificial) - Bogotá (Colombia)
Criminología urbana - Bogotá (Colombia)
Inteligencia artificial - Bogotá (Colombia)
Machine learning
Deep learning
Convolutional neural networks
Computational graph
Urban crime forecasting
Artificial intelligence
Rights
License
Atribución 2.5 Colombia
id UDISTRITA2_81b0b9a375b5ea8fc6ef1d8e83c18d08
oai_identifier_str oai:repository.udistrital.edu.co:11349/30328
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
dc.title.titleenglish.spa.fl_str_mv Implementation of a convolutional neural network architecture for crime mass forecasting in Bogota City.
title Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
spellingShingle Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
Aprendizaje automático
Aprendizaje profundo
Red neuronal convolucional
Grafo computacional
Predicción de crimen urbano
Inteligencia artificial
Ingeniería Electrónica - Tesis y disertaciones académicas
Redes neurales (Informática) - Bogotá (Colombia)
Procesamiento de imágenes digitales - Bogotá (Colombia)
Procesamiento digital de imágenes - Bogotá (Colombia)
Aprendizaje automático (Inteligencia artificial) - Bogotá (Colombia)
Criminología urbana - Bogotá (Colombia)
Inteligencia artificial - Bogotá (Colombia)
Machine learning
Deep learning
Convolutional neural networks
Computational graph
Urban crime forecasting
Artificial intelligence
title_short Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
title_full Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
title_fullStr Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
title_full_unstemmed Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
title_sort Implementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.
dc.contributor.advisor.none.fl_str_mv Melgarejo Rey, Miguel Alberto
dc.subject.spa.fl_str_mv Aprendizaje automático
Aprendizaje profundo
Red neuronal convolucional
Grafo computacional
Predicción de crimen urbano
Inteligencia artificial
topic Aprendizaje automático
Aprendizaje profundo
Red neuronal convolucional
Grafo computacional
Predicción de crimen urbano
Inteligencia artificial
Ingeniería Electrónica - Tesis y disertaciones académicas
Redes neurales (Informática) - Bogotá (Colombia)
Procesamiento de imágenes digitales - Bogotá (Colombia)
Procesamiento digital de imágenes - Bogotá (Colombia)
Aprendizaje automático (Inteligencia artificial) - Bogotá (Colombia)
Criminología urbana - Bogotá (Colombia)
Inteligencia artificial - Bogotá (Colombia)
Machine learning
Deep learning
Convolutional neural networks
Computational graph
Urban crime forecasting
Artificial intelligence
dc.subject.lemb.spa.fl_str_mv Ingeniería Electrónica - Tesis y disertaciones académicas
Redes neurales (Informática) - Bogotá (Colombia)
Procesamiento de imágenes digitales - Bogotá (Colombia)
Procesamiento digital de imágenes - Bogotá (Colombia)
Aprendizaje automático (Inteligencia artificial) - Bogotá (Colombia)
Criminología urbana - Bogotá (Colombia)
Inteligencia artificial - Bogotá (Colombia)
dc.subject.keyword.spa.fl_str_mv Machine learning
Deep learning
Convolutional neural networks
Computational graph
Urban crime forecasting
Artificial intelligence
description En este trabajo se presenta la implementación de una arquitectura de red neuronal convolucional-deconvolucional adaptada a la predicción de crimen en la ciudad de Bogotá. Específicamente, se diseña una arquitectura convolucional para extraer patrones espaciales de mapas bidimensionales de datos provenientes de eventos de crimen. También se agregan capas de convolución transpuesta para recuperar el tamaño espacial de la señal de entrada. Esta adaptación permite generar información que al ser representada en mapas bidimensionales se puede comparar con la información proveniente de eventos de subreportes de crimen y determinar el desempeño de las redes neuronales. Por otra parte, partiendo de un estudio previo del crimen en la ciudad de Bogotá, se generan volúmenes de datos sintéticos a partir de autómatas celulares con reglas del juego de la vida de Conway. Estos volúmenes de datos sintéticos poseen propiedades similares a las de las dinámicas espacio-temporales presentes en la señal de eventos de crimen en la ciudad de Bogotá. Dentro de este marco se configuran experimentos con dos tipos de entrada sobre la arquitectura convolucional-deconvolucional. En unos primeros, se alimenta la red con volúmenes de datos obtenidos del reporte de eventos de crimen en la ciudad de Bogotá. En los segundos, con volúmenes de datos sintéticos y en otros con el conjunto unión de datos reales y datos sintéticos. En total se presentan cinco casos de uso en los que se entrena la arquitectura con diferentes configuraciones de volúmenes y técnicas de aprendizaje profundo para posteriormente evaluar su desempeño.
publishDate 2021
dc.date.created.none.fl_str_mv 2021-12-18
dc.date.accessioned.none.fl_str_mv 2022-10-13T16:20:54Z
dc.date.available.none.fl_str_mv 2022-10-13T16:20:54Z
dc.type.spa.fl_str_mv bachelorThesis
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/30328
url http://hdl.handle.net/11349/30328
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Atribución 2.5 Colombia
Atribución-CompartirIgual 2.5 Colombia
Atribución-NoComercial-CompartirIgual 2.5 Colombia
Atribución-NoComercial-CompartirIgual 2.5 Colombia
Atribución-NoComercial-CompartirIgual 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-sa/2.5/co/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Atribución 2.5 Colombia
Atribución-CompartirIgual 2.5 Colombia
Atribución-NoComercial-CompartirIgual 2.5 Colombia
http://creativecommons.org/licenses/by-nc-sa/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/30328/5/FajardoFajardoLuisAndrey2022.pdf
http://repository.udistrital.edu.co/bitstream/11349/30328/11/Licencia%20de%20uso%20y%20autorizacion%20especial%20de%20los%20autores%20para%20publicar.pdf
http://repository.udistrital.edu.co/bitstream/11349/30328/12/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/30328/13/license.txt
http://repository.udistrital.edu.co/bitstream/11349/30328/14/FajardoFajardoLuisAndrey2022.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/30328/15/Licencia%20de%20uso%20y%20autorizacion%20especial%20de%20los%20autores%20para%20publicar.pdf.jpg
bitstream.checksum.fl_str_mv 219b088c4befe3b2074774ed2a5ffe3c
cff24fdd0ac079b3ff6c29d5a9eaf895
1487462a1490a8fc01f5999ce7b3b9cc
997daf6c648c962d566d7b082dac908d
a63feb5a1ef94d16306fd260119d44bf
7c8af422fd6b7307410b1d43520b794f
bitstream.checksumAlgorithm.fl_str_mv 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_ 1814111018551345152
spelling Melgarejo Rey, Miguel AlbertoFajardo Fajardo, Luis AndreyPiraján Ovalle, Freddy Humberto2022-10-13T16:20:54Z2022-10-13T16:20:54Z2021-12-18http://hdl.handle.net/11349/30328En este trabajo se presenta la implementación de una arquitectura de red neuronal convolucional-deconvolucional adaptada a la predicción de crimen en la ciudad de Bogotá. Específicamente, se diseña una arquitectura convolucional para extraer patrones espaciales de mapas bidimensionales de datos provenientes de eventos de crimen. También se agregan capas de convolución transpuesta para recuperar el tamaño espacial de la señal de entrada. Esta adaptación permite generar información que al ser representada en mapas bidimensionales se puede comparar con la información proveniente de eventos de subreportes de crimen y determinar el desempeño de las redes neuronales. Por otra parte, partiendo de un estudio previo del crimen en la ciudad de Bogotá, se generan volúmenes de datos sintéticos a partir de autómatas celulares con reglas del juego de la vida de Conway. Estos volúmenes de datos sintéticos poseen propiedades similares a las de las dinámicas espacio-temporales presentes en la señal de eventos de crimen en la ciudad de Bogotá. Dentro de este marco se configuran experimentos con dos tipos de entrada sobre la arquitectura convolucional-deconvolucional. En unos primeros, se alimenta la red con volúmenes de datos obtenidos del reporte de eventos de crimen en la ciudad de Bogotá. En los segundos, con volúmenes de datos sintéticos y en otros con el conjunto unión de datos reales y datos sintéticos. En total se presentan cinco casos de uso en los que se entrena la arquitectura con diferentes configuraciones de volúmenes y técnicas de aprendizaje profundo para posteriormente evaluar su desempeño.The current work presents the design and adaptation of a deep neural network architecture for urban crime forecasting in Bogota city. The architecture skeleton is based on convolutional and deconvolutional layers trained with multidimensional data from criminal subreports. A subset of convolutional layers is used to capture spatial patterns from crime events. Additionally, transposed convolutional layers are used on top of the deepest convolutional layer to recover the spatial dimensions of the input data. Therefore, the information generated by the architecture is compared with the expected output over two-dimensional crime masses maps. Moreover, this work expands upon a previous study of urban crime in Bogota city by generating synthetic data from the cellular automaton known as Conway's Game of Life. This synthetic data exhibits similar properties to the Spatio-temporal crime dynamics in Bogota city. In addition, the experimentation over the convolutional-deconvolutional architecture is performed with two subsets of input volumes. The first subset of input arrays was built based upon information gathered from criminal subreports in Bogota city. The second subset of inputs consists of synthetic data. Hence, the experiments with real, synthetic, and the union of real and synthetic data were summarized in five use cases. Each use case was set up with a specific scheme of deep learning techniques and a variation of parameters to evaluate performance for each case independently.pdfspaAtribución 2.5 ColombiaAtribución-CompartirIgual 2.5 ColombiaAtribución-NoComercial-CompartirIgual 2.5 ColombiaAtribución-NoComercial-CompartirIgual 2.5 ColombiaAtribución-NoComercial-CompartirIgual 2.5 Colombiahttp://creativecommons.org/licenses/by-nc-sa/2.5/co/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Aprendizaje automáticoAprendizaje profundoRed neuronal convolucionalGrafo computacionalPredicción de crimen urbanoInteligencia artificialIngeniería Electrónica - Tesis y disertaciones académicasRedes neurales (Informática) - Bogotá (Colombia)Procesamiento de imágenes digitales - Bogotá (Colombia)Procesamiento digital de imágenes - Bogotá (Colombia)Aprendizaje automático (Inteligencia artificial) - Bogotá (Colombia)Criminología urbana - Bogotá (Colombia)Inteligencia artificial - Bogotá (Colombia)Machine learningDeep learningConvolutional neural networksComputational graphUrban crime forecastingArtificial intelligenceImplementación de una arquitectura de red convolucional aplicada a la predicción de masas de crimen en la Ciudad de Bogotá.Implementation of a convolutional neural network architecture for crime mass forecasting in Bogota City.bachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALFajardoFajardoLuisAndrey2022.pdfFajardoFajardoLuisAndrey2022.pdfapplication/pdf7384733http://repository.udistrital.edu.co/bitstream/11349/30328/5/FajardoFajardoLuisAndrey2022.pdf219b088c4befe3b2074774ed2a5ffe3cMD55open accessLicencia de uso y autorizacion especial de los autores para publicar.pdfLicencia de uso y autorizacion especial de los autores para publicar.pdfLicencia de uso y autorización especial de los autores para publicarapplication/pdf109266http://repository.udistrital.edu.co/bitstream/11349/30328/11/Licencia%20de%20uso%20y%20autorizacion%20especial%20de%20los%20autores%20para%20publicar.pdfcff24fdd0ac079b3ff6c29d5a9eaf895MD511metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-81037http://repository.udistrital.edu.co/bitstream/11349/30328/12/license_rdf1487462a1490a8fc01f5999ce7b3b9ccMD512open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/30328/13/license.txt997daf6c648c962d566d7b082dac908dMD513open accessTHUMBNAILFajardoFajardoLuisAndrey2022.pdf.jpgFajardoFajardoLuisAndrey2022.pdf.jpgIM Thumbnailimage/jpeg6857http://repository.udistrital.edu.co/bitstream/11349/30328/14/FajardoFajardoLuisAndrey2022.pdf.jpga63feb5a1ef94d16306fd260119d44bfMD514open accessLicencia de uso y autorizacion especial de los autores para publicar.pdf.jpgLicencia de uso y autorizacion especial de los autores para publicar.pdf.jpgIM Thumbnailimage/jpeg13184http://repository.udistrital.edu.co/bitstream/11349/30328/15/Licencia%20de%20uso%20y%20autorizacion%20especial%20de%20los%20autores%20para%20publicar.pdf.jpg7c8af422fd6b7307410b1d43520b794fMD515open access11349/30328oai:repository.udistrital.edu.co:11349/303282023-06-13 12:53:22.015open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK