Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1
El presente trabajo plantea la solución de la cinemática inversa y directa de un manipulador Melfa Mitsubishi RV-M1, a través de una interfaz de operación. Se comienza con una recopilación de la investigación realizada del robot en el que se incluían sus soluciones cinemáticas y la explicación de la...
- Autores:
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2018
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/13402
- Acceso en línea:
- http://hdl.handle.net/11349/13402
- Palabra clave:
- Manipulador
Mitsubishi RV-M1
Interfaz
Cinemática Inversa y Cinemática Directa
INGENIERÍA MECÁNICA - TESIS Y DISERTACIONES ACADÉMICAS
ROBÓTICA
CINEMÁTICA
ROBOTS
Manipulator
Mitsubishi RV-M1
Interface
Reverse Kinematics and Direct Kinematics
- Rights
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional
id |
UDISTRITA2_798a112953f022783f77a8b1cf967258 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/13402 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
dc.title.titleenglish.spa.fl_str_mv |
Mathematical development and application of the inverse kinematics by means of a calculation and programming software for the Mitsubishi RV-M1 Robot |
title |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
spellingShingle |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 Manipulador Mitsubishi RV-M1 Interfaz Cinemática Inversa y Cinemática Directa INGENIERÍA MECÁNICA - TESIS Y DISERTACIONES ACADÉMICAS ROBÓTICA CINEMÁTICA ROBOTS Manipulator Mitsubishi RV-M1 Interface Reverse Kinematics and Direct Kinematics |
title_short |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
title_full |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
title_fullStr |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
title_full_unstemmed |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
title_sort |
Desarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1 |
dc.contributor.advisor.spa.fl_str_mv |
Forero Casallas, John Alejandro |
dc.subject.spa.fl_str_mv |
Manipulador Mitsubishi RV-M1 Interfaz Cinemática Inversa y Cinemática Directa |
topic |
Manipulador Mitsubishi RV-M1 Interfaz Cinemática Inversa y Cinemática Directa INGENIERÍA MECÁNICA - TESIS Y DISERTACIONES ACADÉMICAS ROBÓTICA CINEMÁTICA ROBOTS Manipulator Mitsubishi RV-M1 Interface Reverse Kinematics and Direct Kinematics |
dc.subject.lemb.spa.fl_str_mv |
INGENIERÍA MECÁNICA - TESIS Y DISERTACIONES ACADÉMICAS ROBÓTICA CINEMÁTICA ROBOTS |
dc.subject.keyword.spa.fl_str_mv |
Manipulator Mitsubishi RV-M1 Interface Reverse Kinematics and Direct Kinematics |
description |
El presente trabajo plantea la solución de la cinemática inversa y directa de un manipulador Melfa Mitsubishi RV-M1, a través de una interfaz de operación. Se comienza con una recopilación de la investigación realizada del robot en el que se incluían sus soluciones cinemáticas y la explicación de la manipulación por medio de software, de esto se toman datos guías. De esta forma se realizó la solución por medio de un programa de cálculo y programación que permite al usuario ver por medio de una interfaz gráfica la ubicación inicial y final del manipulador. Fue necesario tener interacción física con la máquina, para realizar la toma de mediciones y lograr una mayor precisión en la modelación, fue utilizado el programa SOLIDWORKS®, donde se crearon las respectivas piezas y restricciones, se determinó que era el adecuado debido al proceso de exportación a MATLAB® r2017a el resultado fue un diagrama de bloques donde se pueden añadir la restricciones angulares del manipulador, en su interfaz de le agregaron distintos elementos que permitieran la manipulación y control por parte del usuario final, creando así una interfaz gráfica amigable y de fácil uso. Para finalizar esta parte se procedió a incorporar el proceso de solución de la cinemática directa e inversa, donde al realizar la variación angular de cualquier eslabón se obtenía el resultado de las coordenadas cartesianas de la herramienta final este se puede visualizar como Px, Py y Pz, la interfaz gráfica sirve como apoyo para la comprensión de los movimientos físicos que se pueden lograr. Finalmente se llegó a comprobar los resultados y las soluciones de la cinemática directa e inversa en el programa MATLAB®, mediante la conexión y posteriormente envió de órdenes a través del software mencionado, de tal forma que el manipulador en su lenguaje intrínseco pueda interpretarlas, con base a la lista de comandos mencionados en el manual de usuario. El primer paso fue una evaluación técnica y posterior mantenimiento al robot del laboratorio de mecánica, pudiendo corregir ciertos errores. Se explica cómo se realizó la conexión y el protocolo utilizado en el enlace, donde no se utilizó otro hardware como traductor de los códigos enviados, el resultado fue una interfaz serial donde se puede visualizar como el robot se mueve en una interfaz gráfica virtual y recrea estos movimientos físicamente. El manipulador por ser antiguo tiene un tiempo de respuesta relativamente lento, aun así, logra interpretar y procesar las órdenes enviadas. |
publishDate |
2018 |
dc.date.accessioned.none.fl_str_mv |
2018-07-31T17:36:57Z |
dc.date.available.none.fl_str_mv |
2018-07-31T17:36:57Z |
dc.date.created.spa.fl_str_mv |
2018-05-31 |
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/13402 |
url |
http://hdl.handle.net/11349/13402 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.rights.*.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.acceso.spa.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional http://creativecommons.org/licenses/by-nc-nd/4.0/ 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/13402/6/G%c3%b3mezCamposDar%c3%adoAndr%c3%a9s2018.pdf.jpg http://repository.udistrital.edu.co/bitstream/11349/13402/2/license_url http://repository.udistrital.edu.co/bitstream/11349/13402/3/license_text http://repository.udistrital.edu.co/bitstream/11349/13402/4/license_rdf http://repository.udistrital.edu.co/bitstream/11349/13402/1/G%c3%b3mezCamposDar%c3%adoAndr%c3%a9s2018.pdf http://repository.udistrital.edu.co/bitstream/11349/13402/5/license.txt |
bitstream.checksum.fl_str_mv |
7f8ddafe1a88cde8f812fc9993ad83d5 4afdbb8c545fd630ea7db775da747b2f d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e 73fadc79af0489c1a5114ffefe0b2345 da5c6a3ca62d5dd4853000a60fee7083 |
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_ |
1803712650352263168 |
spelling |
Forero Casallas, John AlejandroGómez Campos, Darío AndrésBustos Quintero, Álvaro Enrique2018-07-31T17:36:57Z2018-07-31T17:36:57Z2018-05-31http://hdl.handle.net/11349/13402El presente trabajo plantea la solución de la cinemática inversa y directa de un manipulador Melfa Mitsubishi RV-M1, a través de una interfaz de operación. Se comienza con una recopilación de la investigación realizada del robot en el que se incluían sus soluciones cinemáticas y la explicación de la manipulación por medio de software, de esto se toman datos guías. De esta forma se realizó la solución por medio de un programa de cálculo y programación que permite al usuario ver por medio de una interfaz gráfica la ubicación inicial y final del manipulador. Fue necesario tener interacción física con la máquina, para realizar la toma de mediciones y lograr una mayor precisión en la modelación, fue utilizado el programa SOLIDWORKS®, donde se crearon las respectivas piezas y restricciones, se determinó que era el adecuado debido al proceso de exportación a MATLAB® r2017a el resultado fue un diagrama de bloques donde se pueden añadir la restricciones angulares del manipulador, en su interfaz de le agregaron distintos elementos que permitieran la manipulación y control por parte del usuario final, creando así una interfaz gráfica amigable y de fácil uso. Para finalizar esta parte se procedió a incorporar el proceso de solución de la cinemática directa e inversa, donde al realizar la variación angular de cualquier eslabón se obtenía el resultado de las coordenadas cartesianas de la herramienta final este se puede visualizar como Px, Py y Pz, la interfaz gráfica sirve como apoyo para la comprensión de los movimientos físicos que se pueden lograr. Finalmente se llegó a comprobar los resultados y las soluciones de la cinemática directa e inversa en el programa MATLAB®, mediante la conexión y posteriormente envió de órdenes a través del software mencionado, de tal forma que el manipulador en su lenguaje intrínseco pueda interpretarlas, con base a la lista de comandos mencionados en el manual de usuario. El primer paso fue una evaluación técnica y posterior mantenimiento al robot del laboratorio de mecánica, pudiendo corregir ciertos errores. Se explica cómo se realizó la conexión y el protocolo utilizado en el enlace, donde no se utilizó otro hardware como traductor de los códigos enviados, el resultado fue una interfaz serial donde se puede visualizar como el robot se mueve en una interfaz gráfica virtual y recrea estos movimientos físicamente. El manipulador por ser antiguo tiene un tiempo de respuesta relativamente lento, aun así, logra interpretar y procesar las órdenes enviadas.The present work proposes the solution of the inverse and direct kinematics of a Melfa Mitsubishi RV-M1 manipulator, through an operation interface. It begins with a compilation of the investigation carried out of the robot in which its kinematic solutions were included and the explanation of the manipulation by means of software, from this guide data are taken. In this way the solution was made by means of a calculation and programming program that allows the user to see through a graphic interface the initial and final location of the manipulator. It was necessary to have physical interaction with the machine, to make the measurements and achieve greater precision in the modeling, the SOLIDWORKS® program was used, where the respective parts and restrictions were created, it was determined that it was adequate due to the process of export to MATLAB® r2017a the result was a block diagram where you can add the angular restrictions of the manipulator, in its interface you added different elements that allow manipulation and control by the end user, creating a friendly graphical interface and easy to use. To complete this part we proceeded to incorporate the solution process of the direct and inverse kinematics, where to make the angular variation of any link the result of the Cartesian coordinates of the final tool was obtained. This can be visualized as Px, Py and Pz , the graphical interface serves as support for the understanding of the physical movements that can be achieved. Finally, the results and solutions of the direct and inverse kinematics in the MATLAB® program were verified, by means of the connection and later sending of orders through the aforementioned software, in such a way that the manipulator in its intrinsic language can interpret them, with base to the list of commands mentioned in the user manual. The first step was a technical evaluation and subsequent maintenance to the robot of the mechanical laboratory, being able to correct certain errors. It explains how the connection was made and the protocol used in the link, where no other hardware was used as a translator of the codes sent, the result was a parallel interface where you can visualize how the robot moves in a virtual graphic interface and recreates these movements physically. The manipulator, being old, has a relatively slow response time, even so, it is able to interpret and process the orders sent.pdfspaAtribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2ManipuladorMitsubishi RV-M1InterfazCinemática Inversa y Cinemática DirectaINGENIERÍA MECÁNICA - TESIS Y DISERTACIONES ACADÉMICASROBÓTICACINEMÁTICAROBOTSManipulatorMitsubishi RV-M1InterfaceReverse Kinematics and Direct KinematicsDesarrollo Matemático y Aplicación de la Cinemática Inversa por Medio de un Software de Cálculo y Programación para el Robot Mitsubishi RV-M1Mathematical development and application of the inverse kinematics by means of a calculation and programming software for the Mitsubishi RV-M1 RobotMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILGómezCamposDaríoAndrés2018.pdf.jpgGómezCamposDaríoAndrés2018.pdf.jpgIM Thumbnailimage/jpeg4673http://repository.udistrital.edu.co/bitstream/11349/13402/6/G%c3%b3mezCamposDar%c3%adoAndr%c3%a9s2018.pdf.jpg7f8ddafe1a88cde8f812fc9993ad83d5MD56open accessCC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://repository.udistrital.edu.co/bitstream/11349/13402/2/license_url4afdbb8c545fd630ea7db775da747b2fMD52open accesslicense_textlicense_texttext/html; charset=utf-80http://repository.udistrital.edu.co/bitstream/11349/13402/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53open accesslicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://repository.udistrital.edu.co/bitstream/11349/13402/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54open accessORIGINALGómezCamposDaríoAndrés2018.pdfGómezCamposDaríoAndrés2018.pdfTrabajo de Gradoapplication/pdf3498512http://repository.udistrital.edu.co/bitstream/11349/13402/1/G%c3%b3mezCamposDar%c3%adoAndr%c3%a9s2018.pdf73fadc79af0489c1a5114ffefe0b2345MD51open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87163http://repository.udistrital.edu.co/bitstream/11349/13402/5/license.txtda5c6a3ca62d5dd4853000a60fee7083MD55open access11349/13402oai:repository.udistrital.edu.co:11349/134022023-06-13 14:21:13.748open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMClTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIHVzbyBwYXJhIHB1YmxpY2FjacOzbiBkZSBvYnJhcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChSSVVEKQoKQ29tbyB0aXR1bGFyKGVzKSBkZWwob3MpIGRlcmVjaG8ocykgZGUgYXV0b3IsIGNvbmZpZXJvIChlcmltb3MpIGEgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgKGVuIGFkZWxhbnRlLCBMQSBVTklWRVJTSURBRCkgdW5hIGxpY2VuY2lhIHBhcmEgdXNvIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBpbnRlZ3JhcsOhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgKGVuIGFkZWxhbnRlLCBSSVVEKSwgZGUgYWN1ZXJkbyBhIGxhcyBzaWd1aWVudGVzIHJlZ2xhcywgbGFzIGN1YWxlcyBkZWNsYXJvIChhbW9zKSBjb25vY2VyIHkgYWNlcHRhcjoKCmEpCUVzdGFyw6EgdmlnZW50ZSBhIHBhcnRpciBkZSBsYSBmZWNoYSBlbiBxdWUgc2UgaW5jbHV5YSBlbiBlbCBSSVVEIHkgaGFzdGEgcG9yIHVuIHBsYXpvIGRlIGRpZXogKDEwKSBBw7FvcywgcHJvcnJvZ2FibGUgaW5kZWZpbmlkYW1lbnRlIHBvciBlbCB0aWVtcG8gcXVlIGR1cmUgZWwgZGVyZWNobyBQYXRyaW1vbmlhbCBkZWwgYXV0b3I7IGxhIGN1YWwgcG9kcsOhIGRhcnNlIHBvciB0ZXJtaW5hZGEgcHJldmlhIHNvbGljaXR1ZCBhIExBIFVOSVZFUlNJREFEIHBvciBlc2NyaXRvIGNvbiB1bmEgYW50ZWxhY2nDs24gZGUgZG9zICgyKSBtZXNlcyBhbnRlcyBkZWwgdmVuY2ltaWVudG8gZGVsIHBsYXpvIGluaWNpYWwgbyBlbCBkZSBzdShzKSBwcsOzcnJvZ2EocykuICAKCmIpCUxBIFVOSVZFUlNJREFEIHBvZHLDoSBwdWJsaWNhciBsYSBvYnJhIGVuIGxhcyBkaXN0aW50YXMgdmVyc2lvbmVzIHJlcXVlcmlkYXMgcG9yIGVsIFJJVUQgKGRpZ2l0YWwsIGltcHJlc28sIGVsZWN0csOzbmljbyB1IG90cm8gbWVkaW8gY29ub2NpZG8gbyBwb3IgY29ub2NlcikgTEEgVU5JVkVSU0lEQUQgbm8gc2Vyw6EgcmVzcG9uc2FibGUgZW4gZWwgZXZlbnRvIHF1ZSBlbCBkb2N1bWVudG8gYXBhcmV6Y2EgcmVmZXJlbmNpYWRvIGVuIG1vdG9yZXMgZGUgYsO6c3F1ZWRhIG8gcmVwb3NpdG9yaW9zIGRpZmVyZW50ZXMgYWwgUklVRCwgdW5hIHZleiBlbChvcykgYXV0b3IoZXMpIHNvbGljaXRlbiBzdSBlbGltaW5hY2nDs24gZGVsIFJJVUQsIGRhZG8gcXVlIGxhIG1pc21hIHNlcsOhIHB1YmxpY2FkYSBlbiBJbnRlcm5ldC4gCgpjKQlMYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIGxvcyBhdXRvcmVzIHJlbnVuY2lhbiBhIHJlY2liaXIgYmVuZWZpY2lvIGFsZ3VubyBwb3IgbGEgcHVibGljYWNpw7NuLCBkaXN0cmlidWNpw7NuLCBjb211bmljYWNpw7NuIHDDumJsaWNhIHkgY3VhbHF1aWVyIG90cm8gdXNvIHF1ZSBzZSBoYWdhIGVuIGxvcyB0w6lybWlub3MgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBkZSBsYSBsaWNlbmNpYSBkZSB1c28gY29uIHF1ZSBzZSBwdWJsaWNhIChDcmVhdGl2ZSBDb21tb25zKS4KCmQpCUxvcyBjb250ZW5pZG9zIHB1YmxpY2Fkb3MgZW4gZWwgUklVRCBzb24gb2JyYShzKSBvcmlnaW5hbChlcykgc29icmUgbGEgY3VhbChlcykgZWwob3MpIGF1dG9yKGVzKSBjb21vIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IsIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgTEEgVU5JVkVSU0lEQUQgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gTEEgVU5JVkVSU0lEQUQgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uCgplKQlMQSBVTklWRVJTSURBRCBwb2Ryw6EgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIG1heGltaXphciBsYSB2aXNpYmlsaWRhZCBlbCB1c28geSBlbCBpbXBhY3RvIGRlIGxhIHByb2R1Y2Npw7NuIGNpZW50w61maWNhLCBhcnTDrXN0aWNhIHkgYWNhZMOpbWljYSBlbiBsYSBjb211bmlkYWQgbG9jYWwsIG5hY2lvbmFsIG8gaW50ZXJuYWNpb25hbC4gCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbyAJCkF1dG9yCUFwZWxsaWRvcwlOb21icmVzCjEJCQoyCQkKMwkJCiAKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8gIAoKaykJQWNlcHRvKGFtb3MpIHF1ZSBMQSBVTklWRVJTSURBRCBubyBzZSByZXNwb25zYWJpbGl6YSBwb3IgbGFzIGluZnJhY2Npb25lcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIERlcmVjaG9zIGRlIEF1dG9yIGNhdXNhZGFzIHBvciBsb3MgdGl0dWxhcmVzIGRlIGxhIHByZXNlbnRlIExpY2VuY2lhIHkgZGVjbGFyYW1vcyBxdWUgbWFudGVuZHLDqSAoZW1vcykgaW5kZW1uZSBhIExBIFVOSVZFUlNJREFEIHBvciBsYXMgcmVjbGFtYWNpb25lcyBsZWdhbGVzIGRlIGN1YWxxdWllciB0aXBvIHF1ZSBsbGVnYXJlbiBhIHByZXNlbnRhcnNlIHBvciB2aW9sYWNpw7NuIGRlIGRlcmVjaG9zIGEgbGEgcHJvcGllZGFkIGludGVsZWN0dWFsIG8gZGUgQXV0b3IgcmVsYWNpb25hZG9zIGNvbiBsb3MgZG9jdW1lbnRvcyByZWdpc3RyYWRvcyBlbiBlbCBSSVVELgoKbCkJRWwgKGxvcykgYXV0b3IoZXMpIG1hbmlmaWVzdGEobW9zKSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCwgZGUgZXhjbHVzaXZhIGF1dG9yw61hLCB5IHNlIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zOyBkZSB0YWwgc3VlcnRlLCBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhLCBlbCAobG9zKSBlc3R1ZGlhbnRlKHMpIOKAkyBhdXRvcihlcykgYXN1bWlyw6EobikgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgeSBzYWxkcsOhKG4pIGVuIGRlZmVuc2EgZGUgbG9zIGRlcmVjaG9zIGFxdcOtIGF1dG9yaXphZG9zLiBQYXJhIHRvZG9zIGxvcyBlZmVjdG9zLCBMQSBVTklWRVJTSURBRCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAgIAoKCm0pCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGNvbm96Y28oY2Vtb3MpIGxhIGF1dG9ub23DrWEgeSBsb3MgZGVyZWNob3MsIHF1ZSBwb3NlZShtb3MpIHNvYnJlIGxhIG9icmEgeSwgY29tbyB0YWwsIGVzIChzb21vcykgcmVzcG9uc2FibGUocykgZGVsIGFsY2FuY2UganVyw61kaWNvIHkgbGVnYWwsIGRlIGVzY29nZXIgbGEgb3BjacOzbiBkZSBsYSBwdWJsaWNhY2nDs24gbyBkZSByZXN0cmljY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIGRlbCBkb2N1bWVudG8gcmVnaXN0cmFkbyBlbiBlbCBSSVVELgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgCkRFUkVDSE9TIFkgT0JMSUdBQ0lPTkVTIFJFUVVFUklET1MgUE9SIEVMIFJFU1BFQ1RJVk8gQ09OVFJBVE8gTyBBQ1VFUkRPLgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFbiBjb25zdGFuY2lhIGRlIGxvIGFudGVyaW9yLCBmaXJtbyhhbW9zKSBlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGVuIGxhIGNpdWRhZCBkZSBCb2dvdMOhLCBELkMuLCBhIGxvcyAKCgpGSVJNQSBERSBMT1MgVElUVUxBUkVTIERFIERFUkVDSE9TIERFIEFVVE9SCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCUNvcnJlbyBFbGVjdHLDs25pY28gCjEJCjIJCjMJCgpOb21icmUgZGUgRGlyZWN0b3IoZXMpIGRlIEdyYWRvOgoKMQkKMgkKMwkKCk5vbWJyZSBGYWN1bHRhZCB5IFByb3llY3RvIEN1cnJpY3VsYXI6CgpGYWN1bHRhZAlQcm95ZWN0byBDdXJyaWN1bGFyCgkKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEKCgo= |