Programa OpenCV Python para detección de vehículos en un cuadro de video

La congestión vehicular es un problema creciente en las calles y autopistas de Colombia Los sistemas de gestión de transporte actuales no son suficientes para mejorar la movilidad urbana. Para mejorar la movilidad urbana, es necesario implementar sistemas de gestión de transporte que sean más integr...

Full description

Autores:
Pérez Rozo, Juan Sebastian
García Diosa, Carlos Alberto
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/42136
Acceso en línea:
http://hdl.handle.net/11349/42136
Palabra clave:
Detección
OpenCV
Programa
Vehículo
Videos
Ingeniería en Control -- Tesis y disertaciones académicas
Innovaciones educativas
Realidad aumentada
Robótica
Detection
OpenCV
Program
Vehicle
Videos
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_e4f3ee9224328d616136281e55a83c45
oai_identifier_str oai:repository.udistrital.edu.co:11349/42136
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Programa OpenCV Python para detección de vehículos en un cuadro de video
dc.title.titleenglish.none.fl_str_mv OpenCV Python program for vehicle detection on a video frame
title Programa OpenCV Python para detección de vehículos en un cuadro de video
spellingShingle Programa OpenCV Python para detección de vehículos en un cuadro de video
Detección
OpenCV
Programa
Vehículo
Videos
Ingeniería en Control -- Tesis y disertaciones académicas
Innovaciones educativas
Realidad aumentada
Robótica
Detection
OpenCV
Program
Vehicle
Videos
title_short Programa OpenCV Python para detección de vehículos en un cuadro de video
title_full Programa OpenCV Python para detección de vehículos en un cuadro de video
title_fullStr Programa OpenCV Python para detección de vehículos en un cuadro de video
title_full_unstemmed Programa OpenCV Python para detección de vehículos en un cuadro de video
title_sort Programa OpenCV Python para detección de vehículos en un cuadro de video
dc.creator.fl_str_mv Pérez Rozo, Juan Sebastian
García Diosa, Carlos Alberto
dc.contributor.advisor.none.fl_str_mv Giraldo Ramos, Frank Nixon
dc.contributor.author.none.fl_str_mv Pérez Rozo, Juan Sebastian
García Diosa, Carlos Alberto
dc.contributor.orcid.none.fl_str_mv Giraldo Ramos, Frank Nixon [0000-0001-8407-1831]
dc.subject.none.fl_str_mv Detección
OpenCV
Programa
Vehículo
Videos
topic Detección
OpenCV
Programa
Vehículo
Videos
Ingeniería en Control -- Tesis y disertaciones académicas
Innovaciones educativas
Realidad aumentada
Robótica
Detection
OpenCV
Program
Vehicle
Videos
dc.subject.lemb.none.fl_str_mv Ingeniería en Control -- Tesis y disertaciones académicas
Innovaciones educativas
Realidad aumentada
Robótica
dc.subject.keyword.none.fl_str_mv Detection
OpenCV
Program
Vehicle
Videos
description La congestión vehicular es un problema creciente en las calles y autopistas de Colombia Los sistemas de gestión de transporte actuales no son suficientes para mejorar la movilidad urbana. Para mejorar la movilidad urbana, es necesario implementar sistemas de gestión de transporte que sean más integrales y que tengan en cuenta factores como la demanda de transporte, la infraestructura vial, la seguridad vial y la sostenibilidad ambiental. Estos sistemas deben utilizar tecnologías inteligentes para recopilar datos, analizarlos y tomar decisiones en tiempo real. Por esta razón el presente proyecto describe el proceso de desarrollo de un programa capaz de detectar y seguir vehículos en un cuadro de video, que permita la identificación y análisis de patrones de movimiento de vehículos. La propuesta se desarrollará utilizando el software de Python® y librería de OpenCv la cual se basará en la computación visual para el procesamiento de imágenes, tendrá un tiempo de desarrollo de 6 meses con un costo de $20.800.000 los cuales estarán divididos en el gasto del personal, equipo y adquisición de software. Será presentado en la modalidad de monografía.
publishDate 2024
dc.date.accessioned.none.fl_str_mv 2024-10-24T23:30:27Z
dc.date.available.none.fl_str_mv 2024-10-24T23:30:27Z
dc.date.created.none.fl_str_mv 2024-08-27
dc.type.none.fl_str_mv bachelorThesis
dc.type.degree.none.fl_str_mv Monografía
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.none.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/42136
url http://hdl.handle.net/11349/42136
dc.language.iso.none.fl_str_mv spa
language spa
dc.relation.references.none.fl_str_mv L. Hincapié, desarrollo de una herramienta sistémica basada en procesamiento digital de video para el conteo de flujo vehicular, velocidad y tipo de automotor, Universidad Autónoma de Occidente, Facultad de Ingeniería, Departamento de Automática y Electrónica, Programa de Ingeniería Electrónica y Telecomunicaciones, Santiago de Cali, 2014.
Peña Quintero, Dario. Desarrollo de sistema de análisis de flujo vehicular para la recolección de variables de tránsito en la ciudad Santiago de Cali. Santiago de Cali: Institución Universitaria Antonio José Camacho. 2019
D. F. Londoño & D. Álvarez Sistema Inteligente de Semaforización Basado en Procesamiento de Imágenes/Video Programado en Raspberry. [online]. Disponible en: http://hdl.handle.net/20.500.11912/10975.
Peña Merino & Juimy Milton Sistema de detección y conteo de vehículos utilizando visión artificial Ciudad de Piura – Perú: Universidad Nacional de Piura
S. Torres, H. Cueva, W. Muñoz, Análisis, monitoreo e implementación de un algoritmo para el conteo del tráfico vehicular aplicando visión artificial Universidad del Azuay [online]. http://dspace.uazuay.edu.ec/handle/datos/6914
Niño-Rondón, C. V., Castellano-Carvajal, D. A., Castro-Casadiego, S. A., Medina-Delgado, B., Guevara-Ibarra, D. (2021), Detección de placas vehiculares mediante modelo de clasificador en cascada basado en lenguaje Python. Eco Matemático, 12 (1), 41-53
J. L. Porta La higuera, “Contaje de vehículos a través de cámaras de TV,” Projecte/Treball Final de Carrera, UPC, Escola Politècnica Superior d'Enginyeria de Vilanova i la Geltrú, Departament de Llenguatges i Sistemes Informàtics, 2013.
Fernández Mc Cann, David Stephen, Salgado Duque Santiago “Proyecto de automatización de aforamiento vehicular” Universidad de Antioquia Medellín [online] https://hdl.handle.net/10495/15943
https://www.iso-39001.es/blog/86-que-es-la-norma-iso-39001
https://fotodeteccion.ansv.gov.co/ubicaciones-aprobadas.html
https://www.normas-iso.com/iso-iec-15504-spice/
http://noticias.juridicas.com/base_datos/Admin/rd1407-1992.html
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.acceso.none.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.none.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/b7f12464-3a75-4a03-969b-34210eabf93b/download
https://repository.udistrital.edu.co/bitstreams/382e4595-2969-41e4-bb24-442d1e6339e1/download
https://repository.udistrital.edu.co/bitstreams/9eed3892-1b17-4ace-8224-2d1d2d8fb104/download
https://repository.udistrital.edu.co/bitstreams/1390d336-4ea7-4097-a857-b8b34179d840/download
https://repository.udistrital.edu.co/bitstreams/cbea5cdc-e8b4-4509-b79a-43dbd59ebd0a/download
bitstream.checksum.fl_str_mv fc686949971d125a4f238b29c8e5e8a1
84eb905c53270827872234074f63bbfa
997daf6c648c962d566d7b082dac908d
efaa0294eb7917addf42aa571d8978c3
49ca5ebd378f6467f424ac27929e645a
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1837006984728018944
spelling Giraldo Ramos, Frank NixonPérez Rozo, Juan SebastianGarcía Diosa, Carlos AlbertoGiraldo Ramos, Frank Nixon [0000-0001-8407-1831]2024-10-24T23:30:27Z2024-10-24T23:30:27Z2024-08-27http://hdl.handle.net/11349/42136La congestión vehicular es un problema creciente en las calles y autopistas de Colombia Los sistemas de gestión de transporte actuales no son suficientes para mejorar la movilidad urbana. Para mejorar la movilidad urbana, es necesario implementar sistemas de gestión de transporte que sean más integrales y que tengan en cuenta factores como la demanda de transporte, la infraestructura vial, la seguridad vial y la sostenibilidad ambiental. Estos sistemas deben utilizar tecnologías inteligentes para recopilar datos, analizarlos y tomar decisiones en tiempo real. Por esta razón el presente proyecto describe el proceso de desarrollo de un programa capaz de detectar y seguir vehículos en un cuadro de video, que permita la identificación y análisis de patrones de movimiento de vehículos. La propuesta se desarrollará utilizando el software de Python® y librería de OpenCv la cual se basará en la computación visual para el procesamiento de imágenes, tendrá un tiempo de desarrollo de 6 meses con un costo de $20.800.000 los cuales estarán divididos en el gasto del personal, equipo y adquisición de software. Será presentado en la modalidad de monografía.Traffic congestion is a growing problem on Colombia's streets and highways Current transportation management systems are not sufficient to improve urban mobility. To improve urban mobility, it is necessary to implement transport management systems that are more comprehensive and take into account factors such as transport demand, road infrastructure, road safety, and environmental sustainability. These systems must use intelligent technologies to collect data, analyze it, and make decisions in real time. For this reason, the present project describes the development process of a program capable of detecting and tracking vehicles in a video frame, allowing the identification and analysis of vehicle movement patterns. The proposal will be developed using Python® software and OpenCv library which will be based on visual computing for image processing, will have a development time of 6 months with a cost of $ 20,800,000 which will be divided into the cost of personnel, equipment and software acquisition. It will be presented as a monograph.pdfspaDetecciónOpenCVProgramaVehículoVideosIngeniería en Control -- Tesis y disertaciones académicasInnovaciones educativasRealidad aumentadaRobóticaDetectionOpenCVProgramVehicleVideosPrograma OpenCV Python para detección de vehículos en un cuadro de videoOpenCV Python program for vehicle detection on a video framebachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2L. Hincapié, desarrollo de una herramienta sistémica basada en procesamiento digital de video para el conteo de flujo vehicular, velocidad y tipo de automotor, Universidad Autónoma de Occidente, Facultad de Ingeniería, Departamento de Automática y Electrónica, Programa de Ingeniería Electrónica y Telecomunicaciones, Santiago de Cali, 2014.Peña Quintero, Dario. Desarrollo de sistema de análisis de flujo vehicular para la recolección de variables de tránsito en la ciudad Santiago de Cali. Santiago de Cali: Institución Universitaria Antonio José Camacho. 2019D. F. Londoño & D. Álvarez Sistema Inteligente de Semaforización Basado en Procesamiento de Imágenes/Video Programado en Raspberry. [online]. Disponible en: http://hdl.handle.net/20.500.11912/10975.Peña Merino & Juimy Milton Sistema de detección y conteo de vehículos utilizando visión artificial Ciudad de Piura – Perú: Universidad Nacional de PiuraS. Torres, H. Cueva, W. Muñoz, Análisis, monitoreo e implementación de un algoritmo para el conteo del tráfico vehicular aplicando visión artificial Universidad del Azuay [online]. http://dspace.uazuay.edu.ec/handle/datos/6914Niño-Rondón, C. V., Castellano-Carvajal, D. A., Castro-Casadiego, S. A., Medina-Delgado, B., Guevara-Ibarra, D. (2021), Detección de placas vehiculares mediante modelo de clasificador en cascada basado en lenguaje Python. Eco Matemático, 12 (1), 41-53J. L. Porta La higuera, “Contaje de vehículos a través de cámaras de TV,” Projecte/Treball Final de Carrera, UPC, Escola Politècnica Superior d'Enginyeria de Vilanova i la Geltrú, Departament de Llenguatges i Sistemes Informàtics, 2013.Fernández Mc Cann, David Stephen, Salgado Duque Santiago “Proyecto de automatización de aforamiento vehicular” Universidad de Antioquia Medellín [online] https://hdl.handle.net/10495/15943https://www.iso-39001.es/blog/86-que-es-la-norma-iso-39001https://fotodeteccion.ansv.gov.co/ubicaciones-aprobadas.htmlhttps://www.normas-iso.com/iso-iec-15504-spice/http://noticias.juridicas.com/base_datos/Admin/rd1407-1992.htmlORIGINALTrabajo de grado Trabajo de grado application/pdf1099750https://repository.udistrital.edu.co/bitstreams/b7f12464-3a75-4a03-969b-34210eabf93b/downloadfc686949971d125a4f238b29c8e5e8a1MD51Licencia de uso y autorizaciónLicencia de uso y autorizaciónapplication/pdf210098https://repository.udistrital.edu.co/bitstreams/382e4595-2969-41e4-bb24-442d1e6339e1/download84eb905c53270827872234074f63bbfaMD54LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/9eed3892-1b17-4ace-8224-2d1d2d8fb104/download997daf6c648c962d566d7b082dac908dMD53THUMBNAILTrabajo de grado .jpgTrabajo de grado .jpgIM Thumbnailimage/jpeg3679https://repository.udistrital.edu.co/bitstreams/1390d336-4ea7-4097-a857-b8b34179d840/downloadefaa0294eb7917addf42aa571d8978c3MD55Licencia de uso y autorización.jpgLicencia de uso y autorización.jpgIM Thumbnailimage/jpeg9498https://repository.udistrital.edu.co/bitstreams/cbea5cdc-e8b4-4509-b79a-43dbd59ebd0a/download49ca5ebd378f6467f424ac27929e645aMD5611349/42136oai:repository.udistrital.edu.co:11349/421362025-02-03 01:13:10.537open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK