Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos
El rápido avance de la tecnología ha generado la necesidad de alcanzar una alta confidencialidad en el manejo de la información, para lo cual se han desarrollado varios algoritmos y sistemas criptográficos; sin embargo, algunos de estos ya han quedado obsoletos puesto que han podido ser descifrados...
- Autores:
-
Casas García, Oscar
- Tipo de recurso:
- Fecha de publicación:
- 2010
- Institución:
- Universidad de San Buenaventura
- Repositorio:
- Repositorio USB
- Idioma:
- spa
- OAI Identifier:
- oai:bibliotecadigital.usb.edu.co:10819/193
- Acceso en línea:
- http://hdl.handle.net/10819/193
- Palabra clave:
- Criptografía
Seguridad de información
Cifradores de bloque
Algoritmos de cifrado
Serpent
Mars
Twofish
Rijndae
Rc6
Expansión de clave
Algoritmos
Grupo de Investigación Laboratorio de Electrónica Aplicada
Lea
- Rights
- License
- http://purl.org/coar/access_right/c_abf2
id |
SANBUENAV2_ec7edfdec6fc1a3ac85e8ece85c0e1e5 |
---|---|
oai_identifier_str |
oai:bibliotecadigital.usb.edu.co:10819/193 |
network_acronym_str |
SANBUENAV2 |
network_name_str |
Repositorio USB |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
title |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
spellingShingle |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos Criptografía Seguridad de información Cifradores de bloque Algoritmos de cifrado Serpent Mars Twofish Rijndae Rc6 Expansión de clave Algoritmos Grupo de Investigación Laboratorio de Electrónica Aplicada Lea |
title_short |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
title_full |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
title_fullStr |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
title_full_unstemmed |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
title_sort |
Implementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidos |
dc.creator.fl_str_mv |
Casas García, Oscar |
dc.contributor.author.spa.fl_str_mv |
Casas García, Oscar |
dc.subject.spa.fl_str_mv |
Criptografía Seguridad de información Cifradores de bloque Algoritmos de cifrado Serpent Mars Twofish Rijndae Rc6 Expansión de clave Algoritmos Grupo de Investigación Laboratorio de Electrónica Aplicada Lea |
topic |
Criptografía Seguridad de información Cifradores de bloque Algoritmos de cifrado Serpent Mars Twofish Rijndae Rc6 Expansión de clave Algoritmos Grupo de Investigación Laboratorio de Electrónica Aplicada Lea |
description |
El rápido avance de la tecnología ha generado la necesidad de alcanzar una alta confidencialidad en el manejo de la información, para lo cual se han desarrollado varios algoritmos y sistemas criptográficos; sin embargo, algunos de estos ya han quedado obsoletos puesto que han podido ser descifrados exitosamente por los criptoanalistas. Por tanto, existe la necesidad de desarrollar nuevos algoritmos criptográficos que resistan los ataques basados en el uso de computadores de alto desempeño. Durante el año 2001, el National Institute of Standards and Technology-NIST, llevó a cabo el proceso de coordinación para reemplazar el algoritmo Data Encryption Standard-DES, algoritmo nacido en 1974 que trabaja sobre bloques de 64 bits (Agudelo, 2007). En este proceso de selección del nuevo algoritmo para reemplazar al DES y convertirse en el Advanced Encryption Standard-AES, sólo cinco algoritmos candidatos fueron seleccionados por NIST como finalistas: MARS (Burwick y otros, 1999), RC6 (Rivest y otros, 1998), Rijndael (Daemen y Rijmen, 1997), Serpent (Anderson y otros, 1998) y Twofish (Schneier y otros, 1998). Estos candidatos fueron evaluados bajo los parámetros de diseño, codificación, simulación y síntesis. Finalmente, el algoritmo Rijndael fue seleccionado para ser el Advanced Encryption Standard debido a su seguridad, desempeño, eficiencia, flexibilidad y facilidad de implementación. Es de notar que durante el proceso de selección del AES los algoritmos finalistas fueron implementados en software y algunos de estos algoritmos están diseñados para ser más eficientes en su implementación en software, que en hardware. El objetivo principal consistió en adquirir experimentalmente la velocidad de cifrado, recursos usados y potencia consumida de cada co-procesador. Estos parámetros son especialmente útiles en el momento de diseñar un sistema embebido que utilice criptografía, puesto que al tener un conjunto de 5 co-procesadores con sus respectivos parámetros de rendimiento, se podrá escoger el co-procesador que mejor se adapte a la aplicación específica del sistema embebido. Es decir, si se quiere que el sistema consuma la menos cantidad de potencia, sólo basta revisar los parámetros de los co-procesadores disponibles y utilizar el que presente mejor desempeño en esta característica. |
publishDate |
2010 |
dc.date.issued.none.fl_str_mv |
2010 |
dc.date.accessioned.none.fl_str_mv |
2011-10-31T22:33:50Z |
dc.date.available.none.fl_str_mv |
2011-10-31T22:33:50Z |
dc.date.submitted.none.fl_str_mv |
2011 |
dc.type.spa.fl_str_mv |
Libro |
dc.type.coar.fl_str_mv |
http://purl.org/coar/resource_type/c_2f33 |
dc.type.spa.spa.fl_str_mv |
Libro |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/book |
dc.identifier.isbn.none.fl_str_mv |
9789588436456 |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/10819/193 |
identifier_str_mv |
9789588436456 |
url |
http://hdl.handle.net/10819/193 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.format.medium.spa.fl_str_mv |
Recurso en linea |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad de San Buenaventura |
dc.publisher.faculty.spa.fl_str_mv |
Documento USB |
dc.publisher.program.spa.fl_str_mv |
Documentos USB |
dc.publisher.sede.spa.fl_str_mv |
Cali |
institution |
Universidad de San Buenaventura |
dc.source.instname.spa.fl_str_mv |
Universidad de San Buenaventura - Cali |
dc.source.reponame.spa.fl_str_mv |
Biblioteca Digital Universidad de San Buenaventura |
bitstream.url.fl_str_mv |
https://bibliotecadigital.usb.edu.co/bitstreams/78fb1cc5-7b05-4245-bfaf-1884ecaf596a/download https://bibliotecadigital.usb.edu.co/bitstreams/f4c1aa6a-656d-41f1-899f-d0f8df2fb87f/download https://bibliotecadigital.usb.edu.co/bitstreams/1662017f-9c80-4825-a51e-613b2579b455/download https://bibliotecadigital.usb.edu.co/bitstreams/e8b73c75-c38f-47b6-a07f-61d994647f95/download |
bitstream.checksum.fl_str_mv |
3f966c912fcfa795c2e88b544a031016 e2dd342f2c351b678ff0101de2d0e3d8 5c59acc939d511d24be422f8919a3038 a3e9c57399c30abf6b2e250efe0f2a8e |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad de San Buenaventura Colombia |
repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
_version_ |
1837099253101494272 |
spelling |
Comunidad Científica y AcadémicaCasas García, Oscarea448e28-c6f4-4e87-968b-6396facdbbc6-12011-10-31T22:33:50Z2011-10-31T22:33:50Z20102011El rápido avance de la tecnología ha generado la necesidad de alcanzar una alta confidencialidad en el manejo de la información, para lo cual se han desarrollado varios algoritmos y sistemas criptográficos; sin embargo, algunos de estos ya han quedado obsoletos puesto que han podido ser descifrados exitosamente por los criptoanalistas. Por tanto, existe la necesidad de desarrollar nuevos algoritmos criptográficos que resistan los ataques basados en el uso de computadores de alto desempeño. Durante el año 2001, el National Institute of Standards and Technology-NIST, llevó a cabo el proceso de coordinación para reemplazar el algoritmo Data Encryption Standard-DES, algoritmo nacido en 1974 que trabaja sobre bloques de 64 bits (Agudelo, 2007). En este proceso de selección del nuevo algoritmo para reemplazar al DES y convertirse en el Advanced Encryption Standard-AES, sólo cinco algoritmos candidatos fueron seleccionados por NIST como finalistas: MARS (Burwick y otros, 1999), RC6 (Rivest y otros, 1998), Rijndael (Daemen y Rijmen, 1997), Serpent (Anderson y otros, 1998) y Twofish (Schneier y otros, 1998). Estos candidatos fueron evaluados bajo los parámetros de diseño, codificación, simulación y síntesis. Finalmente, el algoritmo Rijndael fue seleccionado para ser el Advanced Encryption Standard debido a su seguridad, desempeño, eficiencia, flexibilidad y facilidad de implementación. Es de notar que durante el proceso de selección del AES los algoritmos finalistas fueron implementados en software y algunos de estos algoritmos están diseñados para ser más eficientes en su implementación en software, que en hardware. El objetivo principal consistió en adquirir experimentalmente la velocidad de cifrado, recursos usados y potencia consumida de cada co-procesador. Estos parámetros son especialmente útiles en el momento de diseñar un sistema embebido que utilice criptografía, puesto que al tener un conjunto de 5 co-procesadores con sus respectivos parámetros de rendimiento, se podrá escoger el co-procesador que mejor se adapte a la aplicación específica del sistema embebido. Es decir, si se quiere que el sistema consuma la menos cantidad de potencia, sólo basta revisar los parámetros de los co-procesadores disponibles y utilizar el que presente mejor desempeño en esta característica.Recurso en lineaapplication/pdf9789588436456http://hdl.handle.net/10819/193spaUniversidad de San BuenaventuraDocumento USBDocumentos USBCaliPor medio de este formato manifiesto mi voluntad de AUTORIZAR a la Universidad de San Buenaventura, Sede Bogotá, Seccionales Medellín, Cali y Cartagena, la difusión en texto completo de manera gratuita y por tiempo indefinido en la Biblioteca Digital Universidad de San Buenaventura, el documento académico-investigativo objeto de la presente autorización, con fines estrictamente educativos, científicos y culturales, en los términos establecidos en la Ley 23 de 1982, Ley 44 de 1993, Decisión Andina 351 de 1993, Decreto 460 de 1995 y demás normas generales sobre derechos de autor. Como autor manifiesto que el presente documento académico-investigativo es original y se realiza sin violar o usurpar derechos de autor de terceros, por lo tanto, la obra es de mi exclusiva autora y poseo la titularidad sobre la misma. La Universidad de San Buenaventura no será responsable de ninguna utilización indebida del documento por parte de terceros y será exclusivamente mi responsabilidad atender personalmente cualquier reclamación que pueda presentarse a la Universidad. Autorizo a la Biblioteca Digital de la Universidad de San Buenaventura convertir el documento al formato que el repositorio lo requiera (impreso, digital, electrónico o cualquier otro conocido o por conocer) o con fines de preservación digital. Esta autorización no implica renuncia a la facultad que tengo de publicar posteriormente la obra, en forma total o parcial, por lo cual podrá, dando aviso por escrito con no menos de un mes de antelación, solicitar que el documento deje de estar disponible para el público en la Biblioteca Digital de la Universidad de San Buenaventura, así mismo, cuando se requiera por razones legales y/o reglas del editor de una revista.http://purl.org/coar/access_right/c_abf2Universidad de San Buenaventura - CaliBiblioteca Digital Universidad de San BuenaventuraCriptografíaSeguridad de informaciónCifradores de bloqueAlgoritmos de cifradoSerpentMarsTwofishRijndaeRc6Expansión de claveAlgoritmosGrupo de Investigación Laboratorio de Electrónica AplicadaLeaImplementación de los cifradores de bloque Rijndael, Serpent, MARS, Twofish y RC6 para su uso en sistemas embebidosLibroLibroinfo:eu-repo/semantics/bookhttp://purl.org/coar/resource_type/c_2f33PublicationORIGINALsistemas_embebidos.pdfsistemas_embebidos.pdfapplication/pdf7370001https://bibliotecadigital.usb.edu.co/bitstreams/78fb1cc5-7b05-4245-bfaf-1884ecaf596a/download3f966c912fcfa795c2e88b544a031016MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-816237https://bibliotecadigital.usb.edu.co/bitstreams/f4c1aa6a-656d-41f1-899f-d0f8df2fb87f/downloade2dd342f2c351b678ff0101de2d0e3d8MD52TEXTsistemas_embebidos.pdf.txtsistemas_embebidos.pdf.txtExtracted texttext/plain115913https://bibliotecadigital.usb.edu.co/bitstreams/1662017f-9c80-4825-a51e-613b2579b455/download5c59acc939d511d24be422f8919a3038MD53THUMBNAILsistemas_embebidos.pdf.jpgsistemas_embebidos.pdf.jpgGenerated Thumbnailimage/jpeg22151https://bibliotecadigital.usb.edu.co/bitstreams/e8b73c75-c38f-47b6-a07f-61d994647f95/downloada3e9c57399c30abf6b2e250efe0f2a8eMD5410819/193oai:bibliotecadigital.usb.edu.co:10819/1932023-04-12 15:13:58.465https://bibliotecadigital.usb.edu.coRepositorio Institucional Universidad de San Buenaventura Colombiabdigital@metabiblioteca.comPGh0bWw+CjxoZWFkPgo8dGl0bGU+Q3JlYXRpdmUgQ29tbW9ucyBDb2xvbWJpYTwvdGl0bGU+CjwvaGVhZD4KPGJvZHkgPgoKPGRpdiBpZD0iZGVlZCI+Cjxici8+Cgo8dGQgYWxpZ249Imp1c3RpZnkiPgo8cD48c3Ryb25nPlBhcmEgdGVuZXIgbcOhcyBpbmZvcm1hY2nDs24gdmlzaXRlOjwvc3Ryb25nPjwvcD4KPHA+Q3JlYXRpdmUgQ29tbW9ucyBDb2xvbWJpYSAKPGEgaHJlZj0iaHR0cDovL2NvLmNyZWF0aXZlY29tbW9ucy5vcmcvIiBUQVJHRVQ9Il9uZXciPmh0dHA6Ly9jby5jcmVhdGl2ZWNvbW1vbnMub3JnLwo8L2E+PC9wPgo8cD5DcmVhdGl2ZSBDb21tb25zCjxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnLyIgVEFSR0VUPSJfbmV3Ij5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy88L2E+CjwvcD48YnI+Cgo8ZGl2IHN0eWxlPSJ3aWR0aDo4MDBweDtoZWlnaHQ6MjQyMHB4O2JvcmRlcjoycHggZG91YmxlICMxOTU4OTc7Ij4KCjxwIGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+TGljZW5jaWEgPC9zdHJvbmc+PC9wPgoKICA8cD48Zm9udCBzaXplPSIxIj5MQSBPQlJBIChUQUwgWSBDT01PIFNFIERFRklORSBNw4FTIEFERUxBTlRFKSBTRSBPVE9SR0EgQkFKTyBMT1MgVEVSTUlOT1MgREUgRVNUQSBMSUNFTkNJQSBQw5pCTElDQSBERSBDUkVBVElWRSBDT01NT05TICjigJxMUEND4oCdIE8g4oCcTElDRU5DSUHigJ0pLiBMQSBPQlJBIEVTVMOBIFBST1RFR0lEQSBQT1IgREVSRUNIT1MgREUgQVVUT1IgWS9VIE9UUkFTIExFWUVTIEFQTElDQUJMRVMuIFFVRURBIFBST0hJQklETyBDVUFMUVVJRVIgVVNPIFFVRSBTRSBIQUdBIERFIExBIE9CUkEgUVVFIE5PIENVRU5URSBDT04gTEEgQVVUT1JJWkFDScOTTiBQRVJUSU5FTlRFIERFIENPTkZPUk1JREFEIENPTiBMT1MgVMOJUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgWSBERSBMQSBMRVkgREUgREVSRUNITyBERSBBVVRPUi48L3A+CgogIDxwPk1FRElBTlRFIEVMIEVKRVJDSUNJTyBERSBDVUFMUVVJRVJBIERFIExPUyBERVJFQ0hPUyBRVUUgU0UgT1RPUkdBTiBFTiBFU1RBIExJQ0VOQ0lBLCBVU1RFRCBBQ0VQVEEgWSBBQ1VFUkRBIFFVRURBUiBPQkxJR0FETyBFTiBMT1MgVEVSTUlOT1MgUVVFIFNFIFNFw5FBTEFOIEVOIEVMTEEuIEVMIExJQ0VOQ0lBTlRFIENPTkNFREUgQSBVU1RFRCBMT1MgREVSRUNIT1MgQ09OVEVOSURPUyBFTiBFU1RBIExJQ0VOQ0lBIENPTkRJQ0lPTkFET1MgQSBMQSBBQ0VQVEFDScOTTiBERSBTVVMgVEVSTUlOT1MgWSBDT05ESUNJT05FUy4gPC9mb250PjwvcD4KCiAgPHA+PHN0cm9uZz4xLiBEZWZpbmljaW9uZXMgPC9zdHJvbmc+PC9wPgoKICA8b2wgdHlwZT0nYSc+CgogICAgPGxpPjxzdHJvbmc+T2JyYSBDb2xlY3RpdmEgPC9zdHJvbmc+IGVzIHVuYSBvYnJhLCB0YWwgY29tbyB1bmEgcHVibGljYWNpw7NuIHBlcmnDs2RpY2EsIHVuYSBhbnRvbG9nw61hLCBvIHVuYSBlbmNpY2xvcGVkaWEsIGVuIGxhIHF1ZSBsYSBvYnJhIGVuIHN1IHRvdGFsaWRhZCwgc2luIG1vZGlmaWNhY2nDs24gYWxndW5hLCBqdW50byBjb24gdW4gZ3J1cG8gZGUgb3RyYXMgY29udHJpYnVjaW9uZXMgcXVlIGNvbnN0aXR1eWVuIG9icmFzIHNlcGFyYWRhcyBlIGluZGVwZW5kaWVudGVzIGVuIHPDrSBtaXNtYXMsIHNlIGludGVncmFuIGVuIHVuIHRvZG8gY29sZWN0aXZvLiBVbmEgT2JyYSBxdWUgY29uc3RpdHV5ZSB1bmEgb2JyYSBjb2xlY3RpdmEgbm8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIChjb21vIHNlIGRlZmluZSBhYmFqbykgcGFyYSBsb3MgcHJvcMOzc2l0b3MgZGUgZXN0YSBsaWNlbmNpYS4gYXF1ZWxsYSBwcm9kdWNpZGEgcG9yIHVuIGdydXBvIGRlIGF1dG9yZXMsIGVuIHF1ZSBsYSBPYnJhIHNlIGVuY3VlbnRyYSBzaW4gbW9kaWZpY2FjaW9uZXMsIGp1bnRvIGNvbiB1bmEgY2llcnRhIGNhbnRpZGFkIGRlIG90cmFzIGNvbnRyaWJ1Y2lvbmVzLCBxdWUgY29uc3RpdHV5ZW4gZW4gc8OtIG1pc21vcyB0cmFiYWpvcyBzZXBhcmFkb3MgZSBpbmRlcGVuZGllbnRlcywgcXVlIHNvbiBpbnRlZ3JhZG9zIGFsIHRvZG8gY29sZWN0aXZvLCB0YWxlcyBjb21vIHB1YmxpY2FjaW9uZXMgcGVyacOzZGljYXMsIGFudG9sb2fDrWFzIG8gZW5jaWNsb3BlZGlhcy4gPC9saT4KCiAgPGxpPjxzdHJvbmc+T2JyYSBEZXJpdmFkYSA8L3N0cm9uZz4gc2lnbmlmaWNhIHVuYSBvYnJhIGJhc2FkYSBlbiBsYSBvYnJhIG9iamV0byBkZSBlc3RhIGxpY2VuY2lhIG8gZW4gw6lzdGEgeSBvdHJhcyBvYnJhcyBwcmVleGlzdGVudGVzLCB0YWxlcyBjb21vIHRyYWR1Y2Npb25lcywgYXJyZWdsb3MgbXVzaWNhbGVzLCBkcmFtYXRpemFjaW9uZXMsIOKAnGZpY2Npb25hbGl6YWNpb25lc+KAnSwgdmVyc2lvbmVzIHBhcmEgY2luZSwg4oCcZ3JhYmFjaW9uZXMgZGUgc29uaWRv4oCdLCByZXByb2R1Y2Npb25lcyBkZSBhcnRlLCByZXPDum1lbmVzLCBjb25kZW5zYWNpb25lcywgbyBjdWFscXVpZXIgb3RyYSBlbiBsYSBxdWUgbGEgb2JyYSBwdWVkYSBzZXIgdHJhbnNmb3JtYWRhLCBjYW1iaWFkYSBvIGFkYXB0YWRhLCBleGNlcHRvIGFxdWVsbGFzIHF1ZSBjb25zdGl0dXlhbiB1bmEgb2JyYSBjb2xlY3RpdmEsIGxhcyBxdWUgbm8gc2Vyw6FuIGNvbnNpZGVyYWRhcyB1bmEgb2JyYSBkZXJpdmFkYSBwYXJhIGVmZWN0b3MgZGUgZXN0YSBsaWNlbmNpYS4gKFBhcmEgZXZpdGFyIGR1ZGFzLCBlbiBlbCBjYXNvIGRlIHF1ZSBsYSBPYnJhIHNlYSB1bmEgY29tcG9zaWNpw7NuIG11c2ljYWwgbyB1bmEgZ3JhYmFjacOzbiBzb25vcmEsIHBhcmEgbG9zIGVmZWN0b3MgZGUgZXN0YSBMaWNlbmNpYSBsYSBzaW5jcm9uaXphY2nDs24gdGVtcG9yYWwgZGUgbGEgT2JyYSBjb24gdW5hIGltYWdlbiBlbiBtb3ZpbWllbnRvIHNlIGNvbnNpZGVyYXLDoSB1bmEgT2JyYSBEZXJpdmFkYSBwYXJhIGxvcyBmaW5lcyBkZSBlc3RhIGxpY2VuY2lhKS4gPC9saT4KCiAgPGxpPjxzdHJvbmc+TGljZW5jaWFudGUsIDwvc3Ryb25nPiBlcyBlbCBpbmRpdmlkdW8gbyBsYSBlbnRpZGFkIHRpdHVsYXIgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIHF1ZSBvZnJlY2UgbGEgT2JyYSBlbiBjb25mb3JtaWRhZCBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIDwvbGk+CgogIDxsaT48c3Ryb25nPkF1dG9yIG9yaWdpbmFsLCA8L3N0cm9uZz5lcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuIDwvbGk+CgogIDxsaT48c3Ryb25nPk9icmE8L3N0cm9uZz4sIGVzIGFxdWVsbGEgb2JyYSBzdXNjZXB0aWJsZSBkZSBwcm90ZWNjacOzbiBwb3IgZWwgcsOpZ2ltZW4gZGUgRGVyZWNobyBkZSBBdXRvciB5IHF1ZSBlcyBvZnJlY2lkYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEgPC9saT4KCiAgPGxpPjxzdHJvbmc+VXN0ZWQ8L3N0cm9uZz4sIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgcXVlIGVqZXJjaXRhIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgYWwgYW1wYXJvIGRlIGVzdGEgTGljZW5jaWEgeSBxdWUgY29uIGFudGVyaW9yaWRhZCBubyBoYSB2aW9sYWRvIGxhcyBjb25kaWNpb25lcyBkZSBsYSBtaXNtYSByZXNwZWN0byBhIGxhIE9icmEsIG8gcXVlIGhheWEgb2J0ZW5pZG8gYXV0b3JpemFjacOzbiBleHByZXNhIHBvciBwYXJ0ZSBkZWwgTGljZW5jaWFudGUgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSBwZXNlIGEgdW5hIHZpb2xhY2nDs24gYW50ZXJpb3IuIDwvbGk+CgogIDwvb2w+CgogIDxwPjxzdHJvbmc+Mi4gRGVyZWNob3MgZGUgVXNvcyBIb25yYWRvcyB5IGV4Y2VwY2lvbmVzIExlZ2FsZXMuIDwvc3Ryb25nPjwvcD4KCiAgPHA+TmFkYSBlbiBlc3RhIExpY2VuY2lhIHBvZHLDoSBzZXIgaW50ZXJwcmV0YWRvIGNvbW8gdW5hIGRpc21pbnVjacOzbiwgbGltaXRhY2nDs24gbyByZXN0cmljY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlcml2YWRvcyBkZWwgdXNvIGhvbnJhZG8geSBvdHJhcyBsaW1pdGFjaW9uZXMgbyBleGNlcGNpb25lcyBhIGxvcyBkZXJlY2hvcyBkZWwgYXV0b3IgYmFqbyBlbCByw6lnaW1lbiBsZWdhbCB2aWdlbnRlIG8gZGVyaXZhZG8gZGUgY3VhbHF1aWVyIG90cmEgbm9ybWEgcXVlIHNlIGxlIGFwbGlxdWUuIDwvcD4KCiAgPHA+PHN0cm9uZz4zLiBDb25jZXNpw7NuIGRlIGxhIExpY2VuY2lhLiA8L3N0cm9uZz48L3A+CgogIDxwPkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246IDwvcD4KCiAgPG9sIHR5cGU9J2EnPgoKICAgIDxsaT4gUmVwcm9kdWNpciBsYSBPYnJhLCBpbmNvcnBvcmFyIGxhIE9icmEgZW4gdW5hIG8gbcOhcyBPYnJhcyBDb2xlY3RpdmFzLCB5IHJlcHJvZHVjaXIgbGEgT2JyYSBpbmNvcnBvcmFkYSBlbiBsYXMgT2JyYXMgQ29sZWN0aXZhczsgPC9saT4KCiAgPGxpPiBEaXN0cmlidWlyIGNvcGlhcyBvIGZvbm9ncmFtYXMgZGUgbGFzIE9icmFzLCBleGhpYmlybGFzIHDDumJsaWNhbWVudGUsIGVqZWN1dGFybGFzIHDDumJsaWNhbWVudGUgeS9vIHBvbmVybGFzIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLCBpbmNsdXnDqW5kb2xhcyBjb21vIGluY29ycG9yYWRhcyBlbiBPYnJhcyBDb2xlY3RpdmFzLCBzZWfDum4gY29ycmVzcG9uZGE7IDwvbGk+CgogIDxsaT4gRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4gPC9saT4KCiAgPC9vbD4KCiAgPHA+TG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuVG9kb3MgbG9zIGRlcmVjaG9zIG5vIG90b3JnYWRvcyBleHByZXNhbWVudGUgcG9yIGVsIExpY2VuY2lhbnRlIHF1ZWRhbiBwb3IgZXN0ZSBtZWRpbyByZXNlcnZhZG9zLCBpbmNsdXllbmRvIHBlcm8gc2luIGxpbWl0YXJzZSBhIGFxdWVsbG9zIHF1ZSBzZSBtZW5jaW9uYW4gZW4gbGFzIHNlY2Npb25lcyA0KGQpIHkgNChlKS4gPC9wPgoKICA8cD48c3Ryb25nPjQuIFJlc3RyaWNjaW9uZXMuIDwvc3Ryb25nPjwvcD4KCiAgPHA+TGEgbGljZW5jaWEgb3RvcmdhZGEgZW4gbGEgYW50ZXJpb3IgU2VjY2nDs24gMyBlc3TDoSBleHByZXNhbWVudGUgc3VqZXRhIHkgbGltaXRhZGEgcG9yIGxhcyBzaWd1aWVudGVzIHJlc3RyaWNjaW9uZXM6IDwvcD4KCiAgPG9sIHR5cGU9J2EnPgoKICAgIDxsaT4gVXN0ZWQgcHVlZGUgZGlzdHJpYnVpciwgZXhoaWJpciBww7pibGljYW1lbnRlLCBlamVjdXRhciBww7pibGljYW1lbnRlLCBvIHBvbmVyIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhIGxhIE9icmEgc8OzbG8gYmFqbyBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSwgeSBVc3RlZCBkZWJlIGluY2x1aXIgdW5hIGNvcGlhIGRlIGVzdGEgbGljZW5jaWEgbyBkZWwgSWRlbnRpZmljYWRvciBVbml2ZXJzYWwgZGUgUmVjdXJzb3MgZGUgbGEgbWlzbWEgY29uIGNhZGEgY29waWEgZGUgbGEgT2JyYSBxdWUgZGlzdHJpYnV5YSwgZXhoaWJhIHDDumJsaWNhbWVudGUsIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBvIHBvbmdhIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLiBObyBlcyBwb3NpYmxlIG9mcmVjZXIgbyBpbXBvbmVyIG5pbmd1bmEgY29uZGljacOzbiBzb2JyZSBsYSBPYnJhIHF1ZSBhbHRlcmUgbyBsaW1pdGUgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgbyBlbCBlamVyY2ljaW8gZGUgbG9zIGRlcmVjaG9zIGRlIGxvcyBkZXN0aW5hdGFyaW9zIG90b3JnYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gTm8gZXMgcG9zaWJsZSBzdWJsaWNlbmNpYXIgbGEgT2JyYS4gVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RvcyB0b2RvcyBsb3MgYXZpc29zIHF1ZSBoYWdhbiByZWZlcmVuY2lhIGEgZXN0YSBMaWNlbmNpYSB5IGEgbGEgY2zDoXVzdWxhIGRlIGxpbWl0YWNpw7NuIGRlIGdhcmFudMOtYXMuIFVzdGVkIG5vIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIGNvbiBhbGd1bmEgbWVkaWRhIHRlY25vbMOzZ2ljYSBxdWUgY29udHJvbGUgZWwgYWNjZXNvIG8gbGEgdXRpbGl6YWNpw7NuIGRlIGVsbGEgZGUgdW5hIGZvcm1hIHF1ZSBzZWEgaW5jb25zaXN0ZW50ZSBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIExvIGFudGVyaW9yIHNlIGFwbGljYSBhIGxhIE9icmEgaW5jb3Jwb3JhZGEgYSB1bmEgT2JyYSBDb2xlY3RpdmEsIHBlcm8gZXN0byBubyBleGlnZSBxdWUgbGEgT2JyYSBDb2xlY3RpdmEgYXBhcnRlIGRlIGxhIG9icmEgbWlzbWEgcXVlZGUgc3VqZXRhIGEgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIFNpIFVzdGVkIGNyZWEgdW5hIE9icmEgQ29sZWN0aXZhLCBwcmV2aW8gYXZpc28gZGUgY3VhbHF1aWVyIExpY2VuY2lhbnRlIGRlYmUsIGVuIGxhIG1lZGlkYSBkZSBsbyBwb3NpYmxlLCBlbGltaW5hciBkZSBsYSBPYnJhIENvbGVjdGl2YSBjdWFscXVpZXIgcmVmZXJlbmNpYSBhIGRpY2hvIExpY2VuY2lhbnRlIG8gYWwgQXV0b3IgT3JpZ2luYWwsIHNlZ8O6biBsbyBzb2xpY2l0YWRvIHBvciBlbCBMaWNlbmNpYW50ZSB5IGNvbmZvcm1lIGxvIGV4aWdlIGxhIGNsw6F1c3VsYSA0KGMpLiA8L2xpPgoKICA8bGk+IFVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4gPC9saT4KCiAgPGxpPiBTaSB1c3RlZCBkaXN0cmlidXllLCBleGhpYmUgcMO6YmxpY2FtZW50ZSwgZWplY3V0YSBww7pibGljYW1lbnRlIG8gZWplY3V0YSBww7pibGljYW1lbnRlIGVuIGZvcm1hIGRpZ2l0YWwgbGEgT2JyYSBvIGN1YWxxdWllciBPYnJhIERlcml2YWRhIHUgT2JyYSBDb2xlY3RpdmEsIFVzdGVkIGRlYmUgbWFudGVuZXIgaW50YWN0YSB0b2RhIGxhIGluZm9ybWFjacOzbiBkZSBkZXJlY2hvIGRlIGF1dG9yIGRlIGxhIE9icmEgeSBwcm9wb3JjaW9uYXIsIGRlIGZvcm1hIHJhem9uYWJsZSBzZWfDum4gZWwgbWVkaW8gbyBtYW5lcmEgcXVlIFVzdGVkIGVzdMOpIHV0aWxpemFuZG86IChpKSBlbCBub21icmUgZGVsIEF1dG9yIE9yaWdpbmFsIHNpIGVzdMOhIHByb3Zpc3RvIChvIHNldWTDs25pbW8sIHNpIGZ1ZXJlIGFwbGljYWJsZSksIHkvbyAoaWkpIGVsIG5vbWJyZSBkZSBsYSBwYXJ0ZSBvIGxhcyBwYXJ0ZXMgcXVlIGVsIEF1dG9yIE9yaWdpbmFsIHkvbyBlbCBMaWNlbmNpYW50ZSBodWJpZXJlbiBkZXNpZ25hZG8gcGFyYSBsYSBhdHJpYnVjacOzbiAodi5nLiwgdW4gaW5zdGl0dXRvIHBhdHJvY2luYWRvciwgZWRpdG9yaWFsLCBwdWJsaWNhY2nDs24pIGVuIGxhIGluZm9ybWFjacOzbiBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGVsIExpY2VuY2lhbnRlLCB0w6lybWlub3MgZGUgc2VydmljaW9zIG8gZGUgb3RyYXMgZm9ybWFzIHJhem9uYWJsZXM7IGVsIHTDrXR1bG8gZGUgbGEgT2JyYSBzaSBlc3TDoSBwcm92aXN0bzsgZW4gbGEgbWVkaWRhIGRlIGxvIHJhem9uYWJsZW1lbnRlIGZhY3RpYmxlIHksIHNpIGVzdMOhIHByb3Zpc3RvLCBlbCBJZGVudGlmaWNhZG9yIFVuaWZvcm1lIGRlIFJlY3Vyc29zIChVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIpIHF1ZSBlbCBMaWNlbmNpYW50ZSBlc3BlY2lmaWNhIHBhcmEgc2VyIGFzb2NpYWRvIGNvbiBsYSBPYnJhLCBzYWx2byBxdWUgdGFsIFVSSSBubyBzZSByZWZpZXJhIGEgbGEgbm90YSBzb2JyZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgbyBhIGxhIGluZm9ybWFjacOzbiBzb2JyZSBlbCBsaWNlbmNpYW1pZW50byBkZSBsYSBPYnJhOyB5IGVuIGVsIGNhc28gZGUgdW5hIE9icmEgRGVyaXZhZGEsIGF0cmlidWlyIGVsIGNyw6lkaXRvIGlkZW50aWZpY2FuZG8gZWwgdXNvIGRlIGxhIE9icmEgZW4gbGEgT2JyYSBEZXJpdmFkYSAodi5nLiwgIlRyYWR1Y2Npw7NuIEZyYW5jZXNhIGRlIGxhIE9icmEgZGVsIEF1dG9yIE9yaWdpbmFsLCIgbyAiR3Vpw7NuIENpbmVtYXRvZ3LDoWZpY28gYmFzYWRvIGVuIGxhIE9icmEgb3JpZ2luYWwgZGVsIEF1dG9yIE9yaWdpbmFsIikuIFRhbCBjcsOpZGl0byBwdWVkZSBzZXIgaW1wbGVtZW50YWRvIGRlIGN1YWxxdWllciBmb3JtYSByYXpvbmFibGU7IGVuIGVsIGNhc28sIHNpbiBlbWJhcmdvLCBkZSBPYnJhcyBEZXJpdmFkYXMgdSBPYnJhcyBDb2xlY3RpdmFzLCB0YWwgY3LDqWRpdG8gYXBhcmVjZXLDoSwgY29tbyBtw61uaW1vLCBkb25kZSBhcGFyZWNlIGVsIGNyw6lkaXRvIGRlIGN1YWxxdWllciBvdHJvIGF1dG9yIGNvbXBhcmFibGUgeSBkZSB1bmEgbWFuZXJhLCBhbCBtZW5vcywgdGFuIGRlc3RhY2FkYSBjb21vIGVsIGNyw6lkaXRvIGRlIG90cm8gYXV0b3IgY29tcGFyYWJsZS4gPC9saT4KCiAgPGxpPiBQYXJhIGV2aXRhciB0b2RhIGNvbmZ1c2nDs24sIGVsIExpY2VuY2lhbnRlIGFjbGFyYSBxdWUsIGN1YW5kbyBsYSBvYnJhIGVzIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbDoKCiAgICA8b2wgdHlwZT0naSc+CgogICAgICA8bGk+IFJlZ2Fsw61hcyBwb3IgaW50ZXJwcmV0YWNpw7NuIHkgZWplY3VjacOzbiBiYWpvIGxpY2VuY2lhcyBnZW5lcmFsZXMuIEVsIExpY2VuY2lhbnRlIHNlIHJlc2VydmEgZWwgZGVyZWNobyBleGNsdXNpdm8gZGUgYXV0b3JpemFyIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgbyBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSB5IGRlIHJlY29sZWN0YXIsIHNlYSBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBTQVlDTyksIGxhcyByZWdhbMOtYXMgcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgbyBwb3IgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvIFdlYmNhc3QpIGxpY2VuY2lhZGEgYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLCBzaSBsYSBpbnRlcnByZXRhY2nDs24gbyBlamVjdWNpw7NuIGRlIGxhIG9icmEgZXN0w6EgcHJpbW9yZGlhbG1lbnRlIG9yaWVudGFkYSBwb3IgbyBkaXJpZ2lkYSBhIGxhIG9idGVuY2nDs24gZGUgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuIDwvbGk+CgogICAgPGxpPiBSZWdhbMOtYXMgcG9yIEZvbm9ncmFtYXMuIEVsIExpY2VuY2lhbnRlIHNlIHJlc2VydmEgZWwgZGVyZWNobyBleGNsdXNpdm8gZGUgcmVjb2xlY3RhciwgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCB1bmEgYWdlbmNpYSBkZSBkZXJlY2hvcyBtdXNpY2FsZXMgbyBhbGfDum4gYWdlbnRlIGRlc2lnbmFkbywgbGFzIHJlZ2Fsw61hcyBwb3IgY3VhbHF1aWVyIGZvbm9ncmFtYSBxdWUgVXN0ZWQgY3JlZSBhIHBhcnRpciBkZSBsYSBvYnJhICjigJx2ZXJzacOzbiBjb3ZlcuKAnSkgeSBkaXN0cmlidXlhLCBlbiBsb3MgdMOpcm1pbm9zIGRlbCByw6lnaW1lbiBkZSBkZXJlY2hvcyBkZSBhdXRvciwgc2kgbGEgY3JlYWNpw7NuIG8gZGlzdHJpYnVjacOzbiBkZSBlc2EgdmVyc2nDs24gY292ZXIgZXN0w6EgcHJpbW9yZGlhbG1lbnRlIGRlc3RpbmFkYSBvIGRpcmlnaWRhIGEgb2J0ZW5lciB1bmEgdmVudGFqYSBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS4gPC9saT4KCiAgICA8L29sPjwvbGk+CgogIDxsaT4gR2VzdGnDs24gZGUgRGVyZWNob3MgZGUgQXV0b3Igc29icmUgSW50ZXJwcmV0YWNpb25lcyB5IEVqZWN1Y2lvbmVzIERpZ2l0YWxlcyAoV2ViQ2FzdGluZykuIFBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgc2VhIHVuIGZvbm9ncmFtYSwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvLCB3ZWJjYXN0KSB5IGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIEFjaW5wcm8pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpLCBzdWpldGEgYSBsYXMgZGlzcG9zaWNpb25lcyBhcGxpY2FibGVzIGRlbCByw6lnaW1lbiBkZSBEZXJlY2hvIGRlIEF1dG9yLCBzaSBlc3RhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBlc3TDoSBwcmltb3JkaWFsbWVudGUgZGlyaWdpZGEgYSBvYnRlbmVyIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiA8L2xpPgoKICAgIAoKICA8L29sPgoKICA8cD48c3Ryb25nPjUuIFJlcHJlc2VudGFjaW9uZXMsIEdhcmFudMOtYXMgeSBMaW1pdGFjaW9uZXMgZGUgUmVzcG9uc2FiaWxpZGFkLiA8L3N0cm9uZz48L3A+CgogIDxwPjxmb250IHNpemU9IjEiPkEgTUVOT1MgUVVFIExBUyBQQVJURVMgTE8gQUNPUkRBUkFOIERFIE9UUkEgRk9STUEgUE9SIEVTQ1JJVE8sIEVMIExJQ0VOQ0lBTlRFIE9GUkVDRSBMQSBPQlJBIChFTiBFTCBFU1RBRE8gRU4gRUwgUVVFIFNFIEVOQ1VFTlRSQSkg4oCcVEFMIENVQUzigJ0sIFNJTiBCUklOREFSIEdBUkFOVMONQVMgREUgQ0xBU0UgQUxHVU5BIFJFU1BFQ1RPIERFIExBIE9CUkEsIFlBIFNFQSBFWFBSRVNBLCBJTVBMw41DSVRBLCBMRUdBTCBPIENVQUxRVUlFUkEgT1RSQSwgSU5DTFVZRU5ETywgU0lOIExJTUlUQVJTRSBBIEVMTEFTLCBHQVJBTlTDjUFTIERFIFRJVFVMQVJJREFELCBDT01FUkNJQUJJTElEQUQsIEFEQVBUQUJJTElEQUQgTyBBREVDVUFDScOTTiBBIFBST1DDk1NJVE8gREVURVJNSU5BRE8sIEFVU0VOQ0lBIERFIElORlJBQ0NJw5NOLCBERSBBVVNFTkNJQSBERSBERUZFQ1RPUyBMQVRFTlRFUyBPIERFIE9UUk8gVElQTywgTyBMQSBQUkVTRU5DSUEgTyBBVVNFTkNJQSBERSBFUlJPUkVTLCBTRUFOIE8gTk8gREVTQ1VCUklCTEVTIChQVUVEQU4gTyBOTyBTRVIgRVNUT1MgREVTQ1VCSUVSVE9TKS4gQUxHVU5BUyBKVVJJU0RJQ0NJT05FUyBOTyBQRVJNSVRFTiBMQSBFWENMVVNJw5NOIERFIEdBUkFOVMONQVMgSU1QTMONQ0lUQVMsIEVOIENVWU8gQ0FTTyBFU1RBIEVYQ0xVU0nDk04gUFVFREUgTk8gQVBMSUNBUlNFIEEgVVNURUQuIDwvcD4KCiAgPHA+PHN0cm9uZz42LiBMaW1pdGFjacOzbiBkZSByZXNwb25zYWJpbGlkYWQuIDwvc3Ryb25nPjwvcD4KCiAgPHA+QSBNRU5PUyBRVUUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFIExBIExFWSBBUExJQ0FCTEUsIEVMIExJQ0VOQ0lBTlRFIE5PIFNFUsOBIFJFU1BPTlNBQkxFIEFOVEUgVVNURUQgUE9SIERBw5FPIEFMR1VOTywgU0VBIFBPUiBSRVNQT05TQUJJTElEQUQgRVhUUkFDT05UUkFDVFVBTCwgUFJFQ09OVFJBQ1RVQUwgTyBDT05UUkFDVFVBTCwgT0JKRVRJVkEgTyBTVUJKRVRJVkEsIFNFIFRSQVRFIERFIERBw5FPUyBNT1JBTEVTIE8gUEFUUklNT05JQUxFUywgRElSRUNUT1MgTyBJTkRJUkVDVE9TLCBQUkVWSVNUT1MgTyBJTVBSRVZJU1RPUyBQUk9EVUNJRE9TIFBPUiBFTCBVU08gREUgRVNUQSBMSUNFTkNJQSBPIERFIExBIE9CUkEsIEFVTiBDVUFORE8gRUwgTElDRU5DSUFOVEUgSEFZQSBTSURPIEFEVkVSVElETyBERSBMQSBQT1NJQklMSURBRCBERSBESUNIT1MgREHDkU9TLiBBTEdVTkFTIExFWUVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgQ0lFUlRBIFJFU1BPTlNBQklMSURBRCwgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4gPC9mb250PjwvcD4KCiAgPHA+PHN0cm9uZz43LiBUw6lybWlubzwvc3Ryb25nPi4gPHN0cm9uZz48L3N0cm9uZz48L3A+CgogIDxvbCB0eXBlPSdhJz4KCiAgICA8bGk+RXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuIDwvbGk+CgogICAgPGxpPlN1amV0YSBhIGxhcyBjb25kaWNpb25lcyB5IHTDqXJtaW5vcyBhbnRlcmlvcmVzLCBsYSBsaWNlbmNpYSBvdG9yZ2FkYSBhcXXDrSBlcyBwZXJwZXR1YSAoZHVyYW50ZSBlbCBwZXLDrW9kbyBkZSB2aWdlbmNpYSBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGUgbGEgb2JyYSkuIE5vIG9ic3RhbnRlIGxvIGFudGVyaW9yLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gYSBwdWJsaWNhciB5L28gZXN0cmVuYXIgbGEgT2JyYSBiYWpvIGNvbmRpY2lvbmVzIGRlIGxpY2VuY2lhIGRpZmVyZW50ZXMgbyBhIGRlamFyIGRlIGRpc3RyaWJ1aXJsYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgTGljZW5jaWEgZW4gY3VhbHF1aWVyIG1vbWVudG87IGVuIGVsIGVudGVuZGlkbywgc2luIGVtYmFyZ28sIHF1ZSBlc2EgZWxlY2Npw7NuIG5vIHNlcnZpcsOhIHBhcmEgcmV2b2NhciBlc3RhIGxpY2VuY2lhIG8gcXVlIGRlYmEgc2VyIG90b3JnYWRhICwgYmFqbyBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEpLCB5IGVzdGEgbGljZW5jaWEgY29udGludWFyw6EgZW4gcGxlbm8gdmlnb3IgeSBlZmVjdG8gYSBtZW5vcyBxdWUgc2VhIHRlcm1pbmFkYSBjb21vIHNlIGV4cHJlc2EgYXRyw6FzLiBMYSBMaWNlbmNpYSByZXZvY2FkYSBjb250aW51YXLDoSBzaWVuZG8gcGxlbmFtZW50ZSB2aWdlbnRlIHkgZWZlY3RpdmEgc2kgbm8gc2UgbGUgZGEgdMOpcm1pbm8gZW4gbGFzIGNvbmRpY2lvbmVzIGluZGljYWRhcyBhbnRlcmlvcm1lbnRlLiA8L2xpPgoKICA8L29sPgoKICA8cD48c3Ryb25nPjguIFZhcmlvcy4gPC9zdHJvbmc+PC9wPgoKICA8b2wgdHlwZT0nYSc+CgogICAgPGxpPkNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuIDwvbGk+CgogIDxsaT5TaSBhbGd1bmEgZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgcmVzdWx0YSBpbnZhbGlkYWRhIG8gbm8gZXhpZ2libGUsIHNlZ8O6biBsYSBsZWdpc2xhY2nDs24gdmlnZW50ZSwgZXN0byBubyBhZmVjdGFyw6EgbmkgbGEgdmFsaWRleiBuaSBsYSBhcGxpY2FiaWxpZGFkIGRlbCByZXN0byBkZSBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIHksIHNpbiBhY2Npw7NuIGFkaWNpb25hbCBwb3IgcGFydGUgZGUgbG9zIHN1amV0b3MgZGUgZXN0ZSBhY3VlcmRvLCBhcXXDqWxsYSBzZSBlbnRlbmRlcsOhIHJlZm9ybWFkYSBsbyBtw61uaW1vIG5lY2VzYXJpbyA8c3Ryb25nPjwvc3Ryb25nPnBhcmEgaGFjZXIgcXVlIGRpY2hhIGRpc3Bvc2ljacOzbiBzZWEgdsOhbGlkYSB5IGV4aWdpYmxlLiA8L2xpPgoKICA8bGk+TmluZ8O6biB0w6lybWlubyBvIGRpc3Bvc2ljacOzbiBkZSBlc3RhIExpY2VuY2lhIHNlIGVzdGltYXLDoSByZW51bmNpYWRhIHkgbmluZ3VuYSB2aW9sYWNpw7NuIGRlIGVsbGEgc2Vyw6EgY29uc2VudGlkYSBhIG1lbm9zIHF1ZSBlc2EgcmVudW5jaWEgbyBjb25zZW50aW1pZW50byBzZWEgb3RvcmdhZG8gcG9yIGVzY3JpdG8geSBmaXJtYWRvIHBvciBsYSBwYXJ0ZSBxdWUgcmVudW5jaWUgbyBjb25zaWVudGEuIDwvbGk+CgogIDxsaT5Fc3RhIExpY2VuY2lhIHJlZmxlamEgZWwgYWN1ZXJkbyBwbGVubyBlbnRyZSBsYXMgcGFydGVzIHJlc3BlY3RvIGEgbGEgT2JyYSBhcXXDrSBsaWNlbmNpYWRhLiBObyBoYXkgYXJyZWdsb3MsIGFjdWVyZG9zIG8gZGVjbGFyYWNpb25lcyByZXNwZWN0byBhIGxhIE9icmEgcXVlIG5vIGVzdMOpbiBlc3BlY2lmaWNhZG9zIGVuIGVzdGUgZG9jdW1lbnRvLiBFbCBMaWNlbmNpYW50ZSBubyBzZSB2ZXLDoSBsaW1pdGFkbyBwb3IgbmluZ3VuYSBkaXNwb3NpY2nDs24gYWRpY2lvbmFsIHF1ZSBwdWVkYSBzdXJnaXIgZW4gYWxndW5hIGNvbXVuaWNhY2nDs24gZW1hbmFkYSBkZSBVc3RlZC4gRXN0YSBMaWNlbmNpYSBubyBwdWVkZSBzZXIgbW9kaWZpY2FkYSBzaW4gZWwgY29uc2VudGltaWVudG8gbXV0dW8gcG9yIGVzY3JpdG8gZGVsIExpY2VuY2lhbnRlIHkgVXN0ZWQuIDwvbGk+CgogIDwvb2w+Cgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg== |