¿Qué es la Bioinformática?

Los científicos de la vida y los médicos siempre están cansados de recopilar datos y pruebas, de hecho, la mente humana ya no puede transportar tantos datos. Para ello un nuevo campo ha surgido, la BIOINFORMÁTICA. Ese es un campo de investigación científica integrador de las ciencias de la vida que combina la Biología y la Tecnología de la Información (TI).

El objetivo de la bioinformática es desarrollar métodos y herramientas para estudiar grandes volúmenes de datos utilizando TI para que los datos puedan organizarse y usarse con un propósito.

La Bioinformática y el Software de Bioinformática facilitan los trabajos de otros campos biológicos, lo que, en consecuencia, convierte a la Bioinformática en una herramienta muy importante.

¡La bioinformática facilita los trabajos de otros campos biológicos, lo que la convierte en una herramienta crucial!

La bioinformática tiene un valor crucial en:

* Secuenciación del genoma: El proyecto del genoma humano es el mayor logro de la Bioinformática.

* Descubrimiento, diseño y entrega de fármacos.

* Estudio de variantes que dan lugar a diversas enfermedades.

* Farmacogenómica, que permite adaptar medicamentos personalizados según el genoma del cliente para minimizar los efectos adversos.

* Interpretación y análisis de datos biológicos.

* Estudio de la evolución molecular.

* Laboratorios de investigación en biotecnología y biología molecular.

* Genómica y proteómica.

* Predicción de estructura.

* Filogenética y más.

RELACIÓN CON LA GENÉTICA

¡La bioinformática juega un papel integral en la genética!

• Las herramientas bioinformáticas ayudan en la comparación y organización de datos genómicos y genéticos.

• Esto se hace con la ayuda de algoritmos de software y bases de datos biológicas.

• La bioinformática ayuda a determinar la función de los genes y predecir las estructuras de los genes.

• También ayuda en el análisis de variación y expresión de genes (Figura 1).

• El sistema computacional de la bioinformática es muy útil en el análisis de la secuencia genómica dentro del organismo, de hecho; ¡La bioinformática fue un área de investigación clave en HGP! El Proyecto Genoma Humano es uno de los proyectos genéticos más grandes que fue un éxito gracias a la bioinformática.

Figura 1: Sinergia de cinco herramientas bioinformáticas.

Tomado de Goldman et al. 2020

RELACIÓN CON LA BIOLOGÍA MOLECULAR

¡La bioinformática es un componente extremadamente crucial de la biología molecular!

• La bioinformática ayuda y facilita el estudio de varios elementos de la Biología Molecular y sus facetas evolutivas.

• Para analizar la estructura y composición de moléculas importantes como el ADN y las proteínas, se manipulan herramientas y modelos bioinformáticos. ¡La implementación de la Bioinformática ha ayudado a superar las limitaciones de las investigaciones en Biología Molecular!

• Nos ha ayudado a superar las limitaciones de las metodologías in vivo.

• También nos ha ayudado a evitar procedimientos de laboratorio largos y difíciles que son propensos a errores simplemente reemplazándolos con software que pueden utilizar datos sin procesar para generar resultados útiles. Por ejemplo; ¡Softwares de predicción de estructuras!

• Dichos softwares se utilizan para deducir las posibles estructuras 3D de la proteína utilizando la secuencia de aminoácidos de dicha proteína (Figura 2).

• Esto proporciona una comprensión más profunda del funcionamiento, plegamiento y comportamiento de las proteínas. Estos softwares se pueden utilizar para observar más a fondo los efectos de las mutaciones en las proteínas; su función y estructura.

Figura 2: Flujo de trabajo en docking molecular.

Tomado de Bender et al. 2021

RELACIÓN CON LA BIOSTADÍSTICA Y LAS MATEMÁTICAS

¡La estadística y las matemáticas pueden aportar mucho a la Bioinformática!

• La bioestadística es una interrelación entre la biología y la estadística que se ocupa de los datos sobre los organismos vivos, sus problemas y las tasas de propagación de enfermedades, así como el diseño, la recopilación y el análisis de los datos obtenidos de los experimentos biológicos.

• Algunas contribuciones notables de la bioestadística a la bioinformática se encuentran en los campos de;

  1. Diseño experimental y reproducibilidad.

  2. Preprocesamiento y extracción de características.

  3. Modelado unificado.

  4. Estructurar el aprendizaje y la integración.

• La biomatemática es el uso de lógicas, fórmulas, métodos o principios matemáticos para resolver problemas biológicos en organismos vivos.

• Se utiliza en Bioinformática para extraer información de utilidad a partir de grandes cantidades de datos obtenidos experimentalmente (Figura 3).

• Estos datos son sobre la estructura del ADN y las proteínas.

• La bioinformática también utiliza la probabilidad, el cálculo y las matemáticas discretas.

Figura 3: Bioinformática Estadística.

Tomado de Purdue University

RELACIÓN CON LA PROGRAMACIÓN DE COMPUTADORAS

Bioinformática; ¡una intersección de la informática y la biología!

• La necesidad vertiginosa de analizar y procesar una cantidad prodigiosa de datos biológicos y de diseñar algoritmos para ayudar que muestra que la programación se ha convertido en una habilidad integral e imprescindible para los biólogos.

• Los expertos en informática deben aprender genómica y proteómica para procesar datos biológicos, mientras que los biólogos moleculares deben dominar la programación informática y las técnicas de análisis de datos. La bioinformática es competente en ambos, por lo que puede ayudar en el proyecto y las investigaciones de este último sin que tengan que salirse de su camino.

• La bioinformática tiene como objetivo diseñar software y algoritmos que puedan modelar la expresión y función de los genes utilizando las secuencias de genes.

Las habilidades de los siguientes son absolutamente necesarias para la Bioinformática:

  1. LINUX

  2. UNIX

Algunas otras herramientas importantes requeridas en Bioinformática son:

  1. BioPERL

  2. BioPYTHON

  3. BioJAVA

  4. BioCONDUCTOR

  5. BioCLIPSE

  6. BioSQL

Usando Python se han propuesto algunos modelos:

Modelo General:

En investigaciones recientes en el área del cáncer, se pueden partir de modelos generales. Se trata de describir la evolución tumoral simulando un modelo de cuadrículas bidimensional o tridimensional:

\[{P_b}= b \frac{{(1+{s_d})}^{{k_d}}}{{(1+{s_p})}^{{k_p}}}\]

\[{P_d}= d\]

Parámetros del modelo de Heterogeneidad Tumoral:

En base a lo informado en el estudio, se usaron los siguientes valores de parámetros: \({S_d}= 0.1\), \({S_p}=10^{-3}\), \({T_d}=700\), \({T_p}=10^6\), \({μ}=10^{-8}\)

La heterogeneidad de las mutaciones del conductor y del pasajero se calcula utilizando la entropía de Shannon, dada por:

\[H=\exp \left(-\mathop{\sum}\limits _{i}{p}_{i}\mathrm{log}\,{p}_{i}\right)\]

donde \({P_i}\) es la proporción de células dentro de la población con exactamente i mutaciones de conductor (\({H_d}\)) o pasajero (\({H_p}\)).

Figura 4: Parametrización del modelo de heterogeneidad del CDIS.

Tomado de West et al. 2021

Figura 5: Modelo tridimensional de evolución tumoral limitada por la estructura de la red ductal.

Tomado de West et al. 2021

Aquí dejo un pequeño vídeo en donde hacen uso tanto de Python como de R para analizar la Data de Microbioma:


LS0tDQp0aXRsZTogIsK/KipQb3IgcXXDqSBlcyB0YW4gaW1wb3J0YW50ZSBsYSBCaW9pbmZvcm3DoXRpY2EqKj8iDQphdXRob3I6ICJMdWlzIEouIEh1bWUiDQpkYXRlOiAiMjAyMi8wNS8wNSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KZW1haWw6IGx1am9qaXVtQGdtYWlsLmNvbQ0KcGhvbmU6IDk3NjA5ODMzOQ0KcG9zaXRpb246IEVzdC4gQ2llbmNpYXMgQmlvbMOzZ2ljYXMgZGVsIDdtbyBjaWNsbw0Kc3VidGl0bGU6ICcqKipSZWxhY2lvbmVzIMOtbnRpbWFzIGRlIGxhIEJpb2luZm9ybcOhdGljYSoqKicNCi0tLQ0KDQojICoqwr9RdcOpIGVzIGxhIEJpb2luZm9ybcOhdGljYT8qKg0KDQpMb3MgY2llbnTDrWZpY29zIGRlIGxhIHZpZGEgeSBsb3MgbcOpZGljb3Mgc2llbXByZSBlc3TDoW4gY2Fuc2Fkb3MgZGUgcmVjb3BpbGFyIGRhdG9zIHkgcHJ1ZWJhcywgZGUgaGVjaG8sIGxhIG1lbnRlIGh1bWFuYSB5YSBubyBwdWVkZSB0cmFuc3BvcnRhciB0YW50b3MgZGF0b3MuIFBhcmEgZWxsbyB1biBudWV2byBjYW1wbyBoYSBzdXJnaWRvLCBsYSAqKkJJT0lORk9STcOBVElDQSoqLiBFc2UgZXMgdW4gY2FtcG8gZGUgaW52ZXN0aWdhY2nDs24gY2llbnTDrWZpY2EgaW50ZWdyYWRvciBkZSBsYXMgY2llbmNpYXMgZGUgbGEgdmlkYSBxdWUgY29tYmluYSBsYSBCaW9sb2fDrWEgeSBsYSBUZWNub2xvZ8OtYSBkZSBsYSBJbmZvcm1hY2nDs24gKFRJKS4NCg0KRWwgKipvYmpldGl2byoqIGRlIGxhIGJpb2luZm9ybcOhdGljYSBlcyBkZXNhcnJvbGxhciBtw6l0b2RvcyB5IGhlcnJhbWllbnRhcyBwYXJhIGVzdHVkaWFyIGdyYW5kZXMgdm9sw7ptZW5lcyBkZSBkYXRvcyB1dGlsaXphbmRvIFRJIHBhcmEgcXVlIGxvcyBkYXRvcyBwdWVkYW4gb3JnYW5pemFyc2UgeSB1c2Fyc2UgY29uIHVuIHByb3DDs3NpdG8uDQoNCkxhIEJpb2luZm9ybcOhdGljYSB5IGVsIFNvZnR3YXJlIGRlIEJpb2luZm9ybcOhdGljYSBmYWNpbGl0YW4gbG9zIHRyYWJham9zIGRlIG90cm9zIGNhbXBvcyBiaW9sw7NnaWNvcywgbG8gcXVlLCBlbiBjb25zZWN1ZW5jaWEsIGNvbnZpZXJ0ZSBhIGxhIEJpb2luZm9ybcOhdGljYSBlbiB1bmEgaGVycmFtaWVudGEgbXV5IGltcG9ydGFudGUuDQoNCioqwqFMYSBiaW9pbmZvcm3DoXRpY2EgZmFjaWxpdGEgbG9zIHRyYWJham9zIGRlIG90cm9zIGNhbXBvcyBiaW9sw7NnaWNvcywgbG8gcXVlIGxhIGNvbnZpZXJ0ZSBlbiB1bmEgaGVycmFtaWVudGEgY3J1Y2lhbCEqKg0KDQoqTGEgYmlvaW5mb3Jtw6F0aWNhIHRpZW5lIHVuIHZhbG9yIGNydWNpYWwgZW46Kg0KDQpcKiBTZWN1ZW5jaWFjacOzbiBkZWwgZ2Vub21hOiBFbCBwcm95ZWN0byBkZWwgZ2Vub21hIGh1bWFubyBlcyBlbCBtYXlvciBsb2dybyBkZSBsYSBCaW9pbmZvcm3DoXRpY2EuDQoNClwqIERlc2N1YnJpbWllbnRvLCBkaXNlw7FvIHkgZW50cmVnYSBkZSBmw6FybWFjb3MuDQoNClwqIEVzdHVkaW8gZGUgdmFyaWFudGVzIHF1ZSBkYW4gbHVnYXIgYSBkaXZlcnNhcyBlbmZlcm1lZGFkZXMuDQoNClwqIEZhcm1hY29nZW7Ds21pY2EsIHF1ZSBwZXJtaXRlIGFkYXB0YXIgbWVkaWNhbWVudG9zIHBlcnNvbmFsaXphZG9zIHNlZ8O6biBlbCBnZW5vbWEgZGVsIGNsaWVudGUgcGFyYSBtaW5pbWl6YXIgbG9zIGVmZWN0b3MgYWR2ZXJzb3MuDQoNClwqIEludGVycHJldGFjacOzbiB5IGFuw6FsaXNpcyBkZSBkYXRvcyBiaW9sw7NnaWNvcy4NCg0KXCogRXN0dWRpbyBkZSBsYSBldm9sdWNpw7NuIG1vbGVjdWxhci4NCg0KXCogTGFib3JhdG9yaW9zIGRlIGludmVzdGlnYWNpw7NuIGVuIGJpb3RlY25vbG9nw61hIHkgYmlvbG9nw61hIG1vbGVjdWxhci4NCg0KXCogR2Vuw7NtaWNhIHkgcHJvdGXDs21pY2EuDQoNClwqIFByZWRpY2Npw7NuIGRlIGVzdHJ1Y3R1cmEuDQoNClwqIEZpbG9nZW7DqXRpY2EgeSBtw6FzLg0KDQojIyBSRUxBQ0nDk04gQ09OIExBIEdFTsOJVElDQQ0KDQoqKsKhTGEgYmlvaW5mb3Jtw6F0aWNhIGp1ZWdhIHVuIHBhcGVsIGludGVncmFsIGVuIGxhIGdlbsOpdGljYSEqKg0KDQrigKIgTGFzIGhlcnJhbWllbnRhcyBiaW9pbmZvcm3DoXRpY2FzIGF5dWRhbiBlbiBsYSBjb21wYXJhY2nDs24geSBvcmdhbml6YWNpw7NuIGRlIGRhdG9zIGdlbsOzbWljb3MgeSBnZW7DqXRpY29zLg0KDQrigKIgRXN0byBzZSBoYWNlIGNvbiBsYSBheXVkYSBkZSBhbGdvcml0bW9zIGRlIHNvZnR3YXJlIHkgYmFzZXMgZGUgZGF0b3MgYmlvbMOzZ2ljYXMuDQoNCuKAoiBMYSBiaW9pbmZvcm3DoXRpY2EgYXl1ZGEgYSBkZXRlcm1pbmFyIGxhIGZ1bmNpw7NuIGRlIGxvcyBnZW5lcyB5IHByZWRlY2lyIGxhcyBlc3RydWN0dXJhcyBkZSBsb3MgZ2VuZXMuDQoNCuKAoiBUYW1iacOpbiBheXVkYSBlbiBlbCBhbsOhbGlzaXMgZGUgdmFyaWFjacOzbiB5IGV4cHJlc2nDs24gZGUgZ2VuZXMgKCoqRmlndXJhIDEqKikuDQoNCuKAoiBFbCBzaXN0ZW1hIGNvbXB1dGFjaW9uYWwgZGUgbGEgYmlvaW5mb3Jtw6F0aWNhIGVzIG11eSDDunRpbCBlbiBlbCBhbsOhbGlzaXMgZGUgbGEgc2VjdWVuY2lhIGdlbsOzbWljYSBkZW50cm8gZGVsIG9yZ2FuaXNtbywgZGUgaGVjaG87IMKhTGEgYmlvaW5mb3Jtw6F0aWNhIGZ1ZSB1biDDoXJlYSBkZSBpbnZlc3RpZ2FjacOzbiBjbGF2ZSBlbiBIR1AhIEVsIFByb3llY3RvIEdlbm9tYSBIdW1hbm8gZXMgdW5vIGRlIGxvcyBwcm95ZWN0b3MgZ2Vuw6l0aWNvcyBtw6FzIGdyYW5kZXMgcXVlIGZ1ZSB1biDDqXhpdG8gZ3JhY2lhcyBhIGxhIGJpb2luZm9ybcOhdGljYS4NCg0KPGNlbnRlcj4NCg0KIyMjIyAqKkZpZ3VyYSAxOiBTaW5lcmdpYSBkZSBjaW5jbyBoZXJyYW1pZW50YXMgYmlvaW5mb3Jtw6F0aWNhcy4qKg0KDQo8Y2VudGVyPg0KDQohW10oaW1hZ2VuQi5wbmcpe3dpZHRoPSI2MDAifQ0KDQpUb21hZG8gZGUgW0dvbGRtYW4gZXQgYWwuIDIwMjBdKGh0dHBzOi8vZG9pLm9yZy8xMC4xMDM4L3M0MTQ2Ny0wMjAtMTY3ODUtNil7dGFyZ2V0PSJfYmxhbmsifQ0KDQo8L2NlbnRlcj4NCg0KIyMgUkVMQUNJw5NOIENPTiBMQSBCSU9MT0fDjUEgTU9MRUNVTEFSDQoNCioqwqFMYSBiaW9pbmZvcm3DoXRpY2EgZXMgdW4gY29tcG9uZW50ZSBleHRyZW1hZGFtZW50ZSBjcnVjaWFsIGRlIGxhIGJpb2xvZ8OtYSBtb2xlY3VsYXIhKioNCg0K4oCiIExhIGJpb2luZm9ybcOhdGljYSBheXVkYSB5IGZhY2lsaXRhIGVsIGVzdHVkaW8gZGUgdmFyaW9zIGVsZW1lbnRvcyBkZSBsYSBCaW9sb2fDrWEgTW9sZWN1bGFyIHkgc3VzIGZhY2V0YXMgZXZvbHV0aXZhcy4NCg0K4oCiIFBhcmEgYW5hbGl6YXIgbGEgZXN0cnVjdHVyYSB5IGNvbXBvc2ljacOzbiBkZSBtb2zDqWN1bGFzIGltcG9ydGFudGVzIGNvbW8gZWwgQUROIHkgbGFzIHByb3Rlw61uYXMsIHNlIG1hbmlwdWxhbiBoZXJyYW1pZW50YXMgeSBtb2RlbG9zIGJpb2luZm9ybcOhdGljb3MuIMKhTGEgaW1wbGVtZW50YWNpw7NuIGRlIGxhIEJpb2luZm9ybcOhdGljYSBoYSBheXVkYWRvIGEgc3VwZXJhciBsYXMgbGltaXRhY2lvbmVzIGRlIGxhcyBpbnZlc3RpZ2FjaW9uZXMgZW4gQmlvbG9nw61hIE1vbGVjdWxhciENCg0K4oCiIE5vcyBoYSBheXVkYWRvIGEgc3VwZXJhciBsYXMgbGltaXRhY2lvbmVzIGRlIGxhcyBtZXRvZG9sb2fDrWFzICppbiB2aXZvKi4NCg0K4oCiIFRhbWJpw6luIG5vcyBoYSBheXVkYWRvIGEgZXZpdGFyIHByb2NlZGltaWVudG9zIGRlIGxhYm9yYXRvcmlvIGxhcmdvcyB5IGRpZsOtY2lsZXMgcXVlIHNvbiBwcm9wZW5zb3MgYSBlcnJvcmVzIHNpbXBsZW1lbnRlIHJlZW1wbGF6w6FuZG9sb3MgY29uIHNvZnR3YXJlIHF1ZSBwdWVkZW4gdXRpbGl6YXIgZGF0b3Mgc2luIHByb2Nlc2FyIHBhcmEgZ2VuZXJhciByZXN1bHRhZG9zIMO6dGlsZXMuIFBvciBlamVtcGxvOyDCoVNvZnR3YXJlcyBkZSBwcmVkaWNjacOzbiBkZSBlc3RydWN0dXJhcyENCg0K4oCiIERpY2hvcyBzb2Z0d2FyZXMgc2UgdXRpbGl6YW4gcGFyYSBkZWR1Y2lyIGxhcyBwb3NpYmxlcyBlc3RydWN0dXJhcyAzRCBkZSBsYSBwcm90ZcOtbmEgdXRpbGl6YW5kbyBsYSBzZWN1ZW5jaWEgZGUgYW1pbm/DoWNpZG9zIGRlIGRpY2hhIHByb3Rlw61uYSAoKipGaWd1cmEgMioqKS4NCg0K4oCiIEVzdG8gcHJvcG9yY2lvbmEgdW5hIGNvbXByZW5zacOzbiBtw6FzIHByb2Z1bmRhIGRlbCBmdW5jaW9uYW1pZW50bywgcGxlZ2FtaWVudG8geSBjb21wb3J0YW1pZW50byBkZSBsYXMgcHJvdGXDrW5hcy4gRXN0b3Mgc29mdHdhcmVzIHNlIHB1ZWRlbiB1dGlsaXphciBwYXJhIG9ic2VydmFyIG3DoXMgYSBmb25kbyBsb3MgZWZlY3RvcyBkZSBsYXMgbXV0YWNpb25lcyBlbiBsYXMgcHJvdGXDrW5hczsgc3UgZnVuY2nDs24geSBlc3RydWN0dXJhLg0KDQo8Y2VudGVyPg0KDQojIyMjICoqRmlndXJhIDI6IEZsdWpvIGRlIHRyYWJham8gZW4gZG9ja2luZyBtb2xlY3VsYXIuKioNCg0KPGNlbnRlcj4NCg0KIVtdKGltYWdlbkEucG5nKXt3aWR0aD0iNjAwIn0NCg0KVG9tYWRvIGRlIFtCZW5kZXIgZXQgYWwuIDIwMjFdKGh0dHBzOi8vZG9pLm9yZy8xMC4xMDM4L3M0MTU5Ni0wMjEtMDA1OTcteil7dGFyZ2V0PSJfYmxhbmsifQ0KDQo8L2NlbnRlcj4NCg0KIyMgUkVMQUNJw5NOIENPTiBMQSBCSU9TVEFEw41TVElDQSBZIExBUyBNQVRFTcOBVElDQVMNCg0KKirCoUxhIGVzdGFkw61zdGljYSB5IGxhcyBtYXRlbcOhdGljYXMgcHVlZGVuIGFwb3J0YXIgbXVjaG8gYSBsYSBCaW9pbmZvcm3DoXRpY2EhKioNCg0K4oCiIExhIGJpb2VzdGFkw61zdGljYSBlcyB1bmEgaW50ZXJyZWxhY2nDs24gZW50cmUgbGEgYmlvbG9nw61hIHkgbGEgZXN0YWTDrXN0aWNhIHF1ZSBzZSBvY3VwYSBkZSBsb3MgZGF0b3Mgc29icmUgbG9zIG9yZ2FuaXNtb3Mgdml2b3MsIHN1cyBwcm9ibGVtYXMgeSBsYXMgdGFzYXMgZGUgcHJvcGFnYWNpw7NuIGRlIGVuZmVybWVkYWRlcywgYXPDrSBjb21vIGVsIGRpc2XDsW8sIGxhIHJlY29waWxhY2nDs24geSBlbCBhbsOhbGlzaXMgZGUgbG9zIGRhdG9zIG9idGVuaWRvcyBkZSBsb3MgZXhwZXJpbWVudG9zIGJpb2zDs2dpY29zLg0KDQrigKIgQWxndW5hcyBjb250cmlidWNpb25lcyBub3RhYmxlcyBkZSBsYSBiaW9lc3RhZMOtc3RpY2EgYSBsYSBiaW9pbmZvcm3DoXRpY2Egc2UgZW5jdWVudHJhbiBlbiBsb3MgY2FtcG9zIGRlOw0KDQoxLiAgRGlzZcOxbyBleHBlcmltZW50YWwgeSByZXByb2R1Y2liaWxpZGFkLg0KDQoyLiAgUHJlcHJvY2VzYW1pZW50byB5IGV4dHJhY2Npw7NuIGRlIGNhcmFjdGVyw61zdGljYXMuDQoNCjMuICBNb2RlbGFkbyB1bmlmaWNhZG8uDQoNCjQuICBFc3RydWN0dXJhciBlbCBhcHJlbmRpemFqZSB5IGxhIGludGVncmFjacOzbi4NCg0K4oCiIExhIGJpb21hdGVtw6F0aWNhIGVzIGVsIHVzbyBkZSBsw7NnaWNhcywgZsOzcm11bGFzLCBtw6l0b2RvcyBvIHByaW5jaXBpb3MgbWF0ZW3DoXRpY29zIHBhcmEgcmVzb2x2ZXIgcHJvYmxlbWFzIGJpb2zDs2dpY29zIGVuIG9yZ2FuaXNtb3Mgdml2b3MuDQoNCuKAoiBTZSB1dGlsaXphIGVuIEJpb2luZm9ybcOhdGljYSBwYXJhIGV4dHJhZXIgaW5mb3JtYWNpw7NuIGRlIHV0aWxpZGFkIGEgcGFydGlyIGRlIGdyYW5kZXMgY2FudGlkYWRlcyBkZSBkYXRvcyBvYnRlbmlkb3MgZXhwZXJpbWVudGFsbWVudGUgKCoqRmlndXJhIDMqKikuDQoNCuKAoiBFc3RvcyBkYXRvcyBzb24gc29icmUgbGEgZXN0cnVjdHVyYSBkZWwgQUROIHkgbGFzIHByb3Rlw61uYXMuDQoNCuKAoiBMYSBiaW9pbmZvcm3DoXRpY2EgdGFtYmnDqW4gdXRpbGl6YSBsYSBwcm9iYWJpbGlkYWQsIGVsIGPDoWxjdWxvIHkgbGFzIG1hdGVtw6F0aWNhcyBkaXNjcmV0YXMuDQoNCjxjZW50ZXI+DQoNCiMjIyMgKipGaWd1cmEgMzogQmlvaW5mb3Jtw6F0aWNhIEVzdGFkw61zdGljYS4qKg0KDQo8Y2VudGVyPg0KDQohW10oZXN0YWRpc3RpY2ExLnBuZyl7d2lkdGg9IjUwMCJ9DQoNClRvbWFkbyBkZSBbUHVyZHVlIFVuaXZlcnNpdHldKGh0dHBzOi8vd3d3LnN0YXQucHVyZHVlLmVkdS9zYmMvc3RhdGlzdGljYWxfYmlvaW5mb3JtYXRpY3MuaHRtbCl7dGFyZ2V0PSJfYmxhbmsifQ0KDQo8L2NlbnRlcj4NCg0KIyMgUkVMQUNJw5NOIENPTiBMQSBQUk9HUkFNQUNJw5NOIERFIENPTVBVVEFET1JBUw0KDQoqKkJpb2luZm9ybcOhdGljYTsgwqF1bmEgaW50ZXJzZWNjacOzbiBkZSBsYSBpbmZvcm3DoXRpY2EgeSBsYSBiaW9sb2fDrWEhKioNCg0K4oCiIExhIG5lY2VzaWRhZCB2ZXJ0aWdpbm9zYSBkZSBhbmFsaXphciB5IHByb2Nlc2FyIHVuYSBjYW50aWRhZCBwcm9kaWdpb3NhIGRlIGRhdG9zIGJpb2zDs2dpY29zIHkgZGUgZGlzZcOxYXIgYWxnb3JpdG1vcyBwYXJhIGF5dWRhciBxdWUgbXVlc3RyYSBxdWUgbGEgcHJvZ3JhbWFjacOzbiBzZSBoYSBjb252ZXJ0aWRvIGVuIHVuYSBoYWJpbGlkYWQgaW50ZWdyYWwgZSBpbXByZXNjaW5kaWJsZSBwYXJhIGxvcyBiacOzbG9nb3MuDQoNCuKAoiBMb3MgZXhwZXJ0b3MgZW4gaW5mb3Jtw6F0aWNhIGRlYmVuIGFwcmVuZGVyIGdlbsOzbWljYSB5IHByb3Rlw7NtaWNhIHBhcmEgcHJvY2VzYXIgZGF0b3MgYmlvbMOzZ2ljb3MsIG1pZW50cmFzIHF1ZSBsb3MgYmnDs2xvZ29zIG1vbGVjdWxhcmVzIGRlYmVuIGRvbWluYXIgbGEgcHJvZ3JhbWFjacOzbiBpbmZvcm3DoXRpY2EgeSBsYXMgdMOpY25pY2FzIGRlIGFuw6FsaXNpcyBkZSBkYXRvcy4gTGEgYmlvaW5mb3Jtw6F0aWNhIGVzIGNvbXBldGVudGUgZW4gYW1ib3MsIHBvciBsbyBxdWUgcHVlZGUgYXl1ZGFyIGVuIGVsIHByb3llY3RvIHkgbGFzIGludmVzdGlnYWNpb25lcyBkZSBlc3RlIMO6bHRpbW8gc2luIHF1ZSB0ZW5nYW4gcXVlIHNhbGlyc2UgZGUgc3UgY2FtaW5vLg0KDQrigKIgTGEgYmlvaW5mb3Jtw6F0aWNhIHRpZW5lIGNvbW8gb2JqZXRpdm8gZGlzZcOxYXIgc29mdHdhcmUgeSBhbGdvcml0bW9zIHF1ZSBwdWVkYW4gbW9kZWxhciBsYSBleHByZXNpw7NuIHkgZnVuY2nDs24gZGUgbG9zIGdlbmVzIHV0aWxpemFuZG8gbGFzIHNlY3VlbmNpYXMgZGUgZ2VuZXMuDQoNCioqTGFzIGhhYmlsaWRhZGVzIGRlIGxvcyBzaWd1aWVudGVzIHNvbiBhYnNvbHV0YW1lbnRlIG5lY2VzYXJpYXMgcGFyYSBsYSBCaW9pbmZvcm3DoXRpY2E6KioNCg0KMS4gIExJTlVYDQoNCjIuICBVTklYDQoNCioqQWxndW5hcyBvdHJhcyBoZXJyYW1pZW50YXMgaW1wb3J0YW50ZXMgcmVxdWVyaWRhcyBlbiBCaW9pbmZvcm3DoXRpY2Egc29uOioqDQoNCjEuICBCaW9QRVJMDQoNCjIuICBCaW9QWVRIT04NCg0KMy4gIEJpb0pBVkENCg0KNC4gIEJpb0NPTkRVQ1RPUg0KDQo1LiAgQmlvQ0xJUFNFDQoNCjYuICBCaW9TUUwNCg0KDQoqKlVzYW5kbyBQeXRob24gc2UgaGFuIHByb3B1ZXN0byBhbGd1bm9zIG1vZGVsb3M6KioNCg0KKipNb2RlbG8gR2VuZXJhbDoqKg0KDQpFbiBpbnZlc3RpZ2FjaW9uZXMgcmVjaWVudGVzIGVuIGVsIMOhcmVhIGRlbCBjw6FuY2VyLCBzZSBwdWVkZW4gcGFydGlyIGRlIG1vZGVsb3MgZ2VuZXJhbGVzLiBTZSB0cmF0YSBkZSBkZXNjcmliaXIgbGEgZXZvbHVjacOzbiB0dW1vcmFsIHNpbXVsYW5kbyB1biBtb2RlbG8gZGUgY3VhZHLDrWN1bGFzIGJpZGltZW5zaW9uYWwgbyB0cmlkaW1lbnNpb25hbDoNCg0KPGNlbnRlcj4NCg0KJCR7UF9ifT0gYiBcZnJhY3t7KDEre3NfZH0pfV57e2tfZH19fXt7KDEre3NfcH0pfV57e2tfcH19fSQkDQoNCiQke1BfZH09IGQkJA0KPC9jZW50ZXI+DQoNCg0KKipQYXLDoW1ldHJvcyBkZWwgbW9kZWxvIGRlIEhldGVyb2dlbmVpZGFkIFR1bW9yYWw6KioNCg0KRW4gYmFzZSBhIGxvIGluZm9ybWFkbyBlbiBlbCBlc3R1ZGlvLCBzZSB1c2Fyb24gbG9zIHNpZ3VpZW50ZXMgdmFsb3JlcyBkZSBwYXLDoW1ldHJvczogJHtTX2R9PSAwLjEkLCAke1NfcH09MTBeey0zfSQsICR7VF9kfT03MDAkLCAke1RfcH09MTBeNiQsICR7zrx9PTEwXnstOH0kDQoNCkxhIGhldGVyb2dlbmVpZGFkIGRlIGxhcyBtdXRhY2lvbmVzIGRlbCBjb25kdWN0b3IgeSBkZWwgcGFzYWplcm8gc2UgY2FsY3VsYSB1dGlsaXphbmRvIGxhIGVudHJvcMOtYSBkZSBTaGFubm9uLCBkYWRhIHBvcjpcDQoNCiQkSD1cZXhwIFxsZWZ0KC1cbWF0aG9we1xzdW19XGxpbWl0cyBfe2l9e3B9X3tpfVxtYXRocm17bG9nfVwse3B9X3tpfVxyaWdodCkkJA0KDQpkb25kZSAke1BfaX0kIGVzIGxhIHByb3BvcmNpw7NuIGRlIGPDqWx1bGFzIGRlbnRybyBkZSBsYSBwb2JsYWNpw7NuIGNvbiBleGFjdGFtZW50ZSAqKippKioqIG11dGFjaW9uZXMgZGUgY29uZHVjdG9yICgke0hfZH0kKSBvIHBhc2FqZXJvICgke0hfcH0kKS4NClwNCg0KPGNlbnRlcj4NCiMjIyMgKipGaWd1cmEgNDogUGFyYW1ldHJpemFjacOzbiBkZWwgbW9kZWxvIGRlIGhldGVyb2dlbmVpZGFkIGRlbCBDRElTLioqDQoNCjxjZW50ZXI+DQo8IS0taHR0cHM6Ly9tZWRpYS5zcHJpbmdlcm5hdHVyZS5jb20vZnVsbC9zcHJpbmdlci1zdGF0aWMvaW1hZ2UvYXJ0JTNBMTAuMTAzOCUyRnM0MTQ2Ny0wMjEtMjIxMjMtMS9NZWRpYU9iamVjdHMvNDE0NjdfMjAyMV8yMjEyM19GaWczX0hUTUwucG5nP2FzPXdlYnAtLT4NCg0KIVtdKGh0dHBzOi8vbWVkaWEuc3ByaW5nZXJuYXR1cmUuY29tL2Z1bGwvc3ByaW5nZXItc3RhdGljL2ltYWdlL2FydCUzQTEwLjEwMzglMkZzNDE0NjctMDIxLTIyMTIzLTEvTWVkaWFPYmplY3RzLzQxNDY3XzIwMjFfMjIxMjNfRmlnM19IVE1MLnBuZz9hcz13ZWJwKXt3aWR0aD0iODAwIn0NCg0KVG9tYWRvIGRlIFtXZXN0IGV0IGFsLiAyMDIxXShodHRwczovL2RvaS5vcmcvMTAuMTAzOC9zNDE0NjctMDIxLTIyMTIzLTEpe3RhcmdldD0iX2JsYW5rIn0NCjwvY2VudGVyPg0KDQpcDQo8Y2VudGVyPg0KIyMjIyAqKkZpZ3VyYSA1OiBNb2RlbG8gdHJpZGltZW5zaW9uYWwgZGUgZXZvbHVjacOzbiB0dW1vcmFsIGxpbWl0YWRhIHBvciBsYSBlc3RydWN0dXJhIGRlIGxhIHJlZCBkdWN0YWwuKioNCg0KPGNlbnRlcj4NCjwhLS1odHRwczovL21lZGlhLnNwcmluZ2VybmF0dXJlLmNvbS9mdWxsL3NwcmluZ2VyLXN0YXRpYy9pbWFnZS9hcnQlM0ExMC4xMDM4JTJGczQxNDY3LTAyMS0yMjEyMy0xL01lZGlhT2JqZWN0cy80MTQ2N18yMDIxXzIyMTIzX0ZpZzRfSFRNTC5wbmc/YXM9d2VicC0tPg0KDQohW10oaHR0cHM6Ly9tZWRpYS5zcHJpbmdlcm5hdHVyZS5jb20vZnVsbC9zcHJpbmdlci1zdGF0aWMvaW1hZ2UvYXJ0JTNBMTAuMTAzOCUyRnM0MTQ2Ny0wMjEtMjIxMjMtMS9NZWRpYU9iamVjdHMvNDE0NjdfMjAyMV8yMjEyM19GaWc0X0hUTUwucG5nP2FzPXdlYnApe3dpZHRoPSI4MDAifQ0KDQpUb21hZG8gZGUgW1dlc3QgZXQgYWwuIDIwMjFdKGh0dHBzOi8vZG9pLm9yZy8xMC4xMDM4L3M0MTQ2Ny0wMjEtMjIxMjMtMSl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9jZW50ZXI+DQoNClwNCjxjZW50ZXI+DQoqKkFxdcOtIGRlam8gdW4gcGVxdWXDsW8gdsOtZGVvIGVuIGRvbmRlIGhhY2VuIHVzbyB0YW50byBkZSBQeXRob24gY29tbyBkZSBSIHBhcmEgYW5hbGl6YXIgbGEgRGF0YSBkZSBNaWNyb2Jpb21hOioqDQoNCjxpZnJhbWUgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvRlhBMG84aW14Mm8iIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1leHRlcm5hbD0xPg0KDQo8L2lmcmFtZT4NCg0KXA0K