“La idea de progreso hace de todos nosotros fatuos […]: el troglodita que temblaba de espanto en las cavernas, tiembla aún en los rascacielos […] empero tenemos una ventaja sobre nuestros ancestros: […] al haber organizado mejor nuestro desastre.”

— E. M. Cioran, Nosotros, los trogloditas…, en Breviario de Podredumbre


Inventando el miedo

Las estadísticas que el gran público no conoce

Para tener contexto: en 2019, de acuerdo al Registro Civil, 109.837 personas murieron en Chile. No hay detalles relevantes para 2018 ni 2019, pero sí para 2017, cuando murieron 106.388: 1.941 menores, 27.128 adultos y 77.319 adultos mayores; 55.773 hombres, 50.593 mujeres, etc. De hecho, el número de personas que muere al año en chile ha venido aumentando en promedio en 1.229 por año, como se puede ver en el siguiente gráfico, donde la línea azul representa la tendencia, y la roja la cantidad de muertos anuales:


Tomando los grandes grupos de causas de muerte desde 1997 a la fecha2, el paisaje escatológico se ve así:


Por supuesto, se puede alegar que estamos tomando categorías muy gruesas, lo que es cierto. Entonces, es posible desglosar las anteriores para obtener información un poco más granular, lo que se muestra en el siguiente gráfico para las mismas fechas del anterior3:



Análisis de Incidencia de serie histórica de fallecidos

¿Qué enfermedades tienen una mayor incidencia en las 7.361 muertes “extra” de 2007, y en las 5.965 muertes “extra” de 2010 de las que hablamos arriba4?

Sea \(c_{i,t}\) la cantidad de muertos por la causa \(i\) (infarto, neumonía, etc)5, \(t\) el período de tiempo (año), entonces:

Los resultados de las principales incidencias para cada año se muestran en la siguiente tabla, a nivel de CIE 10 por subcategorías:

Año (t) Enfermedad Cantidad (t) Cantidad (t-1) Incidencia (%)
2006
2006 ENFERMEDAD DE ALZHEIMER, NO ESPECIFICADA 914 731 0,2153%
2006 ENFERMEDAD PULMÓNAR OBSTRUCTIVA CRONICA, NO ESPECIFICADA 1.182 1.068 0,1341%
2006 EFECTO TOXICO DEL ETANOL 118 5 0,1329%
2006 INSUFICIENCIA CARDIACA, NO ESPECIFICADA 1.097 993 0,1223%
2006 OTROS TRAUMATISMOS ESPECIFICADOS QUE AFECTAN MULTIPLES REGIONES DEL CUERPO 337 233 0,1223%
2006 OTRAS ENFERMEDADES CEREBROVASCULARES ESPECIFICADAS 532 429 0,1212%
2006 TUMOR MALIGNO DE LOS BRONQUIOS O DEL PULMÓN, PARTE NO ESPECIFICADA 2.372 2.271 0,1188%
2006 TUMOR MALIGNO DE LA PRÓSTATA 1.598 1.514 0,0988%
2006 ASFIXIA 1.524 1.453 0,0835%
2006 DIABETES MELLITUS NO INSULINODEPENDIENTE CON OTRAS COMPLICACIONES ESPECIFICADAS 726 658 0,0800%
2006 INFARTO CEREBRAL, NO ESPECIFICADO 295 227 0,0800%
2010
2010 ENFERMEDAD RENAL CRÓNICA, ESTADIO 5 707 1 0,785%
2010 INFARTO AGUDO DEL MIOCARDIO, SIN OTRA ESPECIFICACION 5.783 5.281 0,558%
2010 NEUMONIA, NO ESPECIFICADA 2.773 2.331 0,492%
2010 HIPERTENSION ESENCIAL (PRIMARIA) 1.537 1.099 0,487%
2010 ENFERMEDAD PULMÓNAR OBSTRUCTIVA CRONICA C/INFECC. AG.DE VÍAS RESPIRATORIAS INFERIORES 1.168 843 0,361%
2010 SECUELAS DE ENFERMEDAD CEREBROVASCULAR, NO ESPECIFICADA COMO HEMORRAGICA U OCLUSIVA 1.898 1.619 0,310%
2010 FIBRILACION Y ALETEO AURICULAR 935 723 0,236%
2010 OTRAS ENFERMEDADES CEREBROVASCULARES ESPECIFICADAS 1.009 800 0,232%
2010 ENFERMEDAD PULMÓNAR OBSTRUCTIVA CRONICA, NO ESPECIFICADA 1.597 1.396 0,224%
2010 INFECCION DE VÍAS URINARIAS, SITIO NO ESPECIFICADO 890 714 0,196%
1 Elaboración: Guillermo Burr
2 Fuente de los datos: Ministerio de Salud


Las comparaciones que no se hacen


El siguiente gráfico muestra la cantidad de muertes diarias en Chile asociada –¿causada, con presencia?– a COVID-197. Este gráfico muestra los datos de COVID revisados por DEIS, por lo tanto tienen un desface significativo en días respecto a los que se informan en otros productos:



¿Qué pasaría si todos los días publicáramos en todos los medios de comunicación, la cantidad de muertos de las 3 principales causas de muerte? Esto es relativamente similar a lo que está ocurriendo, ¿por qué?

El día lunes se la noticia sería la siguiente: 88 personas murieron anoche por infartos y tumores.

Para saber qué podemos esperar de las muertes con (por) COVID-19, podemos mirar las muertes más frecuentes de otros años, en especial, las de 2017:



Miremos –para exactamente el mismo período de tiempo para el que tenemos datos de COVID-19–, las 10 principales causas de muerte de 2017 y COVD-2020 (representado por la línea roja punteada):


¿De qué murió Rasputín?

De acuerdo a Wikipedia:

Yusúpov, Purishkévich y el gran duque Dmitri planearon atraer a Rasputín al palacio de Yusúpov con la excusa de que se reuniría con la esposa de éste, la gran duquesa Irina Alexándrovna […]. Rasputín se presentó en el palacio poco después de medianoche. Allí Yusúpov lo hizo esperar a la gran duquesa, mientras esta supuestamente atendía a otros invitados, en una estancia del sótano donde le sirvió vino y unos pasteles envenenados con cianuro. Exasperado porque el veneno parecía no hacer efecto, Yusúpov le disparó un tiro con una pistola Browning y lo dejó por muerto mientras se preparaba para salir a deshacerse del cadáver. No obstante, Rasputín había sobrevivido y Purishkévich, después de fallar en dos ocasiones, lo derribó con otros dos disparos y le asestó un golpe en la sien. Después arrastraron el cuerpo con cadenas de hierro y lo arrojaron al río Nevá, donde a pesar del veneno, los disparos y el golpe finalmente murió de ahogamiento.

¿Cómo se clasificaría esta muerte de acuerdo a la WHO y el clasificador CIE 10?


Cuando se nos informa la cantidad de muertos con COVID-19, ¿qué es exactamente lo que se nos está diciendo? ¿qué murieron con COVID o de COVID?

Esta es una pregunta válida. De hecho, desde el Instituto Robert Koch, señalado como centro neurálgico de la respuesta de Alemania al COVID-19, han señalado que: “la pregunta de si alguien murió de o con el virus no siempre se puede responder con claridad.”

El manual de “NORMAS PARA EL REGISTRO DE LA CAUSA DE MUERTE EN EL CERTIFICADO MÉDICO DE DEFUNCIÓN” del Ministerio de Salud, el que puede descargarse aquí indica lo siguiente:

  1. Causa inmediata: proceso o condición que produjo directamente la muerte (complicación o proceso terminal).
  2. Causa intermedia: proceso clínico o complicación que se produjo a consecuencia de la causa básica y que ocasionó la causa inmediata.
  3. Causa básica: proceso patológico originario, que inició la secuencia de eventos que condujeron a la muerte, dando lugar a la causa intermedia9.

Y continúa:

No es necesario utilizar las líneas b) y c) si la enfermedad anotada en a) describiera por completo el curso de los acontecimientos. Se debe anotar SÓLO UN DIAGNÓSTICO en cada línea. Cuando la muerte se deba a un traumatismo o envenenamiento, el registro deberá hacerse por lo menos en dos líneas, anotando en la primera la naturaleza de la lesión y en la última, la causa externa.

APÉNDICE

Muertes por mes desde 1990 a 2020

Variaciones acumuladas de decesos en 2007 y 2020


La siguiente tabla muestra los decesos del período 2006 y 2007. El año 2007 es el que presenta un mayor aumento de decesos en la historia (con datos) de Chile. He subrayado en rojo los meses de mayo a agosto, donde hubo aumentos de hasta un 30% de muertes con respecto a 2006 (columna Mensual):


Decesos
Mensuales
Decesos
Acumulados
Variación
2007 vs 2006
Mes 2006 2007 2006 2007 Mensual Acumulada
01 6.978 7.133 6.978 7.133 2,2% 2,2%
02 5.940 6.167 12.918 13.300 3,8% 3,0%
03 6.710 6.875 19.628 20.175 2,5% 2,8%
04 6.811 7.028 26.439 27.203 3,2% 2,9%
05 7.137 7.930 33.576 35.133 11,1% 4,6%
06 7.341 9.529 40.917 44.662 29,8% 9,2%
07 8.059 9.475 48.976 54.137 17,6% 10,5%
08 8.067 8.882 57.043 63.019 10,1% 10,5%
09 7.600 7.962 64.643 70.981 4,8% 9,8%
10 7.153 7.732 71.796 78.713 8,1% 9,6%
11 6.703 7.065 78.499 85.778 5,4% 9,3%
12 7.139 7.222 85.638 93.000 1,2% 8,6%
1 Elaboración: Guillermo Burr
2 Fuente de los datos: Ministerio de Salud



Los datos para 2019 y 2020 se encuentran en la siguiente tabla:


Decesos
Mensuales
Decesos
Acumulados
Variación
2020 vs 2019
Mes 2019 2020 2019 2020 Mensual Acumulada
01 8.501 9.174 8.501 9.174 7,92% 7,9%
02 7.766 7.678 16.267 16.852 -1,13% 3,6%
03 7.832 8.801 24.099 25.653 12,37% 6,4%
04 8.921 8.956 33.020 34.609 0,39% 4,8%
05 9.765 11.266 42.785 45.875 15,37% 7,2%
06 9.945 14.485 52.730 60.360 45,65% 14,5%
1 Elaboración: Guillermo Burr
2 Fuente de los datos: Ministerio de Salud




  1. Cadáver: caro data vermibus.

  2. Los datos anteriores no indican causa de muerte. La Clasificación utilizada es la CIE 10 a nivel de capítulo.

  3. La Clasificación utilizada es la CIE 10 a nivel de subcategoría.

  4. Lamentablemente no podemos analizar las incidencias de 1995 porque ese año no se encuentra clasificado con CIE 10.

  5. El análisis se puede realizar tanta a nivel CIE 10 de capítulos o subcategorías.

  6. El riesgo sistémico se refiere al riesgo o la probabilidad de fallas en un sistema completo, en oposición a las fallas en partes o componentes individuales, y se evidencia por eventos (correlación) entre la mayoría o todas las partes.

  7. De acuerdo a los informes epidemiológicos (disponibles aquí), el COVID-19 está clasificado como CIE 10 U07.1.

  8. Acute Myocardial Infarction after Laboratory-Confirmed Influenza Infection, en https://www.nejm.org/doi/full/10.1056/NEJMoa1702090.

  9. De acuerdo a la organización mundial de la salud (WHO) “(a) the disease or injury which initiated the train of morbid events leading directly to death, or (b) the circumstances of the accident or violence which produced the fatal injury”

LS0tDQp0aXRsZTogPGNlbnRlcj48Zm9udCBjb2xvcj0iI0RGMkI0RiI+SW52ZW50YW5kbyBlbCBtaWVkbzwvZm9udD48L2NlbnRlcj4NCmF1dGhvcjogPGNlbnRlcj48Zm9udCBjb2xvcj0iIzMyMjI5QiI+R3VpbGxlcm1vIEJ1cnIgT3J0w7p6YXI8L2ZvbnQ+PC9jZW50ZXI+DQpkYXRlOiA8Y2VudGVyPjI2LTA0LTIwMjAgPGZvbnQgc2l6ZT0iLTIiPjxicj48Zm9udCBjb2xvcj0iI0RGMkI0RiI+KGFjdHVhbGl6YWRvIGVsIGByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgZGUgJUIgZGUgJVksIGEgbGFzICVIOiVNOiVTIGhvcmFzJylgKTwvZm9udD48L2ZvbnQ+PC9jZW50ZXI+DQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCg0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KHh0YWJsZSkNCmxpYnJhcnkoa2FibGVFeHRyYSkNCmxpYnJhcnkoZm9ybWF0dGFibGUpDQpsaWJyYXJ5KHRyZWVtYXApDQpsaWJyYXJ5KE1hdGNoSXQpDQpsaWJyYXJ5KHBzeWNobykNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkoZ3JpZEV4dHJhKQ0KbGlicmFyeShicm9vbSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShncmlkRXh0cmEpDQpsaWJyYXJ5KHNoaW55KQ0KbGlicmFyeShST0RCQykNCmxpYnJhcnkoZ2d0aGVtZXMpDQpsaWJyYXJ5KHJzY29ubmVjdCkNCmxpYnJhcnkoRFQpDQpsaWJyYXJ5KHBuZykNCmxpYnJhcnkobGF0dGljZSkNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeSgnTUFTUycpDQpsaWJyYXJ5KGxlYWZsZXQpDQpsaWJyYXJ5KCJ4bHN4IikNCmxpYnJhcnkoc3RyZWFtZ3JhcGgpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KGphbml0b3IpDQpsaWJyYXJ5KGdhcG1pbmRlcikNCmxpYnJhcnkoZ2dhbmltYXRlKQ0KbGlicmFyeShpbmVxKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCg0KYGBgDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgc2hvdz1GfQ0KDQojIGRhdG9zLCBsYSBmb3JtYSBtw6FzIGVmaWNpZW50ZSBkZSBjYXJnYXJsc28gZXMgY29uIGZyZWFkDQptdWVydG9zIDwtIGFzLmRhdGEuZnJhbWUoZnJlYWQoIkM6L1RyYWJham8vMjAyMC9tdWVydGVzL0RFRl8xOTkwLTIwMTcuY3N2IikpDQptdWVydG9zJEZFQ0hBX0RFRiA8LSBhcy5EYXRlKG11ZXJ0b3MkRkVDSEFfREVGKQ0KI2FxdcOtIGRhdG9zIGRlc2RlIGVsIHJlZ2lzdHJvIGNpdmlsDQphMThfYTE5IDwtIGJpbmRfcm93cyhyZWFkX2V4Y2VsKCJDOi9UcmFiYWpvLzIwMjAvbXVlcnRlcy9ERUZfMjAxOC54bHN4IiksICByZWFkX2V4Y2VsKCJDOi9UcmFiYWpvLzIwMjAvbXVlcnRlcy9ERUZfMjAxOS54bHN4IikpICU+JSAgcmVuYW1lKEFOT19ERUY9QcORTykNCg0KDQojIHBhcGEgPC0gbXVlcnRvcyAlPiUgZmlsdGVyKElEX0ZBTExFQ0lETz09IjI4QUJBOUUzQTBBMjk1QjA5NTNFQjM4MjdFQ0MxRDlGRjc3QkRCRTIiKQkNCiMgZnJhbmNpc2NvIDwtIG11ZXJ0b3MgJT4lIGZpbHRlcihJRF9GQUxMRUNJRE89PSJGN0ZFMDEyRTk2OEMyQzM5MkZCMjhEOUQ2NDY0QkQwRkJBNkIwMjgyIikNCg0KIyBjcmVjaW1pZW50byBkZSBtdWVydG9zOg0KY3JlY2ltaWVudG88LWxtKGNhbnRpZGFkIH4gQU5PX0RFRiwgZGF0YSA9IGJpbmRfcm93cygobXVlcnRvcyAlPiUgZ3JvdXBfYnkoQU5PX0RFRikgJT4lIHN1bW1hcmlzZShjYW50aWRhZD1uKCkpKSxhMThfYTE5ICU+JSBncm91cF9ieShBTk9fREVGKSAlPiUgc3VtbWFyaXNlKGNhbnRpZGFkPXN1bShUT1RBTCkpKSkNCmNvZWZmMXQ9Y29lZmZpY2llbnRzKGNyZWNpbWllbnRvKQ0KDQojDQoNCnRvcF8xMDwtdG9wX24oIG11ZXJ0b3MgJT4lIGZpbHRlcihBTk9fREVGPT0yMDE3KSAlPiUgZ3JvdXBfYnkoR0xPU0FfQ0FURUdPUklBX0RJQUcxKSAlPiUgc3VtbWFyaXNlKGNhbnRpZGFkPW4oKSkgJT4lIGFycmFuZ2UoZGVzYyhjYW50aWRhZCkpICwxMCwgY2FudGlkYWQpICU+JSBkcGx5cjo6c2VsZWN0KEdMT1NBX0NBVEVHT1JJQV9ESUFHMSwgY2FudGlkYWQpIA0KDQp0b3BfMTAkcm93IDwtIHJvd19udW1iZXIodG9wXzEwJGNhbnRpZGFkKQ0KDQp0b3BfMTBjYXA8LXRvcF9uKCBtdWVydG9zICU+JSBmaWx0ZXIoQU5PX0RFRj09MjAxNykgJT4lIGdyb3VwX2J5KEdMT1NBX0NBUElUVUxPX0RJQUcxKSAlPiUgc3VtbWFyaXNlKGNhbnRpZGFkPW4oKSkgJT4lIGFycmFuZ2UoZGVzYyhjYW50aWRhZCkpICwxMCwgY2FudGlkYWQpICU+JSBkcGx5cjo6c2VsZWN0KEdMT1NBX0NBUElUVUxPX0RJQUcxLCBjYW50aWRhZCkgDQoNCnRvcF8xMGNhcCRyb3cgPC0gcm93X251bWJlcih0b3BfMTBjYXAkY2FudGlkYWQpDQoNCiMgZGF0b3MgY292aWQ6DQpsaWJyYXJ5KFJDdXJsKQ0KeCA8LSBnZXRVUkwoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9NaW5DaWVuY2lhL0RhdG9zLUNPVklEMTkvbWFzdGVyL291dHB1dC9wcm9kdWN0bzE0L0ZhbGxlY2lkb3NDdW11bGF0aXZvX1QuY3N2IikNCmNvdmlkIDwtIHJlYWQuY3N2KHRleHQgPSB4KQ0KY292aWQkUmVnaW9uIDwtIGFzLkRhdGUoY292aWQkUmVnaW9uKQ0KY292aWQkcm93IDwtIHJvd19udW1iZXIoY292aWQkUmVnaW9uKQ0KY292aWQkZGlhcmlhIDwtIGlmZWxzZShjb3ZpZCRyb3c+MSwgY292aWQkVG90YWwtbGFnKGNvdmlkJFRvdGFsKSwgY292aWQkVG90YWwpDQoNCiMgZGF0b3MgREVJUyBDT3ZpZA0KDQp4XzEgPC0gZ2V0VVJMKCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWluQ2llbmNpYS9EYXRvcy1DT1ZJRDE5L21hc3Rlci9vdXRwdXQvcHJvZHVjdG8zNy9EZWZ1bmNpb25lc19kZWlzX1QuY3N2IikNCmNvdmlkXzEgPC0gcmVhZC5jc3YodGV4dCA9IHhfMSkNCmNvdmlkXzEkRmVjaGEuZGVmdW5jaW9uZXMgPC0gYXMuRGF0ZShjb3ZpZF8xJEZlY2hhLmRlZnVuY2lvbmVzKQ0KY292aWRfMSA8LSBjb3ZpZF8xICU+JSByZW5hbWUoZGlhcmlhPXRvdGFsKQ0KDQojIHhfMiA8LSBnZXRVUkwoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9NaW5DaWVuY2lhL0RhdG9zLUNPVklEMTkvbWFzdGVyL291dHB1dC9wcm9kdWN0bzE0L0ZhbGxlY2lkb3NDdW11bGF0aXZvX1QuY3N2IikNCiMgDQojIGNvdmlkXzIgPC0gcmVhZC5jc3YodGV4dCA9IHhfMikNCiMgY292aWRfMiRSZWdpb24gPC0gYXMuRGF0ZShjb3ZpZF8yJFJlZ2lvbikNCiMgY292aWRfMiRyb3cgPC0gcm93X251bWJlcihjb3ZpZF8yJFJlZ2lvbikNCiMgY292aWRfMiRkaWFyaWEgPC0gaWZlbHNlKGNvdmlkXzIkcm93PjEsIGNvdmlkXzIkVG90YWwtbGFnKGNvdmlkXzIkVG90YWwpLCBjb3ZpZF8yJFRvdGFsKSANCiMgDQojIHN1bShjb3ZpZF8yJGRpYXJpYSkNCg0KIyBkZWZ1bmNpb25lcyBkaWFyaWFzIDIwMjANCg0KeiA8LSBnZXRVUkwoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9NaW5DaWVuY2lhL0RhdG9zLUNPVklEMTkvbWFzdGVyL291dHB1dC9wcm9kdWN0bzMyL0RlZnVuY2lvbmVzX3N0ZC5jc3YiKQ0KDQpyZWdfY2l2aWwyMDIwX3ogPC0gcmVhZC5jc3YodGV4dCA9IHopDQoNCg0KdGFibGEgPC0gcmVnX2NpdmlsMjAyMF96ICU+JSBtdXRhdGUobW9udGggPSBmb3JtYXQoYXMuRGF0ZShGZWNoYSksICIlbSIpLCB5ZWFyID0gZm9ybWF0KGFzLkRhdGUoRmVjaGEpLCAiJVkiKSkgJT4lICBncm91cF9ieSh5ZWFyLCBtb250aCkgJT4lIHN1bW1hcmlzZShjYW50aWRhZD1zdW0oRGVmdW5jaW9uZXMpKQ0KDQojIHJtKHRhYmxhX2FudGlndWEpDQp0YWJsYV9hbnRpZ3VhIDwtIG11ZXJ0b3MgJT4lIGZpbHRlcihBTk9fREVGPDIwMTAgJiAhaXMubmEoTUVTX0RFRikpICU+JSAgI2dyb3VwX2J5KGFzLmZhY3RvcihBTk9fREVGKSwgYXMuZmFjdG9yKE1FU19ERUYpKSAgDQogZ3JvdXBfYnkoQU5PX0RFRiwgTUVTX0RFRikgJT4lIA0KICAgc3VtbWFyaXNlKGNhbnRpZGFkPW4oKSkgDQoNCnRhYmxhX2FudGlndWEkbWVzMiA8LSBpZl9lbHNlKHRhYmxhX2FudGlndWEkTUVTX0RFRjwxMCxwYXN0ZTAoJzAnLHRhYmxhX2FudGlndWEkTUVTX0RFRiksYXMuY2hhcmFjdGVyKHRhYmxhX2FudGlndWEkTUVTX0RFRikpDQoNCnRhYmxhX2FudGlndWEgPC0gdGFibGFfYW50aWd1YVssYygxLDM6NCldICU+JSByZW5hbWUoeWVhcj1BTk9fREVGLCBtb250aD1tZXMyKQ0KdGFibGFfYW50aWd1YSR5ZWFyIDwtIGFzLmNoYXJhY3Rlcih0YWJsYV9hbnRpZ3VhJHllYXIpDQoNCnRmIDwtIGJpbmRfcm93cyh0YWJsYV9hbnRpZ3VhLCB0YWJsYSkNCg0KDQojIHdyaXRlLnhsc3goYXMuZGF0YS5mcmFtZSh0ZiksICJDOi9UcmFiYWpvLzIwMjAvbXVlcnRlcy90YWJsYXRmLnhsc3giKQ0KDQoNCiMgbGlicmFyeSh4bHN4KQ0KIyB3cml0ZS54bHN4KGFzLmRhdGEuZnJhbWUodGFibGEpLCAiQzovVHJhYmFqby8yMDIwL211ZXJ0ZXMvdGFibGEueGxzeCIpDQoNCmBgYA0KDQo8YnI+DQoNCj7igJxMYSBpZGVhIGRlIHByb2dyZXNvIGhhY2UgZGUgdG9kb3Mgbm9zb3Ryb3MgZmF0dW9zIFsuLi5dOiA8Zm9udCBjb2xvcj0iI0RGMkI0RiI+ZWwgdHJvZ2xvZGl0YSBxdWUgdGVtYmxhYmEgZGUgZXNwYW50byBlbiBsYXMgY2F2ZXJuYXMsIHRpZW1ibGEgYcO6biBlbiBsb3MgcmFzY2FjaWVsb3M8L2ZvbnQ+IFsuLi5dIDxmb250IGNvbG9yPSIjREYyQjRGIj5lbXBlcm8gdGVuZW1vcyB1bmEgdmVudGFqYSBzb2JyZSBudWVzdHJvcyBhbmNlc3Ryb3M6IFsuLi5dIGFsIGhhYmVyIG9yZ2FuaXphZG8gbWVqb3IgbnVlc3RybyBkZXNhc3RyZTwvZm9udD4u4oCdDQo+DQo+IC0tLSBFLiBNLiBDaW9yYW4sICpOb3NvdHJvcywgbG9zIHRyb2dsb2RpdGFzLi4uKiwgZW4gKipCcmV2aWFyaW8gZGUgUG9kcmVkdW1icmUqKg0KDQo8YnI+DQoNCiMjIDxmb250IGNvbG9yPSIjYWQyNzFkIj5JbnZlbnRhbmRvIGVsIG1pZWRvPC9mb250Pg0KDQojIyMjIDxmb250IGNvbG9yPSIjYWQyNzFkIj5MYXMgZXN0YWTDrXN0aWNhcyBxdWUgZWwgZ3JhbiBww7pibGljbyBubyBjb25vY2U8L2ZvbnQ+DQoNClBhcmEgdGVuZXIgY29udGV4dG86IGVuIDIwMTksIGRlIGFjdWVyZG8gYWwgUmVnaXN0cm8gQ2l2aWwsIGByIHN1bShmaWx0ZXIoYTE4X2ExOSwgQU5PX0RFRj09MjAxOSkkVE9UQUwpICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKSBgIHBlcnNvbmFzIG11cmllcm9uIGVuIENoaWxlLiBObyBoYXkgZGV0YWxsZXMgcmVsZXZhbnRlcyBwYXJhIDIwMTggbmkgMjAxOSwgcGVybyBzw60gcGFyYSAyMDE3LCBjdWFuZG8gbXVyaWVyb24gYHIgbnJvdyhtdWVydG9zW211ZXJ0b3MkQU5PX0RFRj09MjAxNyxdKSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIilgOiAgYHIgbnJvdyhtdWVydG9zW211ZXJ0b3MkQU5PX0RFRj09MjAxNyAmIG11ZXJ0b3MkRURBRF9DQU5UPDE1LF0pICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKWAgbWVub3JlcywgYHIgbnJvdyhtdWVydG9zW211ZXJ0b3MkQU5PX0RFRj09MjAxNyAmIG11ZXJ0b3MkRURBRF9DQU5UPj0xNSAmIG11ZXJ0b3MkRURBRF9DQU5UPDY1LF0pICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKWAgYWR1bHRvcyB5IGByIG5yb3cobXVlcnRvc1ttdWVydG9zJEFOT19ERUY9PTIwMTcgJiBtdWVydG9zJEVEQURfQ0FOVD49NjUsXSkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpYCBhZHVsdG9zIG1heW9yZXM7IGByIG5yb3cobXVlcnRvc1ttdWVydG9zJEFOT19ERUY9PTIwMTcgJiBtdWVydG9zJFNFWE89PTEsXSkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpYCBob21icmVzLCAgYHIgbnJvdyhtdWVydG9zW211ZXJ0b3MkQU5PX0RFRj09MjAxNyAmIG11ZXJ0b3MkU0VYTz09MixdKSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIilgIG11amVyZXMsIGV0Yy4gRGUgaGVjaG8sIGVsIG7Dum1lcm8gZGUgcGVyc29uYXMgcXVlIG11ZXJlIGFsIGHDsW8gZW4gY2hpbGUgaGEgdmVuaWRvIGF1bWVudGFuZG8gZW4gcHJvbWVkaW8gZW4gYHIgY29lZmYxdFsyXSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIiwgZGlnaXRzPTApIGAgcG9yIGHDsW8sIGNvbW8gc2UgcHVlZGUgdmVyIGVuIGVsIHNpZ3VpZW50ZSBncsOhZmljbywgZG9uZGUgbGEgbMOtbmVhIGF6dWwgcmVwcmVzZW50YSBsYSB0ZW5kZW5jaWEsIHkgbGEgcm9qYSBsYSBjYW50aWRhZCBkZSBtdWVydG9zIGFudWFsZXM6DQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDUuNSwgZmlnLndpZHRoID0gOX0NCg0KZ2dwbG90bHkoDQogIGdncGxvdChiaW5kX3Jvd3MoKG11ZXJ0b3MgJT4lIGdyb3VwX2J5KEFOT19ERUYpICU+JSBzdW1tYXJpc2UoY2FudGlkYWQ9bigpKSksYTE4X2ExOSAlPiUgZ3JvdXBfYnkoQU5PX0RFRikgJT4lIHN1bW1hcmlzZShjYW50aWRhZD1zdW0oVE9UQUwpKSksIGFlcyh4PUFOT19ERUYsIHk9Y2FudGlkYWQpKSArIGdlb21fbGluZSgpICsNCiAgICBzY2FsZV95X2NvbnRpbnVvdXMobmFtZT0gIk7Dum1lcm8gZGUgcGVyc29uYXMgbXVlcnRhcyBwb3IgYcOxbyIsbGFiZWxzPWZ1bmN0aW9uKHgpIGZvcm1hdCh4LCBiaWcubWFyayA9ICIuIiwgc2NpZW50aWZpYyA9IEZBTFNFKSkgKw0KICAgIHNjYWxlX3hfY29udGludW91cyhuYW1lID0iQcOxbyIsIGxhYmVscz1mdW5jdGlvbih4KSBmb3JtYXQoeCwgYmlnLm1hcmsgPSAiIiwgc2NpZW50aWZpYyA9IEZBTFNFKSwgYnJlYWtzID1jKDE5OTA6MjAxOSkpKw0KICAgIGdlb21fbGluZShjb2xvcj0iI2FkMjcxZCIpICsNCiAgZ2VvbV9zZWdtZW50KGFlcyh4ID0gMTk5MCwgeGVuZCA9IDIwMTksIHkgPSBjb2VmZjF0WzFdICsgY29lZmYxdFsyXSoxOTkwLCB5ZW5kID0gY29lZmYxdFsxXSArIGNvZWZmMXRbMl0qMjAxOSksY29sb3I9IiMzMjIyOUIiLCBsaW5ldHlwZT0iZG90dGVkIiwgc2l6ZT0wLjIpICsNCiAgICB0aGVtZSgNCiAgICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIndoaXRlIiksDQogICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAid2hpdGUiKSwNCiAgICAgIGF4aXMubGluZS54ID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyYXkiKQ0KICAgICkgKw0KICAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1KSkgDQopIA0KDQojIHZhcmlhY2lvbmVzIGFudWFsZXMgZGUgbXVlcnRvcw0KdmFyaWFjaW9uZXMgPC0NCiAgbXVlcnRvcyAlPiUgZ3JvdXBfYnkoQU5PX0RFRikgJT4lIHN1bW1hcmlzZShjYW50aWRhZD1uKCkpDQp2YXJpYWNpb25lcyR2YXJpYWNpb24gPC0gaWZlbHNlKHZhcmlhY2lvbmVzJEFOT19ERUY+MTk5MCwgKCh2YXJpYWNpb25lcyRjYW50aWRhZC9sYWcodmFyaWFjaW9uZXMkY2FudGlkYWQpKS0xKSoxMDAsIDApDQoNCmBgYA0KDQo8YnI+DQoNCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPg0KUG9yIHN1cHVlc3RvLCBhIGxhIG9waW5pw7NuIHDDumJsaWNhIG51bmNhIGxlIGhhYsOtYSBpbnRlcmVzYWRvIHVuIGNvbnRlbyBkZSBjYWTDoXZlcmVzXltDYWTDoXZlcjogY2FybyBkYXRhIHZlcm1pYnVzLl0sIG5pIGEgbml2ZWwgYW51YWwgbmkgbWVub3MgZMOtYSBhIGTDrWEsIHBvciBsbyBxdWUgbmFkaWUgaGEgZXhpZ2lkbyAtLXkgbmluZ3VuYSBhdXRvcmlkYWQgaGEgZW50cmVnYWRvLS0gdW5hIGV4cGxpY2FjacOzbiBkZSBsYXMgc8O6Yml0YXMgYWx6YXMgYW51YWxlcy4gTWlyZW1vcyBsYXMgYWx6YXMgYW51YWxlcyBtw6FzIGltcG9ydGFudGVzIGNvbW8gcG9yY2VudGFqZSBkZSB2YXJpYWNpw7NuOiANCjxzdHJvbmc+IGVuIHByaW1lciBsdWdhciwgYHIgbnRoKHZhcmlhY2lvbmVzJEFOT19ERUYsIDEsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbilgIGNvbiBgciBudGgodmFyaWFjaW9uZXMkdmFyaWFjaW9uLCAxLCBvcmRlcl9ieSA9IC12YXJpYWNpb25lcyR2YXJpYWNpb24pICAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIiwgZGlnaXRzPTIpYCUgZGUgYXVtZW50byAowqFgciAoKHZhcmlhY2lvbmVzJGNhbnRpZGFkW3ZhcmlhY2lvbmVzJEFOT19ERUY9PShudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMSwgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKSldKSAtICh2YXJpYWNpb25lcyRjYW50aWRhZFt2YXJpYWNpb25lcyRBTk9fREVGPT0obnRoKHZhcmlhY2lvbmVzJEFOT19ERUYsIDEsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikpLTFdKSkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcyBtw6FzIHF1ZSBlbCBhw7FvIGFudGVyaW9yISk8L3N0cm9uZz47DQplbiBzZWd1bmRvIGx1Z2FyLCBgciBudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMiwgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKWAgY29uIGByIG50aCh2YXJpYWNpb25lcyR2YXJpYWNpb24sIDIsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikgICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiLCBkaWdpdHM9MilgJSBkZSBhdW1lbnRvIChgciAoKHZhcmlhY2lvbmVzJGNhbnRpZGFkW3ZhcmlhY2lvbmVzJEFOT19ERUY9PShudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMiwgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKSldKSAtICh2YXJpYWNpb25lcyRjYW50aWRhZFt2YXJpYWNpb25lcyRBTk9fREVGPT0obnRoKHZhcmlhY2lvbmVzJEFOT19ERUYsIDIsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikpLTFdKSkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcyBtw6FzIHF1ZSBlbCBhw7FvIGFudGVyaW9yKTsNCmVuIHRlcmNlciBsdWdhciwgZWwgYcOxbyBgciBudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMywgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKWAgY29uIGByIG50aCh2YXJpYWNpb25lcyR2YXJpYWNpb24sIDMsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikgICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiLCBkaWdpdHM9MilgJSBkZSBhdW1lbnRvIChgciAoKHZhcmlhY2lvbmVzJGNhbnRpZGFkW3ZhcmlhY2lvbmVzJEFOT19ERUY9PShudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMywgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKSldKSAtICh2YXJpYWNpb25lcyRjYW50aWRhZFt2YXJpYWNpb25lcyRBTk9fREVGPT0obnRoKHZhcmlhY2lvbmVzJEFOT19ERUYsIDMsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikpLTFdKSkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcyBtw6FzIHF1ZSBlbCBhw7FvIGFudGVyaW9yKS4NClZlciBtw6FzIGFiYWpvICpBbsOhbGlzaXMgZGUgSW5jaWRlbmNpYSBkZSBzZXJpZSBoaXN0w7NyaWNhIGRlIGZhbGxlY2lkb3MqLg0KPC9kaXY+DQoNClRvbWFuZG8gbG9zIGdyYW5kZXMgZ3J1cG9zIGRlIGNhdXNhcyBkZSBtdWVydGUgZGVzZGUgMTk5NyBhIGxhIGZlY2hhXltMb3MgZGF0b3MgYW50ZXJpb3JlcyBubyBpbmRpY2FuIGNhdXNhIGRlIG11ZXJ0ZS4gTGEgQ2xhc2lmaWNhY2nDs24gdXRpbGl6YWRhIGVzIGxhIENJRSAxMCBhIG5pdmVsIGRlIGNhcMOtdHVsby5dLCBlbCBwYWlzYWplIGVzY2F0b2zDs2dpY28gc2UgdmUgYXPDrToNCg0KYGBge3IgIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDQsIGZpZy53aWR0aCA9IDl9DQoNCg0KcGFyYV9wbG90IDwtIG11ZXJ0b3MgJT4lIGZpbHRlcighQU5PX0RFRiAlaW4lIGMoMTk5MDoxOTk2KSkgJT4lIGdyb3VwX2J5KEdMT1NBX0NBUElUVUxPX0RJQUcxLEFOT19ERUYgKSAlPiUgc3VtbWFyaXNlKGNhbnRpZGFkPW4oKSkgJT4lIGRwbHlyOjpyZW5hbWUoIkHDsW8iPUFOT19ERUYsICJFbmZlcm1lZGFkIj1gR0xPU0FfQ0FQSVRVTE9fRElBRzFgICkNCg0KcHAgPC0gc3RyZWFtZ3JhcGgocGFyYV9wbG90LCBrZXk9IkVuZmVybWVkYWQiLCB2YWx1ZT0iY2FudGlkYWQiLCBkYXRlPSJBw7FvIiwgaGVpZ2h0PSI2MDBweCIsIHdpZHRoPSIxMDAwcHgiKQ0KcHAgJT4lIHNnX2xlZ2VuZChzaG93PVRSVUUsIGxhYmVsPSJFbmZlcm1lZGFkIikNCg0KYGBgDQoNCjxicj4NCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIiByb2xlPSJhbGVydCI+DQpMbyBxdWUgbXVlc3RyYSBlbCBncsOhZmljbyBhbnRlcmlvciBzb24gZ3JhbmRlcyBjYXRlZ29yw61hcyBkZSBjYXVzYXMgZGUgbXVlcnRlLiBBc8OtLCBsYXMgbcOhcyBpbXBvcnRhbnRlcyBkdXJhbnRlIDIwMTcgZnVlcm9uOiBgciB0b3BfMTBjYXAkR0xPU0FfQ0FQSVRVTE9fRElBRzFbdG9wXzEwY2FwJHJvdz09MTBdIGAgY29uIGByIHRvcF8xMGNhcCRjYW50aWRhZFt0b3BfMTBjYXAkcm93PT0xMF0gJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcywgbHVlZ28gYHIgdG9wXzEwY2FwJEdMT1NBX0NBUElUVUxPX0RJQUcxW3RvcF8xMGNhcCRyb3c9PTldYCBjb24gYHIgdG9wXzEwY2FwJGNhbnRpZGFkW3RvcF8xMGNhcCRyb3c9PTldICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKSBgIG11ZXJ0b3MsIHkgZmluYWxtZW50ZSBgciB0b3BfMTBjYXAkR0xPU0FfQ0FQSVRVTE9fRElBRzFbdG9wXzEwY2FwJHJvdz09OF1gIGNvbiBgciB0b3BfMTBjYXAkY2FudGlkYWRbdG9wXzEwY2FwJHJvdz09OF0gJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcy4gDQoNClVuIGTDrWEgdMOtcGljbyBkZSAyMDE3IHByZXNlbnTDsyBsYSBhc29tYnJvc2EgY2FudGlkYWQgZGUgYHIgYXMuaW50ZWdlcihucm93KG11ZXJ0b3MgJT4lIGZpbHRlcihBTk9fREVGPT0yMDE3ICYgR0xPU0FfQ0FQSVRVTE9fRElBRzEgJWluJSAoIHRvcF8xMGNhcCRHTE9TQV9DQVBJVFVMT19ESUFHMVt0b3BfMTBjYXAkcm93PT0xMF0pKSkvMzY1KSAgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcyBwb3IgYHIgdG9wXzEwY2FwJEdMT1NBX0NBUElUVUxPX0RJQUcxW3RvcF8xMGNhcCRyb3c9PTEwXWAuIENvbXBhcmUgZXN0byBjb24gbGFzIGVzdGFkw61zdGljYXMgcXVlIHNlIHByZXNlbnRhbiBkw61hIGEgZMOtYSBzb2JyZSBlbCBDT1ZJRC0xOSBlbiBDaGlsZS4NCjwvZGl2Pg0KDQpQb3Igc3VwdWVzdG8sIHNlIHB1ZWRlIGFsZWdhciBxdWUgZXN0YW1vcyB0b21hbmRvIGNhdGVnb3LDrWFzIG11eSBncnVlc2FzLCBsbyBxdWUgZXMgY2llcnRvLiBFbnRvbmNlcywgZXMgcG9zaWJsZSBkZXNnbG9zYXIgbGFzIGFudGVyaW9yZXMgcGFyYSBvYnRlbmVyIGluZm9ybWFjacOzbiB1biBwb2NvIG3DoXMgZ3JhbnVsYXIsIGxvIHF1ZSBzZSBtdWVzdHJhIGVuIGVsIHNpZ3VpZW50ZSBncsOhZmljbyBwYXJhIGxhcyBtaXNtYXMgZmVjaGFzIGRlbCBhbnRlcmlvcl5bTGEgQ2xhc2lmaWNhY2nDs24gdXRpbGl6YWRhIGVzIGxhIENJRSAxMCBhIG5pdmVsIGRlIHN1YmNhdGVnb3LDrWEuXToNCg0KYGBge3IgIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDQsIGZpZy53aWR0aCA9IDl9DQoNCnBhcmFfcGxvdCA8LSBtdWVydG9zICU+JSBmaWx0ZXIoIUFOT19ERUYgJWluJSBjKDE5OTA6MTk5NikpICU+JSBncm91cF9ieShHTE9TQV9DQVRFR09SSUFfRElBRzEsQU5PX0RFRiApICU+JSBzdW1tYXJpc2UoY2FudGlkYWQ9bigpKSAlPiUgZHBseXI6OnJlbmFtZSgiQcOxbyI9QU5PX0RFRiwgIkVuZmVybWVkYWQiPWBHTE9TQV9DQVRFR09SSUFfRElBRzFgICkNCg0KcHAgPC0gc3RyZWFtZ3JhcGgocGFyYV9wbG90LCBrZXk9IkVuZmVybWVkYWQiLCB2YWx1ZT0iY2FudGlkYWQiLCBkYXRlPSJBw7FvIiwgaGVpZ2h0PSI2MDBweCIsIHdpZHRoPSIxMDAwcHgiKQ0KcHAgJT4lIHNnX2xlZ2VuZChzaG93PVRSVUUsIGxhYmVsPSJFbmZlcm1lZGFkIikNCg0KYGBgDQoNCjxicj4NCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIiByb2xlPSJhbGVydCI+DQpSZXBpdGllbmRvIGVsIGFuw6FsaXNpcyBhbnRlcmlvciBsbGVnYW1vcyBhIGxhcyBzaWd1aWVudGUgY29uY2x1c2lvbmVzIGLDoXNpY2FzOiBsYXMgY2F1c2FzIGVzcGVjw61maWNhcyBkZSBtdWVydGUgbcOhcyBpbXBvcnRhbnRlcyBkdXJhbnRlIDIwMTcgZnVlcm9uOiBgciB0b3BfMTAkR0xPU0FfQ0FURUdPUklBX0RJQUcxW3RvcF8xMCRyb3c9PTEwXWAgY29uIGByIHRvcF8xMCRjYW50aWRhZFt0b3BfMTAkcm93PT0xMF0gJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgbXVlcnRvcywgbHVlZ28gYHIgdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT05XWAgY29uIGByIHRvcF8xMCRjYW50aWRhZFt0b3BfMTAkcm93PT05XSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikgYCBtdWVydG9zLCB5IGZpbmFsbWVudGUgYHIgdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT04XWAgY29uIGByIHRvcF8xMCRjYW50aWRhZFt0b3BfMTAkcm93PT04XSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikgYCBtdWVydG9zLiANCg0KVW4gZMOtYSB0w61waWNvIGRlIDIwMTcgcHJlc2VudMOzIGxhIGFzb21icm9zYSBjYW50aWRhZCBkZSBgciBhcy5pbnRlZ2VyKG5yb3cobXVlcnRvcyAlPiUgZmlsdGVyKEFOT19ERUY9PTIwMTcgJiBHTE9TQV9DQVRFR09SSUFfRElBRzEgJWluJSAoIHRvcF8xMCRHTE9TQV9DQVRFR09SSUFfRElBRzFbdG9wXzEwJHJvdz09MTBdKSkpLzM2NSkgICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKSBgICBtdWVydG9zIHBvciBgciB0b3BfMTAkR0xPU0FfQ0FURUdPUklBX0RJQUcxW3RvcF8xMCRyb3c9PTEwXWAsIGByIGFzLmludGVnZXIobnJvdyhtdWVydG9zICU+JSBmaWx0ZXIoQU5PX0RFRj09MjAxNyAmIEdMT1NBX0NBVEVHT1JJQV9ESUFHMSAlaW4lICggdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT05XSkpKS8zNjUpICAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikgYCAgbXVlcnRvcyBwb3IgYHIgdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT05XWAgeSBgciBhcy5pbnRlZ2VyKG5yb3cobXVlcnRvcyAlPiUgZmlsdGVyKEFOT19ERUY9PTIwMTcgJiBHTE9TQV9DQVRFR09SSUFfRElBRzEgJWluJSAoIHRvcF8xMCRHTE9TQV9DQVRFR09SSUFfRElBRzFbdG9wXzEwJHJvdz09OF0pKSkvMzY1KSAgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpIGAgIG11ZXJ0b3MgcG9yIGByIHRvcF8xMCRHTE9TQV9DQVRFR09SSUFfRElBRzFbdG9wXzEwJHJvdz09OF1gLg0KDQo8L2Rpdj4NCg0KPGJyPg0KDQojIyMjIDxmb250IGNvbG9yPSIjYWQyNzFkIj5BbsOhbGlzaXMgZGUgSW5jaWRlbmNpYSBkZSBzZXJpZSBoaXN0w7NyaWNhIGRlIGZhbGxlY2lkb3M8L2ZvbnQ+DQoNCjxzdHJvbmc+wr9RdcOpIGVuZmVybWVkYWRlcyB0aWVuZW4gdW5hIG1heW9yIGluY2lkZW5jaWEgZW4gbGFzIGByICgodmFyaWFjaW9uZXMkY2FudGlkYWRbdmFyaWFjaW9uZXMkQU5PX0RFRj09KG50aCh2YXJpYWNpb25lcyRBTk9fREVGLCAxLCBvcmRlcl9ieSA9IC12YXJpYWNpb25lcyR2YXJpYWNpb24pKV0pIC0gKHZhcmlhY2lvbmVzJGNhbnRpZGFkW3ZhcmlhY2lvbmVzJEFOT19ERUY9PShudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMSwgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKSktMV0pKSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikgYCBtdWVydGVzICJleHRyYSIgZGUgIGByIG50aCh2YXJpYWNpb25lcyRBTk9fREVGLCAxLCBvcmRlcl9ieSA9IC12YXJpYWNpb25lcyR2YXJpYWNpb24pYCwgeSBlbiBsYXMgYHIgKCh2YXJpYWNpb25lcyRjYW50aWRhZFt2YXJpYWNpb25lcyRBTk9fREVGPT0obnRoKHZhcmlhY2lvbmVzJEFOT19ERUYsIDIsIG9yZGVyX2J5ID0gLXZhcmlhY2lvbmVzJHZhcmlhY2lvbikpXSkgLSAodmFyaWFjaW9uZXMkY2FudGlkYWRbdmFyaWFjaW9uZXMkQU5PX0RFRj09KG50aCh2YXJpYWNpb25lcyRBTk9fREVGLCAyLCBvcmRlcl9ieSA9IC12YXJpYWNpb25lcyR2YXJpYWNpb24pKS0xXSkpICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKSBgIG11ZXJ0ZXMgImV4dHJhIiBkZSBgciBudGgodmFyaWFjaW9uZXMkQU5PX0RFRiwgMiwgb3JkZXJfYnkgPSAtdmFyaWFjaW9uZXMkdmFyaWFjaW9uKWAgZGUgbGFzIHF1ZSBoYWJsYW1vcyBhcnJpYmFeW0xhbWVudGFibGVtZW50ZSBubyBwb2RlbW9zIGFuYWxpemFyIGxhcyBpbmNpZGVuY2lhcyBkZSAxOTk1IHBvcnF1ZSBlc2UgYcOxbyBubyBzZSBlbmN1ZW50cmEgY2xhc2lmaWNhZG8gY29uIENJRSAxMC5dPzwvc3Ryb25nPg0KDQpTZWEgJGNfe2ksdH0kIGxhIGNhbnRpZGFkIGRlIG11ZXJ0b3MgcG9yIGxhIGNhdXNhICRpJCAoaW5mYXJ0bywgbmV1bW9uw61hLCBldGMpXltFbCBhbsOhbGlzaXMgc2UgcHVlZGUgcmVhbGl6YXIgdGFudGEgYSBuaXZlbCBDSUUgMTAgZGUgY2Fww610dWxvcyBvIHN1YmNhdGVnb3LDrWFzLl0sICR0JCBlbCBwZXLDrW9kbyBkZSB0aWVtcG8gKGHDsW8pLCBlbnRvbmNlczoNCg0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyIgcm9sZT0iYWxlcnQiPg0KDQo8Y2VudGVyPg0KJEluY2lkZW5jaWFfe2ksdH09IFxkZnJhY3tjX3tpLHR9IC0gY197aSx0LTF9fXtcc3VtX3tpPTF9Xm4gY197aSx0LTF9fSQNCg0KPC9jZW50ZXI+DQo8L2Rpdj4NCg0KTG9zIHJlc3VsdGFkb3MgZGUgbGFzIHByaW5jaXBhbGVzIGluY2lkZW5jaWFzIHBhcmEgY2FkYSBhw7FvIHNlIG11ZXN0cmFuIGVuIGxhIHNpZ3VpZW50ZSB0YWJsYSwgYSBuaXZlbCBkZSBDSUUgMTAgcG9yIHN1YmNhdGVnb3LDrWFzOg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCAsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQgPSA2LCBmaWcud2lkdGggPSA5fQ0KDQojIGRhdG9zDQppbmNpZGVuY2lhcyA8LSANCiAgbXVlcnRvcyAlPiUgZmlsdGVyKEFOT19ERUYgJWluJSBjKDIwMDYsMjAwNSwgMjAxMCwyMDA5KSkgJT4lIGdyb3VwX2J5KEFOT19ERUYsIEdMT1NBX1NVQkNBVEVHT1JJQV9ESUFHMSkgJT4lIHN1bW1hcmlzZShjYW50aWRhZD1uKCkpDQoNCnRhYjEgPC0gaW5jaWRlbmNpYXMgJT4lIGZpbHRlcihBTk9fREVGPT0yMDA2KQ0KdGFiMiA8LSBpbmNpZGVuY2lhcyAlPiUgZmlsdGVyKEFOT19ERUY9PTIwMDUpDQoNCmluY2lkZW5jaWFzMjAwNiA8LSBkcGx5cjo6aW5uZXJfam9pbih0YWIxLHRhYjIsIGJ5PSJHTE9TQV9TVUJDQVRFR09SSUFfRElBRzEiKSAlPiUgbXV0YXRlKGluY2lkZW5jaWE9KGNhbnRpZGFkLngtY2FudGlkYWQueSkvc3VtKGNhbnRpZGFkLnkpKjEwMCkgJT4lIHRvcF9uKC4sMTAsaW5jaWRlbmNpYSkgJT4lIGFycmFuZ2UoLiwgZGVzYyhpbmNpZGVuY2lhKSkNCmluY2lkZW5jaWFzMjAwNiRpbmNpZGVuY2lhIDwtIHBhc3RlMChmb3JtYXQoaW5jaWRlbmNpYXMyMDA2JGluY2lkZW5jaWEsIGJpZy5tYXJrID0gIi4iLCBkZWNpbWFsLm1hcmsgPSAiLCIsIGRpZ2l0cz0zKSwiJSIpDQoNCnRhYjFfMiA8LSBpbmNpZGVuY2lhcyAlPiUgZmlsdGVyKEFOT19ERUY9PTIwMTApDQp0YWIyXzIgPC0gaW5jaWRlbmNpYXMgJT4lIGZpbHRlcihBTk9fREVGPT0yMDA5KQ0KDQppbmNpZGVuY2lhczIwMTAgPC0gZHBseXI6OmlubmVyX2pvaW4odGFiMV8yLHRhYjJfMiwgYnk9IkdMT1NBX1NVQkNBVEVHT1JJQV9ESUFHMSIpICU+JSBtdXRhdGUoaW5jaWRlbmNpYT0oY2FudGlkYWQueC1jYW50aWRhZC55KS9zdW0oY2FudGlkYWQueSkqMTAwKSAlPiUgdG9wX24oLiwxMCxpbmNpZGVuY2lhKSAlPiUgYXJyYW5nZSguLCBkZXNjKGluY2lkZW5jaWEpKQ0KaW5jaWRlbmNpYXMyMDEwJGluY2lkZW5jaWEgPC0gcGFzdGUwKGZvcm1hdChpbmNpZGVuY2lhczIwMTAkaW5jaWRlbmNpYSwgYmlnLm1hcmsgPSAiLiIsIGRlY2ltYWwubWFyayA9ICIsIiwgZGlnaXRzPTMpLCIlIikNCg0KIyBpbmNpZGVuY2lhcyAlPiUgZHBseXI6Omdyb3VwX2J5KEFOT19ERUYsIEdMT1NBX1NVQkNBVEVHT1JJQV9ESUFHMSkgJT4lIGRvKGlmZWxzZShpbmNpZGVuY2lhcyRBTk9fREVGPjE5OTcsICgoKGluY2lkZW5jaWFzJGNhbnRpZGFkLWxhZyhpbmNpZGVuY2lhcyRjYW50aWRhZCkpKS9zdW0oaW5jaWRlbmNpYXMkY2FudGlkYWQpKSwgMSkpDQpwYXJhdGFibGEgPC0gYmluZF9yb3dzKGluY2lkZW5jaWFzMjAwNiwgaW5jaWRlbmNpYXMyMDEwKSAlPiUgZHBseXI6OnNlbGVjdCgtQU5PX0RFRi55KSAlPiUgDQpyZW5hbWUoLiwiQcOxbyAodCkiPUFOT19ERUYueCwgRW5mZXJtZWRhZD1HTE9TQV9TVUJDQVRFR09SSUFfRElBRzEsICJDYW50aWRhZCAodCkiPWNhbnRpZGFkLngsICJDYW50aWRhZCAodC0xKSI9Y2FudGlkYWQueSwgIkluY2lkZW5jaWEgKCUpIj1pbmNpZGVuY2lhKQ0KDQoNCnBhcmF0YWJsYSRgQ2FudGlkYWQgKHQpYCA8LSBmb3JtYXQocGFyYXRhYmxhJGBDYW50aWRhZCAodClgLCBiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiLCBkaWdpdHM9MCkNCnBhcmF0YWJsYSRgQ2FudGlkYWQgKHQtMSlgIDwtIGZvcm1hdChwYXJhdGFibGEkYENhbnRpZGFkICh0LTEpYCwgYmlnLm1hcmsgPSAiLiIsIGRlY2ltYWwubWFyayA9ICIsIiwgZGlnaXRzPTApDQoNCiMgdGFibGENCmthYmxlKHBhcmF0YWJsYSwgYm9va3RhYnMgPSBUKSAlPiUNCiAgIyByb3dfc3BlYygxMjoyMSwgYm9sZCA9IFRSVUUsIGNvbG9yPSJ3aGl0ZSIsIGJhY2tncm91bmQgPSAiI2JiYmZiYyIpICU+JQ0KICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIpKSAlPiUNCiAgcGFja19yb3dzKCIyMDA2IiwgMSwgMTEpICU+JQ0KICBwYWNrX3Jvd3MoIjIwMTAiLCAxMiwgMjEpICU+JSANCiAgZm9vdG5vdGUobnVtYmVyID0gYygiRWxhYm9yYWNpw7NuOiBHdWlsbGVybW8gQnVyciIsIkZ1ZW50ZSBkZSBsb3MgZGF0b3M6IE1pbmlzdGVyaW8gZGUgU2FsdWQiKSkNCg0KYGBgDQoNCjxicj4NCg0KIyMjIyA8Zm9udCBjb2xvcj0iI2FkMjcxZCI+TGFzIGNvbXBhcmFjaW9uZXMgcXVlIG5vIHNlIGhhY2VuPC9mb250Pg0KDQo8YnI+DQoNCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LXdhcm5pbmciIHJvbGU9ImFsZXJ0Ij4NCjxoNCBjbGFzcz0iYWxlcnQtaGVhZGluZyI+PHN0cm9uZz5OT1RBPC9zdHJvbmc+PC9oND4NCkVsIGNvcm9uYXZpcnVzLCBjb21vIHRvZGFzIGxhcyBlbmZlcm1lZGFkZXMgdmlyYWxlcywgZXMgdW4gZmVuw7NtZW5vIGNvbXBsZWpvIHF1ZSBubyBwdWVkZSBzZXIgY29tcGFyYWRvLCBjb21vIGxvIGhpem8gQ2FzcyBTdW5zdGVpbiBlbiAqVGhlIE5ldyBZb3JrIFRpbWVzKiB5ICpCbG9vbWJlcmcqICjCoWVuIGZlYnJlcm8geSBtYXJ6byBkZSAyMDIwISksIGNvbiBsYXMgbXVlcnRlcyBwb3IgYWNjaWRlbnRlcyBkZSB0csOhbnNpdG8sIGNhw61kYXMgcG9yIGxhIGVzY2FsZXJhLCB5IGFzZml4aWFzIHBvciBjb21lciB1bmEgbnVleiwgZW50cmUgb3RyYXMgY29zYXMsIHBvcnF1ZSBzZSB0cmF0YSBkZSB1biBmZW7Ds21lbm8gbXVsdGlwbGljYXRpdm8gbm8gbGluZWFsLCBlc3RvIGVzLCBsYSBwcm9iYWJpbGlkYWQgZGUgcXVlIHVuIGluZGl2aWR1byBjb250cmFpZ2EgY29yb25hdmlydXMgY3JlY2UgZGVzcHJvcG9yY2lvbmFkYW1lbnRlIChubyBsaW5lYWxtZW50ZSkgY29uIGNhZGEgcGVyc29uYSBxdWUgc2UgY29udGFnaWEgZGVsIHZpcnVzIHkgY29uc3RpdHV5ZSwgcG9yIGxvIHRhbnRvLCB1biByaWVzZ28gc2lzdMOpbWljb15bRWwgcmllc2dvIHNpc3TDqW1pY28gc2UgcmVmaWVyZSBhbCByaWVzZ28gbyBsYSBwcm9iYWJpbGlkYWQgZGUgZmFsbGFzIGVuIHVuIHNpc3RlbWEgY29tcGxldG8sIGVuIG9wb3NpY2nDs24gYSBsYXMgZmFsbGFzIGVuIHBhcnRlcyBvIGNvbXBvbmVudGVzIGluZGl2aWR1YWxlcywgeSBzZSBldmlkZW5jaWEgcG9yIGV2ZW50b3MgKGNvcnJlbGFjacOzbikgZW50cmUgbGEgbWF5b3LDrWEgbyB0b2RhcyBsYXMgcGFydGVzLl0uIExvcyBhY2NpZGVudGVzIGRlIHRyw6Fuc2l0bywgY2HDrWRhcyBwb3IgbGFzIGVzY2FsZXJhcyB5IGFzZml4aWFzIHBvciBubyBtYXNjYXIgbG9zIGFsaW1lbnRvcyBubyBlc2NhbGFuIGVuIGVsIHNpc3RlbWEgZGUgbGEgbWlzbWEgZm9ybWEuDQo8L2Rpdj4NCg0KRWwgc2lndWllbnRlIGdyw6FmaWNvIG11ZXN0cmEgbGEgY2FudGlkYWQgZGUgbXVlcnRlcyBkaWFyaWFzIGVuIENoaWxlIGFzb2NpYWRhIC0twr9jYXVzYWRhLCBjb24gcHJlc2VuY2lhPy0tIGEgQ09WSUQtMTleW0RlIGFjdWVyZG8gYSBsb3MgaW5mb3JtZXMgZXBpZGVtaW9sw7NnaWNvcyAoZGlzcG9uaWJsZXMgW2FxdcOtXShodHRwczovL3d3dy5nb2IuY2wvY29yb25hdmlydXMvY2lmcmFzb2ZpY2lhbGVzLykpLCBlbCBDT1ZJRC0xOSBlc3TDoSBjbGFzaWZpY2FkbyBjb21vIENJRSAxMCBVMDcuMS5dLiBFc3RlIGdyw6FmaWNvIG11ZXN0cmEgbG9zIGRhdG9zIGRlIENPVklEIHJldmlzYWRvcyBwb3IgREVJUywgcG9yIGxvIHRhbnRvIHRpZW5lbiB1biBkZXNmYWNlIHNpZ25pZmljYXRpdm8gZW4gZMOtYXMgcmVzcGVjdG8gYSBsb3MgcXVlIHNlIGluZm9ybWFuIGVuIG90cm9zIHByb2R1Y3RvczoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0ID0gNS41LCBmaWcud2lkdGggPSA5fQ0KDQoNCmdncGxvdGx5KA0KICBnZ3Bsb3QoY292aWRfMSwgYWVzKEZlY2hhLmRlZnVuY2lvbmVzLCBkaWFyaWEpKSArIGdlb21fbGluZSgpICsNCiAgICBzY2FsZV94X2RhdGUobGFiZWxzID0gZGF0ZV9mb3JtYXQoIiVkICViIiksYnJlYWtzID0gIjMgZGF5IikgKw0KICAgIHhsYWIoIiIpICsgeWxhYigiTXVlcnRlcyBkaWFyaWFzIGNvbiBDT1ZJRC0xOSIpKw0KICAgIGdlb21fbGluZShjb2xvcj0iI2FkMjcxZCIpICsNCiAgICB0aGVtZSgNCiAgICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIndoaXRlIiksDQogICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAid2hpdGUiKSwNCiAgICAgIGF4aXMubGluZS54ID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyYXkiKQ0KICAgICkgKw0KICAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUpKSArDQogICAgZ2VvbV9wb2ludChkYXRhPWNvdmlkXzFbY292aWRfMSRkaWFyaWE9PW1heChjb3ZpZF8xJGRpYXJpYSksXSAgLA0KICAgICAgICAgICAgICAgcGNoPTIxLCBmaWxsPU5BLCBzaXplPTUsIGNvbG91cj0iYmx1ZSIsIHN0cm9rZT0xKSANCikNCmBgYA0KDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDUuNSwgZmlnLndpZHRoID0gOX0NCiMgRXN0b3MgZGF0b3Mgc2UgbG9zIGVjaGFyb24gZWwgMjAyMC0wNi0wNyBjdWFuZG8gcHVzaWVyb24gNjQ5IGNhc29zDQoNCiMgY292aWQyIDwtIGNvdmlkICU+JSByZW5hbWUoRmVjaGE9UmVnaW9uKQ0KIyBnZ3Bsb3RseSgNCiMgICBnZ3Bsb3QoY292aWQyLCBhZXMoRmVjaGEsIGRpYXJpYSkpICsgZ2VvbV9saW5lKCkgKw0KIyAgICAgc2NhbGVfeF9kYXRlKGxhYmVscyA9IGRhdGVfZm9ybWF0KCIlZCAlYiIpLGJyZWFrcyA9ICIzIGRheSIpICsNCiMgICAgIHhsYWIoIiIpICsgeWxhYigiTXVlcnRlcyBkaWFyaWFzIGNvbiBDT1ZJRC0xOSIpKw0KIyAgICAgZ2VvbV9saW5lKGNvbG9yPSIjYWQyNzFkIikgKw0KIyAgICAgdGhlbWUoDQojICAgICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIndoaXRlIiksDQojICAgICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ3aGl0ZSIpLA0KIyAgICAgICBheGlzLmxpbmUueCA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5IikNCiMgICAgICkgKw0KIyAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSkpICsNCiMgICAgIGdlb21fcG9pbnQoZGF0YT1jb3ZpZDJbY292aWQyJGRpYXJpYT09bWF4KGNvdmlkMiRkaWFyaWEpLF0gICwNCiMgICAgICAgICAgICAgICAgcGNoPTIxLCBmaWxsPU5BLCBzaXplPTUsIGNvbG91cj0iYmx1ZSIsIHN0cm9rZT0xKSANCiMgKSANCmNvdmlkXzEkRmVjaGEuZGVmdW5jaW9uZXMNCmBgYA0KDQo8YnI+DQoNCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPg0KUGVuc2Vtb3MgZW4gbG9zIG7Dum1lcm9zIHF1ZSBzZSBwcmVzZW50YW4gZGVsIENPVklELTE5LiBIYXN0YSBsYSBmZWNoYSAoYHIgU3lzLkRhdGUoKWApLCB0b21hbmRvIGxvcyBkYXRvcyBkZSBHaXRodWIgZGlzcHVlc3RvcyBwb3IgZWwgTWluaXN0ZXJpbyBkZSBDaWVuY2lhLCBlbCBkw61hIGNvbiBlbCByZWN1ZW50byBtw6FzIGFsdG8gZGUgbXVlcnRlcyBwb3IgQ09WSUQtMTkgZnVlIGVsIGByIGNvdmlkXzEkRmVjaGEuZGVmdW5jaW9uZXNbY292aWRfMSRkaWFyaWE9PW1heChjb3ZpZF8xJGRpYXJpYSldIGAgY29uIGByIG1heChjb3ZpZF8xJGRpYXJpYSkgYCBtdWVydG9zLiBFbiB0YW50bywgZWwgZMOtYSBjb24gbWF5b3IgY2FudGlkYWQgZGUgbXVlcnRvcyBwb3IgYHIgdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT0xMF1gIGZ1ZSBlbCBgciAobXVlcnRvcyAlPiUgZmlsdGVyKEFOT19ERUY9PTIwMTcgJiBHTE9TQV9DQVRFR09SSUFfRElBRzEgJWluJSAoIHRvcF8xMCRHTE9TQV9DQVRFR09SSUFfRElBRzFbdG9wXzEwJHJvdz09MTBdKSkgJT4lICBncm91cF9ieShGRUNIQV9ERUYpICU+JSBzdW1tYXJpc2UoZGlhcmlhcz1uKCkpICU+JSBmaWx0ZXIoZGlhcmlhcz09bWF4KGRpYXJpYXMpKSkkRkVDSEFfREVGIGAgY29uIGByIChtdWVydG9zICU+JSBmaWx0ZXIoQU5PX0RFRj09MjAxNyAmIEdMT1NBX0NBVEVHT1JJQV9ESUFHMSAlaW4lICggdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMVt0b3BfMTAkcm93PT0xMF0pKSAlPiUgIGdyb3VwX2J5KEZFQ0hBX0RFRikgJT4lIHN1bW1hcmlzZShkaWFyaWFzPW4oKSkgJT4lIGZpbHRlcihkaWFyaWFzPT1tYXgoZGlhcmlhcykpKSRkaWFyaWFzICBgIG11ZXJ0b3MuDQo8L2Rpdj4NCg0KPGJyPg0KDQo8c3Ryb25nPsK/UXXDqSBwYXNhcsOtYSBzaSB0b2RvcyBsb3MgZMOtYXMgcHVibGljw6FyYW1vcyBlbiB0b2RvcyBsb3MgbWVkaW9zIGRlIGNvbXVuaWNhY2nDs24sIGxhIGNhbnRpZGFkIGRlIG11ZXJ0b3MgZGUgbGFzIDMgcHJpbmNpcGFsZXMgY2F1c2FzIGRlIG11ZXJ0ZT8gRXN0byBlcyByZWxhdGl2YW1lbnRlIHNpbWlsYXIgYSBsbyBxdWUgZXN0w6Egb2N1cnJpZW5kbywgwr9wb3IgcXXDqT88L3N0cm9uZz4NCg0KDQoNCkVsIGTDrWEgbHVuZXMgc2UgbGEgbm90aWNpYSBzZXLDrWEgbGEgc2lndWllbnRlOiBgciAoc3VtKHRvcF8xMCRjYW50aWRhZCkvMzU0KSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIiwgZGlnaXRzPTIpIGAgcGVyc29uYXMgbXVyaWVyb24gYW5vY2hlIHBvciBpbmZhcnRvcyB5IHR1bW9yZXMuDQoNClBhcmEgc2FiZXIgcXXDqSBwb2RlbW9zIGVzcGVyYXIgZGUgbGFzIG11ZXJ0ZXMgY29uIChwb3IpIENPVklELTE5LCBwb2RlbW9zIG1pcmFyIGxhcyBtdWVydGVzIG3DoXMgZnJlY3VlbnRlcyBkZSBvdHJvcyBhw7FvcywgZW4gZXNwZWNpYWwsIGxhcyBkZSAyMDE3Og0KDQpgYGB7ciAgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0ID0gNS41LCBmaWcud2lkdGggPSA5fQ0KDQpnZ3Bsb3RseSgNCmdncGxvdChtdWVydG9zICU+JSBkcGx5cjo6ZmlsdGVyKEFOT19ERUYgJWluJSBjKDIwMTcpICYgR0xPU0FfQ0FURUdPUklBX0RJQUcxICVpbiUgdG9wXzEwJEdMT1NBX0NBVEVHT1JJQV9ESUFHMSkgICU+JSBtdXRhdGUoRkVDSEFfREVGPWFzLkRhdGUoRkVDSEFfREVGKSkgJT4lICAgZ3JvdXBfYnkoR0xPU0FfQ0FURUdPUklBX0RJQUcxLEZFQ0hBX0RFRikgJT4lIGRwbHlyOjpzdW1tYXJpc2UoY2FudGlkYWQ9bigpKSAlPiUgZHBseXI6OnJlbmFtZSgiRMOtYSI9RkVDSEFfREVGLCAiRW5mZXJtZWRhZCI9YEdMT1NBX0NBVEVHT1JJQV9ESUFHMWApLCBhZXMoeD1gRMOtYWAsIHk9Y2FudGlkYWQsIGNvbG9yPUVuZmVybWVkYWQpKSArDQpnZW9tX2xpbmUoKSArDQpzY2FsZV94X2RhdGUobGFiZWxzID0gZGF0ZV9mb3JtYXQoIiVkICViIiksYnJlYWtzID0gIjE1IGRheSIpICsNCmdlb21fdmxpbmUoYWVzKHhpbnRlcmNlcHQgPSBhcy5QT1NJWGN0KCIyMDIwLTAzLTIzIiwgIGZvcm1hdCA9JyVkICViJykpLCBjb2wgPSAicmVkIixsaW5ldHlwZT0iZGFzaGVkIikgKw0KbGFicyh4ID0gIlRpZW1wbyAoZGlhcmlvKSIsIHkgPSAiTXVlcnRlcyBwb3IgY2FkYSBlbmZlcm1lZGFkIikgKw0KdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQp0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1KSkgIA0KKSANCmBgYA0KDQoNCjxicj4NCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPg0Kwr9ObyByZXN1bHRhIGV4dHJhw7FvIHF1ZSBlbCBgaW5mYXJ0byBhZ3VkbyBhbCBtaW9jYXJkaW9gIHNlIHByZXNlbnRlIGNvbiBtYXlvciBmcmVjdWVuY2lhIGVuIGVsIGludmllcm5vLCBqdXN0byBlbiBlbCBwZXLDrW9kbyBlbiBxdWUgc2UgImFjdGl2YW4iIGVuZmVybWVkYWRlcyB2aXJhbGVzIHkgcmVzZnLDrW9zPyBObyBlcyBleHRyYcOxbywgc8OzbG8gcXVlIGxvcyBmYWxsZWNpbWllbnRvcyBzb24gY2xhc2lmaWNhZG9zIGNvbW8gbGEgY2F1c2EgaW5tZWRpYXRhIGRlIG11ZXJ0ZSwgZXN0byBlcywgYGluZmFydG8gYWd1ZG8gYWwgbWlvY2FyZGlvYCwgeSBubyBlbCB2aXJ1cyBxdWUgbG8gcHJlY2lwaXTDsyBvIGNvbiBxdWUgc2UgZW5jb250cmFiYSBlbCBkaWZ1bnRvXlsqQWN1dGUgTXlvY2FyZGlhbCBJbmZhcmN0aW9uIGFmdGVyIExhYm9yYXRvcnktQ29uZmlybWVkIEluZmx1ZW56YSBJbmZlY3Rpb24qLCBlbiBodHRwczovL3d3dy5uZWptLm9yZy9kb2kvZnVsbC8xMC4xMDU2L05FSk1vYTE3MDIwOTAuXS4gPHN0cm9uZz5QZXJvIGVzdG8gbm8gZXMgbG8gcXVlIG9jdXJyZSBjb24gZWwgQ09WSUQtMTkuIEVuIGVsIGNhc28gZGVsIENPVklELTE5LCBzZSBub3MgaW5mb3JtYSDDqXN0ZSBzaWVtcHJlIGNvbW8gY2F1c2EgaW5tZWRpYXRhIGRlIG11ZXJ0ZS48L3N0cm9uZz4NCjwvZGl2Pg0KPGJyPg0KDQpNaXJlbW9zIC0tcGFyYSBleGFjdGFtZW50ZSBlbCBtaXNtbyBwZXLDrW9kbyBkZSB0aWVtcG8gcGFyYSBlbCBxdWUgdGVuZW1vcyBkYXRvcyBkZSBDT1ZJRC0xOS0tLCBsYXMgMTAgcHJpbmNpcGFsZXMgY2F1c2FzIGRlIG11ZXJ0ZSBkZSAyMDE3IHkgQ09WRC0yMDIwIChyZXByZXNlbnRhZG8gcG9yIGxhIGzDrW5lYSByb2phIHB1bnRlYWRhKToNCg0KYGBge3IgIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDUuNSwgZmlnLndpZHRoID0gOX0NCg0KIGxpYnJhcnkobHVicmlkYXRlKQ0KDQpjb21wICA8LW11ZXJ0b3MgJT4lIGRwbHlyOjpmaWx0ZXIoQU5PX0RFRiAlaW4lIGMoMjAxNykgJiBHTE9TQV9DQVBJVFVMT19ESUFHMSAlaW4lIHRvcF8xMGNhcCRHTE9TQV9DQVBJVFVMT19ESUFHMSkgICU+JSBtdXRhdGUoRkVDSEFfREVGPWFzLkRhdGUoRkVDSEFfREVGKSkgJT4lICAgZ3JvdXBfYnkoR0xPU0FfQ0FQSVRVTE9fRElBRzEsRkVDSEFfREVGKSAlPiUgZHBseXI6OnN1bW1hcmlzZShjYW50aWRhZD1uKCkpICU+JSBkcGx5cjo6cmVuYW1lKCJEw61hIj1GRUNIQV9ERUYsICJFbmZlcm1lZGFkIj1gR0xPU0FfQ0FQSVRVTE9fRElBRzFgKQ0KDQpjb21wJGBEw61hYCA8LSBjb21wJGBEw61hYCArIHllYXJzKDMpDQoNCmdncGxvdGx5KA0KZ2dwbG90KCkgKyANCiAgIGdlb21fbGluZShkYXRhPWNvdmlkXzEgJT4lIHJlbmFtZSgiRMOtYSI9RmVjaGEuZGVmdW5jaW9uZXMsIGNhbnRpZGFkPWRpYXJpYSksIGFlcyh4PWBEw61hYCwgeT1jYW50aWRhZCksIGNvbG9yPSAiI2FkMjcxZCIsIGxpbmV0eXBlPSJkb3R0ZWQiLCBzaXplPTIpICsgDQogIGdlb21fbGluZShkYXRhPWNvbXAgJT4lIGZpbHRlcihgRMOtYWAgJWluJSBjb3ZpZF8xJEZlY2hhLmRlZnVuY2lvbmVzKSwgYWVzKHg9YETDrWFgLCB5PWNhbnRpZGFkLCBjb2xvcj1FbmZlcm1lZGFkKSkgKw0KICANCiAgc2NhbGVfeF9kYXRlKGxhYmVscyA9IGRhdGVfZm9ybWF0KCIlZCAlYiIpLGJyZWFrcyA9ICIzIGRheSIpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUpKSArDQogIGxhYnMoeCA9ICJUaWVtcG8gKGRpYXJpbykiLCB5ID0gIk11ZXJ0ZXMgcG9yIGNhZGEgY2F1c2EiKQ0KKQ0KYGBgDQoNCg0KYGBge3IgIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsICwgZWNobz1GQUxTRSwgZmlnLmhlaWdodCA9IDUuNSwgZmlnLndpZHRoID0gOX0NCg0KIyAgbGlicmFyeShsdWJyaWRhdGUpDQojIA0KIyBjb21wICA8LW11ZXJ0b3MgJT4lIGRwbHlyOjpmaWx0ZXIoQU5PX0RFRiAlaW4lIGMoMjAxNykgJiBHTE9TQV9DQVRFR09SSUFfRElBRzEgJWluJSB0b3BfMTAkR0xPU0FfQ0FURUdPUklBX0RJQUcxKSAgJT4lIG11dGF0ZShGRUNIQV9ERUY9YXMuRGF0ZShGRUNIQV9ERUYpKSAlPiUgICBncm91cF9ieShHTE9TQV9DQVRFR09SSUFfRElBRzEsRkVDSEFfREVGKSAlPiUgZHBseXI6OnN1bW1hcmlzZShjYW50aWRhZD1uKCkpICU+JSBkcGx5cjo6cmVuYW1lKCJEw61hIj1GRUNIQV9ERUYsICJFbmZlcm1lZGFkIj1gR0xPU0FfQ0FURUdPUklBX0RJQUcxYCkNCiMgDQojIGNvbXAkYETDrWFgIDwtIGNvbXAkYETDrWFgICsgeWVhcnMoMykNCiMgDQojIGdncGxvdGx5KA0KIyBnZ3Bsb3QoKSArIA0KIyAgICBnZW9tX2xpbmUoZGF0YT1jb3ZpZCAlPiUgcmVuYW1lKCJEw61hIj1SZWdpb24sIGNhbnRpZGFkPWRpYXJpYSksIGFlcyh4PWBEw61hYCwgeT1jYW50aWRhZCksIGNvbG9yPSAiI2FkMjcxZCIsIGxpbmV0eXBlPSJkb3R0ZWQiLCBzaXplPTIpICsgDQojICAgZ2VvbV9saW5lKGRhdGE9Y29tcCAlPiUgZmlsdGVyKGBEw61hYCAlaW4lIGNvdmlkJFJlZ2lvbiksIGFlcyh4PWBEw61hYCwgeT1jYW50aWRhZCwgY29sb3I9RW5mZXJtZWRhZCkpICsNCiMgICANCiMgICBzY2FsZV94X2RhdGUobGFiZWxzID0gZGF0ZV9mb3JtYXQoIiVkICViIiksYnJlYWtzID0gIjMgZGF5IikgKw0KIyAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KIyAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUpKSArDQojICAgbGFicyh4ID0gIlRpZW1wbyAoZGlhcmlvKSIsIHkgPSAiTXVlcnRlcyBwb3IgY2FkYSBjYXVzYSIpDQojICkNCmBgYA0KDQo8YnI+DQoNCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPg0KUGVybyBgQVRFTkNJw5NOYDogwqFsYSBjb21wYXJhY2nDs24gYW50ZXJpb3Igbm8gZXMgdsOhbGlkYSENCjwvZGl2Pg0KDQojIyMjIDxmb250IGNvbG9yPSIjYWQyNzFkIj7Cv0RlIHF1w6kgbXVyacOzIFJhc3B1dMOtbj88L2ZvbnQ+DQoNCkRlIGFjdWVyZG8gYSBXaWtpcGVkaWE6DQoNCj4gWXVzw7pwb3YsIFB1cmlzaGvDqXZpY2ggeSBlbCBncmFuIGR1cXVlIERtaXRyaSBwbGFuZWFyb24gYXRyYWVyIGEgUmFzcHV0w61uIGFsIHBhbGFjaW8gZGUgWXVzw7pwb3YgY29uIGxhIGV4Y3VzYSBkZSBxdWUgc2UgcmV1bmlyw61hIGNvbiBsYSBlc3Bvc2EgZGUgw6lzdGUsIGxhIGdyYW4gZHVxdWVzYSBJcmluYSBBbGV4w6FuZHJvdm5hIFsuLi5dLiBSYXNwdXTDrW4gc2UgcHJlc2VudMOzIGVuIGVsIHBhbGFjaW8gcG9jbyBkZXNwdcOpcyBkZSBtZWRpYW5vY2hlLiBBbGzDrSBZdXPDunBvdiBsbyBoaXpvIGVzcGVyYXIgYSBsYSBncmFuIGR1cXVlc2EsIG1pZW50cmFzIGVzdGEgc3VwdWVzdGFtZW50ZSBhdGVuZMOtYSBhIG90cm9zIGludml0YWRvcywgZW4gdW5hIGVzdGFuY2lhIGRlbCBzw7N0YW5vIGRvbmRlIGxlIHNpcnZpw7MgdmlubyB5IHVub3MgcGFzdGVsZXMgZW52ZW5lbmFkb3MgY29uIGNpYW51cm8uIEV4YXNwZXJhZG8gcG9ycXVlIGVsIHZlbmVubyBwYXJlY8OtYSBubyBoYWNlciBlZmVjdG8sIFl1c8O6cG92IGxlIGRpc3BhcsOzIHVuIHRpcm8gY29uIHVuYSBwaXN0b2xhIEJyb3duaW5nIHkgbG8gZGVqw7MgcG9yIG11ZXJ0byBtaWVudHJhcyBzZSBwcmVwYXJhYmEgcGFyYSBzYWxpciBhIGRlc2hhY2Vyc2UgZGVsIGNhZMOhdmVyLiBObyBvYnN0YW50ZSwgUmFzcHV0w61uIGhhYsOtYSBzb2JyZXZpdmlkbyB5IFB1cmlzaGvDqXZpY2gsIGRlc3B1w6lzIGRlIGZhbGxhciBlbiBkb3Mgb2Nhc2lvbmVzLCBsbyBkZXJyaWLDsyBjb24gb3Ryb3MgZG9zIGRpc3Bhcm9zIHkgbGUgYXNlc3TDsyB1biBnb2xwZSBlbiBsYSBzaWVuLiBEZXNwdcOpcyBhcnJhc3RyYXJvbiBlbCBjdWVycG8gY29uIGNhZGVuYXMgZGUgaGllcnJvIHkgbG8gYXJyb2phcm9uIGFsIHLDrW8gTmV2w6EsIGRvbmRlIGEgcGVzYXIgZGVsIHZlbmVubywgbG9zIGRpc3Bhcm9zIHkgZWwgZ29scGUgZmluYWxtZW50ZSBtdXJpw7MgZGUgYWhvZ2FtaWVudG8uDQoNCsK/Q8OzbW8gc2UgY2xhc2lmaWNhcsOtYSBlc3RhIG11ZXJ0ZSBkZSBhY3VlcmRvIGEgbGEgV0hPIHkgZWwgY2xhc2lmaWNhZG9yIENJRSAxMD8gDQoNCjxjZW50ZXI+DQo8YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCI+PHAgbGFuZz0iZW4iIGRpcj0ibHRyIj5DbGFzc2lmeWluZyBhbGwgZGVhdGhzIGFzIGNvcm9uYSBldmVuIGlmIGNvcm9uYSBkaWRu4oCZdCBjYXVzZSB0aGUgZGVhdGggaXMgc2ltcGx5IGEgbGllIDxhIGhyZWY9Imh0dHBzOi8vdC5jby9SMXNnemNGUzQ2Ij5odHRwczovL3QuY28vUjFzZ3pjRlM0NjwvYT48L3A+Jm1kYXNoOyBFbG9uIE11c2sgKEBlbG9ubXVzaykgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9lbG9ubXVzay9zdGF0dXMvMTI1NTkxODU4NTk5MTQ1NDcyMT9yZWZfc3JjPXR3c3JjJTVFdGZ3Ij5BcHJpbCAzMCwgMjAyMDwvYT48L2Jsb2NrcXVvdGU+IDxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dpZGdldHMuanMiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4NCjwvY2VudGVyPg0KDQo8YnI+DQoNCkN1YW5kbyBzZSBub3MgaW5mb3JtYSBsYSBjYW50aWRhZCBkZSBtdWVydG9zIGNvbiBDT1ZJRC0xOSwgwr9xdcOpIGVzIGV4YWN0YW1lbnRlIGxvIHF1ZSBzZSBub3MgZXN0w6EgZGljaWVuZG8/IMK/cXXDqSBtdXJpZXJvbiBgY29uIENPVklEYCBvIGBkZSBDT1ZJRGA/DQoNCkVzdGEgZXMgdW5hIHByZWd1bnRhIHbDoWxpZGEuIERlIGhlY2hvLCBkZXNkZSBlbCBJbnN0aXR1dG8gKlJvYmVydCBLb2NoKiwgc2XDsWFsYWRvIGNvbW8gY2VudHJvIG5ldXLDoWxnaWNvIGRlIGxhIHJlc3B1ZXN0YSBkZSBBbGVtYW5pYSBhbCBDT1ZJRC0xOSwgaGFuIHNlw7FhbGFkbyBxdWU6ICJsYSBwcmVndW50YSBkZSBzaSBhbGd1aWVuIG11cmnDsyBkZSBvIGNvbiBlbCB2aXJ1cyBubyBzaWVtcHJlIHNlIHB1ZWRlIHJlc3BvbmRlciBjb24gY2xhcmlkYWQuIg0KDQpFbCBtYW51YWwgZGUgIk5PUk1BUyBQQVJBIEVMIFJFR0lTVFJPIERFIExBIENBVVNBIERFIE1VRVJURSBFTiBFTCBDRVJUSUZJQ0FETyBNw4lESUNPIERFIERFRlVOQ0nDk04iIGRlbCBNaW5pc3RlcmlvIGRlIFNhbHVkLCBlbCBxdWUgcHVlZGUgZGVzY2FyZ2Fyc2UgW2FxdcOtXShodHRwOi8vd3d3LmRlaXMuY2wvd3AtY29udGVudC91cGxvYWRzLzIwMTEvMDcvUkVHSVNUUk9NVUVSVEVfQ0VSVElGSUNBRE9NRURJQ09ERUZVTkNJT04ucGRmKSBpbmRpY2EgbG8gc2lndWllbnRlOg0KDQo+IGEpIENhdXNhIGlubWVkaWF0YTogcHJvY2VzbyBvIGNvbmRpY2nDs24gcXVlIHByb2R1am8gZGlyZWN0YW1lbnRlIGxhIG11ZXJ0ZSAoY29tcGxpY2FjacOzbiBvIHByb2Nlc28gdGVybWluYWwpLg0KYikgQ2F1c2EgaW50ZXJtZWRpYTogcHJvY2VzbyBjbMOtbmljbyBvIGNvbXBsaWNhY2nDs24gcXVlIHNlIHByb2R1am8gYSBjb25zZWN1ZW5jaWEgZGUgbGEgY2F1c2EgYsOhc2ljYSB5IHF1ZSBvY2FzaW9uw7MgbGEgY2F1c2EgaW5tZWRpYXRhLg0KYykgQ2F1c2EgYsOhc2ljYTogcHJvY2VzbyBwYXRvbMOzZ2ljbyBvcmlnaW5hcmlvLCBxdWUgaW5pY2nDsyBsYSBzZWN1ZW5jaWEgZGUgZXZlbnRvcyBxdWUgY29uZHVqZXJvbiBhIGxhIG11ZXJ0ZSwgZGFuZG8gbHVnYXIgYSBsYSBjYXVzYSBpbnRlcm1lZGlhXltEZSBhY3VlcmRvIGEgbGEgb3JnYW5pemFjacOzbiBtdW5kaWFsIGRlIGxhIHNhbHVkIChXSE8pICIoYSkgdGhlIGRpc2Vhc2Ugb3IgaW5qdXJ5IHdoaWNoIGluaXRpYXRlZCB0aGUgdHJhaW4gb2YgbW9yYmlkIGV2ZW50cyBsZWFkaW5nIGRpcmVjdGx5IHRvIGRlYXRoLCBvciAoYikgdGhlIGNpcmN1bXN0YW5jZXMgb2YgdGhlIGFjY2lkZW50IG9yIHZpb2xlbmNlIHdoaWNoIHByb2R1Y2VkIHRoZSBmYXRhbCBpbmp1cnnigJ1dLg0KDQpZIGNvbnRpbsO6YToNCg0KPiBObyBlcyBuZWNlc2FyaW8gdXRpbGl6YXIgbGFzIGzDrW5lYXMgYikgeSBjKSBzaSBsYSBlbmZlcm1lZGFkIGFub3RhZGEgZW4gYSkgZGVzY3JpYmllcmEgcG9yIGNvbXBsZXRvIGVsIGN1cnNvIGRlIGxvcyBhY29udGVjaW1pZW50b3MuIFNlIGRlYmUgYW5vdGFyIFPDk0xPIFVOIERJQUdOw5NTVElDTyBlbiBjYWRhIGzDrW5lYS4gQ3VhbmRvIGxhIG11ZXJ0ZSBzZSBkZWJhIGEgdW4gdHJhdW1hdGlzbW8gbyBlbnZlbmVuYW1pZW50bywgZWwgcmVnaXN0cm8gZGViZXLDoSBoYWNlcnNlIHBvciBsbyBtZW5vcyBlbiBkb3MgbMOtbmVhcywgYW5vdGFuZG8gZW4gbGEgcHJpbWVyYSBsYSBuYXR1cmFsZXphIGRlIGxhIGxlc2nDs24geSBlbiBsYSDDumx0aW1hLCBsYSBjYXVzYSBleHRlcm5hLg0KDQo8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiIHJvbGU9ImFsZXJ0Ij4NCkRlIGxhcyBtdWVydGVzIHBvciBDT1ZJRC0xOSBxdWUgc2Ugbm9zIGluZm9ybWEgdG9kb3MgbG9zIGTDrWFzIGVuIHRvZG9zIGxvcyBtZWRpb3MgZGUgY29tdW5pY2FjacOzbiwgwr9lbiBxdcOpIGzDrW5lYSAoYSwgYiwgYykgY3JlZSB1c3RlZCBkZWJpZXJhIGVzdGFyIGFub3RhZG8gZWwgQ09WSUQtMTkgY29tbyBjYXVzYT8NCkxhIHJlc3B1ZXN0YSBlcyBxdWUgZGViZW4gZXN0YXIgYW5vdGFkYXMgY29tbyAqY2F1c2EgYsOhc2ljYSouICoqRXN0byBzaWduaWZpY2EgcXVlIHRvZGFzIGxhcyBjb21wYXJhY2lvbmVzIHF1ZSBzZSByZWFsaXphbiBjb24gbGEgY2F1c2EgaW5tZWRpYXRhIGRlIG11ZXJ0ZSAoaW5mYXJ0b3MsIGV0Yy4pLCBzb24gZXJyYWRhcyoqLiA8c3Ryb25nPjxmb250IGNvbG9yPSIjREYyQjRGIj5Fc3RhbW9zIGNvbXBhcmFuZG8gcGVyYXMgY29uIHJpbm9jZXJvbnRlcy48L2ZvbnQ+PC9zdHJvbmc+DQo8L2Rpdj4NCg0KIyMgPGZvbnQgY29sb3I9IiNhZDI3MWQiPkFQw4lORElDRTwvZm9udD4NCg0KIyMjIyA8Zm9udCBjb2xvcj0iI2FkMjcxZCI+TXVlcnRlcyBwb3IgbWVzIGRlc2RlIDE5OTAgYSAyMDIwPC9mb250Pg0KDQpgYGB7ciAgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0ID0gNS41LCBmaWcud2lkdGggPSA5fQ0KDQpnZ3Bsb3RseSgNCmdncGxvdCh0ZiAlPiUgcmVuYW1lKE1lcz1tb250aCwgIkHDsW8iPXllYXIpLCBhZXMoeD1NZXMsIHk9Y2FudGlkYWQsIGdyb3VwPWFzLmZhY3RvcihBw7FvKSkpICsNCmdlb21fbGluZShhZXMoY29sb3I9QcOxbykpICsNCnNjYWxlX3lfY29udGludW91cyhuYW1lPSAiTsO6bWVybyBkZSBtdWVydGVzIHBvciBtZXMiLGxhYmVscz1mdW5jdGlvbih4KSBmb3JtYXQoeCwgYmlnLm1hcmsgPSAiLiIsIHNjaWVudGlmaWMgPSBGQUxTRSkpICsNCnRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgDQopDQoNCg0KYGBgDQoNCjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPg0KPHN0cm9uZz5FbCBncsOhZmljbyByZXN1bHRhIHZpc3VhbG1lbnRlIGltcHJlc2lvbmFudGUsIHkgYWwgZ3JhZmljYXIgdG9kb3MgbG9zIGRhdG9zIGRpc3BvbmlibGVzIHBhcmVjZSBxdWUgbm8gaHViaWVyYSBvY3VycmlkbyBhbGdvIHNlbWVqYW50ZSBlbiBsYSBoaXN0b3JpYSByZWNpZW50ZSwgcGVybyBjb21vIHZpbW9zIGFsIGluaWNpbywgZW50cmUgMjAwNiB5IDIwMDcgaHVibyB1biBncmFuIHNhbHRvIGVuIGxhIGNhbnRpZGFkIGRlIG11ZXJ0ZXMuIExhcyBjb21wYXJhY2lvbmVzIHF1ZSBzZSBwdWVkZW4gcmVhbGl6YXIgc29uIGludGVyZXNhbnRlczogZW4gMjAwNyBoYXN0YSBqdW5pbyAoaW5jbHVzaXZlKSwgbGEgdmFyaWFjacOzbiBhY3VtdWxhZGEgZGUgZmFsbGVjaWRvcyBmdWUgZGUgYHIgKChzdW0odGZbdGYkeWVhciAlaW4lICgyMDA3KSAmIHRmJG1vbnRoICVpbiUgYygnMDEnLCcwMicsJzAzJywnMDQnLCcwNScsJzA2JyksXSRjYW50aWRhZCkgLyBzdW0odGZbdGYkeWVhciAlaW4lICgyMDA2KSAmIHRmJG1vbnRoICVpbiUgYygnMDEnLCcwMicsJzAzJywnMDQnLCcwNScsJzA2JyksXSRjYW50aWRhZCkqMTAwKS0xKSAlPiUgZm9ybWF0KGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIiwgZGlnaXRzPTApYCUgIHkgZW4gMjAyMCAoaGFzdGEganVuaW8pLCBsYSB2YXJpYWNpw7NuIGFjdW11bGFkYSBlcyBkZSBgciAoKHN1bSh0Zlt0ZiR5ZWFyICVpbiUgKDIwMjApICYgdGYkbW9udGggJWluJSBjKCcwMScsJzAyJywnMDMnLCcwNCcsJzA1JywnMDYnKSxdJGNhbnRpZGFkKSAvIHN1bSh0Zlt0ZiR5ZWFyICVpbiUgKDIwMTkpICYgdGYkbW9udGggJWluJSBjKCcwMScsJzAyJywnMDMnLCcwNCcsJzA1JywnMDYnKSxdJGNhbnRpZGFkKSoxMDApLTEpICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiLCBkaWdpdHM9MClgJS4gRXMgbcOhcyBhbHRhIGVuIDIwMjAsIMKhcGVybyBlbiAyMDA3IG5vIGh1Ym8gbmluZ3VuYSBwYW5kZW1pYSE8L3N0cm9uZz4NCjwvZGl2Pg0KDQojIyMjIDxmb250IGNvbG9yPSIjYWQyNzFkIj5WYXJpYWNpb25lcyBhY3VtdWxhZGFzIGRlIGRlY2Vzb3MgZW4gMjAwNyB5IDIwMjA8L2ZvbnQ+DQoNCjxicj4NCg0KTGEgc2lndWllbnRlIHRhYmxhIG11ZXN0cmEgbG9zIGRlY2Vzb3MgZGVsIHBlcsOtb2RvIDIwMDYgeSAyMDA3LiBFbCBhw7FvIDIwMDcgZXMgZWwgcXVlIHByZXNlbnRhIHVuIG1heW9yIGF1bWVudG8gZGUgZGVjZXNvcyBlbiBsYSBoaXN0b3JpYSAoY29uIGRhdG9zKSBkZSBDaGlsZS4gSGUgc3VicmF5YWRvIGVuIHJvam8gbG9zIG1lc2VzIGRlIG1heW8gYSBhZ29zdG8sIGRvbmRlIGh1Ym8gYXVtZW50b3MgZGUgaGFzdGEgdW4gMzAlIGRlIG11ZXJ0ZXMgY29uIHJlc3BlY3RvIGEgMjAwNiAoY29sdW1uYSBgTWVuc3VhbGApOg0KDQo8YnI+DQoNCmBgYHtyICBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCAsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQgPSA1LjUsIGZpZy53aWR0aCA9IDl9DQoNCiMgQmFjaGVsZXQNCmEyMDA2IDwtIHRmMiAlPiUgZmlsdGVyKGBBw7FvYD09MjAwNikgJT4lIC5bLDI6M10gJT4lIHJlbmFtZSgiMjAwNiI9Y2FudGlkYWQpDQphMjAwNyA8LSB0ZjIgJT4lIGZpbHRlcihgQcOxb2A9PTIwMDcpICU+JSAuWywyOjNdICU+JSByZW5hbWUoIjIwMDciPWNhbnRpZGFkKQ0KDQpmMjAwNyA8LSBiaW5kX2NvbHMoYTIwMDYsYTIwMDcpICU+JSAuWyxjKDIsMSwzKV0gDQpmMjAwNyRjdW0yMDA2IDwtIGN1bXN1bShmMjAwNyRgMjAwNmApICMlPiUgZm9ybWF0KC4sYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKQ0KZjIwMDckY3VtMjAwNyA8LSBjdW1zdW0oZjIwMDckYDIwMDdgKSAjJT4lIGZvcm1hdCguLGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCmYyMDA3JHZhcl9tXzIwMDcgPC0gcGFzdGUwKCgoKGYyMDA3JGAyMDA3YC9mMjAwNyRgMjAwNmApLTEpKjEwMCkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIsIGRpZ2l0cz0yKSwiJSIpDQpmMjAwNyR2YXJfYWN1bV8yMDA3IDwtIHBhc3RlMCgoKChmMjAwNyRjdW0yMDA3L2YyMDA3JGN1bTIwMDYpLTEpKjEwMCkgJT4lIGZvcm1hdChiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIsIGRpZ2l0cz0yKSwiJSIpDQpmMjAwNyRjdW0yMDA2IDwtIGZvcm1hdChmMjAwNyRjdW0yMDA2LGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCmYyMDA3JGN1bTIwMDcgPC0gZm9ybWF0KGYyMDA3JGN1bTIwMDcsYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKQ0KZjIwMDckYDIwMDZgIDwtIGZvcm1hdChmMjAwNyRgMjAwNmAsYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKQ0KZjIwMDckYDIwMDdgIDwtIGZvcm1hdChmMjAwNyRgMjAwN2AsYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiKQ0KDQprYWJsZShmMjAwNywgYm9va3RhYnMgPSBULCBjb2wubmFtZXMgPSBjKCJNZXMiLCIyMDA2IiwiMjAwNyIsIjIwMDYiLCIyMDA3IiwiTWVuc3VhbCIsICJBY3VtdWxhZGEiKSkgJT4lDQogICMgcm93X3NwZWMoMTI6MjEsIGJvbGQgPSBUUlVFLCBjb2xvcj0id2hpdGUiLCBiYWNrZ3JvdW5kID0gIiNiYmJmYmMiKSAlPiUNCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSxmdWxsX3dpZHRoID0gRikgJT4lDQogIGFkZF9oZWFkZXJfYWJvdmUoYygiICIsICJEZWNlc29zIFxuIE1lbnN1YWxlcyIgPSAyLCAiRGVjZXNvcyBcbiBBY3VtdWxhZG9zIiA9IDIsICJWYXJpYWNpw7NuIFxuIDIwMDcgdnMgMjAwNiI9MikpICU+JSANCiAgIyBwYWNrX3Jvd3MoIjIwMDYiLCAxLCAxMSkgJT4lDQogICMgcGFja19yb3dzKCIyMDEwIiwgMTIsIDIxKSAlPiUgDQogIHJvd19zcGVjKDU6OCwgYm9sZCA9IFQsIGNvbG9yID0gIndoaXRlIiwgYmFja2dyb3VuZCA9ICIjRDcyNjFFIikgJT4lIA0KICBmb290bm90ZShudW1iZXIgPSBjKCJFbGFib3JhY2nDs246IEd1aWxsZXJtbyBCdXJyIiwiRnVlbnRlIGRlIGxvcyBkYXRvczogTWluaXN0ZXJpbyBkZSBTYWx1ZCIpKQ0KDQpgYGANCg0KPGJyPg0KPGJyPg0KDQoNCkxvcyBkYXRvcyBwYXJhIDIwMTkgeSAyMDIwIHNlIGVuY3VlbnRyYW4gZW4gbGEgc2lndWllbnRlIHRhYmxhOg0KDQo8YnI+DQoNCmBgYHtyICBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCAsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQgPSA1LjUsIGZpZy53aWR0aCA9IDl9DQoNCmEyMDE5IDwtIHRmMiAlPiUgZmlsdGVyKGBBw7FvYD09MjAxOSAmIE1lcyAlaW4lIGMoIjAxIiwiMDIiLCIwMyIsIjA0IiwiMDUiLCIwNiIpKSAlPiUgLlssMjozXSAlPiUgcmVuYW1lKCIyMDE5Ij1jYW50aWRhZCkNCmEyMDIwIDwtIHRmMiAlPiUgZmlsdGVyKGBBw7FvYD09MjAyMCAmIE1lcyAlaW4lIGMoIjAxIiwiMDIiLCIwMyIsIjA0IiwiMDUiLCIwNiIpKSAlPiUgLlssMjozXSAlPiUgcmVuYW1lKCIyMDIwIj1jYW50aWRhZCkNCg0KZjIwMjAgPC0gYmluZF9jb2xzKGEyMDE5LGEyMDIwKSAlPiUgLlssYygyLDEsMyldIA0KZjIwMjAkY3VtMjAxOSA8LSBjdW1zdW0oZjIwMjAkYDIwMTlgKSAjJT4lIGZvcm1hdCguLGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCmYyMDIwJGN1bTIwMjAgPC0gY3Vtc3VtKGYyMDIwJGAyMDIwYCkgIyU+JSBmb3JtYXQoLixiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpDQpmMjAyMCR2YXJfbV8yMDIwIDwtIHBhc3RlMCgoKChmMjAyMCRgMjAyMGAvZjIwMjAkYDIwMTlgKS0xKSoxMDApICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiLCBkaWdpdHM9MiksIiUiKQ0KZjIwMjAkdmFyX2FjdW1fMjAyMCA8LSBwYXN0ZTAoKCgoZjIwMjAkY3VtMjAyMC9mMjAyMCRjdW0yMDE5KS0xKSoxMDApICU+JSBmb3JtYXQoYmlnLm1hcms9Ii4iLCBkZWNpbWFsLm1hcms9IiwiLCBkaWdpdHM9MiksIiUiKQ0KZjIwMjAkY3VtMjAxOSA8LSBmb3JtYXQoZjIwMjAkY3VtMjAxOSxiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpDQpmMjAyMCRjdW0yMDIwIDwtIGZvcm1hdChmMjAyMCRjdW0yMDIwLGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCmYyMDIwJGAyMDE5YCA8LSBmb3JtYXQoZjIwMjAkYDIwMTlgLGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCmYyMDIwJGAyMDIwYCA8LSBmb3JtYXQoZjIwMjAkYDIwMjBgLGJpZy5tYXJrPSIuIiwgZGVjaW1hbC5tYXJrPSIsIikNCg0Ka2FibGUoZjIwMjAsIGJvb2t0YWJzID0gVCwgY29sLm5hbWVzID0gYygiTWVzIiwiMjAxOSIsIjIwMjAiLCIyMDE5IiwiMjAyMCIsIk1lbnN1YWwiLCAiQWN1bXVsYWRhIikpICU+JQ0KICAjIHJvd19zcGVjKDEyOjIxLCBib2xkID0gVFJVRSwgY29sb3I9IndoaXRlIiwgYmFja2dyb3VuZCA9ICIjYmJiZmJjIikgJT4lDQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiksZnVsbF93aWR0aCA9IEYpICU+JQ0KICBhZGRfaGVhZGVyX2Fib3ZlKGMoIiAiLCAiRGVjZXNvcyBcbiBNZW5zdWFsZXMiID0gMiwgIkRlY2Vzb3MgXG4gQWN1bXVsYWRvcyIgPSAyLCAiVmFyaWFjacOzbiBcbiAyMDIwIHZzIDIwMTkiPTIpKSAlPiUgDQogICMgcGFja19yb3dzKCIyMDA2IiwgMSwgMTEpICU+JQ0KICAjIHBhY2tfcm93cygiMjAxMCIsIDEyLCAyMSkgJT4lIA0KICByb3dfc3BlYyhjKDIpLCBib2xkID0gVCwgY29sb3IgPSAid2hpdGUiLCBiYWNrZ3JvdW5kID0gIiM0MTM5YTgiKSAlPiUgDQogIHJvd19zcGVjKGMoMyw1LDYpLCBib2xkID0gVCwgY29sb3IgPSAid2hpdGUiLCBiYWNrZ3JvdW5kID0gIiNENzI2MUUiKSAlPiUgDQogIGZvb3Rub3RlKG51bWJlciA9IGMoIkVsYWJvcmFjacOzbjogR3VpbGxlcm1vIEJ1cnIiLCJGdWVudGUgZGUgbG9zIGRhdG9zOiBNaW5pc3RlcmlvIGRlIFNhbHVkIikpDQpgYGANCg0KPGJyPg0KPGJyPg==