Motivación

En este documento presento las razones por las cuales toda persona racional3 debiera –al menos– dudar de la corriente llamada Big Data, y concentrarse en los datos correctos.

Aquí lo que interesa discutir es cómo tomar decisiones comerciales (económicas) –toma de decisiones de administrativas–, con datos, y sobre todo, con muchos datos.

Muchos de los gerentes de instituciones públicas y privadas estudiaron en un período de la historia en el que la disponibilidad de datos para la toma de decisiones era limitada, al menos si se la compara con la actual4. Otros tantos, no estudiaron carreras STEAM5 ni administrativas, por lo que la idea de contar con grandes volúmenes de datos fácilmente analizables parece encandilarlos. Seguramente, la recomendación que recibieron en sus respectivas escuelas fue algo como “adquiera la mayor cantidad de datos posible”. Pero, ¿es esto recomendable para la toma de decisiones?

Esa actitud, posiblemente justificada hace 25 o 35 años, no tiene sentido hoy. Todo lo contrario, la recomendación más valiosa que se puede dar en una época sobrecargada de datos es “protégete del exceso de datos”.

Se analizan algunos ejemplos de interés como la medición de satisfacción de usuarios (algo que afecta de igual forma a organizaciones públicas y privadas), el valor del dólar observado y las compras gubernamentales, derivándose en cada caso lecciones sobre cómo monitorear fenómenos de interés. https://www.bain.com/es-cl/insights/classify-demand-series-to-improve-the-forecast/

Finalmente, hago recomendaciones para los Administradores (Gerentes Públicos y Privados) en cuanto al volumen y frecuencia de información que deben recibir, y de cómo defenderse del exceso de datos, argumento que una tarea fundamental de un Administrador es buscar mecanismos (o explicaciones) acerca de los fenómenos que monitorean mediante datos observacionales, y sugiero cómo hacerlo con observaciones anecdóticas.

Atención Selectiva

El título de esta sección hace referencia a la estrategia que el erudito matemático Herbert Simon recomienda para enfrentar la avalancha de datos en las organizaciones (ver Administrative Behaviour, 1997). El mayor problema que ha enfrentado el ser humano, según Simon, es la avalancha de datos. La recomendación de Simon, por lo tanto, se basa en la siguiente diferencia de conceptos: el problema no es la falta de información, sino la falta de información correcta, que es sólo un subconjunto de toda la información6.

Para entender lo anterior, Simon usa como ejemplo la mecánica clásica desarrollada por Isaac Newton. El problema de estar saturado de datos no es algo nuevo: Los movimientos de las estrellas, visibles para nosotros a lo largo de las decenas de miles de años de nuestra historia, contienen toda la información que se necesita para formular las leyes del movimiento de Newton o la ley de la gravitación. La información estuvo allí todo el tiempo. Lo que faltaba, hasta hace unos cientos de años, era la base para seleccionar la pequeña fracción de los datos que podría usarse para establecer una generalización poderosa (sic).

De acuerdo al estadístico-matemático Nassim-Taleb7, Antifragile: Things That Gain from Disorder (Incerto)}, RANDOM HOUSE.: “El efecto de ser engañado por los datos se está acelerando. Hay un fenómeno desagradable llamado “Big Data” en el que los investigadores han llevado la recolección arbitraria de datos (cherry picking) a un nivel industrial. La modernidad proporciona demasiadas variables (pero muy pocos datos por variable), y las relaciones espurias crecen mucho, mucho más rápido que la información real, ya que el ruido es convexo en tanto que la información es cóncava.”

Un ejemplo de lo anterior: simule 1.000 veces 20 observaciones aleatorias de una distribución normal (ortogonales unas de otras), y luego estime las correlaciones8. Se obtiene lo siguiente:

Esta característica destacada por Nassim-Taleb, puede graficarse mediante la siguiente figura, que muestra cómo la proporción de correlaciones espurias aumenta cuando el número de variables aleatorias (esto es, ortogonales unas con otras) aumenta:

Tántalo Management

Tántalo cometió tres de los grandes pecados de la antigua mitología griega: ofender a un huésped, hacer daño a un niño (cortó en pedazos a su hijo y lo cocinó) y desafiar a los dioses. Por esa razón, Zeus lo condenó a ser eternamente torturado en el Tártaro de una forma que es un ejemplo proverbial de tentación sin satisfacción: debió estar en un lago con el agua a la altura de la barbilla, bajo un árbol de ramas bajas repletas de dulces frutas maduras. Si intenta tomar agua, el nivel del lago baja inmediatamente; si intenta agarrar una fruta, las ramas del árbol suben9.

Esta edificante historia sirve de metáfora para entender la situación en la que se encuentran los burócratas de organizaciones públicas y privadas: el agua y la fruta representan las modas de managment que (como Big Data) hacen promesas que no pueden cumplir.

Correlaciones espúreas

Quien confíe en Big Data corre el riesgo de ser engañado por la aleatoriedad o el simple “ruido” en los datos, por ejemplo, por medio de las llamadas correlaciones espúreas. Para ejemplificar cuán fácil es que ocurra esto, generamos dos variables aleatorias de una distribución normal con \(\mu=0\) y \(\sigma=1\), de esta forma en R:

set.seed(12345)
valoresperado <- data.frame(matrix(nrow = 1000, ncol = 2))
colnames(valoresperado) <- c("fila","correlacion")
for (i in 1:1000) {
  {
    q <- rnorm(30,0,1)
    r <- rnorm(30,0,1)
    valoresperado[i,1]<- i
    valoresperado[i,2]<- print(cor(q,r))
  }
}


Puedes seleccionar con el cursor algún área del gráfico.

Correlaciones espúreas

¡Cómo!¡Y el resultado se ve así! Es decir, al simular tan sólo 1.000 veces dos variables de 30 observaciones10, aunque las variables son por construcción ortogonales, aparecen grandes correlaciones (por ejemplo \(\ge 0,6\)).. Aquí la fórmula analítica (Taleb, 2012)11:

Gráfico de solución analítica de Taleb (2012).

Gráfico de solución analítica de Taleb (2012).

Gráfico se hace con este código en latex (tikz):

    \begin {figure}[h!]
    \centering
    \begin{tikzpicture}[scale=1]
    \begin{axis}[
    {ticks=none}, % quita los números de graduación
    axis lines = left,
    xlabel = Número de variables aleatorias (v),
    ylabel = Número de correlaciones espurias
    ]
    \addplot [
    domain=0.56:3,
    color=red,
    ]
    {x*((x-1)/2)};
    \node[label={180:{\textbf{$v\times\left(\dfrac{v-1}{2}\right)$}}},circle,%fill,
    inner sep=2pt] at (axis cs:2,1.9) {};
    \end{axis}
    \end{tikzpicture}
    \end {figure}

Ejemplos interesantes de correlaciones espúreas

Un buen sitio para investigar este tipo de fenómenos es: https://www.tylervigen.com/spurious-correlations El siguiente, tiene una correlación de 99,79%:

Gráfico de Tyler Vigen.

Gráfico de Tyler Vigen.

Coeficiente de correlación: \(r\)

Las correlciones anteriores fueron calculadas usando la métrica de r de Pearson para muestras, que se define así:

\[ r = \dfrac{n\sum_{i=1}^{n}{x_i y_i}-(\sum_{i=1}^{n}{x_i}\sum_{i=1}^{n}{y_i})}{\sqrt{ [n \sum_{i=1}^{n}{x_i^2}-(\sum_{i=1}^{n}{x_i})^2 ][n \sum_{i=1}^{n}{y_i^2}-(\sum_{i=1}^{n}{y_i})^2 }]} \]

Los supuestos de esta métrica son linealidad y normalidad …}

La escalera de la causalidad: Judea Pearl

Judea Pearl, uno de los matemáticos que más ha avanzado en teoría y aplicación de modelos causales, ha argumentado en la misma línea. De hecho, en su famoso libro de divulgación The Book of Why nos entrega el siguiente diagrama que sintetiza estos argumentos con una sola imagen:

Judes Pearl, 2018, The Book of Why, Basic Books.

Judes Pearl, 2018, The Book of Why, Basic Books.

continuará…


  1. Otros fraudes parecidos pero tal vez menos extendidos en la consciencia popular, y por eso, menos dañinos: Net Promoter Score, HBase, Co-opetition. Una lista contemporánea: https://en.wikipedia.org/wiki/List_of_buzzwords#Business,_sales_and_marketing

  2. El lenguaje ocupado es R y tikz de Latex.

  3. Es decir, que no piense que el Big Data o ML son milagrosos. Un buen antídoto contra esta creencia radica en estudiar las condiciones para automatización descritas por Stephen Wolfram (el creador del lenguaje Mathematica).

  4. El promedio de edad de gerentes generales en Chile es de 49 años, y de 53 en Estados Unidos (a los que los primeros suelen imitar), lo que implica que estaban en la universidad en 1982 (EEUU), cuando no existía internet, por ejemplo. Datos de Emol.

  5. Acrónimo de: Science, Technology, Engineering, And Mathematics.

  6. Aquí cabe recordar que Simon fue un pionero de la investigación en Inteligencia Artificial, creando varios programas usando el lenguaje IPL que él ayudó a desarrollar.

  7. Nicholas Nassim-Taleb (2012)

  8. El código de Mathematica se encuentra en el ANEXO.

  9. En otras versiones de esta historia, tiene sobre su cabeza una roca gigantesca que oscila permanentemente y que amenaza con triturarlo.

  10. Recordar propiedades asintóticas para \(n\ \ge 30\).

  11. Nassim Nicholab-Taleb, 2012, Antifragile..

LS0tDQp0aXRsZTogPGNlbnRlcj48Zm9udCBjb2xvcj0iI0RGMkI0RiI+QmlnIERhdGEsIEJpZyBGcmF1ZD88L2ZvbnQ+PC9jZW50ZXI+DQpzdWJ0aXRsZTogPGNlbnRlcj48Zm9udCBjb2xvcj0iIzMyMjI5QiI+TG9zIHBlbGlncm9zIGRlIHRlbmVyIG11Y2hvcyBkYXRvcywgeSBwb2NhcyBpZGVhczwvZm9udD48L2NlbnRlcj4NCmF1dGhvcjogPGNlbnRlcj5HdWlsbGVybW8gQnVyciBPcnTDunphcjwvY2VudGVyPg0KZGF0ZTogPGNlbnRlcj4xOCBkZSBmZWJyZXJvIGRlIDIwMjAsIGFjdHVhbGl6YWRvIGVsIGByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgZGUgJUIgZGUgJVknKWA8L2NlbnRlcj4NCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCjxzdHlsZT4NCnAuY29tbWVudCB7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjZGU1ZjdkOw0KcGFkZGluZzogMTBweDsNCmJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KbWFyZ2luLWxlZnQ6IDI1cHg7DQpib3JkZXItcmFkaXVzOiA1cHg7DQpmb250LXN0eWxlOiBpdGFsaWM7DQp9DQoNCjwvc3R5bGU+DQoNCg0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UpDQoNCmxpYnJhcnkocmpzb24pDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoUkN1cmwpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KHh0YWJsZSkNCmxpYnJhcnkoa2FibGVFeHRyYSkNCmxpYnJhcnkoZm9ybWF0dGFibGUpDQpsaWJyYXJ5KHRyZWVtYXApDQpsaWJyYXJ5KHN0cmluZ3IpDQpsaWJyYXJ5KGdyaWRFeHRyYSkNCmxpYnJhcnkoYnJvb20pDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KFJPREJDKQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KbGlicmFyeShnZ3JlcGVsKQ0KbGlicmFyeShNYXRjaEl0KQ0KbGlicmFyeShwc3ljaG8pDQpsaWJyYXJ5KGdndGhlbWVzKSAjIHRlbWFzIGNvbW8gVGhlIEVjb25vbWlzdA0KbGlicmFyeShyc2Nvbm5lY3QpDQpsaWJyYXJ5KERUKQ0KbGlicmFyeShwbmcpDQpsaWJyYXJ5KGxhdHRpY2UpDQpsaWJyYXJ5KCdNQVNTJykNCmxpYnJhcnkobWFnaWNrKQ0KbGlicmFyeShwZGZ0b29scykNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShrbml0cikNCmtuaXRyOjpvcHRzX2NodW5rJHNldCgNCiAgZWNobyA9IFRSVUUNCiAgKQ0KIA0KY29uIDwtIG9kYmNDb25uZWN0KCJwYXJhciIpDQpgYGANCg0KPGJyPjxicj4NCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIiByb2xlPSJhbGVydCI+DQo8Zm9udCBzaXplPSI0Ij48c3Ryb25nPsKhQVRFTkNJw5NOISBUcmFiYWpvIGVuIHByb2dyZXNvLjwvc3Ryb25nPjwvZm9udD4NCjwvZGl2Pg0KDQojIDxmb250IGNvbG9yPSIjMzIyMjlCIj5Nb3RpdmFjacOzbjwvZm9udD4NCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyIgcm9sZT0iYWxlcnQiPg0KICA8aDQgY2xhc3M9ImFsZXJ0LWhlYWRpbmciPjxzdHJvbmc+QmlnIERhdGEsIEJpZyBGcmF1ZDwvc3Ryb25nPjwvaDQ+DQogIDxwPkhhY2UgcG9jb3MgZMOtYXMgZnVpIGNvbiBtaXMgZG9zIGhpam9zIHkgbWkgbXVqZXIgYSBsYSBjYXNhIGRlbCBtZWpvciBhbWlnbyBkZSB1bm8gZGUgc3VzIGhlcm1hbm9zLCBxdWllbiwgYWRlbcOhcyBkZSBwcmVwYXJhcm5vcyB1biBleHRyYW9yZGluYXJpbyBhbG11ZXJ6bywgbm9zIHByZXNlbnTDsyBhIHN1IGZhbWlsaWEsIGVudHJlIGxhIHF1ZSBlc3RhYmEgdW5vIGRlIHN1cyBoaWpvcywgdW4gbXV5IGVudHVzaWFzdGEgZ3JhZHVhZG8gZGUgKkluZ2VuaWVyw61hIENvbWVyY2lhbCogY29uIHF1aWVuIGRpc2N1dMOtIGFjZXJjYSBkZWwgKipidXp6d29yZCoqIDxzdHJvbmc+KkJpZyBEYXRhKjwvc3Ryb25nPiwgdW5vIGRlIGxvcyBncmFuZGVzIGZyYXVkZXMgZGUgbWFya2V0aW5nIGRlIGxvcyDDumx0aW1vcyB0aWVtcG9zLCBlbiBtaSBodW1pbGRlIG9waW5pw7NuXltPdHJvcyBmcmF1ZGVzIHBhcmVjaWRvcyBwZXJvIHRhbCB2ZXogbWVub3MgZXh0ZW5kaWRvcyBlbiBsYSBjb25zY2llbmNpYSBwb3B1bGFyLCB5IHBvciBlc28sIG1lbm9zIGRhw7Fpbm9zOiBOZXQgUHJvbW90ZXIgU2NvcmUsIEhCYXNlLCBDby1vcGV0aXRpb24uIFVuYSBsaXN0YSBjb250ZW1wb3LDoW5lYTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9idXp6d29yZHMjQnVzaW5lc3MsX3NhbGVzX2FuZF9tYXJrZXRpbmddLiBBcXXDrSByZXNwb25kbyBhbGd1bmFzIGRlIGxhcyBtdXkgYnVlbmFzIHByZWd1bnRhcyBxdWUgbWUgaGl6byBzb2JyZSBlc2UgdGVtYS48L3A+DQogIDxocj4NCiAgPHAgY2xhc3M9Im1iLTAiPlBpZW5zbyBxdWUgbm8gZXMgbWVyYSBjYXN1YWxpZGFkLCBxdWUgbG9zIG3DoXMgZ3JhbmRlcyBlbnR1c2lhc3RhcyBkZWwgPHN0cm9uZz4qQmlnIERhdGEqPC9zdHJvbmc+IHN1ZWxhbiBzZXIgcGVyc29uYXMgcXVlIG5vIHRpZW5lbiBuaSBlbnRyZW5hbWllbnRvIGVuIG1hbmVqbyBkZSBkYXRvcyAoYWthOiBhYm9nYWRvcyB5IGd1csO6cyBkZWwgKm1hbmFnZW1lbnQqKSwgbmkgaGFuIGVzY3JpdG8gY8OzZGlnbyBlbiBsZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuIG51bmNhIGVuIHN1cyB2aWRhcyAoPHN0cm9uZz5OT1RBOjwvc3Ryb25nPiBlc3RhIG9ic2VydmFjacOzbiBzZSBiYXNhIGVuIGxvIHF1ZSBvY3VycmUgZW4gZWwgc2VjdG9yIHDDumJsaWNvKS4gUGVybyBsYSBhcmd1bWVudGFjacOzbiBxdWUgZW50cmVnbyBhcXXDrSBubyB0aWVuZSBxdWUgdmVyIGNvbiBxdWllbiBjcmVlIG8gbm8gZW4gZXN0YSBtb2RhLCBzaW5vIGNvbiB1bmEgc2ltcGxlIG9ic2VydmFjacOzbiBlc3RhZMOtc3RpY2EgZGUgbG9zIHJlc3VsdGFkb3MgZGUgY29ycmVyIHVuYSBzaW11bGFjacOzbiBwb3IgY29tcHV0YWRvcl5bRWwgbGVuZ3VhamUgb2N1cGFkbyBlcyBSIHkgdGlreiBkZSBMYXRleC5dLjwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj4NCjxmb250IHNpemU9IjQiPg0KRW4gZXN0ZSBkb2N1bWVudG8gcHJlc2VudG8gbGFzIHJhem9uZXMgcG9yIGxhcyBjdWFsZXMgdG9kYSBwZXJzb25hIHJhY2lvbmFsXltFcyBkZWNpciwgcXVlIG5vIHBpZW5zZSBxdWUgZWwgKipCaWcgRGF0YSoqIG8gKipNTCoqIHNvbiBtaWxhZ3Jvc29zLiBVbiBidWVuIGFudMOtZG90byBjb250cmEgZXN0YSBjcmVlbmNpYSByYWRpY2EgZW4gZXN0dWRpYXIgbGFzIGNvbmRpY2lvbmVzIHBhcmEgYXV0b21hdGl6YWNpw7NuIGRlc2NyaXRhcyBwb3IgU3RlcGhlbiBXb2xmcmFtIChlbCBjcmVhZG9yIGRlbCBsZW5ndWFqZSBNYXRoZW1hdGljYSkuXSBkZWJpZXJhIC0tYWwgbWVub3MtLSBkdWRhciBkZSBsYSBjb3JyaWVudGUgbGxhbWFkYSA8c3Ryb25nPipCaWcgRGF0YSo8L3N0cm9uZz4sICA8Zm9udCBjb2xvcj0iIzMyMjI5QiI+eSBjb25jZW50cmFyc2UgZW4gbG9zIGRhdG9zIGNvcnJlY3RvczwvZm9udD4uDQo8L2ZvbnQ+DQo8L2Rpdj4NCg0KQXF1w60gbG8gcXVlIGludGVyZXNhIGRpc2N1dGlyIGVzIGPDs21vIHRvbWFyIGRlY2lzaW9uZXMgY29tZXJjaWFsZXMgKGVjb27Ds21pY2FzKSA8Y29kZT4tLXRvbWEgZGUgZGVjaXNpb25lcyBkZSBhZG1pbmlzdHJhdGl2YXMtLTwvY29kZT4sICpjb24gZGF0b3MqLCB5IHNvYnJlIHRvZG8sICpjb24gbXVjaG9zIGRhdG9zKi4NCg0KTXVjaG9zIGRlIGxvcyBnZXJlbnRlcyBkZSBpbnN0aXR1Y2lvbmVzIHDDumJsaWNhcyB5IHByaXZhZGFzIGVzdHVkaWFyb24gZW4gdW4gcGVyw61vZG8gZGUgbGEgaGlzdG9yaWEgZW4gZWwgcXVlIGxhIGRpc3BvbmliaWxpZGFkIGRlIGRhdG9zIHBhcmEgbGEgdG9tYSBkZSBkZWNpc2lvbmVzIGVyYSBsaW1pdGFkYSwgYWwgbWVub3Mgc2kgc2UgbGEgY29tcGFyYSBjb24gbGEgYWN0dWFsXltFbCBwcm9tZWRpbyBkZSBlZGFkIGRlIGdlcmVudGVzIGdlbmVyYWxlcyBlbiBDaGlsZSBlcyBkZSA0OSBhw7FvcywgeSBkZSA1MyBlbiBFc3RhZG9zIFVuaWRvcyAoYSBsb3MgcXVlIGxvcyBwcmltZXJvcyBzdWVsZW4gaW1pdGFyKSwgbG8gcXVlIGltcGxpY2EgcXVlIGVzdGFiYW4gZW4gbGEgdW5pdmVyc2lkYWQgZW4gMTk4MiAoRUVVVSksIGN1YW5kbyBubyBleGlzdMOtYSBpbnRlcm5ldCwgcG9yIGVqZW1wbG8uIERhdG9zIGRlIEVtb2wuXS4NCk90cm9zIHRhbnRvcywgbm8gZXN0dWRpYXJvbiBjYXJyZXJhcyBTVEVBTV5bQWNyw7NuaW1vIGRlOiA8aW5zPlM8L2lucz5jaWVuY2UsIDxpbnM+VDwvaW5zPmVjaG5vbG9neSwgPGlucz5FPC9pbnM+bmdpbmVlcmluZywgPGlucz5BPC9pbnM+bmQgPGlucz5NPC9pbnM+YXRoZW1hdGljcy5dIG5pIGFkbWluaXN0cmF0aXZhcywgcG9yIGxvIHF1ZSBsYSBpZGVhIGRlIGNvbnRhciBjb24gZ3JhbmRlcyB2b2zDum1lbmVzIGRlIGRhdG9zIGbDoWNpbG1lbnRlIGFuYWxpemFibGVzIHBhcmVjZSBlbmNhbmRpbGFybG9zLiBTZWd1cmFtZW50ZSwgbGEgcmVjb21lbmRhY2nDs24gcXVlIHJlY2liaWVyb24gZW4gc3VzIHJlc3BlY3RpdmFzIGVzY3VlbGFzIGZ1ZSBhbGdvIGNvbW8g4oCcYWRxdWllcmEgbGEgbWF5b3IgY2FudGlkYWQgZGUgZGF0b3MgcG9zaWJsZeKAnS4gUGVybywgwr9lcyBlc3RvIHJlY29tZW5kYWJsZSBwYXJhIGxhIHRvbWEgZGUgZGVjaXNpb25lcz8NCg0KRXNhIGFjdGl0dWQsIHBvc2libGVtZW50ZSBqdXN0aWZpY2FkYSBoYWNlIDI1IG8gMzUgYcOxb3MsIG5vIHRpZW5lIHNlbnRpZG8gaG95LiBUb2RvIGxvIGNvbnRyYXJpbywgbGEgcmVjb21lbmRhY2nDs24gbcOhcyB2YWxpb3NhIHF1ZSBzZSBwdWVkZSBkYXIgZW4gdW5hIMOpcG9jYSBzb2JyZWNhcmdhZGEgZGUgZGF0b3MgZXMg4oCccHJvdMOpZ2V0ZSBkZWwgZXhjZXNvIGRlIGRhdG9z4oCdLg0KDQpTZSBhbmFsaXphbiBhbGd1bm9zIGVqZW1wbG9zIGRlIGludGVyw6lzIGNvbW8gbGEgbWVkaWNpw7NuIGRlIHNhdGlzZmFjY2nDs24gZGUgdXN1YXJpb3MgKGFsZ28gcXVlIGFmZWN0YSBkZSBpZ3VhbCBmb3JtYSBhIG9yZ2FuaXphY2lvbmVzIHDDumJsaWNhcyB5IHByaXZhZGFzKSwgZWwgdmFsb3IgZGVsIGTDs2xhciBvYnNlcnZhZG8geSBsYXMgY29tcHJhcyBndWJlcm5hbWVudGFsZXMsIGRlcml2w6FuZG9zZSBlbiBjYWRhIGNhc28gbGVjY2lvbmVzIHNvYnJlIGPDs21vIG1vbml0b3JlYXIgZmVuw7NtZW5vcyBkZSBpbnRlcsOpcy4gaHR0cHM6Ly93d3cuYmFpbi5jb20vZXMtY2wvaW5zaWdodHMvY2xhc3NpZnktZGVtYW5kLXNlcmllcy10by1pbXByb3ZlLXRoZS1mb3JlY2FzdC8gDQoNCkZpbmFsbWVudGUsIGhhZ28gcmVjb21lbmRhY2lvbmVzIHBhcmEgbG9zIEFkbWluaXN0cmFkb3JlcyAoR2VyZW50ZXMgUMO6YmxpY29zIHkgUHJpdmFkb3MpIGVuIGN1YW50byBhbCB2b2x1bWVuIHkgZnJlY3VlbmNpYSBkZSBpbmZvcm1hY2nDs24gcXVlIGRlYmVuIHJlY2liaXIsIHkgZGUgY8OzbW8gZGVmZW5kZXJzZSBkZWwgZXhjZXNvIGRlIGRhdG9zLCBhcmd1bWVudG8gcXVlIHVuYSB0YXJlYSBmdW5kYW1lbnRhbCBkZSB1biBBZG1pbmlzdHJhZG9yIGVzIGJ1c2NhciBtZWNhbmlzbW9zIChvIGV4cGxpY2FjaW9uZXMpIGFjZXJjYSBkZSBsb3MgZmVuw7NtZW5vcyBxdWUgbW9uaXRvcmVhbiBtZWRpYW50ZSBkYXRvcyBvYnNlcnZhY2lvbmFsZXMsIHkgc3VnaWVybyBjw7NtbyBoYWNlcmxvIGNvbiBvYnNlcnZhY2lvbmVzIGFuZWNkw7N0aWNhcy4NCg0KIyMgPGZvbnQgY29sb3I9IiMzMjIyOUIiPkF0ZW5jacOzbiBTZWxlY3RpdmE8L2ZvbnQ+DQoNCkVsIHTDrXR1bG8gZGUgZXN0YSBzZWNjacOzbiBoYWNlIHJlZmVyZW5jaWEgYSBsYSBlc3RyYXRlZ2lhIHF1ZSBlbCBlcnVkaXRvIG1hdGVtw6F0aWNvIEhlcmJlcnQgU2ltb24gcmVjb21pZW5kYSBwYXJhIGVuZnJlbnRhciBsYSBhdmFsYW5jaGEgZGUgZGF0b3MgZW4gbGFzIG9yZ2FuaXphY2lvbmVzICh2ZXIgKkFkbWluaXN0cmF0aXZlIEJlaGF2aW91ciwgMTk5NyopLiBFbCBtYXlvciBwcm9ibGVtYSBxdWUgaGEgZW5mcmVudGFkbyBlbCBzZXIgaHVtYW5vLCBzZWfDum4gU2ltb24sIGVzIGxhIGF2YWxhbmNoYSBkZSBkYXRvcy4gTGEgcmVjb21lbmRhY2nDs24gZGUgU2ltb24sIHBvciBsbyB0YW50bywgc2UgYmFzYSBlbiBsYSBzaWd1aWVudGUgZGlmZXJlbmNpYSBkZSBjb25jZXB0b3M6IGVsIHByb2JsZW1hIG5vIGVzIGxhIGZhbHRhIGRlIGluZm9ybWFjacOzbiwgc2lubyBsYSBmYWx0YSBkZSBpbmZvcm1hY2nDs24gY29ycmVjdGEsIHF1ZSBlcyBzw7NsbyB1biBzdWJjb25qdW50byBkZSB0b2RhIGxhIGluZm9ybWFjacOzbl5bQXF1w60gY2FiZSByZWNvcmRhciBxdWUgU2ltb24gZnVlIHVuIHBpb25lcm8gZGUgbGEgaW52ZXN0aWdhY2nDs24gZW4gSW50ZWxpZ2VuY2lhIEFydGlmaWNpYWwsIGNyZWFuZG8gdmFyaW9zIHByb2dyYW1hcyB1c2FuZG8gZWwgbGVuZ3VhamUgSVBMIHF1ZSDDqWwgYXl1ZMOzIGEgZGVzYXJyb2xsYXIuXS4NCg0KUGFyYSBlbnRlbmRlciBsbyBhbnRlcmlvciwgU2ltb24gdXNhIGNvbW8gZWplbXBsbyBsYSBtZWPDoW5pY2EgY2zDoXNpY2EgZGVzYXJyb2xsYWRhIHBvciBJc2FhYyBOZXd0b24uIEVsIHByb2JsZW1hIGRlIGVzdGFyIHNhdHVyYWRvIGRlIGRhdG9zIG5vIGVzIGFsZ28gbnVldm86IExvcyBtb3ZpbWllbnRvcyBkZSBsYXMgZXN0cmVsbGFzLCB2aXNpYmxlcyBwYXJhIG5vc290cm9zIGEgbG8gbGFyZ28gZGUgbGFzIGRlY2VuYXMgZGUgbWlsZXMgZGUgYcOxb3MgZGUgbnVlc3RyYSBoaXN0b3JpYSwgY29udGllbmVuIHRvZGEgbGEgaW5mb3JtYWNpw7NuIHF1ZSBzZSBuZWNlc2l0YSBwYXJhIGZvcm11bGFyIGxhcyBsZXllcyBkZWwgbW92aW1pZW50byBkZSBOZXd0b24gbyBsYSBsZXkgZGUgbGEgZ3Jhdml0YWNpw7NuLiBMYSBpbmZvcm1hY2nDs24gZXN0dXZvIGFsbMOtIHRvZG8gZWwgdGllbXBvLiBMbyBxdWUgZmFsdGFiYSwgaGFzdGEgaGFjZSB1bm9zIGNpZW50b3MgZGUgYcOxb3MsIGVyYSBsYSBiYXNlIHBhcmEgc2VsZWNjaW9uYXIgbGEgcGVxdWXDsWEgZnJhY2Npw7NuIGRlIGxvcyBkYXRvcyBxdWUgcG9kcsOtYSB1c2Fyc2UgcGFyYSBlc3RhYmxlY2VyIHVuYSBnZW5lcmFsaXphY2nDs24gcG9kZXJvc2EgKHNpYykuDQoNCkRlIGFjdWVyZG8gYWwgZXN0YWTDrXN0aWNvLW1hdGVtw6F0aWNvIE5hc3NpbS1UYWxlYl5bTmljaG9sYXMgTmFzc2ltLVRhbGViICgyMDEyKV0sICpBbnRpZnJhZ2lsZTogVGhpbmdzIFRoYXQgR2FpbiBmcm9tIERpc29yZGVyIChJbmNlcnRvKX0sIFJBTkRPTSBIT1VTRS4qOiDigJxFbCBlZmVjdG8gZGUgc2VyIGVuZ2HDsWFkbyBwb3IgbG9zIGRhdG9zIHNlIGVzdMOhIGFjZWxlcmFuZG8uIEhheSB1biBmZW7Ds21lbm8gZGVzYWdyYWRhYmxlIGxsYW1hZG8g4oCcQmlnIERhdGHigJ0gZW4gZWwgcXVlIGxvcyBpbnZlc3RpZ2Fkb3JlcyBoYW4gbGxldmFkbyBsYSByZWNvbGVjY2nDs24gYXJiaXRyYXJpYSBkZSBkYXRvcyAoY2hlcnJ5IHBpY2tpbmcpIGEgdW4gbml2ZWwgaW5kdXN0cmlhbC4gTGEgbW9kZXJuaWRhZCBwcm9wb3JjaW9uYSBkZW1hc2lhZGFzIHZhcmlhYmxlcyAocGVybyBtdXkgcG9jb3MgZGF0b3MgcG9yIHZhcmlhYmxlKSwgeSBsYXMgcmVsYWNpb25lcyBlc3B1cmlhcyBjcmVjZW4gbXVjaG8sIG11Y2hvIG3DoXMgcsOhcGlkbyBxdWUgbGEgaW5mb3JtYWNpw7NuIHJlYWwsIHlhIHF1ZSBlbCBydWlkbyBlcyBjb252ZXhvIGVuIHRhbnRvIHF1ZSBsYSBpbmZvcm1hY2nDs24gZXMgY8OzbmNhdmEu4oCdDQoNClVuIGVqZW1wbG8gZGUgbG8gYW50ZXJpb3I6IHNpbXVsZSAxLjAwMCB2ZWNlcyAyMCBvYnNlcnZhY2lvbmVzIGFsZWF0b3JpYXMgZGUgdW5hIGRpc3RyaWJ1Y2nDs24gbm9ybWFsIChvcnRvZ29uYWxlcyB1bmFzIGRlIG90cmFzKSwgeSBsdWVnbyBlc3RpbWUgbGFzIGNvcnJlbGFjaW9uZXNeW0VsIGPDs2RpZ28gZGUgTWF0aGVtYXRpY2Egc2UgZW5jdWVudHJhIGVuIGVsIEFORVhPLl0uIFNlIG9idGllbmUgbG8gc2lndWllbnRlOg0KDQoNCkVzdGEgY2FyYWN0ZXLDrXN0aWNhIGRlc3RhY2FkYSBwb3IgTmFzc2ltLVRhbGViLCBwdWVkZSBncmFmaWNhcnNlIG1lZGlhbnRlIGxhIHNpZ3VpZW50ZSBmaWd1cmEsIHF1ZSBtdWVzdHJhIGPDs21vIGxhIHByb3BvcmNpw7NuIGRlIGNvcnJlbGFjaW9uZXMgZXNwdXJpYXMgYXVtZW50YSBjdWFuZG8gZWwgbsO6bWVybyBkZSB2YXJpYWJsZXMgYWxlYXRvcmlhcyAoZXN0byBlcywgb3J0b2dvbmFsZXMgdW5hcyBjb24gb3RyYXMpIGF1bWVudGE6DQoNCg0KDQojIyA8Zm9udCBjb2xvcj0iIzMyMjI5QiI+VMOhbnRhbG8gTWFuYWdlbWVudDwvZm9udD4NCipUw6FudGFsbyogY29tZXRpw7MgdHJlcyBkZSBsb3MgZ3JhbmRlcyBwZWNhZG9zIGRlIGxhIGFudGlndWEgbWl0b2xvZ8OtYSBncmllZ2E6IG9mZW5kZXIgYSB1biBodcOpc3BlZCwgaGFjZXIgZGHDsW8gYSB1biBuacOxbyAoY29ydMOzIGVuIHBlZGF6b3MgYSBzdSBoaWpvIHkgbG8gY29jaW7DsykgeSBkZXNhZmlhciBhIGxvcyBkaW9zZXMuIFBvciBlc2EgcmF6w7NuLCAqWmV1cyogbG8gY29uZGVuw7MgYSBzZXIgZXRlcm5hbWVudGUgdG9ydHVyYWRvIGVuIGVsICpUw6FydGFybyogZGUgdW5hIGZvcm1hIHF1ZSBlcyB1biBlamVtcGxvIHByb3ZlcmJpYWwgZGUgKioqdGVudGFjacOzbiBzaW4gc2F0aXNmYWNjacOzbioqKjogZGViacOzIGVzdGFyIGVuIHVuIGxhZ28gY29uIGVsIGFndWEgYSBsYSBhbHR1cmEgZGUgbGEgYmFyYmlsbGEsIGJham8gdW4gw6FyYm9sIGRlIHJhbWFzIGJhamFzIHJlcGxldGFzIGRlIGR1bGNlcyBmcnV0YXMgbWFkdXJhcy4gU2kgaW50ZW50YSB0b21hciBhZ3VhLCBlbCBuaXZlbCBkZWwgbGFnbyBiYWphIGlubWVkaWF0YW1lbnRlOyBzaSBpbnRlbnRhIGFnYXJyYXIgdW5hIGZydXRhLCBsYXMgcmFtYXMgZGVsIMOhcmJvbCBzdWJlbl5bRW4gb3RyYXMgdmVyc2lvbmVzIGRlIGVzdGEgaGlzdG9yaWEsIHRpZW5lIHNvYnJlIHN1IGNhYmV6YSB1bmEgcm9jYSBnaWdhbnRlc2NhIHF1ZSBvc2NpbGEgcGVybWFuZW50ZW1lbnRlIHkgcXVlIGFtZW5hemEgY29uIHRyaXR1cmFybG8uXS4gDQoNCkVzdGEgZWRpZmljYW50ZSBoaXN0b3JpYSBzaXJ2ZSBkZSBtZXTDoWZvcmEgcGFyYSBlbnRlbmRlciBsYSBzaXR1YWNpw7NuIGVuIGxhIHF1ZSBzZSBlbmN1ZW50cmFuIGxvcyBidXLDs2NyYXRhcyBkZSBvcmdhbml6YWNpb25lcyBww7pibGljYXMgeSBwcml2YWRhczogZWwgYWd1YSB5IGxhIGZydXRhIHJlcHJlc2VudGFuIGxhcyBtb2RhcyBkZSBtYW5hZ21lbnQgcXVlIChjb21vICpCaWcgRGF0YSopIGhhY2VuIHByb21lc2FzIHF1ZSBubyBwdWVkZW4gY3VtcGxpci4NCg0KIyMgPGZvbnQgY29sb3I9IiMzMjIyOUIiPkNvcnJlbGFjaW9uZXMgZXNww7pyZWFzPC9mb250Pg0KDQo8Zm9udCBzaXplPSI0Ij4NClF1aWVuIGNvbmbDrWUgZW4gPHN0cm9uZz5CaWcgRGF0YTwvc3Ryb25nPiBjb3JyZSBlbCByaWVzZ28gZGUgc2VyIGVuZ2HDsWFkbyBwb3IgbGEgYWxlYXRvcmllZGFkIG8gZWwgc2ltcGxlICJydWlkbyIgZW4gbG9zIGRhdG9zLCBwb3IgZWplbXBsbywgcG9yIG1lZGlvIGRlIGxhcyBsbGFtYWRhcyBjb3JyZWxhY2lvbmVzIGVzcMO6cmVhcy4gUGFyYSBlamVtcGxpZmljYXIgY3XDoW4gZsOhY2lsIGVzIHF1ZSBvY3VycmEgZXN0bywgZ2VuZXJhbW9zIGRvcyB2YXJpYWJsZXMgYWxlYXRvcmlhcyBkZSB1bmEgZGlzdHJpYnVjacOzbiBub3JtYWwgY29uICRcbXU9MCQgeSAkXHNpZ21hPTEkLCBkZSBlc3RhIGZvcm1hIGVuIFI6IA0KPC9mb250Pg0KDQpgYGB7ciBjLCBldmFsPUZBTFNFLCBpbmNsdWRlPVR9DQpzZXQuc2VlZCgxMjM0NSkNCnZhbG9yZXNwZXJhZG8gPC0gZGF0YS5mcmFtZShtYXRyaXgobnJvdyA9IDEwMDAsIG5jb2wgPSAyKSkNCmNvbG5hbWVzKHZhbG9yZXNwZXJhZG8pIDwtIGMoImZpbGEiLCJjb3JyZWxhY2lvbiIpDQpmb3IgKGkgaW4gMToxMDAwKSB7DQogIHsNCiAgICBxIDwtIHJub3JtKDMwLDAsMSkNCiAgICByIDwtIHJub3JtKDMwLDAsMSkNCiAgICB2YWxvcmVzcGVyYWRvW2ksMV08LSBpDQogICAgdmFsb3Jlc3BlcmFkb1tpLDJdPC0gcHJpbnQoY29yKHEscikpDQogIH0NCn0NCg0KYGBgDQoNCg0KDQoNCmBgYHtyIGdsb2JhbF9lbnYsIGluY2x1ZGU9RkFMU0V9DQpsb2FkKCJDOi9Vc2Vycy9HdWlsbGVybW8vRGVza3RvcC9Db21wdXRhY2nDs24vcHJ1ZWJhL2dsb2JhbF9lbnYuUkRhdGEiKQ0KYGBgDQoNCjxicj4NCjxmb250IHNpemU9IjQiPg0KPHN0cm9uZz48L3N0cm9uZz4gUHVlZGVzIHNlbGVjY2lvbmFyIGNvbiBlbCBjdXJzb3IgYWxnw7puIMOhcmVhIGRlbCBncsOhZmljby4NCjwvZm9udD4NCg0KYGBge3IgMjIsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQgPSA2LCBmaWcud2lkdGggPSA5LjV9DQoNCnc8LWdncGxvdCh2YWxvcmVzcGVyYWRvKSsNCmdlb21fY29sKGFlcyh5PWNvcnJlbGFjaW9uLCB4PWZpbGEpLCBjb2xvcj0icmVkIikNCmdncGxvdGx5KHcpDQoNCmBgYA0KDQoNCiMjIDxmb250IGNvbG9yPSIjMzIyMjlCIj5Db3JyZWxhY2lvbmVzIGVzcMO6cmVhczwvZm9udD4NCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+DQogIDxzdHJvbmc+wqFDw7NtbyE8L3N0cm9uZz48Zm9udCBjb2xvcj0iI0RGMkI0RiI+wqFZIGVsIHJlc3VsdGFkbyBzZSB2ZSBhc8OtISBFcyBkZWNpciwgYWwgc2ltdWxhciB0YW4gc8OzbG8gMS4wMDAgdmVjZXMgZG9zIHZhcmlhYmxlcyBkZSAzMCBvYnNlcnZhY2lvbmVzXltSZWNvcmRhciBwcm9waWVkYWRlcyBhc2ludMOzdGljYXMgcGFyYSAkblwgXGdlIDMwJC5dLCBhdW5xdWUgbGFzIHZhcmlhYmxlcyBzb24gcG9yIGNvbnN0cnVjY2nDs24gb3J0b2dvbmFsZXMsIGFwYXJlY2VuIGdyYW5kZXMgY29ycmVsYWNpb25lcyAocG9yIGVqZW1wbG8gJFxnZSAwLDYkKS48L2ZvbnQ+LiBBcXXDrSBsYSBmw7NybXVsYSBhbmFsw610aWNhIChUYWxlYiwgMjAxMileW05hc3NpbSBOaWNob2xhYi1UYWxlYiwgMjAxMiwgKkFudGlmcmFnaWxlLiouXToNCjwvZGl2Pg0KDQoNCiFbR3LDoWZpY28gZGUgc29sdWNpw7NuIGFuYWzDrXRpY2EgZGUgVGFsZWIgKDIwMTIpLl0oQzpcVHJhYmFqb1wyMDIwXG1vbGx5XGFuYWx5dGljLnBuZykNCg0KR3LDoWZpY28gc2UgaGFjZSBjb24gZXN0ZSBjw7NkaWdvIGVuIGxhdGV4ICh0aWt6KToNCg0KYGBge3IgbGF0ZXgsIGV2YWw9RkFMU0UsIGluY2x1ZGU9VH0NCglcYmVnaW4ge2ZpZ3VyZX1baCFdDQoJXGNlbnRlcmluZw0KCVxiZWdpbnt0aWt6cGljdHVyZX1bc2NhbGU9MV0NCglcYmVnaW57YXhpc31bDQoJe3RpY2tzPW5vbmV9LCAlIHF1aXRhIGxvcyBuw7ptZXJvcyBkZSBncmFkdWFjacOzbg0KCWF4aXMgbGluZXMgPSBsZWZ0LA0KCXhsYWJlbCA9IE7Dum1lcm8gZGUgdmFyaWFibGVzIGFsZWF0b3JpYXMgKHYpLA0KCXlsYWJlbCA9IE7Dum1lcm8gZGUgY29ycmVsYWNpb25lcyBlc3B1cmlhcw0KCV0NCglcYWRkcGxvdCBbDQoJZG9tYWluPTAuNTY6MywNCgljb2xvcj1yZWQsDQoJXQ0KCXt4KigoeC0xKS8yKX07DQoJXG5vZGVbbGFiZWw9ezE4MDp7XHRleHRiZnskdlx0aW1lc1xsZWZ0KFxkZnJhY3t2LTF9ezJ9XHJpZ2h0KSR9fX0sY2lyY2xlLCVmaWxsLA0KCWlubmVyIHNlcD0ycHRdIGF0IChheGlzIGNzOjIsMS45KSB7fTsNCglcZW5ke2F4aXN9DQoJXGVuZHt0aWt6cGljdHVyZX0NCglcZW5kIHtmaWd1cmV9DQpgYGANCg0KDQojIyA8Zm9udCBjb2xvcj0iIzMyMjI5QiI+RWplbXBsb3MgaW50ZXJlc2FudGVzIGRlIGNvcnJlbGFjaW9uZXMgZXNww7pyZWFzPC9mb250Pg0KDQo8Zm9udCBzaXplPSI1Ij4NClVuIGJ1ZW4gc2l0aW8gcGFyYSBpbnZlc3RpZ2FyIGVzdGUgdGlwbyBkZSBmZW7Ds21lbm9zIGVzOiBodHRwczovL3d3dy50eWxlcnZpZ2VuLmNvbS9zcHVyaW91cy1jb3JyZWxhdGlvbnMNCkVsIHNpZ3VpZW50ZSwgdGllbmUgdW5hIGNvcnJlbGFjacOzbiBkZSA5OSw3OSU6DQo8L2ZvbnQ+DQoNCiFbR3LDoWZpY28gZGUgVHlsZXIgVmlnZW4uXShDOlxUcmFiYWpvXDIwMjBcbW9sbHlcY2hhcnQucG5nKQ0KDQo8IS0tICMgYGBge3IsICBlY2hvPUZBTFNFLCBvdXQud2lkdGggPSAiOTUlIn0gLS0+DQo8IS0tICMgIyBTbWFsbCBmaWcud2lkdGggLS0+DQo8IS0tICMgaW5jbHVkZV9ncmFwaGljcygiY2hhcnQucG5nIikgLS0+DQo8IS0tICMgYGBgIC0tPg0KDQojIyA8Zm9udCBjb2xvcj0iIzMyMjI5QiI+Q29lZmljaWVudGUgZGUgY29ycmVsYWNpw7NuOiAkciQgPC9mb250Pg0KDQo8Zm9udCBzaXplPSI0Ij4NCjxwPiBMYXMgY29ycmVsY2lvbmVzIGFudGVyaW9yZXMgZnVlcm9uIGNhbGN1bGFkYXMgdXNhbmRvIGxhIG3DqXRyaWNhIGRlIHIgZGUgUGVhcnNvbiBwYXJhIG11ZXN0cmFzLCBxdWUgc2UgZGVmaW5lIGFzw606IDwvcD4NCg0KDQokJCByID0gXGRmcmFje25cc3VtX3tpPTF9XntufXt4X2kgeV9pfS0oXHN1bV97aT0xfV57bn17eF9pfVxzdW1fe2k9MX1ee259e3lfaX0pfXtcc3FydHsgW24gXHN1bV97aT0xfV57bn17eF9pXjJ9LShcc3VtX3tpPTF9XntufXt4X2l9KV4yIF1bbiBcc3VtX3tpPTF9XntufXt5X2leMn0tKFxzdW1fe2k9MX1ee259e3lfaX0pXjIgfV19ICQkDQoNCkxvcyBzdXB1ZXN0b3MgZGUgZXN0YSBtw6l0cmljYSBzb24gPHN0cm9uZz5saW5lYWxpZGFkIHkgbm9ybWFsaWRhZCAuLi48L3N0cm9uZz59DQoNCg0KIyMgPGZvbnQgY29sb3I9IiMzMjIyOUIiPkxhIGVzY2FsZXJhIGRlIGxhIGNhdXNhbGlkYWQ6IEp1ZGVhIFBlYXJsPC9mb250Pg0KDQpKdWRlYSBQZWFybCwgdW5vIGRlIGxvcyBtYXRlbcOhdGljb3MgcXVlIG3DoXMgaGEgYXZhbnphZG8gZW4gdGVvcsOtYSB5IGFwbGljYWNpw7NuIGRlIG1vZGVsb3MgY2F1c2FsZXMsIGhhIGFyZ3VtZW50YWRvIGVuIGxhIG1pc21hIGzDrW5lYS4gRGUgaGVjaG8sIGVuIHN1IGZhbW9zbyBsaWJybyBkZSBkaXZ1bGdhY2nDs24gYFRoZSBCb29rIG9mIFdoeWAgbm9zIGVudHJlZ2EgZWwgc2lndWllbnRlIGRpYWdyYW1hIHF1ZSBzaW50ZXRpemEgZXN0b3MgYXJndW1lbnRvcyBjb24gdW5hIHNvbGEgaW1hZ2VuOg0KDQohW0p1ZGVzIFBlYXJsLCAyMDE4LCAqVGhlIEJvb2sgb2YgV2h5KiwgQmFzaWMgQm9va3MuIF0oQzpcVHJhYmFqb1wyMDIwXG1vbGx5XHBlYXJsLnBuZykNCg0KDQo8c3Ryb25nPjxmb250IGNvbG9yPSIjREYyQjRGIj5jb250aW51YXLDoS4uLjwvZm9udD48L3N0cm9uZz4=