Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
gráficos, tablas.
- Autores:
-
Uribe Hurtado, Ana Lorena
- Tipo de recurso:
- Doctoral thesis
- Fecha de publicación:
- 2022
- Institución:
- Universidad Nacional de Colombia
- Repositorio:
- Universidad Nacional de Colombia
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.unal.edu.co:unal/81347
- Palabra clave:
- 620 - Ingeniería y operaciones afines
Clasificación y agrupamiento basados en disimilitudes
Computación paralela
Múltiples núcleos CPU
Muchos núcleos GPU
Medidas de disimilitud
Prueba leave-one-out para múltiples núcleos
Dissimilarity-based classifiers and clustering Inglés
Parallel computer
Multi-core CPU
Many-core GPU
Dissimilarity measures
Leave-one-out test for multi-core
- Rights
- openAccess
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional
id |
UNACIONAL2_18d1894ca9b8a00f6ebeff9e3d31f621 |
---|---|
oai_identifier_str |
oai:repositorio.unal.edu.co:unal/81347 |
network_acronym_str |
UNACIONAL2 |
network_name_str |
Universidad Nacional de Colombia |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
dc.title.translated.eng.fl_str_mv |
Acceleration of dissimilarity-based classi cation algorithms using multi-core computational architectures. |
title |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
spellingShingle |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. 620 - Ingeniería y operaciones afines Clasificación y agrupamiento basados en disimilitudes Computación paralela Múltiples núcleos CPU Muchos núcleos GPU Medidas de disimilitud Prueba leave-one-out para múltiples núcleos Dissimilarity-based classifiers and clustering Inglés Parallel computer Multi-core CPU Many-core GPU Dissimilarity measures Leave-one-out test for multi-core |
title_short |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
title_full |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
title_fullStr |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
title_full_unstemmed |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
title_sort |
Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos. |
dc.creator.fl_str_mv |
Uribe Hurtado, Ana Lorena |
dc.contributor.advisor.none.fl_str_mv |
Orozco-Alzate, Mauricio |
dc.contributor.author.none.fl_str_mv |
Uribe Hurtado, Ana Lorena |
dc.contributor.researchgroup.spa.fl_str_mv |
Grupo de Ambientes Inteligentes Adaptativos - GAIA |
dc.subject.ddc.spa.fl_str_mv |
620 - Ingeniería y operaciones afines |
topic |
620 - Ingeniería y operaciones afines Clasificación y agrupamiento basados en disimilitudes Computación paralela Múltiples núcleos CPU Muchos núcleos GPU Medidas de disimilitud Prueba leave-one-out para múltiples núcleos Dissimilarity-based classifiers and clustering Inglés Parallel computer Multi-core CPU Many-core GPU Dissimilarity measures Leave-one-out test for multi-core |
dc.subject.proposal.spa.fl_str_mv |
Clasificación y agrupamiento basados en disimilitudes Computación paralela Múltiples núcleos CPU Muchos núcleos GPU Medidas de disimilitud Prueba leave-one-out para múltiples núcleos |
dc.subject.proposal.eng.fl_str_mv |
Dissimilarity-based classifiers and clustering Inglés Parallel computer Multi-core CPU Many-core GPU Dissimilarity measures Leave-one-out test for multi-core |
description |
gráficos, tablas. |
publishDate |
2022 |
dc.date.accessioned.none.fl_str_mv |
2022-03-23T23:09:39Z |
dc.date.available.none.fl_str_mv |
2022-03-23T23:09:39Z |
dc.date.issued.none.fl_str_mv |
2022 |
dc.type.spa.fl_str_mv |
Trabajo de grado - Doctorado |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_db06 |
dc.type.content.spa.fl_str_mv |
Image Text |
format |
http://purl.org/coar/resource_type/c_db06 |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.unal.edu.co/handle/unal/81347 |
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/81347 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 |
Doug Abbott. Chapter 12 - Posix Threads. In Doug Abbott, editor, Linux for Embedded and Real-time Applications (Second Edition), Embedded Technology, pages 197-214. Newnes, Burlington, second edition edition, 2006. Elfatih M. Abdel-Rahman, Onisimo Mutanga, Elhadi Adam, and Riyad Ismail. Detecting Sirex noctilio grey-attacked and lightning-struck pine trees using airborne hyperspectral data, random forest and support vector machines classi ers. ISPRS Journal of Photogrammetry and Remote Sensing, 88:48-59, 2014. Karim Abou-Moustafa and Frank P. Ferrie. Local generalized quadratic distance metrics: Application to the k-nearest neighbors classi er. Advances in Data Analysis and Classi cation, 12(2):341-363, 2018. Samson Abramsky. Computational interpretations of linear logic. Theoretical Computer Science, 111(1-2):3-57, 1993. A. Ahmadzadeh, R. Mirzaei, H. Madani, M. Shobeiri, M. Sadeghi, M. Gavahi, K. Jafari, M. M. Aznaveh, and S. Gorgin. Cost-e cient implementation of k-NN algorithm on multi-core processors. In Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2014, pages 205-208, oct 2014. |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.license.spa.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional |
dc.rights.uri.spa.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional 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.spa.fl_str_mv |
xxiii, 201 páginas |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad Nacional de Colombia |
dc.publisher.program.spa.fl_str_mv |
Manizales - Ingeniería y Arquitectura - Doctorado en Ingeniería - Industria y Organizaciones |
dc.publisher.department.spa.fl_str_mv |
Departamento de Ingeniería Industrial |
dc.publisher.faculty.spa.fl_str_mv |
Facultad de Ingeniería y Arquitectura |
dc.publisher.place.spa.fl_str_mv |
Manizales, Colombia |
dc.publisher.branch.spa.fl_str_mv |
Universidad Nacional de Colombia - Sede Manizales |
institution |
Universidad Nacional de Colombia |
bitstream.url.fl_str_mv |
https://repositorio.unal.edu.co/bitstream/unal/81347/1/41914787.2022.pdf https://repositorio.unal.edu.co/bitstream/unal/81347/2/license.txt https://repositorio.unal.edu.co/bitstream/unal/81347/3/41914787.2022.pdf.jpg |
bitstream.checksum.fl_str_mv |
750832ca1bccc09c45efc69ee9b53618 8153f7789df02f0a4c9e079953658ab2 675d1926e8075c3f441a839c9d35d98a |
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_ |
1814089567056166912 |
spelling |
Atribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Orozco-Alzate, Mauricio854bb7da044fd757cf5087bb23930d6d600Uribe Hurtado, Ana Lorena5152c63c37fda432c8089fd4e9a35141600Grupo de Ambientes Inteligentes Adaptativos - GAIA2022-03-23T23:09:39Z2022-03-23T23:09:39Z2022https://repositorio.unal.edu.co/handle/unal/81347Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/gráficos, tablas.En esta tesis se proponen estrategias y estructuras computacionales, basadas en arquitecturas multi-core y many-core, orientadas a desarrollar implementaciones paralelas de una selección representativa de algoritmos de reconocimiento de patrones basados en disimilitudes. Los algoritmos escogidos, tanto para clasificación supervisada como para agrupamiento, corresponden a algoritmos cuyas versiones secuenciales son costosas computacionalmente y para los que no se encontraron, en la revisión del estado del arte, implementaciones sobre arquitecturas paralelas como las arriba mencionadas. Los algoritmos que se paralelizaron tienen costos computacionales diversos en sus versiones secuenciales. Algunos de ellos son tan costosos que su uso práctico, sin paralelización, resulta inviable cuando se tienen requerimientos como la obtención de respuestas en pseudo-tiempo real, el enriquecimiento de conjuntos de datos pequeños mediante sobre-muestreo combinatorio, la ejecución repetida para estimar medidas de desempeño estadísticamente confiables durante simulaciones exhaustivas o las actualizaciones frecuentes de los resultados en escenarios de grandes flujos de datos. Las versiones paralelas de los algoritmos de clasificación y agrupamiento se presentan como seudocódigos y fueron implementadas principalmente en ANSI C y CUDA para sus ejecuciones sobre arquitecturas multi-core y many-core, respectivamente. Se realizaron experimentos con conjuntos de datos representativos y se reportaron los tiempos de respuesta tanto de las versiones secuenciales como de las versiones paralelas respectivas, así como las aceleraciones logradas con la paralelización. En todos los casos, se garantizó que las etiquetas de clase asignadas por las dos versiones --secuencial y paralela—coincidiera incluso bajo condiciones distintas de precisión de punto flotante, por ejemplo, precisión de CPU vs. precisión de GPU. Los análisis de los algoritmos seleccionados, la novedad de sus implementaciones paralelas, las aceleraciones logradas en las ejecuciones y la representatividad de las aplicaciones ilustradas componen los principales aportes de esta tesis. Entre estas últimas, se pueden destacar las paralelizaciones de algoritmos de clasificación costosos como los de enriquecimiento combinatorio de representación mediante líneas de características y el agrupamiento de datos masivos de georreferenciación. La mayor parte del material original presentado en todos los capítulos ha sido discutido y publicado previamente, bien sea como ponencias en eventos académicos o como artículos en revistas científicas indexadas. Las publicaciones correspondientes se indican al inicio de cada capítulo.This thesis proposes computational strategies and structures, based on multi-core and manycore architectures, aimed at developing parallel implementations of a representative selection of dissimilarity-based pattern recognition algorithms. The algorithms chosen for both supervised classi cation and clustering correspond to algorithms whose sequential versions are computationally expensive and for which, in the review of the state of the art, implementations on parallel architectures such as those mentioned above were not found. The algorithms that were parallelized have di erent computational costs in their sequential versions. Some of them are so expensive that their practical use, without parallelization, is not feasible when there are requirements such as obtaining responses in pseudo-real time, enrichment of small data sets by combinatorial oversampling, repeated execution to estimate statistically reliable performance measures during exhaustive simulations, or frequent updates of the results in scenarios of big data streams. The parallel versions of the classi cation and clustering algorithms are presented as pseudocodes and were implemented mainly in ANSI C and CUDA for their executions on multi-core and many-core architectures, respectively. Experiments were carried out with representative datasets and the response times of both the sequential and the respective parallel versions were reported, as well as the accelerations achieved with parallelization. In all cases, the class labels assigned by the two versions |sequential and parallel| were guaranteed to match even under di erent oating point precision conditions, for example CPU precision vs. GPU precision. The novelty of the parallel implementations of the selected algorithms, the accelerations achieved in the executions and the representativeness of the illustrated applications compose the main contributions of this thesis. Among the latter, we can highlight the parallelizations of expensive classi cation algorithms such as those of combinatorial enrichment of representation through features lines and the clustering of massive geospatial data. Most of the original material presented in all chapters has been previously discussed and published, either as presentations at academic events or as papers in indexed scienti c journals. The corresponding publications are indicated at the beginning of every chapter.DoctoradoDoctor en IngenieríaMétodos y modelos de optimización y estadística en Ingeniería Industrial y AdministrativaIndustrial, Organizaciones Y Logística xxiii, 201 páginasapplication/pdfspaUniversidad Nacional de ColombiaManizales - Ingeniería y Arquitectura - Doctorado en Ingeniería - Industria y OrganizacionesDepartamento de Ingeniería IndustrialFacultad de Ingeniería y ArquitecturaManizales, ColombiaUniversidad Nacional de Colombia - Sede Manizales620 - Ingeniería y operaciones afinesClasificación y agrupamiento basados en disimilitudesComputación paralelaMúltiples núcleos CPUMuchos núcleos GPUMedidas de disimilitudPrueba leave-one-out para múltiples núcleosDissimilarity-based classifiers and clustering InglésParallel computerMulti-core CPUMany-core GPUDissimilarity measuresLeave-one-out test for multi-coreAceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.Acceleration of dissimilarity-based classi cation algorithms using multi-core computational architectures.Trabajo de grado - Doctoradoinfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_db06ImageTextDoug Abbott. Chapter 12 - Posix Threads. In Doug Abbott, editor, Linux for Embedded and Real-time Applications (Second Edition), Embedded Technology, pages 197-214. Newnes, Burlington, second edition edition, 2006.Elfatih M. Abdel-Rahman, Onisimo Mutanga, Elhadi Adam, and Riyad Ismail. Detecting Sirex noctilio grey-attacked and lightning-struck pine trees using airborne hyperspectral data, random forest and support vector machines classi ers. ISPRS Journal of Photogrammetry and Remote Sensing, 88:48-59, 2014.Karim Abou-Moustafa and Frank P. Ferrie. Local generalized quadratic distance metrics: Application to the k-nearest neighbors classi er. Advances in Data Analysis and Classi cation, 12(2):341-363, 2018.Samson Abramsky. Computational interpretations of linear logic. Theoretical Computer Science, 111(1-2):3-57, 1993.A. Ahmadzadeh, R. Mirzaei, H. Madani, M. Shobeiri, M. Sadeghi, M. Gavahi, K. Jafari, M. M. Aznaveh, and S. Gorgin. Cost-e cient implementation of k-NN algorithm on multi-core processors. In Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2014, pages 205-208, oct 2014.BibliotecariosEstudiantesInvestigadoresMaestrosPúblico generalORIGINAL41914787.2022.pdf41914787.2022.pdfTesis de Doctorado en Ingeniería – Industria y Organizacionesapplication/pdf2590234https://repositorio.unal.edu.co/bitstream/unal/81347/1/41914787.2022.pdf750832ca1bccc09c45efc69ee9b53618MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-84074https://repositorio.unal.edu.co/bitstream/unal/81347/2/license.txt8153f7789df02f0a4c9e079953658ab2MD52THUMBNAIL41914787.2022.pdf.jpg41914787.2022.pdf.jpgGenerated Thumbnailimage/jpeg4795https://repositorio.unal.edu.co/bitstream/unal/81347/3/41914787.2022.pdf.jpg675d1926e8075c3f441a839c9d35d98aMD53unal/81347oai:repositorio.unal.edu.co:unal/813472024-08-05 23:10:17.251Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUExBTlRJTExBIERFUMOTU0lUTwoKQ29tbyBlZGl0b3IgZGUgZXN0ZSDDrXRlbSwgdXN0ZWQgcHVlZGUgbW92ZXJsbyBhIHJldmlzacOzbiBzaW4gYW50ZXMgcmVzb2x2ZXIgbG9zIHByb2JsZW1hcyBpZGVudGlmaWNhZG9zLCBkZSBsbyBjb250cmFyaW8sIGhhZ2EgY2xpYyBlbiBHdWFyZGFyIHBhcmEgZ3VhcmRhciBlbCDDrXRlbSB5IHNvbHVjaW9uYXIgZXN0b3MgcHJvYmxlbWFzIG1hcyB0YXJkZS4KClBhcmEgdHJhYmFqb3MgZGVwb3NpdGFkb3MgcG9yIHN1IHByb3BpbyBhdXRvcjoKIApBbCBhdXRvYXJjaGl2YXIgZXN0ZSBncnVwbyBkZSBhcmNoaXZvcyBkaWdpdGFsZXMgeSBzdXMgbWV0YWRhdG9zLCB5byBnYXJhbnRpem8gYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVbmFsIGVsIGRlcmVjaG8gYSBhbG1hY2VuYXJsb3MgeSBtYW50ZW5lcmxvcyBkaXNwb25pYmxlcyBlbiBsw61uZWEgZGUgbWFuZXJhIGdyYXR1aXRhLiBEZWNsYXJvIHF1ZSBsYSBvYnJhIGVzIGRlIG1pIHByb3BpZWRhZCBpbnRlbGVjdHVhbCB5IHF1ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVuYWwgbm8gYXN1bWUgbmluZ3VuYSByZXNwb25zYWJpbGlkYWQgc2kgaGF5IGFsZ3VuYSB2aW9sYWNpw7NuIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGFsIGRpc3RyaWJ1aXIgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuIChTZSByZWNvbWllbmRhIGEgdG9kb3MgbG9zIGF1dG9yZXMgYSBpbmRpY2FyIHN1cyBkZXJlY2hvcyBkZSBhdXRvciBlbiBsYSBww6FnaW5hIGRlIHTDrXR1bG8gZGUgc3UgZG9jdW1lbnRvLikgRGUgbGEgbWlzbWEgbWFuZXJhLCBhY2VwdG8gbG9zIHTDqXJtaW5vcyBkZSBsYSBzaWd1aWVudGUgbGljZW5jaWE6IExvcyBhdXRvcmVzIG8gdGl0dWxhcmVzIGRlbCBkZXJlY2hvIGRlIGF1dG9yIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gY29uZmllcmVuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgdW5hIGxpY2VuY2lhIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBzZSBpbnRlZ3JhIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHF1ZSBzZSBhanVzdGEgYSBsYXMgc2lndWllbnRlcyBjYXJhY3RlcsOtc3RpY2FzOiBhKSBFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWUgZW4gZWwgcmVwb3NpdG9yaW8sIHF1ZSBzZXLDoW4gcHJvcnJvZ2FibGVzIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gcGF0cmltb25pYWwgZGVsIGF1dG9yLiBFbCBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgbGljZW5jaWEgc29saWNpdMOhbmRvbG8gYSBsYSBVbml2ZXJzaWRhZC4gYikgTG9zIGF1dG9yZXMgYXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBwdWJsaWNhciBsYSBvYnJhIGVuIGVsIGZvcm1hdG8gcXVlIGVsIHJlcG9zaXRvcmlvIGxvIHJlcXVpZXJhIChpbXByZXNvLCBkaWdpdGFsLCBlbGVjdHLDs25pY28gbyBjdWFscXVpZXIgb3RybyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSB5IGNvbm9jZW4gcXVlIGRhZG8gcXVlIHNlIHB1YmxpY2EgZW4gSW50ZXJuZXQgcG9yIGVzdGUgaGVjaG8gY2lyY3VsYSBjb24gYWxjYW5jZSBtdW5kaWFsLiBjKSBMb3MgYXV0b3JlcyBhY2VwdGFuIHF1ZSBsYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIHJlbnVuY2lhbiBhIHJlY2liaXIgZW1vbHVtZW50byBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBjb24gcXVlIHNlIHB1YmxpY2EuIGQpIExvcyBhdXRvcmVzIG1hbmlmaWVzdGFuIHF1ZSBzZSB0cmF0YSBkZSB1bmEgb2JyYSBvcmlnaW5hbCBzb2JyZSBsYSBxdWUgdGllbmVuIGxvcyBkZXJlY2hvcyBxdWUgYXV0b3JpemFuIHkgcXVlIHNvbiBlbGxvcyBxdWllbmVzIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uIGUpIExvcyBhdXRvcmVzIGF1dG9yaXphbiBhIGxhIFVuaXZlcnNpZGFkIHBhcmEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcywgaW5kaWNlc3MgeSBidXNjYWRvcmVzIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBzdSBkaWZ1c2nDs24uIGYpIExvcyBhdXRvcmVzIGFjZXB0YW4gcXVlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHB1ZWRhIGNvbnZlcnRpciBlbCBkb2N1bWVudG8gYSBjdWFscXVpZXIgbWVkaW8gbyBmb3JtYXRvIHBhcmEgcHJvcMOzc2l0b3MgZGUgcHJlc2VydmFjacOzbiBkaWdpdGFsLiBTSSBFTCBET0NVTUVOVE8gU0UgQkFTQSBFTiBVTiBUUkFCQUpPIFFVRSBIQSBTSURPIFBBVFJPQ0lOQURPIE8gQVBPWUFETyBQT1IgVU5BIEFHRU5DSUEgTyBVTkEgT1JHQU5JWkFDScOTTiwgQ09OIEVYQ0VQQ0nDk04gREUgTEEgVU5JVkVSU0lEQUQgTkFDSU9OQUwgREUgQ09MT01CSUEsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uIAoKUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igb3RyYXMgcGVyc29uYXMgZGlzdGludGFzIGEgc3UgYXV0b3I6IAoKRGVjbGFybyBxdWUgZWwgZ3J1cG8gZGUgYXJjaGl2b3MgZGlnaXRhbGVzIHkgbWV0YWRhdG9zIGFzb2NpYWRvcyBxdWUgZXN0b3kgYXJjaGl2YW5kbyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVOKSBlcyBkZSBkb21pbmlvIHDDumJsaWNvLiBTaSBubyBmdWVzZSBlbCBjYXNvLCBhY2VwdG8gdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgcG9yIGN1YWxxdWllciBpbmZyYWNjacOzbiBkZSBkZXJlY2hvcyBkZSBhdXRvciBxdWUgY29ubGxldmUgbGEgZGlzdHJpYnVjacOzbiBkZSBlc3RvcyBhcmNoaXZvcyB5IG1ldGFkYXRvcy4KTk9UQTogU0kgTEEgVEVTSVMgQSBQVUJMSUNBUiBBRFFVSVJJw5MgQ09NUFJPTUlTT1MgREUgQ09ORklERU5DSUFMSURBRCBFTiBFTCBERVNBUlJPTExPIE8gUEFSVEVTIERFTCBET0NVTUVOVE8uIFNJR0EgTEEgRElSRUNUUklaIERFIExBIFJFU09MVUNJw5NOIDAyMyBERSAyMDE1LCBQT1IgTEEgQ1VBTCBTRSBFU1RBQkxFQ0UgRUwgUFJPQ0VESU1JRU5UTyBQQVJBIExBIFBVQkxJQ0FDScOTTiBERSBURVNJUyBERSBNQUVTVFLDjUEgWSBET0NUT1JBRE8gREUgTE9TIEVTVFVESUFOVEVTIERFIExBIFVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU4sIEVYUEVESURBIFBPUiBMQSBTRUNSRVRBUsONQSBHRU5FUkFMLiAqTEEgVEVTSVMgQSBQVUJMSUNBUiBERUJFIFNFUiBMQSBWRVJTScOTTiBGSU5BTCBBUFJPQkFEQS4gCgpBbCBoYWNlciBjbGljIGVuIGVsIHNpZ3VpZW50ZSBib3TDs24sIHVzdGVkIGluZGljYSBxdWUgZXN0w6EgZGUgYWN1ZXJkbyBjb24gZXN0b3MgdMOpcm1pbm9zLiBTaSB0aWVuZSBhbGd1bmEgZHVkYSBzb2JyZSBsYSBsaWNlbmNpYSwgcG9yIGZhdm9yLCBjb250YWN0ZSBjb24gZWwgYWRtaW5pc3RyYWRvciBkZWwgc2lzdGVtYS4KClVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIC0gw5psdGltYSBtb2RpZmljYWNpw7NuIDE5LzEwLzIwMjEK |