Después de construir la tabla de frecuencias correspondiente es conveniente la representación gráfica de la distribución de los datos en un diagrama. Estas representaciones gráficas permiten una visualización rápida de la información recogida. Veamos los diferentes tipos de diagramas.
Representación gráfica para datos no agrupados
El diagrama principal para representar datos de variables discretas no agrupadas es el diagrama de barras. En este se representan en el eje de abscisas los distintos valores de la variable y sobre cada uno de ellos se levanta una barra de longitud igual a la frecuencia correspondiente. Pueden representarse tanto las frecuencias absolutas \(f_i\) como las relativas \(h_i\). En la practica se puede graduar simultáneamente el eje de ordenadas tanto en frecuencias absolutas como en relativas en tantos por ciento.

El mismo gráfico se puede realizar con las frecuencias relativas, es decir, es posible representar los porcentajes como se muestra a continuación.

Un diagrama similar es el polígono de frecuencias. Este se obtiene uniendo con rectas los extremos superiores de las barras del diagrama anterior.

De la misma forma, pueden representarse frecuencias absolutas, Para representar las frecuencias, tanto absolutas como relativas, acumuladas se usa el diagrama de frecuencias acumuladas.

Este gráfico, en forma de escalera, se construye representando en abscisas los distintos valores de la variable y levantando sobre cada \(x_i\) una perpendicular cuya longitud sera la frecuencia acumulada (\(H_i\) o \(F_i\)) de ese valor. Los puntos se unen con tramos horizontales y verticales como se muestra en la figura. Evidentemente la escalera resultante ha de ser siempre ascendente.

Representaciones gráficas para datos agrupados
La representación gráfica mas usada para datos agrupados es el histograma de frecuencias absolutas o relativas. Un histograma es un conjunto de rectángulos adyacentes, cada uno de los cuales representa un intervalo de clase. Las base de cada rectángulo es proporcional a la amplitud del intervalo. Es decir, el centro de la base de cada rectángulo ha de corresponder a una marca de clase. La altura se suele determinar para que el área de cada rectángulo sea igual a la frecuencia de la marca de clase correspondiente. Por tanto, la altura de cada rectángulo se puede calcular como el cociente entre la frecuencia (absoluta o relativa) y la amplitud del intervalo. En el caso de que la amplitud de los intervalos sea constante, la representación es equivalente a usar como altura la frecuencia de cada marca de clase, siendo este método mas sencillo para dibujar rápidamente un histograma.

Representaciones gráficas para variables cualitativas
Existe una gran variedad de representaciones para variables cualitativas, de las cuales vamos a describir únicamente las dos mas usadas. El diagrama de rectángulos es similar al diagrama de barras y el histograma para las variables cuantitativas. Consiste en representar en el eje de abscisas los diferentes caracteres cualitativos y levantar sobre cada uno de ellos un rectángulo (de forma no solapada) cuya altura sea la frecuencia (absoluta o relativa) de dicho carácter.

Un diagrama muy usado es el diagrama de sectores (también llamado diagrama de tarta). En él se representa el valor de cada carácter cualitativo como un sector de un circulo completo, siendo el área de cada sector, o, lo que es lo mismo, el arco subtendido, proporcional a la frecuencia del carácter en cuestión. De forma practica, cada arco se calcula como 360º multiplicado por la frecuencia relativa. Es ademas costumbre escribir dentro, o a un lado, de cada sector la frecuencia correspondiente. Este tipo de diagrama proporciona una idea visual muy clara de cuales son los caracteres que mas se repiten.

Este gráfico se puede presentar en tres dimensiones, pero presenta varios inconvenientes.

Otras representaciones graficas
Diagrama de puntos
El diagrama de puntos como representación de una distribución consiste en un grupo de puntos de datos trazados en una escala simple. Los gráficos de puntos se usan para datos continuos, cuantitativos y univariados. Los puntos de datos pueden etiquetarse si hay pocos de ellos.

Diagrama de cajas
Un diagrama de caja, también conocido como diagrama de caja y bigotes, es un gráfico que está basado en cuartiles y mediante el cual se visualiza la distribución de un conjunto de datos. Está compuesto por un rectángulo (la «caja») y dos brazos (los «bigotes»).
Es un gráfico que suministra información sobre los valores mínimo y máximo, los cuartiles Q1, Q2 o mediana y Q3, y sobre la existencia de valores atípicos y la simetría de la distribución. Primero es necesario encontrar la mediana para luego encontrar los 2 cuartiles restantes

Diagrama de dispersión
Este diagrama utiliza puntos para medir la tendencia en la relación de dos variables que se dicen independientes en principio.

Series de tiempo
Es una gráfico de linea que indica continuidad de la variable, en este caso en el tiempo t, es común en modelos estadísticos de pronostico.

LS0tCnRpdGxlOiAiUmVwcmVzZW50YWNpb25lcyBncsOhZmljYXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCkRlc3B1w6lzIGRlIGNvbnN0cnVpciBsYSB0YWJsYSBkZSBmcmVjdWVuY2lhcyBjb3JyZXNwb25kaWVudGUgZXMgY29udmVuaWVudGUgbGEgcmVwcmVzZW50YWNpw7NuIGdyw6FmaWNhIGRlIGxhIGRpc3RyaWJ1Y2nDs24gZGUgbG9zIGRhdG9zIGVuIHVuIGRpYWdyYW1hLiBFc3RhcyByZXByZXNlbnRhY2lvbmVzIGdyw6FmaWNhcyBwZXJtaXRlbiB1bmEgdmlzdWFsaXphY2nDs24gcsOhcGlkYSBkZSBsYSBpbmZvcm1hY2nDs24gcmVjb2dpZGEuIFZlYW1vcyBsb3MgZGlmZXJlbnRlcyB0aXBvcyBkZSBkaWFncmFtYXMuCgojIFJlcHJlc2VudGFjacOzbiBncsOhZmljYSBwYXJhIGRhdG9zIG5vIGFncnVwYWRvcyAKCkVsIGRpYWdyYW1hIHByaW5jaXBhbCBwYXJhIHJlcHJlc2VudGFyIGRhdG9zIGRlIHZhcmlhYmxlcyBkaXNjcmV0YXMgbm8gYWdydXBhZGFzIGVzIGVsIF8qKmRpYWdyYW1hIGRlIGJhcnJhcyoqXy4gRW4gZXN0ZSBzZSByZXByZXNlbnRhbiBlbiBlbCBlamUgZGUgYWJzY2lzYXMgbG9zIGRpc3RpbnRvcyB2YWxvcmVzIGRlIGxhIHZhcmlhYmxlIHkgc29icmUgY2FkYSB1bm8gZGUgZWxsb3Mgc2UgbGV2YW50YSB1bmEgYmFycmEgZGUgbG9uZ2l0dWQgaWd1YWwgYSBsYSBmcmVjdWVuY2lhIGNvcnJlc3BvbmRpZW50ZS4gUHVlZGVuIHJlcHJlc2VudGFyc2UgdGFudG8gbGFzIGZyZWN1ZW5jaWFzIGFic29sdXRhcyAkZl9pJCBjb21vIGxhcyByZWxhdGl2YXMgJGhfaSQuIEVuIGxhIHByYWN0aWNhIHNlIHB1ZWRlIGdyYWR1YXIgc2ltdWx0w6FuZWFtZW50ZSBlbCBlamUgZGUgb3JkZW5hZGFzIHRhbnRvIGVuIGZyZWN1ZW5jaWFzIGFic29sdXRhcyBjb21vIGVuIHJlbGF0aXZhcyBlbiB0YW50b3MgcG9yIGNpZW50by4KCmBgYHtyLCBmaWcuYWxpZ249J2NlbnRlcid9Ck5vX0hpam9zIDwtIGZhY3RvcihyZXAoMTo1LCBjKDYsNyw0LDIsMSkpKQp0YWIgPC0gdGFibGUoTm9fSGlqb3MpCmJhcnBsb3QodGFiLCBtYWluID0gIk7Dum1lcm8gZGUgSGlqb3MgcG9yIGZhbWlsaWEiLAogICAgICAgIHhsYWIgPSAiTm8uIGRlIEhpam9zIiwgeWxhYiA9ICJGcmVjdWVuY2lhIGFic29sdXRhIiwgCiAgICAgICAgYmVzaWRlID0gRikKCgpgYGAKCkVsIG1pc21vIGdyw6FmaWNvIHNlIHB1ZWRlIHJlYWxpemFyIGNvbiBsYXMgZnJlY3VlbmNpYXMgcmVsYXRpdmFzLCBlcyBkZWNpciwgZXMgcG9zaWJsZSByZXByZXNlbnRhciBsb3MgcG9yY2VudGFqZXMgY29tbyBzZSBtdWVzdHJhIGEgY29udGludWFjacOzbi4KCmBgYHtyLCBmaWcuYWxpZ249J2NlbnRlcid9Ck5vX0hpam9zIDwtIGZhY3RvcihyZXAoMTo1LCBjKDYsNyw0LDIsMSkpKQp0YWIgPC0gcHJvcC50YWJsZSh0YWJsZShOb19IaWpvcykpKjEwMApiYXJwbG90KHRhYiwgbWFpbiA9ICJOw7ptZXJvIGRlIEhpam9zIHBvciBmYW1pbGlhIiwKICAgICAgICB4bGFiID0gIk5vLiBkZSBIaWpvcyIsIHlsYWIgPSAiRnJlY3VlbmNpYSBSZWxhdGl2YSIsIAogICAgICAgIGJlc2lkZSA9IEYpCgpgYGAKCgpVbiBkaWFncmFtYSBzaW1pbGFyIGVzIGVsIF8qKnBvbMOtZ29ubyBkZSBmcmVjdWVuY2lhcyoqXy4gRXN0ZSBzZSBvYnRpZW5lIHVuaWVuZG8gY29uIHJlY3RhcyBsb3MgZXh0cmVtb3Mgc3VwZXJpb3JlcyBkZSBsYXMgYmFycmFzIGRlbCBkaWFncmFtYSBhbnRlcmlvci4gCgpgYGB7ciwgZWNobz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInfQpOb19IaWpvcyA8LSBmYWN0b3IocmVwKDE6NSwgYyg2LDcsNCwyLDEpKSkKdGFiIDwtIHRhYmxlKE5vX0hpam9zKQpiYXJwbG90KHRhYiwgbWFpbiA9ICJOw7ptZXJvIGRlIEhpam9zIHBvciBmYW1pbGlhIiwKICAgICAgICB4bGFiID0gIk5vLiBkZSBIaWpvcyIsIHlsYWIgPSAiRnJlY3VlbmNpYSBhYnNvbHV0YSIsIAogICAgICAgIGJlc2lkZSA9IEYpCnBvaW50cyhjKDYsNyw0LDIsMSksIHBjaCA9IDI1KQpsaW5lcyhjKDYsNyw0LDIsMSkpCgpgYGAKCgpEZSBsYSBtaXNtYSBmb3JtYSwgcHVlZGVuIHJlcHJlc2VudGFyc2UgZnJlY3VlbmNpYXMgYWJzb2x1dGFzLCBQYXJhIHJlcHJlc2VudGFyIGxhcyBmcmVjdWVuY2lhcywgdGFudG8gYWJzb2x1dGFzIGNvbW8gcmVsYXRpdmFzLCBhY3VtdWxhZGFzIHNlIHVzYSBlbCBkaWFncmFtYSBkZSBmcmVjdWVuY2lhcyBhY3VtdWxhZGFzLiAKCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuYWxpZ249J2NlbnRlcid9Ck5vX0hpam9zIDwtIGZhY3RvcihyZXAoMTo1LCBjdW1zdW0oYyg2LDcsNCwyLDEpKSkpCnRhYiA8LSB0YWJsZShOb19IaWpvcykKYmFycGxvdCh0YWIsIG1haW4gPSAiTsO6bWVybyBkZSBIaWpvcyBwb3IgZmFtaWxpYSIsCiAgICAgICAgeGxhYiA9ICJOby4gZGUgSGlqb3MiLCB5bGFiID0gIkZyZWN1ZW5jaWEgYWJzb2x1dGEiLCAKICAgICAgICBiZXNpZGUgPSBGKQoKYGBgCgpFc3RlIGdyw6FmaWNvLCBlbiBmb3JtYSBkZSBlc2NhbGVyYSwgc2UgY29uc3RydXllIHJlcHJlc2VudGFuZG8gZW4gYWJzY2lzYXMgbG9zIGRpc3RpbnRvcyB2YWxvcmVzIGRlIGxhIHZhcmlhYmxlIHkgbGV2YW50YW5kbyBzb2JyZSBjYWRhICR4X2kkIHVuYSBwZXJwZW5kaWN1bGFyIGN1eWEgbG9uZ2l0dWQgc2VyYSBsYSBmcmVjdWVuY2lhIGFjdW11bGFkYSAoJEhfaSQgbyAkRl9pJCkgZGUgZXNlIHZhbG9yLiBMb3MgcHVudG9zIHNlIHVuZW4gY29uIHRyYW1vcyBob3Jpem9udGFsZXMgeSB2ZXJ0aWNhbGVzIGNvbW8gc2UgbXVlc3RyYSBlbiBsYSBmaWd1cmEuIEV2aWRlbnRlbWVudGUgbGEgZXNjYWxlcmEgcmVzdWx0YW50ZSBoYSBkZSBzZXIgc2llbXByZSBhc2NlbmRlbnRlLgoKYGBge3IsIGVjaG89RkFMU0UsIGZpZy5hbGlnbj0nY2VudGVyJ30KeCA8LSAxOjUKeSA8LSBjdW1zdW0oKGMoNiw3LDQsMiwxKS9zdW0oYyg2LDcsNCwyLDEpKSkqMTAwKQoKcGxvdCh4LCB5LCB0eXBlID0gImIiLCBwY2ggPSAyMCwgZnJhbWUucGxvdCA9IEYsIAogICAgIG1haW4gPSAiUG9saWdvbm8gZGUgZnJlY3VlbmNpYSBhY3VtdWxhZGEgKE9qaXZhKSIsIHlsYWIgPSAiRnJlY3VlbmNpYSBSZWxhdGl2YSAlIiwgeGxhYiA9ICJOw7ptZXJvIGRlIEhpam9zIikKYGBgCgojIyBSZXByZXNlbnRhY2lvbmVzIGdyw6FmaWNhcyBwYXJhIGRhdG9zIGFncnVwYWRvcwoKTGEgcmVwcmVzZW50YWNpw7NuIGdyw6FmaWNhIG1hcyB1c2FkYSBwYXJhIGRhdG9zIGFncnVwYWRvcyBlcyBlbCBfKipoaXN0b2dyYW1hKipfIGRlIGZyZWN1ZW5jaWFzIGFic29sdXRhcyBvIHJlbGF0aXZhcy4gVW4gaGlzdG9ncmFtYSBlcyB1biBjb25qdW50byBkZSByZWN0w6FuZ3Vsb3MgYWR5YWNlbnRlcywgY2FkYSB1bm8gZGUgbG9zIGN1YWxlcyByZXByZXNlbnRhIHVuIGludGVydmFsbyBkZSBjbGFzZS4gTGFzIGJhc2UgZGUgY2FkYSByZWN0w6FuZ3VsbyBlcyBwcm9wb3JjaW9uYWwgYSBsYSBhbXBsaXR1ZCBkZWwgaW50ZXJ2YWxvLiBFcyBkZWNpciwgZWwgY2VudHJvIGRlIGxhIGJhc2UgZGUgY2FkYSByZWN0w6FuZ3VsbyBoYSBkZSBjb3JyZXNwb25kZXIgYSB1bmEgbWFyY2EgZGUgY2xhc2UuIExhIGFsdHVyYSBzZSBzdWVsZSBkZXRlcm1pbmFyIHBhcmEgcXVlIGVsIMOhcmVhIGRlIGNhZGEgcmVjdMOhbmd1bG8gc2VhIGlndWFsIGEgbGEgZnJlY3VlbmNpYSBkZSBsYSBtYXJjYSBkZSBjbGFzZSBjb3JyZXNwb25kaWVudGUuIFBvciB0YW50bywgbGEgYWx0dXJhIGRlIGNhZGEgcmVjdMOhbmd1bG8gc2UgcHVlZGUgY2FsY3VsYXIgY29tbyBlbCBjb2NpZW50ZSBlbnRyZSBsYSBmcmVjdWVuY2lhIChhYnNvbHV0YSBvIHJlbGF0aXZhKSB5IGxhIGFtcGxpdHVkIGRlbCBpbnRlcnZhbG8uIEVuIGVsIGNhc28gZGUgcXVlIGxhIGFtcGxpdHVkIGRlIGxvcyBpbnRlcnZhbG9zIHNlYSBjb25zdGFudGUsIGxhIHJlcHJlc2VudGFjacOzbiBlcyBlcXVpdmFsZW50ZSBhIHVzYXIgY29tbyBhbHR1cmEgbGEgZnJlY3VlbmNpYSBkZSBjYWRhIG1hcmNhIGRlIGNsYXNlLCBzaWVuZG8gZXN0ZSBtw6l0b2RvIG1hcyBzZW5jaWxsbyBwYXJhIGRpYnVqYXIgcsOhcGlkYW1lbnRlIHVuIGhpc3RvZ3JhbWEuCgpgYGB7ciwgZWNobz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInfQpwYXJhIDwtIGMoOC42MywgMTAuMTYsIDguNTAsIDguMzEsIDEwLjgwLCA3LjUwLCA4LjEyLCAKICAgICAgICAgIDguNDIsIDkuMjAsIDguMTYsIDguMzYsIDkuNzcsIDcuNTIsIDcuOTYsIAogICAgICAgICAgNy44MywgOC42MiwgNy41NCwgOC4yOCwgOS4zMiwgNy45NiwgNy40NykKaGlzdChwYXJhLCBjb2wgPSAibGlnaHRibHVlIiwgCiAgICAgbWFpbiA9ICJIaXN0b2dyYW1hIGRlbCBQYXJhbGFqZSBkZWwgU29sIiwKICAgICBmcmVxID0gVCwgeGxhYiA9ICJDbGFzZXMiKQpgYGAKCiMjIFJlcHJlc2VudGFjaW9uZXMgZ3LDoWZpY2FzIHBhcmEgdmFyaWFibGVzIGN1YWxpdGF0aXZhcwoKRXhpc3RlIHVuYSBncmFuIHZhcmllZGFkIGRlIHJlcHJlc2VudGFjaW9uZXMgcGFyYSB2YXJpYWJsZXMgY3VhbGl0YXRpdmFzLCBkZSBsYXMgY3VhbGVzIHZhbW9zIGEgZGVzY3JpYmlyIMO6bmljYW1lbnRlIGxhcyBkb3MgbWFzIHVzYWRhcy4gRWwgZGlhZ3JhbWEgZGUgcmVjdMOhbmd1bG9zIGVzIHNpbWlsYXIgYWwgZGlhZ3JhbWEgZGUgYmFycmFzIHkgZWwgaGlzdG9ncmFtYSBwYXJhIGxhcyB2YXJpYWJsZXMgY3VhbnRpdGF0aXZhcy4gQ29uc2lzdGUgZW4gcmVwcmVzZW50YXIgZW4gZWwgZWplIGRlIGFic2Npc2FzIGxvcyBkaWZlcmVudGVzIGNhcmFjdGVyZXMgY3VhbGl0YXRpdm9zIHkgbGV2YW50YXIgc29icmUgY2FkYSB1bm8gZGUgZWxsb3MgdW4gcmVjdMOhbmd1bG8gKGRlIGZvcm1hIG5vIHNvbGFwYWRhKSBjdXlhIGFsdHVyYSBzZWEgbGEgZnJlY3VlbmNpYSAoYWJzb2x1dGEgbyByZWxhdGl2YSkgZGUgZGljaG8gY2Fyw6FjdGVyLgoKCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuYWxpZ249J2NlbnRlcid9Ck5vdGEgPC0gYygiU3VzcGVuc28iLCAiQXByb2JhZG8iLCAiTm90YWJsZSIsICJTb2JyZXNhbGllbnRlIiwKICAgICAgICAgICJNLiBIb25vciIpCk5ub3RhIDwtIGZhY3RvcihyZXAoTm90YSwgYygxMTAsIDkwLCAyMywgMTIsIDIpKSkKYmFycGxvdCh0YWJsZShObm90YSksIGhvcml6ID0gVCkKCmBgYAoKVW4gZGlhZ3JhbWEgbXV5IHVzYWRvIGVzIGVsIF8qKmRpYWdyYW1hIGRlIHNlY3RvcmVzKipfICh0YW1iacOpbiBsbGFtYWRvIGRpYWdyYW1hIGRlIHRhcnRhKS4gRW4gIMOpbCBzZSByZXByZXNlbnRhIGVsIHZhbG9yIGRlIGNhZGEgY2Fyw6FjdGVyIGN1YWxpdGF0aXZvIGNvbW8gdW4gc2VjdG9yIGRlIHVuIGNpcmN1bG8gY29tcGxldG8sIHNpZW5kbyBlbCAgw6FyZWEgZGUgY2FkYSBzZWN0b3IsIG8sIGxvIHF1ZSBlcyBsbyBtaXNtbywgZWwgYXJjbyBzdWJ0ZW5kaWRvLCBwcm9wb3JjaW9uYWwgYSBsYSBmcmVjdWVuY2lhIGRlbCBjYXLDoWN0ZXIgZW4gY3Vlc3Rpw7NuLiBEZSBmb3JtYSBwcmFjdGljYSwgY2FkYSBhcmNvIHNlIGNhbGN1bGEgY29tbyAzNjDCuiBtdWx0aXBsaWNhZG8gcG9yIGxhIGZyZWN1ZW5jaWEgcmVsYXRpdmEuIEVzIGFkZW1hcyBjb3N0dW1icmUgZXNjcmliaXIgZGVudHJvLCBvIGEgdW4gbGFkbywgZGUgY2FkYSBzZWN0b3IgbGEgZnJlY3VlbmNpYSBjb3JyZXNwb25kaWVudGUuIEVzdGUgdGlwbyBkZSBkaWFncmFtYSBwcm9wb3JjaW9uYSB1bmEgaWRlYSB2aXN1YWwgbXV5IGNsYXJhIGRlIGN1YWxlcyBzb24gbG9zIGNhcmFjdGVyZXMgcXVlIG1hcyBzZSByZXBpdGVuLgoKYGBge3IsIGVjaG89RkFMU0V9CnNsaWNlcyA8LSBjKDExMCwgOTAsIDIzLCAxMiwgMikgCmxibHMgPC0gYygiU3VzcGVuc28iLCAiQXByb2JhZG8iLCAiTm90YWJsZSIsICJTb2JyZXNhbGllbnRlIiwKICAgICAgICAgICJNLiBIb25vciIpCnBjdCA8LSByb3VuZChzbGljZXMvc3VtKHNsaWNlcykqMTAwKQpsYmxzIDwtIHBhc3RlKGxibHMsIHBjdCkgIyBhZGQgcGVyY2VudHMgdG8gbGFiZWxzIApsYmxzIDwtIHBhc3RlKGxibHMsIiUiLHNlcD0iIikgIyBhZCAlIHRvIGxhYmVscyAKcGllKHNsaWNlcyxsYWJlbHMgPSBsYmxzLCBjb2w9cmFpbmJvdyhsZW5ndGgobGJscykpLAogICAgbWFpbj0iUGllIENoYXJ0IGRlIGxhcyBOb3RhcyIpCgpgYGAKCkVzdGUgZ3LDoWZpY28gc2UgcHVlZGUgcHJlc2VudGFyIGVuIHRyZXMgZGltZW5zaW9uZXMsIHBlcm8gcHJlc2VudGEgdmFyaW9zIGluY29udmVuaWVudGVzLgoKYGBge3IsIGVjaG89RkFMU0V9CmxpYnJhcnkocGxvdHJpeCkKc2xpY2VzIDwtIGMoMTAsIDEyLCA0LCAxNiwgOCkgCmxibHMgPC0gYygiVVMiLCAiVUsiLCAiQXVzdHJhbGlhIiwgIkdlcm1hbnkiLCAiRnJhbmNlIikKcGllM0Qoc2xpY2VzLGxhYmVscz1sYmxzLGV4cGxvZGU9MC4yLAogICAgICBtYWluPSJQaWUgQ2hhcnQgb2YgQ291bnRyaWVzICIpCmBgYAoKCiMjIE90cmFzIHJlcHJlc2VudGFjaW9uZXMgZ3JhZmljYXMgCgojIyMgRGlhZ3JhbWEgZGUgcHVudG9zIAoKRWwgZGlhZ3JhbWEgZGUgcHVudG9zIGNvbW8gcmVwcmVzZW50YWNpw7NuIGRlIHVuYSBkaXN0cmlidWNpw7NuIGNvbnNpc3RlIGVuIHVuIGdydXBvIGRlIHB1bnRvcyBkZSBkYXRvcyB0cmF6YWRvcyBlbiB1bmEgZXNjYWxhIHNpbXBsZS4gTG9zIGdyw6FmaWNvcyBkZSBwdW50b3Mgc2UgdXNhbiBwYXJhIGRhdG9zIGNvbnRpbnVvcywgY3VhbnRpdGF0aXZvcyB5IHVuaXZhcmlhZG9zLiBMb3MgcHVudG9zIGRlIGRhdG9zIHB1ZWRlbiBldGlxdWV0YXJzZSBzaSBoYXkgcG9jb3MgZGUgZWxsb3MuCgpgYGB7ciwgZWNobz1GQUxTRX0KbGlicmFyeShnZ3Bsb3QyKQpkb3RjaGFydChtdGNhcnMkbXBnLGxhYmVscz1yb3cubmFtZXMobXRjYXJzKSxjZXg9LjcsCiAgICAgICAgIG1haW49IkdhcyBNaWxhZ2UgZm9yIENhciBNb2RlbHMiLCAKICAgICAgICAgeGxhYj0iTWlsZXMgUGVyIEdhbGxvbiIpCmBgYAoKIyMjIERpYWdyYW1hIGRlIGNhamFzIAoKVW4gZGlhZ3JhbWEgZGUgY2FqYSwgdGFtYmnDqW4gY29ub2NpZG8gY29tbyBkaWFncmFtYSBkZSBjYWphIHkgYmlnb3RlcywgZXMgdW4gZ3LDoWZpY28gcXVlIGVzdMOhIGJhc2FkbyBlbiBjdWFydGlsZXMgeSBtZWRpYW50ZSBlbCBjdWFsIHNlIHZpc3VhbGl6YSBsYSBkaXN0cmlidWNpw7NuIGRlIHVuIGNvbmp1bnRvIGRlIGRhdG9zLiBFc3TDoSBjb21wdWVzdG8gcG9yIHVuIHJlY3TDoW5ndWxvIChsYSDCq2NhamHCuykgeSBkb3MgYnJhem9zIChsb3MgwqtiaWdvdGVzwrspLgoKRXMgdW4gZ3LDoWZpY28gcXVlIHN1bWluaXN0cmEgaW5mb3JtYWNpw7NuIHNvYnJlIGxvcyB2YWxvcmVzIG3DrW5pbW8geSBtw6F4aW1vLCBsb3MgY3VhcnRpbGVzIFExLCBRMiBvIG1lZGlhbmEgeSBRMywgeSBzb2JyZSBsYSBleGlzdGVuY2lhIGRlIHZhbG9yZXMgYXTDrXBpY29zIHkgbGEgc2ltZXRyw61hIGRlIGxhIGRpc3RyaWJ1Y2nDs24uIFByaW1lcm8gZXMgbmVjZXNhcmlvIGVuY29udHJhciBsYSBtZWRpYW5hIHBhcmEgbHVlZ28gZW5jb250cmFyIGxvcyAyIGN1YXJ0aWxlcyByZXN0YW50ZXMKCmBgYHtyLCBlY2hvPUZBTFNFfQpsaWJyYXJ5KGdncGxvdDIpCmJveHBsb3QobXBnfmN5bCxkYXRhPW10Y2FycywgbWFpbj0iTWlsbGFnZSBkZWwgY2Fycm8iLCAKICAJeGxhYj0iTsO6bWVybyBkZSBDaWxpbmRyb3MiLCB5bGFiPSJNaWxsYXMgcG9yIEdhbMOzbiIpCmBgYAoKIyMgRGlhZ3JhbWEgZGUgZGlzcGVyc2nDs24gCgpFc3RlIGRpYWdyYW1hIHV0aWxpemEgcHVudG9zIHBhcmEgbWVkaXIgbGEgdGVuZGVuY2lhIGVuIGxhIHJlbGFjacOzbiBkZSBkb3MgdmFyaWFibGVzIHF1ZSBzZSBkaWNlbiBpbmRlcGVuZGllbnRlcyBlbiBwcmluY2lwaW8uCgpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeShnZ3Bsb3QyKQphdHRhY2gobXRjYXJzKQpwbG90KHd0LCBtcGcsIG1haW49IlNjYXR0ZXJwbG90IEV4YW1wbGUiLCAKICAJeGxhYj0iQ2FyIFdlaWdodCAiLCB5bGFiPSJNaWxlcyBQZXIgR2FsbG9uICIsIHBjaD0xOSkKYWJsaW5lKGxtKG1wZ353dCksIGNvbD0icmVkIikgCmxpbmVzKGxvd2Vzcyh3dCxtcGcpLCBjb2w9ImJsdWUiKSAKYGBgCgojIyMgU2VyaWVzIGRlIHRpZW1wbyAKCkVzIHVuYSBncsOhZmljbyBkZSBsaW5lYSBxdWUgaW5kaWNhIGNvbnRpbnVpZGFkIGRlIGxhIHZhcmlhYmxlLCBlbiBlc3RlIGNhc28gZW4gZWwgdGllbXBvIHQsIGVzIGNvbcO6biBlbiBtb2RlbG9zIGVzdGFkw61zdGljb3MgZGUgcHJvbm9zdGljby4KCmBgYHtyfQpkYXRhKCJBaXJQYXNzZW5nZXJzIikKcGxvdChBaXJQYXNzZW5nZXJzLCBmcmFtZS5wbG90ID0gRikKYGBgCgo=