• PORTADA
    • Últimas noticias
    • España
      • Andalucía
      • Aragón
      • Canarias
      • Castilla y León
      • Castilla-La Mancha
      • Cataluña
      • Comunidad Valenciana
      • Madrid
      • Galicia
      • País Vasco
    • OKBaleares
    • Navarra.com
    • Opinión
    • Investigación
    • Economía
      • Empresas
      • Consumo
      • Empleo
    • Sociedad
    • Metabolic
    • Talent24H
    • Techy
    • Diario Madridista
      • Últimas noticias
      • Real Madrid
    • Deportes
      • Fútbol
      • Atlético de Madrid
      • Barcelona
      • Champions League
      • Tenis
      • Fórmula 1
    • Mundial 2026
    • Sucesos
    • Internacional
    • Cool
      • Actualidad
      • Belleza
      • Casa Real
      • Famosos
      • Moda
      • Lifestyle
      • Televisión
    • HappyFM
    • Cine y Series
    • OKMotor
    • OKSalud
    • OKGreen
    • Curiosidades
    • ESPECIALES
      • Recetas
      • ¿Cómo se hace?
      • Religión
      • Mascotas
      • Bebés
      • Tecnología
      • Naturaleza
      • Educación
      • Historia
      • Ciencia
      • Listas
      • Gastronomía
      • Historia
      • Horóscopo
    • OKPlanes
    • OKCLUB
    • OkShopping
    • Lotería
    • SER PADRES
    • MIA REVISTA
    • Muy interesante
Destacados:
  • Begoña Gómez
  • Marlaska gritos Ceuta
  • Hijas Zapatero
  • Menas invasión Ceuta
  • Begoña Gómez Iñaki Urdangarin
  • PSOE Semana Santa de Sevilla
  • Mazón DANA Congreso
  • Zapatero Venezuela
  • Marlaska culpa a la Federación
  • Pilar Bernabé
  • PSOE Coria del Río
  • Abascal Ana Rosa
  • Plagio Zapatero
  • La Reina Sofía en Sevilla
  • Quién era Presley Gerber
  • ‘La bola negra’
  • Viñeta Puebla
  • Precio de la gasolina hoy
  • Horarios Liga de las Naciones
  • Últimas noticias
Más

    El sitio de los inconformistas

    21 Sep 2026
    Actualizado 22:01 CET
    INICIAR SESIÓN
    Es Noticia
    • Las ZAPATILLAS que recomiendan los PODÓLOGOS
    • La REFLEXIÓN de Winston Churchill
    • Para qué sirven los ENVASES de LECHE y ZUMO
    • El COLOR de pelo que REJUVENECE a partir de los 50
    • Pasa 680 días en MARRUECOS y cobra la jubilación en España
    • Ayudas de hasta 450 euros para cambiar ELECTRODOMÉSTICOS
    • Así queda la tabla de las PENSIONES en2027
    • El truco para que los CHAMPIÑONES queden dorados
    • La frase de HARRISON FORD sobre el miedo
    • La reflexión de SÓCRATES sobre el poder y el interés
    • VOLUNTARIOS para vivir GRATIS en las Cataratas de Iguazú
    • La CITA de Otto von Bismarck sobre España
    • César Millán, ADIESTRADOR CANINO
    • La recomendación de ANTONIO BANDERAS para la PRÓSTATA
    • HALLAZGO de un calendario sagrado de hace 2500 años
    • La mayor estrella de la TV en España de los AÑOS 80
    • FREDDIE MERCURY sobre MONTSERRAT CABALLÉ
    • La REFLEXIÓN de Miguel de la Quadra-Salcedo
    • Despedida del trabajo y la INDEMNIZAN con miles de EUROS
    • El TRIBUNA SUPREMO ya cuenta el desayuno como jornada laboral
    • VOLUNTARIOS para vivir GRATIS en Irlanda
    • La PRENDA que va a ser TENDENCIA según las EXPERTAS
    • PROVERBIO africano sobre la LLUVIA
    • Experta en HERENCIAS advierte cuándo un TESTAMENTO no vale

    Okdiario

    • España
    • Economía
    • Deportes
    • Diario Madridista
    • Investigación
    • Cool
    • Opinión
    • Sociedad
    • Lotería de Navidad
    • Directo
    • Última hora de la invasión en Ceuta y actualidad política hoy
    • Las fotos de Zapatero retomando sus carreras por la zona restringida de El Pardo tras meses de reclusión
        • Investigación
        • Investigación

      Las fotos de Zapatero retomando sus carreras por la zona restringida de El Pardo tras meses de reclusión

      • Irene Tabera
      • 2026-09-21 21:56
    • El juez abre juicio oral con jurado a Begoña Gómez por tráfico de influencias y malversación
        • España
        • España

      El juez abre juicio oral con jurado a Begoña Gómez por tráfico de influencias y malversación

      El magistrado Juan Carlos Peinado ha dictado este lunes el auto de apertura de juicio oral contra Begoña Gómez Fernández, esposa del presidente del Gobierno, Pedro Sánchez, y contra su asesora Cristina Álvarez. El instructor ha resuelto que Begoña Gómez se siente en el banquillo de los acusados por un delito de tráfico de influencias y otro de malversación de caudales públicos, mientras que Álvarez responderá como cooperadora necesaria únicamente por la malversación relativa al desvío de un software universitario. El procedimiento con tribunal del jurado pasa ahora a la Audiencia Provincial de Madrid.
      • Fernán González
      • 2026-09-21 12:21
    • El juez equipara a Begoña Gómez con Iñaki Urdangarin por prevalerse de una relación de parentesco para sus negocios
        • España
        • España

      peinado equipara a Begoña Gómez con Iñaki Urdangarin por "prevalerse de una relación de parentesco" para sus negocios

      • Fernán González
      • 2026-09-21 12:55
    • Moncloa critica la intención política, acoso y deshumanización del juez Peinado por sentar en el banquillo a Begoña
        • España
        • España

      Moncloa critica la "intención política, deshumanización y acoso" del juez Peinado por sentar en el banquillo a Begoña

      • Rafael Molina
      • 2026-09-21 13:53
    • El juez cita a las hijas de Zapatero el 30 de noviembre y pide un peritaje a la joyería Yanes
        • España
        • España

      El juez cita a las hijas de Zapatero el 30 de noviembre, pide un peritaje a la joyería Yanes...

      • Fernán González
      • 2026-09-21 13:07
    • El juez da 3 días a Zapatero para que entregue “toda la documentación que se encuentre en su poder sobre las joyas
        • España
        • España

      ...y da 3 días al ex presidente para que entregue "toda la documentación que tenga en su poder" sobre las joyas

      • Fernán González
      • 2026-09-21 13:25
    • CjxzdHlsZT4KICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CiAgQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOyBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyME1lZGl1bSUyMENuZC5vdGYiKTsgfQogIEBmb250LWZhY2UgeyBmb250LWZhbWlseTogImFtcGxpdHVkZS1tZWRpdW0td2lkZSI7IHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwVGFiJTIwTWVkaXVtLm90ZiIpOyB9CiAgQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLWJvb2siOyBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7IH0KCiAgLyogUmVjdXBlcmEgZWwgY29tcG9ydGFtaWVudG8gZGVsIHF1ZSBz7SBmdW5jaW9uYSAqLwogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5jb250ZW5lZG9yIHsKICAgIHdpZHRoOiBhdXRvOwogICAgbWFyZ2luOiAwIGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogICAgei1pbmRleDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OwogICAgZmxvYXQ6IGlubGluZS1lbmQ7IC8qIDwtIElNUE9SVEFOVEUgZW4gMS8yIHkgMi8zICovCiAgfQoKICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAudmlkZW8tY29udGVuZWRvciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogYXV0bzsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTRFNEU0OwogICAgZGlzcGxheTogZmxleDsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2l0aW9uOiAuM3M7CiAgfQogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5iYWNrZ3JvdW5kLXZpZGVvIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfQoKICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAucGxheS1idXR0b24gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDEwcHg7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNyk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNDIpOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB6LWluZGV4OiAyOwogICAgYW5pbWF0aW9uOiBibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICB9CiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLnBsYXktaWNvbnsKICAgIHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7IGJvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsgbWFyZ2luLXJpZ2h0OjVweDsKICB9CiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLnBsYXktdGV4dHsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OmJvbGQgfQogIEBrZXlmcmFtZXMgYmxpbmsgeyAwJSwxMDAleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KSB9IDUwJXsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpIH0gfQogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5wbGF5LWJ1dHRvbjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOSkgfQoKICAvKiBB8WFkaWRvIGlndWFsIHF1ZSBlbiBsYSB2ZXJzafNuIHF1ZSBmdW5jaW9uYSAqLwogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5kZXNjcmlwY2lvbiB7IHBhZGRpbmc6IDAgNDBweCAwIDIwcHg7IH0KCiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLmRlc2NyaXBjaW9uIC5ldGlxdWV0YXMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgcGFkZGluZy1sZWZ0OiAwcHg7CiAgfQogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5kZXNjcmlwY2lvbiAuZXRpcXVldGEgewogICAgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0td2lkZSIsc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTJweDsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kOiMzZWE2ZDE7IHdpZHRoOmZpdC1jb250ZW50OyBwYWRkaW5nOjVweCAxMHB4OyBtYXJnaW4tbGVmdDowOwogIH0KCiAgLyogTWlzbWEgbPNnaWNhIGRlIHZpc2liaWxpZGFkIHF1ZSBlbCBidWVubzogc2Ugb2N1bHRhIHNpIGVzdOEgdmFj7W8gKi8KICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAuZGVzY3JpcGNpb24gLmJyZWFraW5nIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjZweDsgY29sb3I6I2QwMDIxYjsgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0td2lkZSIsc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTRweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9CiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLmRlc2NyaXBjaW9uIC5icmVha2luZzplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH0KICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAuZGVzY3JpcGNpb24gLmJyZWFraW5nIC5yYWRhciB7IHdpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZDAwMjFiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxleDowIDAgMTBweDsgfQogIC5hcGVydHVyYS1mdWxsLWs0NzljNmM3IC5kZXNjcmlwY2lvbiAuYnJlYWtpbmcgLnJhZGFyOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDotNnB4OyBib3JkZXI6MnB4IHNvbGlkIHJnYmEoMjA4LDIsMjcsLjQ1KTsgYm9yZGVyLXJhZGl1czo1MCU7IGFuaW1hdGlvbjpyYWRhclB1bHNlIDEuOHMgZWFzZS1vdXQgaW5maW5pdGU7IH0KICBAa2V5ZnJhbWVzIHJhZGFyUHVsc2V7IDAleyB0cmFuc2Zvcm06c2NhbGUoLjcpOyBvcGFjaXR5Oi43IH0gMTAwJXsgdHJhbnNmb3JtOnNjYWxlKDEuNik7IG9wYWNpdHk6MCB9IH0KCiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLmRlc2NyaXBjaW9uIGgyIHsKICAgIGZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCIsc2Fucy1zZXJpZjsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50OwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojMzMzOyBtYXJnaW46MTVweCAwOyB3aGl0ZS1zcGFjZTpwcmUtbGluZTsgZm9udC13ZWlnaHQ6NjAwOwogIH0KICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAuZGVzY3JpcGNpb24gcCB7CiAgICBtYXJnaW46MCAwIDIwcHggIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7IGNvbG9yOiMzMzM7CiAgICBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZToxLjFyZW07IGxpbmUtaGVpZ2h0OjEuM2VtOyB3aGl0ZS1zcGFjZTpwcmUtbGluZTsKICB9CiAgLmFwZXJ0dXJhLWZ1bGwtazQ3OWM2YzcgLmRlc2NyaXBjaW9uIC5hdXRvciB7CiAgICBmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7IGNvbG9yOiMzMzM7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zaXplOi44ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIHRleHQtYWxpZ246cmlnaHQ7IGRpc3BsYXk6YmxvY2s7CiAgfQoKICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAuZGVzY3JpcGNpb257IHBhZGRpbmc6MCAyMHB4IDAgMjBweCAhaW1wb3J0YW50OyB9CiAgICAuYXBlcnR1cmEtZnVsbC1rNDc5YzZjNyAucGxheS1idXR0b24geyBtYXJnaW4tdG9wOiAxMHB4OyB9CiAgfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSJhcGVydHVyYS1mdWxsLWs0NzljNmM3Ij4KPGRpdiBjbGFzcz0iY29udGVuZWRvciI+CiAgICAgICAgPGEgaWQ9IndyYXBMaW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvY2V1dGEtcmVjaWJlLW1hcmxhc2thLWdyaXRvcy10cmFpZG9yLWdhcnJhcGF0YS1vdHJhLXZpc2l0YS1yZWxhbXBhZ28tY2l1ZGFkLWludmFkaWRhLTIwMzUxMzMxIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLWNvbnRlbmVkb3IiPgogICAgICAgICAgICA8dmlkZW8gY2xhc3M9ImJhY2tncm91bmQtdmlkZW8iIGF1dG9wbGF5PSIiIG11dGVkPSIiIHBsYXlzaW5saW5lPSIiIGxvb3A9IiI+CiAgICAgICAgICAgICAgPHNvdXJjZSBpZD0idmlkZW9Tb3VyY2UiIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL3VwbG9hZHMlMkZtZWRpYS9OVUVWT19ERV9NQVJMQVNLQV9BUEVSVFVSQS0yMDI2MDkyMS0xNzE5MDEtZGE5MTk2Lm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgdmlkZW8gdGFnLgogICAgICAgICAgICA8L3ZpZGVvPgogICAgICAgICAgICAKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcGNpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJldGlxdWV0YXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldGlxdWV0YSIgaWQ9ImV0aXF1ZXRhQ2hpcCI+RXNwYfFhPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJicmVha2luZyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxoMiBpZD0iaDJQcmV2aWV3IiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW07Ij5DZXV0YSByZWNpYmUgYSBNYXJsYXNrYSBjb24gZ3JpdG9zIGRlICKhdHJhaWRvciEiIHkgIqFnYXJyYXBhdGEhIiBlbiBvdHJhIHZpc2l0YSByZWzhbXBhZ28gYSBsYSBjaXVkYWQgaW52YWRpZGE8L2gyPgogICAgICAgICAgICA8cCBpZD0icFByZXZpZXciPjwvcD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dG9yIiBpZD0iYXV0b3JQcmV2aWV3Ij5GRVJOQU5ETyBRVUlOVEVMQSAvIEVudmlhZG8gZXNwZWNpYWwgLyBjZXV0YTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvYT4KICAgICAgPC9kaXY+CjwvZGl2Pg==
      CjxzdHlsZT4KICAuYXBlcnR1cmEtbW9iaWxlLW9vcHVkYTZ5IGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KICBAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7IHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOyB9CiAgQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS13aWRlIjsgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBUYWIlMjBNZWRpdW0ub3RmIik7IH0KICBAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtYm9vayI7IHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsgfQoKICAvKiBSZWN1cGVyYSBlbCBjb21wb3J0YW1pZW50byBkZWwgcXVlIHPtIGZ1bmNpb25hICovCiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuY29udGVuZWRvciB7CiAgICB3aWR0aDogYXV0bzsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgIHotaW5kZXg6IDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsKICAgIGZsb2F0OiBpbmxpbmUtZW5kOyAvKiA8LSBJTVBPUlRBTlRFIGVuIDEvMiB5IDIvMyAqLwogIH0KCiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAudmlkZW8tY29udGVuZWRvciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogYXV0bzsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTRFNEU0OwogICAgZGlzcGxheTogZmxleDsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2l0aW9uOiAuM3M7CiAgfQogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLmJhY2tncm91bmQtdmlkZW8geyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9CgogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLnBsYXktYnV0dG9uIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAxMHB4OwogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjcpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQyKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgei1pbmRleDogMjsKICAgIGFuaW1hdGlvbjogYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgfQogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLnBsYXktaWNvbnsKICAgIHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7IGJvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsgbWFyZ2luLXJpZ2h0OjVweDsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAucGxheS10ZXh0eyBmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6Ym9sZCB9CiAgQGtleWZyYW1lcyBibGluayB7IDAlLDEwMCV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpIH0gNTAleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSkgfSB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAucGxheS1idXR0b246aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjkpIH0KCiAgLyogQfFhZGlkbyBpZ3VhbCBxdWUgZW4gbGEgdmVyc2nzbiBxdWUgZnVuY2lvbmEgKi8KICAuYXBlcnR1cmEtbW9iaWxlLW9vcHVkYTZ5IC5kZXNjcmlwY2lvbiB7IHBhZGRpbmc6IDAgNDBweCAwIDIwcHg7IH0KCiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuZGVzY3JpcGNpb24gLmV0aXF1ZXRhcyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuZGVzY3JpcGNpb24gLmV0aXF1ZXRhIHsKICAgIGZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLXdpZGUiLHNhbnMtc2VyaWY7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEycHg7CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYmFja2dyb3VuZDojM2VhNmQxOyB3aWR0aDpmaXQtY29udGVudDsgcGFkZGluZzo1cHggMTBweDsgbWFyZ2luLWxlZnQ6MDsKICB9CgogIC8qIE1pc21hIGzzZ2ljYSBkZSB2aXNpYmlsaWRhZCBxdWUgZWwgYnVlbm86IHNlIG9jdWx0YSBzaSBlc3ThIHZhY+1vICovCiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuZGVzY3JpcGNpb24gLmJyZWFraW5nIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjZweDsgY29sb3I6I2QwMDIxYjsgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0td2lkZSIsc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTRweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuZGVzY3JpcGNpb24gLmJyZWFraW5nOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfQogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLmRlc2NyaXBjaW9uIC5icmVha2luZyAucmFkYXIgeyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQ6I2QwMDIxYjsgcG9zaXRpb246cmVsYXRpdmU7IGZsZXg6MCAwIDEwcHg7IH0KICAuYXBlcnR1cmEtbW9iaWxlLW9vcHVkYTZ5IC5kZXNjcmlwY2lvbiAuYnJlYWtpbmcgLnJhZGFyOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDotNnB4OyBib3JkZXI6MnB4IHNvbGlkIHJnYmEoMjA4LDIsMjcsLjQ1KTsgYm9yZGVyLXJhZGl1czo1MCU7IGFuaW1hdGlvbjpyYWRhclB1bHNlIDEuOHMgZWFzZS1vdXQgaW5maW5pdGU7IH0KICBAa2V5ZnJhbWVzIHJhZGFyUHVsc2V7IDAleyB0cmFuc2Zvcm06c2NhbGUoLjcpOyBvcGFjaXR5Oi43IH0gMTAwJXsgdHJhbnNmb3JtOnNjYWxlKDEuNik7IG9wYWNpdHk6MCB9IH0KCiAgLmFwZXJ0dXJhLW1vYmlsZS1vb3B1ZGE2eSAuZGVzY3JpcGNpb24gaDIgewogICAgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmOyBmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnQ7CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiMzMzM7IG1hcmdpbjoxNXB4IDA7IHdoaXRlLXNwYWNlOnByZS1saW5lOyBmb250LXdlaWdodDo2MDA7CiAgfQogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLmRlc2NyaXBjaW9uIHAgewogICAgbWFyZ2luOjAgMCAyMHB4ICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeTsgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmOyBjb2xvcjojMzMzOwogICAgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6MS4xcmVtOyBsaW5lLWhlaWdodDoxLjNlbTsgd2hpdGUtc3BhY2U6cHJlLWxpbmU7CiAgfQogIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLmRlc2NyaXBjaW9uIC5hdXRvciB7CiAgICBmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7IGNvbG9yOiMzMzM7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zaXplOi44ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIHRleHQtYWxpZ246cmlnaHQ7IGRpc3BsYXk6YmxvY2s7CiAgfQoKICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAuYXBlcnR1cmEtbW9iaWxlLW9vcHVkYTZ5IC5kZXNjcmlwY2lvbnsgcGFkZGluZzowIDIwcHggMCAyMHB4ICFpbXBvcnRhbnQ7IH0KICAgIC5hcGVydHVyYS1tb2JpbGUtb29wdWRhNnkgLnBsYXktYnV0dG9uIHsgbWFyZ2luLXRvcDogMTBweDsgfQogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iYXBlcnR1cmEtbW9iaWxlLW9vcHVkYTZ5Ij4KPGRpdiBjbGFzcz0iY29udGVuZWRvciI+CiAgICAgICAgPGEgaWQ9IndyYXBMaW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvY2V1dGEtcmVjaWJlLW1hcmxhc2thLWdyaXRvcy10cmFpZG9yLWdhcnJhcGF0YS1vdHJhLXZpc2l0YS1yZWxhbXBhZ28tY2l1ZGFkLWludmFkaWRhLTIwMzUxMzMxIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLWNvbnRlbmVkb3IiPgogICAgICAgICAgICA8dmlkZW8gY2xhc3M9ImJhY2tncm91bmQtdmlkZW8iIGF1dG9wbGF5PSIiIG11dGVkPSIiIHBsYXlzaW5saW5lPSIiIGxvb3A9IiI+CiAgICAgICAgICAgICAgPHNvdXJjZSBpZD0idmlkZW9Tb3VyY2UiIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL3VwbG9hZHMlMkZtZWRpYS9OVUVWT19ERV9NQVJMQVNLQV9BUEVSVFVSQS0yMDI2MDkyMS0xNzE5MDEtZGE5MTk2Lm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgdmlkZW8gdGFnLgogICAgICAgICAgICA8L3ZpZGVvPgogICAgICAgICAgICAKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcGNpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJldGlxdWV0YXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldGlxdWV0YSIgaWQ9ImV0aXF1ZXRhQ2hpcCI+RXNwYfFhPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJicmVha2luZyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxoMiBpZD0iaDJQcmV2aWV3IiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW07Ij5DZXV0YSByZWNpYmUgYSBNYXJsYXNrYSBjb24gZ3JpdG9zIGRlICKhdHJhaWRvciEiIHkgIqFnYXJyYXBhdGEhIiBlbiBvdHJhIHZpc2l0YSByZWzhbXBhZ28gYSBsYSBjaXVkYWQgaW52YWRpZGE8L2gyPgogICAgICAgICAgICAKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dG9yIiBpZD0iYXV0b3JQcmV2aWV3Ij5GRVJOQU5ETyBRVUlOVEVMQSAvIEVudmlhZG8gZXNwZWNpYWwgLyBjZXV0YTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvYT4KICAgICAgPC9kaXY+CjwvZGl2Pg==
    • PGlmcmFtZSBoZWlnaHQ9JzI1MHB4JyB3aWR0aD0nMTAwJScgICBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9odG1sL3RmZ3Zrcy1jYXJydXNlbC1kaXJlY3Rvcy5waHA/bW9kZT1kZXNrIiAgIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iYm9yZGVyOjA7ZGlzcGxheTpibG9jazttYXgtIj48L2lmcmFtZT4=
      PGlmcmFtZSBoZWlnaHQ9JzY1MHB4JyB3aWR0aD0nMTAwJScgICBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9odG1sL3RmZ3Zrcy1jYXJydXNlbC1kaXJlY3Rvcy5waHA/bW9kZT1tb2JpbGUiICAgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iIHN0eWxlPSJib3JkZXI6MDtkaXNwbGF5OmJsb2NrO21heC0iPjwvaWZyYW1lPg==
    • Dos inmigrantes ilegales marroquíes agreden sexualmente a una menor de 17 años junto a la desalinizadora
        • España
        • España

      Dos inmigrantes ilegales marroquíes agreden sexualmente a una menor de 17 años en ceuta

      La última víctima de una agresión sexual por parte de inmigrantes ilegales en Ceuta es una menor marroquí de 17 años arrastrada por sus agresores junto al muro de la desalinizadora contigua a la playa del Trampolín esta madrugada. Una patrulla de la Policía Nacional atendió en primera instancia a la víctima, la última de una larga serie de agresiones sexuales cometidas tras la invasión de la ciudad.
      • Ángel Moya
      • 2026-09-21 12:43
    • El Gobierno anuncia que los 1.600 menas que entraron en Ceuta con la invasión se van a quedar en España
        • España
        • España

      El Gobierno admite que los 1.600 menas que entraron en Ceuta con la invasión "se van a quedar" en España

      • Nacho Atanes
      • 2026-09-21 11:57
    • Los inmigrantes ilegales hacen sus necesidades junto al mar porque los baños del campamento del puerto de Ceuta no funcionan
        • España
        • España

      Los invasores hacen sus necesidades junto al mar porque los baños del campamento del puerto de Ceuta no funcionan

      • Antonio Quilis
      • 2026-09-21 14:16
    • Marlaska culpa ahora a la Federación de que España no juegue en Ceuta: El informe no dice que no se celebre
        • Deportes
        • Deportes

      Marlaska culpa ahora a la Federación de que España no juegue en Ceuta: "El informe no dice que no se celebre"

      • Daniel Calle
      • 2026-09-21 21:09
    • La Federación responde a Marlaska: Nunca se organizará ningún partido si hay un informe policial que lo desaconseje
        • Deportes
        • Deportes

      La Federación responde a Marlaska: "Nunca se organizará ningún partido si hay un informe policial que lo desaconseje"

      • Iván Martín
      • 2026-09-21 21:21
    • Oficial: Luis de la Fuente renueva con España hasta 2032
    • La caseta del PSOE en la feria de Coria del Río: cortador de jamón, langostinos tigre y almejas de carril
        • España
        • España

      La caseta del PSOE en la feria de Coria del Río: cortador de jamón, langostinos tigre y almejas 

      • Ezequiel Marín
      • 2026-09-21 12:35
    • Pilar Bernabé se matricula en la Universidad para terminar la carrera que OKDIARIO destapó que no tenía
        • España
        • España

      Pilar Bernabé se matricula en la Universidad para terminar la carrera que OKDIARIO destapó que no tenía

      • Ignacio Martínez
      • VALENCIA
      • 2026-09-21 10:33
    • La Justicia tumba un recurso que quería convertir las muertes en las residencias en una causa general contra Ayuso
        • España
        • España

      La Justicia tumba un recurso que quería convertir las muertes en las residencias en una causa contra Ayuso

      • Pablo Romero-Salazar
      • 2026-09-21 13:24
    • Sánchez a los socialistas en Gavà: ¡Hasta 2031 y más! (con sus nietos)
    • Éste es el documento de 9 páginas sin firma ni datos propios por el que Zapatero cobró 145.200 € del banquero chavista Flores
    • El informe chapucero de la consultora de Zapatero plagia el 75% de un boletín del Banco de España y tiene 7 erratas graves
        • Investigación
        • Investigación

      El informe chapucero de la consultora de Zapatero plagia el 75% de un boletín del Banco de España y tiene 7 erratas graves

      El documento fake de 9 páginas que sirvió para justificar transferencias que suman 145.200 euros de una empresa ligada al empresario venezolano Francisco Flores a la consultora Análisis Relevante —vinculada a Julio Martínez, amigo íntimo e imputado junto a José Luis Rodríguez Zapatero en el caso Plus Ultra— es, según ha podido comprobar OKDIARIO, una copia de un informe del Banco de España.
      • Irene Tabera | Fernán González
      • 2026-09-21 05:50
    • Flores, el bolichico que murió de forma repentina y que conecta el
        • Investigación
        • Investigación

      Flores, el bolichico que murió de forma "repentina" y que conecta el 'caso Zapatero' con la financiación ilegal del PSOE

      • Irene Tabera
      • 2026-09-21 05:50
    • Título
        • Categoria
        • navarra

      El documento del nexo de Uxue Barkos con la 'trama Koldo': permitió a Cerdán controlar la mesa de contratación de Velate

      • ignacio murillo
    • El PSOE que ahora rabia contra el Supremo rechazó que los exiliados por la amenaza de ETA pudieran votar en el País Vasco
    • Inda: Marlaska, eres un matón
        • Opinión
        • Opinión

      Indag "Marlaska, eres un matón"

      • OKDIARIO
      • 2026-09-21 00:01
    • El líder del PP europeo exige en Ceuta desalojar las carpas de invasores y su retorno inmediato a Marruecos
        • España
        • España

      El líder del PP europeo exige en Ceuta "desalojar" las carpas de invasores y su "retorno inmediato" a Marruecos

      • Segundo Sanz
      • 2026-09-21 14:41
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLXdrdDRue21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7fQouYmxrLXdrdDRuIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0KLmJsay13a3Q0biAucGFnZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MTVweH0KLmJsay13a3Q0biAucGFnZSAuY29sdW1ue29yZGVyOjF9Ci5ibGstd2t0NG4gLnBhZ2UgLmxlYWR7b3JkZXI6Mn0KLyogODYwcHggeSBubyA0NzVweDogY29uIGxhIGNvbHVtbmEgZmlqYSAoMjIwcHggKyAyMHB4IGRlIGdhcCA9IDI0MHB4KSwKICAgY3VhbHF1aWVyIGFuY2hvIGRlIGlmcmFtZSBwb3IgZGViYWpvIGRlIH44NjBweCBkZWphIGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgICgxZnIpIGNhZGEgdmV6IGNvbiBtZW5vcyBlc3BhY2lvIGhhc3RhIGNvbGFwc2FyIGEgMHB4IGRlIGFuY2hvIGFudGVzIGRlCiAgIGxsZWdhciBhIHVuIGJyZWFrcG9pbnQgdGFuIGJham8gY29tbyA0NzVweCAmIzgyMTI7IGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgIGRpcmVjdGFtZW50ZSBkZXNhcGFyZWNlIGVuIGVzYSBmcmFuamEgaW50ZXJtZWRpYSAobmkgImRlc2siIGNvbXBsZXRvIG5pCiAgICJt83ZpbCIgZXN0cmVjaG8pLiBDb24gODYwcHggc2UgcGFzYSBhIHVuYSBzb2xhIGNvbHVtbmEgYXBpbGFkYSBhbnRlcyBkZQogICBxdWUgZXNvIHB1ZWRhIG9jdXJyaXIuCiAgIEVzdGUgYnJlYWtwb2ludCBzZSBvbWl0ZSBwb3IgY29tcGxldG8gbWllbnRyYXMgbGEgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpCiAgIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpOiBwZW5zYWRvIHBhcmEgY3VhbmRvIGVsIG3zZHVsbyBsbGV2YSBzdQogICBjb2x1bW5hIGEgOTYwcHgsIGRlamEgZGUgdGVuZXIgc2VudGlkbyBlbiB1bmEgZXhwb3J0YWNp824gZGUgc29sbyBsYQogICBub3RpY2lhIHByaW5jaXBhbCBhIHVuIGFuY2hvIGZpam8gZWxlZ2lkbyBhIG1hbm8gJiM4MjEyOyBsb3MgYW5jaG9zIHNpbXVsYWRvcwogICAoNjEzLzQ2MC8zMDdweCkgZXN04W4gVE9ET1MgcG9yIGRlYmFqbyBkZSA4NjBweCwgYXPtIHF1ZSBzaW4gZXN0ZSBnYXRpbmcKICAgZWwgSFRNTCBleHBvcnRhZG8gY2Flcu1hIHNpZW1wcmUgYSBsYSB0aXBvZ3JhZu1hICJN83ZpbCIgKGNvbiAhaW1wb3J0YW50KQogICBzZWEgY3VhbCBzZWEgbGEgcXVlIGVsIHVzdWFyaW8gY29uZmlndXLzIGVuICJEZXNrIiBwYXJhIGVzYSBzaW11bGFjafNuLAogICBkYW5kbyBsYSBmYWxzYSBzZW5zYWNp824gZGUgcXVlIHVuYSBjb25maWd1cmFjafNuICJwaXNhIiBhIG90cmEuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay13a3Q0bntiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowO30KICAuYmxrLXdrdDRuIC5wYWdle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmJsay13a3Q0biAucGFnZSAuc3RhY2stdGl0bGUge2ZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDogMS4yZW07fQogIC5ibGstd2t0NG4gLnBhZ2UgLnN0YWNrLWF1dGhvciB7bWFyZ2luLXRvcDogMTBweDt9CiAgLmJsay13a3Q0biAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YmxvY2stc2l6ZTo0MDBweCAhaW1wb3J0YW50O30KICAuYmxrLXdrdDRuIC5sZWFkLW1lZGlhe2FzcGVjdC1yYXRpbzoxNi85ICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLXdrdDRuIC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLXdrdDRuIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstd2t0NG4gLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay13a3Q0biAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLXdrdDRuIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLXdrdDRuIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay13a3Q0biAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLXdrdDRuIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OjEwcHg7cmlnaHQ6YXV0bzt9CiAgLmJsay13a3Q0biAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay13a3Q0biAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstd2t0NG4gLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay13a3Q0biAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXdrdDRuIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLXdrdDRuIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLXdrdDRuIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLXdrdDRuIC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLXdrdDRuIC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2t0NG4gLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstd2t0NG4gLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstd2t0NG4gLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay13a3Q0biAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstd2t0NG4gLmxlYWQtbWVkaWEgaW1nLAouYmxrLXdrdDRuIC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLXdrdDRuIC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay13a3Q0biAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay13a3Q0biAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstd2t0NG4gLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstd2t0NG4gLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstd2t0NG4ta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstd2t0NG4gLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLXdrdDRuLWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay13a3Q0bi1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLXdrdDRuLWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay13a3Q0biAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstd2t0NG4ta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay13a3Q0bi1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2t0NG4gLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLXdrdDRuIC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLXdrdDRuIC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstd2t0NG4gLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay13a3Q0biAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay13a3Q0biAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstd2t0NG4gLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstd2t0NG4gLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstd2t0NG4gLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXdrdDRuIC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstd2t0NG4gLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstd2t0NG4gLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstd2t0NG4gLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLXdrdDRuIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstd2t0NG4gLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXdrdDRuIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLXdrdDRuIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLXdrdDRuIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLXdrdDRuIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2t0NG4gLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay13a3Q0biAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay13a3Q0biAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstd2t0NG4gLmxlYWQta2lja2VyLCAuYmxrLXdrdDRuIC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstd2t0NG4gLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstd2t0NG4gLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLXdrdDRuIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS41NXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstd2t0NG4gLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLXdrdDRuIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuNTVyZW07bGluZS1oZWlnaHQ6MS4wMjttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstd2t0NG4gLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstd2t0NG4gLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay13a3Q0biAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLXdrdDRuIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLXdrdDRuIC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstd2t0NG4gLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstd2t0NG4gLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstd2t0NG4gLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLXdrdDRuIC50aHVtYiBpbWcsCi5ibGstd2t0NG4gLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay13a3Q0biAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLXdrdDRuIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstd2t0NG4tYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay13a3Q0biAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstd2t0NG4gLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLXdrdDRuIC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstd2t0NG4gLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstd2t0NG4gLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLXdrdDRuIC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstd2t0NG4gLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLXdrdDRuIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstd2t0NG4gLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstd2t0NG4gLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLXdrdDRuIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstd2t0NG4gLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstd2t0NG4gLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay13a3Q0biAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstd2t0NG4gLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstd2t0NG4gLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLXdrdDRuLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstd2t0NG4gLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstd2t0NG4gLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KLyogRW4gZWwgbW9kbyAnbGVmdCcgZWwgUGxheSBwYXNhIGEgbGEgZXNxdWluYSBzdXBlcmlvciBkZXJlY2hhICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6YXV0bztyaWdodDoxMHB4O30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay13a3Q0biAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLXdrdDRuIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay13a3Q0biAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLXdrdDRuIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay13a3Q0biAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstd2t0NG4gLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay13a3Q0biAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLXdrdDRuIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay13a3Q0biAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay13a3Q0biAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay13a3Q0biAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay13a3Q0biAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay13a3Q0biAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLXdrdDRuIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstd2t0NG4gLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLXdrdDRuIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay13a3Q0bi1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstd2t0NG4gLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstd2t0NG4gLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstd2t0NG4gLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstd2t0NG4gLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstd2t0NG4gLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLXdrdDRuIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLXdrdDRuIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay13a3Q0biAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLXdrdDRuIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstd2t0NG4gLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLXdrdDRuLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLXdrdDRuIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLXdrdDRuIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLXdrdDRuIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstd2t0NG4gLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXdrdDRuIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2t0NG4gLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay13a3Q0biAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXdrdDRuIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstd2t0NG4gLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstd2t0NG4gLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXdrdDRuIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay13a3Q0biAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2t0NG4gLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay13a3Q0biAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstd2t0NG4gLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLXdrdDRuIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXdrdDRuIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstd2t0NG4gLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstd2t0NG4gLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay13a3Q0biAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstd2t0NG4gLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstd2t0NG4gLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLXdrdDRuIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstd2t0NG4gLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay13a3Q0biAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLXdrdDRuIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLXdrdDRuIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstd2t0NG4gLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay13a3Q0biAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13a3Q0biAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstd2t0NG4gLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstd2t0NG4gLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstd2t0NG4gLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXdrdDRuIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLXdrdDRuIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstd2t0NG4iPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8dmlkZW8gY2xhc3M9ImxlYWQtdmlkZW8iIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2xhLXBvbGljaWEtZGUtbWFybGFza2EtcmVwcmltZS1hLWdvbHBlcy15LWNvbi1wZWxvdGFzLWRlLWdvbWEtYS1sb3MtY2V1dGllcy1xdWUtaW1wZWRpYW4tbGEtZW50cmFkYS1kZS11bmEtb25nLXByb2V0YXJyYS0yMDI2MDkyMC0yMDUxNTctNDRhZjNjLm1wNCIgcG9zdGVyPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvbGEtcG9saWNpYS1kZS1tYXJsYXNrYS1yZXByaW1lLWEtZ29scGVzLXktY29uLXBlbG90YXMtZGUtZ29tYS1hLWxvcy1jZXV0aWVzLXF1ZS1pbXBlZGlhbi1sYS1lbnRyYWRhLWRlLXVuYS1vbmctcHJvZXRhcnJhLXBvc3Rlci0yMDI2MDkyMC0yMDUxNTctMmM4ZjYyLmpwZyIgYXV0b3BsYXkgbXV0ZWQgbG9vcCBwbGF5c2lubGluZSBwcmVsb2FkPSJtZXRhZGF0YSI+PC92aWRlbz4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLW92ZXJsYXkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTQsMTcsMjYsMC4wMCk7Ij48L2Rpdj4KICAgICAgICAKICAgICAgICA8YnV0dG9uIGNsYXNzPSJwbGF5LWJ1dHRvbiIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InBsYXktaWNvbiI+PC9kaXY+PHNwYW4gY2xhc3M9InBsYXktdGV4dCI+UGxheTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojMDBBN0ZGO2NvbG9yOiNmZmYiPkVTUEHRQTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+TGEgUG9saWPtYSBkZSBNYXJsYXNrYSByZXByaW1lIGEgZ29scGVzIHkgY29uIHBlbG90YXMgZGUgZ29tYSBhIGxvcyBjZXV07WVzIHF1ZSBpbXBlZO1hbiBsYSBlbnRyYWRhIGRlIHVuYSBPTkcgcHJvZXRhcnJhPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+TGEgUG9saWPtYSBkZSBNYXJsYXNrYSByZXByaW1lIGEgZ29scGVzIHkgY29uIHBlbG90YXMgZGUgZ29tYSBhIGxvcyBjZXV07WVzIHF1ZSBpbXBlZO1hbiBsYSBlbnRyYWRhIGRlIHVuYSBPTkcgcHJvZXRhcnJhPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPkZlcm5hbmRvIFF1aW50ZWxhPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL3BvbGljaWEtbWFybGFza2EtcmVwcmltZS1nb2xwZXMtcGVsb3Rhcy1nb21hLWNldXRpZXMtcXVlLWltcGVkaWFuLWVudHJhZGEtb25nLXByb2V0YXJyYS0yMDM0MzYzOSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJMYSBQb2xpY+1hIGRlIE1hcmxhc2thIHJlcHJpbWUgYSBnb2xwZXMgeSBjb24gcGVsb3RhcyBkZSBnb21hIGEgbG9zIGNldXTtZXMgcXVlIGltcGVk7WFuIGxhIGVudHJhZGEgZGUgdW5hIE9ORyBwcm9ldGFycmEiIGFyaWEtbGFiZWw9IkxhIFBvbGlj7WEgZGUgTWFybGFza2EgcmVwcmltZSBhIGdvbHBlcyB5IGNvbiBwZWxvdGFzIGRlIGdvbWEgYSBsb3MgY2V1dO1lcyBxdWUgaW1wZWTtYW4gbGEgZW50cmFkYSBkZSB1bmEgT05HIHByb2V0YXJyYSI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstd2t0NG4gLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLTN2M2Y0e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7fQouYmxrLTN2M2Y0IGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0KLmJsay0zdjNmNCAucGFnZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MTVweH0KLmJsay0zdjNmNCAucGFnZSAuY29sdW1ue29yZGVyOjF9Ci5ibGstM3YzZjQgLnBhZ2UgLmxlYWR7b3JkZXI6Mn0KLyogODYwcHggeSBubyA0NzVweDogY29uIGxhIGNvbHVtbmEgZmlqYSAoMjIwcHggKyAyMHB4IGRlIGdhcCA9IDI0MHB4KSwKICAgY3VhbHF1aWVyIGFuY2hvIGRlIGlmcmFtZSBwb3IgZGViYWpvIGRlIH44NjBweCBkZWphIGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgICgxZnIpIGNhZGEgdmV6IGNvbiBtZW5vcyBlc3BhY2lvIGhhc3RhIGNvbGFwc2FyIGEgMHB4IGRlIGFuY2hvIGFudGVzIGRlCiAgIGxsZWdhciBhIHVuIGJyZWFrcG9pbnQgdGFuIGJham8gY29tbyA0NzVweCAmIzgyMTI7IGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgIGRpcmVjdGFtZW50ZSBkZXNhcGFyZWNlIGVuIGVzYSBmcmFuamEgaW50ZXJtZWRpYSAobmkgImRlc2siIGNvbXBsZXRvIG5pCiAgICJt83ZpbCIgZXN0cmVjaG8pLiBDb24gODYwcHggc2UgcGFzYSBhIHVuYSBzb2xhIGNvbHVtbmEgYXBpbGFkYSBhbnRlcyBkZQogICBxdWUgZXNvIHB1ZWRhIG9jdXJyaXIuCiAgIEVzdGUgYnJlYWtwb2ludCBzZSBvbWl0ZSBwb3IgY29tcGxldG8gbWllbnRyYXMgbGEgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpCiAgIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpOiBwZW5zYWRvIHBhcmEgY3VhbmRvIGVsIG3zZHVsbyBsbGV2YSBzdQogICBjb2x1bW5hIGEgOTYwcHgsIGRlamEgZGUgdGVuZXIgc2VudGlkbyBlbiB1bmEgZXhwb3J0YWNp824gZGUgc29sbyBsYQogICBub3RpY2lhIHByaW5jaXBhbCBhIHVuIGFuY2hvIGZpam8gZWxlZ2lkbyBhIG1hbm8gJiM4MjEyOyBsb3MgYW5jaG9zIHNpbXVsYWRvcwogICAoNjEzLzQ2MC8zMDdweCkgZXN04W4gVE9ET1MgcG9yIGRlYmFqbyBkZSA4NjBweCwgYXPtIHF1ZSBzaW4gZXN0ZSBnYXRpbmcKICAgZWwgSFRNTCBleHBvcnRhZG8gY2Flcu1hIHNpZW1wcmUgYSBsYSB0aXBvZ3JhZu1hICJN83ZpbCIgKGNvbiAhaW1wb3J0YW50KQogICBzZWEgY3VhbCBzZWEgbGEgcXVlIGVsIHVzdWFyaW8gY29uZmlndXLzIGVuICJEZXNrIiBwYXJhIGVzYSBzaW11bGFjafNuLAogICBkYW5kbyBsYSBmYWxzYSBzZW5zYWNp824gZGUgcXVlIHVuYSBjb25maWd1cmFjafNuICJwaXNhIiBhIG90cmEuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0zdjNmNHtiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowO30KICAuYmxrLTN2M2Y0IC5wYWdle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmJsay0zdjNmNCAucGFnZSAuc3RhY2stdGl0bGUge2ZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDogMS4yZW07fQogIC5ibGstM3YzZjQgLnBhZ2UgLnN0YWNrLWF1dGhvciB7bWFyZ2luLXRvcDogMTBweDt9CiAgLmJsay0zdjNmNCAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YmxvY2stc2l6ZTo0MDBweCAhaW1wb3J0YW50O30KICAuYmxrLTN2M2Y0IC5sZWFkLW1lZGlhe2FzcGVjdC1yYXRpbzoxNi85ICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLTN2M2Y0IC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLTN2M2Y0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstM3YzZjQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay0zdjNmNCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLTN2M2Y0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLTN2M2Y0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay0zdjNmNCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLTN2M2Y0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OjEwcHg7cmlnaHQ6YXV0bzt9CiAgLmJsay0zdjNmNCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay0zdjNmNCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstM3YzZjQgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay0zdjNmNCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTN2M2Y0IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLTN2M2Y0IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLTN2M2Y0IC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTN2M2Y0IC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLTN2M2Y0IC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstM3YzZjQgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstM3YzZjQgLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstM3YzZjQgLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay0zdjNmNCAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstM3YzZjQgLmxlYWQtbWVkaWEgaW1nLAouYmxrLTN2M2Y0IC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLTN2M2Y0IC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay0zdjNmNCAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay0zdjNmNCAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstM3YzZjQgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstM3YzZjQgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstM3YzZjQta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstM3YzZjQgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLTN2M2Y0LWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay0zdjNmNC1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLTN2M2Y0LWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay0zdjNmNCAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstM3YzZjQta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay0zdjNmNC1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3YzZjQgLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLTN2M2Y0IC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLTN2M2Y0IC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstM3YzZjQgLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay0zdjNmNCAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay0zdjNmNCAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstM3YzZjQgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstM3YzZjQgLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstM3YzZjQgLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTN2M2Y0IC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstM3YzZjQgLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstM3YzZjQgLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstM3YzZjQgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLTN2M2Y0IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstM3YzZjQgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTN2M2Y0IC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLTN2M2Y0IC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLTN2M2Y0IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLTN2M2Y0IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3YzZjQgLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay0zdjNmNCAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay0zdjNmNCAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstM3YzZjQgLmxlYWQta2lja2VyLCAuYmxrLTN2M2Y0IC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstM3YzZjQgLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstM3YzZjQgLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLTN2M2Y0IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS41NXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstM3YzZjQgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLTN2M2Y0IC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuNTVyZW07bGluZS1oZWlnaHQ6MS4wMjttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstM3YzZjQgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstM3YzZjQgLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay0zdjNmNCAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLTN2M2Y0IC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLTN2M2Y0IC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstM3YzZjQgLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstM3YzZjQgLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstM3YzZjQgLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLTN2M2Y0IC50aHVtYiBpbWcsCi5ibGstM3YzZjQgLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay0zdjNmNCAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLTN2M2Y0IC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstM3YzZjQtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay0zdjNmNCAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstM3YzZjQgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLTN2M2Y0IC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstM3YzZjQgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstM3YzZjQgLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLTN2M2Y0IC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstM3YzZjQgLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLTN2M2Y0IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstM3YzZjQgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstM3YzZjQgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLTN2M2Y0IC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstM3YzZjQgLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstM3YzZjQgLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay0zdjNmNCAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstM3YzZjQgLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstM3YzZjQgLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLTN2M2Y0LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstM3YzZjQgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstM3YzZjQgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KLyogRW4gZWwgbW9kbyAnbGVmdCcgZWwgUGxheSBwYXNhIGEgbGEgZXNxdWluYSBzdXBlcmlvciBkZXJlY2hhICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6YXV0bztyaWdodDoxMHB4O30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay0zdjNmNCAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLTN2M2Y0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay0zdjNmNCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLTN2M2Y0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay0zdjNmNCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstM3YzZjQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay0zdjNmNCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLTN2M2Y0IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay0zdjNmNCAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay0zdjNmNCAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay0zdjNmNCAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay0zdjNmNCAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay0zdjNmNCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLTN2M2Y0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstM3YzZjQgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLTN2M2Y0IC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay0zdjNmNC1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstM3YzZjQgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstM3YzZjQgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstM3YzZjQgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstM3YzZjQgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstM3YzZjQgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLTN2M2Y0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTN2M2Y0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0zdjNmNCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLTN2M2Y0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstM3YzZjQgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLTN2M2Y0LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLTN2M2Y0IC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLTN2M2Y0IC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLTN2M2Y0IC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstM3YzZjQgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTN2M2Y0IC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3YzZjQgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay0zdjNmNCAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTN2M2Y0IC5oZWFkZXIyLWNhdC10YWcsCi5ibGstM3YzZjQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstM3YzZjQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTN2M2Y0IC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay0zdjNmNCAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3YzZjQgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay0zdjNmNCAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstM3YzZjQgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLTN2M2Y0IC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTN2M2Y0IC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstM3YzZjQgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstM3YzZjQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay0zdjNmNCAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstM3YzZjQgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstM3YzZjQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLTN2M2Y0IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstM3YzZjQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay0zdjNmNCAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLTN2M2Y0IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTN2M2Y0IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstM3YzZjQgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay0zdjNmNCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0zdjNmNCAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstM3YzZjQgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstM3YzZjQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstM3YzZjQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTN2M2Y0IC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLTN2M2Y0IC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstM3YzZjQiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWJvdHRvbS1mdWxsIj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPHZpZGVvIGNsYXNzPSJsZWFkLXZpZGVvIiBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9sYS1wb2xpY2lhLWRlLW1hcmxhc2thLXJlcHJpbWUtYS1nb2xwZXMteS1jb24tcGVsb3Rhcy1kZS1nb21hLWEtbG9zLWNldXRpZXMtcXVlLWltcGVkaWFuLWxhLWVudHJhZGEtZGUtdW5hLW9uZy1wcm9ldGFycmEtMjAyNjA5MjAtMjA1MTU3LTQ0YWYzYy5tcDQiIHBvc3Rlcj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2xhLXBvbGljaWEtZGUtbWFybGFza2EtcmVwcmltZS1hLWdvbHBlcy15LWNvbi1wZWxvdGFzLWRlLWdvbWEtYS1sb3MtY2V1dGllcy1xdWUtaW1wZWRpYW4tbGEtZW50cmFkYS1kZS11bmEtb25nLXByb2V0YXJyYS1wb3N0ZXItMjAyNjA5MjAtMjA1MTU3LTJjOGY2Mi5qcGciIGF1dG9wbGF5IG11dGVkIGxvb3AgcGxheXNpbmxpbmUgcHJlbG9hZD0ibWV0YWRhdGEiPjwvdmlkZW8+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icGxheS1idXR0b24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJwbGF5LWljb24iPjwvZGl2PjxzcGFuIGNsYXNzPSJwbGF5LXRleHQiPlBsYXk8L3NwYW4+PC9idXR0b24+CiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHkiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFkLWNhdCIgc3R5bGU9ImJhY2tncm91bmQ6IzAwQTdGRjtjb2xvcjojZmZmIj5FU1BB0UE8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5LW1haW4iPgogICAgICAgICAgCiAgICAgICAgICA8aDIgY2xhc3M9ImxlYWQtdGl0bGUiPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLWRlc2siPkxhIFBvbGlj7WEgZGUgTWFybGFza2EgcmVwcmltZSBhIGdvbHBlcyB5IGNvbiBwZWxvdGFzIGRlIGdvbWEgYSBsb3MgY2V1dO1lcyBxdWUgaW1wZWTtYW4gbGEgZW50cmFkYSBkZSB1bmEgT05HIHByb2V0YXJyYTwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPkxhIFBvbGlj7WEgZGUgTWFybGFza2EgcmVwcmltZSBhIGdvbHBlcyB5IGNvbiBwZWxvdGFzIGRlIGdvbWEgYSBsb3MgY2V1dO1lcyBxdWUgaW1wZWTtYW4gbGEgZW50cmFkYSBkZSB1bmEgT05HIHByb2V0YXJyYTwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj5GZXJuYW5kbyBRdWludGVsYTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxhIGNsYXNzPSJsZWFkLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9wb2xpY2lhLW1hcmxhc2thLXJlcHJpbWUtZ29scGVzLXBlbG90YXMtZ29tYS1jZXV0aWVzLXF1ZS1pbXBlZGlhbi1lbnRyYWRhLW9uZy1wcm9ldGFycmEtMjAzNDM2MzkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTGEgUG9saWPtYSBkZSBNYXJsYXNrYSByZXByaW1lIGEgZ29scGVzIHkgY29uIHBlbG90YXMgZGUgZ29tYSBhIGxvcyBjZXV07WVzIHF1ZSBpbXBlZO1hbiBsYSBlbnRyYWRhIGRlIHVuYSBPTkcgcHJvZXRhcnJhIiBhcmlhLWxhYmVsPSJMYSBQb2xpY+1hIGRlIE1hcmxhc2thIHJlcHJpbWUgYSBnb2xwZXMgeSBjb24gcGVsb3RhcyBkZSBnb21hIGEgbG9zIGNldXTtZXMgcXVlIGltcGVk7WFuIGxhIGVudHJhZGEgZGUgdW5hIE9ORyBwcm9ldGFycmEiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLTN2M2Y0IC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
    • PHN0eWxlPgogIEBpbXBvcnQgdXJsKCdodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcycpOwoKICAuYmlsZHMtdnduamF2a2h7IGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsgfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzaywKICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWVjfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVza3sKICAgIHdpZHRoOjEwMCU7bWF4LXdpZHRoOjk2MHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NDYwcHggMWZyO2dhcDoxMHB4O3BhZGRpbmc6MTBweDttaW4td2lkdGg6OTYwcHg7CiB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5tZWRpYS13cmFwe3dpZHRoOjQ2MHB4fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzayAubWVkaWEsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLm1lZGlhewogICAgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpc29sYXRpb246aXNvbGF0ZTsKICB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5tZWRpYXt3aWR0aDo0NjBweDtoZWlnaHQ6MjYwcHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIGltZywgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIHZpZGVvLAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIGltZywgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgdmlkZW97d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfQogIC5iaWxkcy12d25qYXZraCAucGl4ZWxhdGVkLW1lZGlhe2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7aW1hZ2UtcmVuZGVyaW5nOmNyaXNwLWVkZ2VzfQogIC5iaWxkcy12d25qYXZraCAucGl4ZWwtcmlnaHQtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waXhlbC1yaWdodC1oYWxme3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0KICAuYmlsZHMtdnduamF2a2ggLnBpeGVsLXJpZ2h0LWhhbGYgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6MjAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpyaWdodCBjZW50ZXI7ZGlzcGxheTpibG9jaztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkO2ltYWdlLXJlbmRlcmluZzpjcmlzcC1lZGdlc30KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLnRleHQsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLnRleHR7bWluLWhlaWdodDoyNjBweDtwYWRkaW5nOjAgMTBweH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYnt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweDtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNvbnRlbnR7cGFkZGluZzoxNnB4IDEwcHggMTBweH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLmNhdGVnb3J5LAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5jYXRlZ29yeXsKICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2F0KTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjZweCAxMnB4IDVweDt3aWR0aDpmaXQtY29udGVudDt0cmFuc2Zvcm06c2tld1koLThkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNhdGVnb3J5IHsgbWFyZ2luLXRvcDotMzBweDsgfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzayAuaGVhZGxpbmUsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmhlYWRsaW5le21hcmdpbjoyMHB4IDAgMDtjb2xvcjojMEUxMTFBO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstd29yZH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLmhlYWRsaW5le2ZvbnQtc2l6ZTo0MnB4O2xpbmUtaGVpZ2h0OjQycHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmhlYWRsaW5le2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjM0cHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5kZXNjLAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5kZXNje21hcmdpbjoxNXB4IDAgMDtjb2xvcjojMzgzQjQyO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjdweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5hdXRob3IsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmF1dGhvcnttYXJnaW4tdG9wOjIwcHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiMzODNCNDI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjMwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmF1dGhvciB7bWFyZ2luLXRvcDogMjBweDt9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmJvdHRvbS1saW5le2Rpc3BsYXk6dXBwZXJjYXNlO30KICAuYmlsZHMtdnduamF2a2ggLnBsYXktYnRue3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7YW5pbWF0aW9uOmJpbGRzLXZ3bmphdmtoLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO3otaW5kZXg6Mn0KICAuYmlsZHMtdnduamF2a2ggLnBsYXktYnRuIC5pY297d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnR9CiAgLmJpbGRzLXZ3bmphdmtoIC5wbGF5LWJ0biAudHh0e2ZvbnQtd2VpZ2h0OjcwMH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYiAucGxheS1idG57bGVmdDphdXRvO3JpZ2h0OjEwcHg7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5wbGF5LWJ0biAudHh0e2Rpc3BsYXk6bm9uZX0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmJsb2NrO29wYWNpdHk6MDt6LWluZGV4OjN9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNre29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzazpob3ZlcntvcGFjaXR5Oi45fQogIEBrZXlmcmFtZXMgYmlsZHMtdnduamF2a2gtYmxpbmt7MCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LC45KX19CiAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiA0NzlweCl7CiAgICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2t7ZGlzcGxheTpub25lfQogICAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2J7ZGlzcGxheTpibG9ja30KICB9CiAgQHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplKXsKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NzkuOThweCl7CiAgICAgIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVza3tkaXNwbGF5Om5vbmV9CiAgICAgIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9ie2Rpc3BsYXk6YmxvY2t9CiAgICB9CiAgfQogIDwvc3R5bGU+CjxzZWN0aW9uIGNsYXNzPSJiaWxkcy12d25qYXZraCIgc3R5bGU9Ii0tY2F0OiNGRkVBNEQ7IC0tY2F0LWJnOnJnYmEoMjU1LCAyMzQsIDc3LCAwLjIpIj4KICAgIDxhcnRpY2xlIGNsYXNzPSJwaWVjZS1kZXNrIiBpdGVtc2NvcGU9IiIgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9OZXdzQXJ0aWNsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtd3JhcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxpbWcgZGVjb2Rpbmc9ImFzeW5jIiBhbHQ9IkTtYSBNdW5kaWFsIGRlbCBBbHpo6WltZXIiIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW1nLzIwMjYvMDkvMjAvMjEtMDktMjAyNi1kaWEtZGVsLWFsemhlaW1lci1mYXJtYWNvcy5qcGVnIiBsb2FkaW5nPSJsYXp5IiB3aWR0aD0iNDYwIiBpdGVtcHJvcD0iaW1hZ2UiPgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRleHQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5IiBpdGVtcHJvcD0iYXJ0aWNsZVNlY3Rpb24iIHN0eWxlPSJjb2xvcjogcmdiKDE0LCAxNywgMjYpOyI+TEEgVknRRVRBIERFIFBVRUJMQTwvc3Bhbj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGxpbmUiIGlkPSJiaWxkcy12d25qYXZraC1oZWFkbGluZSIgaXRlbXByb3A9ImhlYWRsaW5lIj5EzUEgTVVORElBTCBERUwgQUxaSMlJTUVSPC9oMj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9InBpZWNlLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vZGlhLW11bmRpYWwtZGVsLWFsemhlaW1lci0yMDM0MjE5NiIgaXRlbXByb3A9InVybCIgYXJpYS1sYWJlbGxlZGJ5PSJiaWxkcy12d25qYXZraC1oZWFkbGluZSI+PC9hPgogICAgICA8L2FydGljbGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0icGllY2UtbW9iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEiPgogICAgICAgICAgPGltZyBkZWNvZGluZz0iYXN5bmMiIGFsdD0iRO1hIE11bmRpYWwgZGVsIEFsemjpaW1lciIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9pbWcvMjAyNi8wOS8yMC8yMS0wOS0yMDI2LWRpYS1kZWwtYWx6aGVpbWVyLWZhcm1hY29zLmpwZWciIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIzNzUiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnkiIHN0eWxlPSJjb2xvcjogcmdiKDE0LCAxNywgMjYpOyI+TEEgVknRRVRBIERFIFBVRUJMQTwvc3Bhbj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGxpbmUiPkTNQSBNVU5ESUFMIERFTCBBTFpIyUlNRVI8L2gyPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1saW5lIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YSBjbGFzcz0icGllY2UtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vb3Bpbmlvbi9kaWEtbXVuZGlhbC1kZWwtYWx6aGVpbWVyLTIwMzQyMTk2IiB0YWJpbmRleD0iLTEiPjwvYT4KICAgICAgPC9hcnRpY2xlPgogIDwvc2VjdGlvbj4=
      PHN0eWxlPgogIEBpbXBvcnQgdXJsKCdodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcycpOwoKICAuYmlsZHMtdnduamF2a2h7IGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsgfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzaywKICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWVjfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVza3sKICAgIHdpZHRoOjEwMCU7bWF4LXdpZHRoOjk2MHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NDYwcHggMWZyO2dhcDoxMHB4O3BhZGRpbmc6MTBweDttaW4td2lkdGg6OTYwcHg7CiB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5tZWRpYS13cmFwe3dpZHRoOjQ2MHB4fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzayAubWVkaWEsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLm1lZGlhewogICAgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpc29sYXRpb246aXNvbGF0ZTsKICB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5tZWRpYXt3aWR0aDo0NjBweDtoZWlnaHQ6MjYwcHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIGltZywgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIHZpZGVvLAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIGltZywgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgdmlkZW97d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfQogIC5iaWxkcy12d25qYXZraCAucGl4ZWxhdGVkLW1lZGlhe2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7aW1hZ2UtcmVuZGVyaW5nOmNyaXNwLWVkZ2VzfQogIC5iaWxkcy12d25qYXZraCAucGl4ZWwtcmlnaHQtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waXhlbC1yaWdodC1oYWxme3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0KICAuYmlsZHMtdnduamF2a2ggLnBpeGVsLXJpZ2h0LWhhbGYgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6MjAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpyaWdodCBjZW50ZXI7ZGlzcGxheTpibG9jaztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkO2ltYWdlLXJlbmRlcmluZzpjcmlzcC1lZGdlc30KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLnRleHQsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLnRleHR7bWluLWhlaWdodDoyNjBweDtwYWRkaW5nOjAgMTBweH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYnt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweDtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNvbnRlbnR7cGFkZGluZzoxNnB4IDEwcHggMTBweH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLmNhdGVnb3J5LAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5jYXRlZ29yeXsKICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2F0KTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjZweCAxMnB4IDVweDt3aWR0aDpmaXQtY29udGVudDt0cmFuc2Zvcm06c2tld1koLThkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICB9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmNhdGVnb3J5IHsgbWFyZ2luLXRvcDotMzBweDsgfQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzayAuaGVhZGxpbmUsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmhlYWRsaW5le21hcmdpbjoyMHB4IDAgMDtjb2xvcjojMEUxMTFBO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstd29yZH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2sgLmhlYWRsaW5le2ZvbnQtc2l6ZTo0MnB4O2xpbmUtaGVpZ2h0OjQycHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmhlYWRsaW5le2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjM0cHh9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5kZXNjLAogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5kZXNje21hcmdpbjoxNXB4IDAgMDtjb2xvcjojMzgzQjQyO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjdweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNrIC5hdXRob3IsCiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmF1dGhvcnttYXJnaW4tdG9wOjIwcHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiMzODNCNDI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjMwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmF1dGhvciB7bWFyZ2luLXRvcDogMjBweDt9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2IgLmJvdHRvbS1saW5le2Rpc3BsYXk6dXBwZXJjYXNlO30KICAuYmlsZHMtdnduamF2a2ggLnBsYXktYnRue3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7YW5pbWF0aW9uOmJpbGRzLXZ3bmphdmtoLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO3otaW5kZXg6Mn0KICAuYmlsZHMtdnduamF2a2ggLnBsYXktYnRuIC5pY297d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnR9CiAgLmJpbGRzLXZ3bmphdmtoIC5wbGF5LWJ0biAudHh0e2ZvbnQtd2VpZ2h0OjcwMH0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLW1vYiAucGxheS1idG57bGVmdDphdXRvO3JpZ2h0OjEwcHg7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9iIC5wbGF5LWJ0biAudHh0e2Rpc3BsYXk6bm9uZX0KICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmJsb2NrO29wYWNpdHk6MDt6LWluZGV4OjN9CiAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1kZXNre29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fQogIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVzazpob3ZlcntvcGFjaXR5Oi45fQogIEBrZXlmcmFtZXMgYmlsZHMtdnduamF2a2gtYmxpbmt7MCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LC45KX19CiAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiA0NzlweCl7CiAgICAuYmlsZHMtdnduamF2a2ggLnBpZWNlLWRlc2t7ZGlzcGxheTpub25lfQogICAgLmJpbGRzLXZ3bmphdmtoIC5waWVjZS1tb2J7ZGlzcGxheTpibG9ja30KICB9CiAgQHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplKXsKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NzkuOThweCl7CiAgICAgIC5iaWxkcy12d25qYXZraCAucGllY2UtZGVza3tkaXNwbGF5Om5vbmV9CiAgICAgIC5iaWxkcy12d25qYXZraCAucGllY2UtbW9ie2Rpc3BsYXk6YmxvY2t9CiAgICB9CiAgfQogIDwvc3R5bGU+CjxzZWN0aW9uIGNsYXNzPSJiaWxkcy12d25qYXZraCIgc3R5bGU9Ii0tY2F0OiNGRkVBNEQ7IC0tY2F0LWJnOnJnYmEoMjU1LCAyMzQsIDc3LCAwLjIpIj4KICAgIDxhcnRpY2xlIGNsYXNzPSJwaWVjZS1kZXNrIiBpdGVtc2NvcGU9IiIgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9OZXdzQXJ0aWNsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtd3JhcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxpbWcgZGVjb2Rpbmc9ImFzeW5jIiBhbHQ9IkTtYSBNdW5kaWFsIGRlbCBBbHpo6WltZXIiIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW1nLzIwMjYvMDkvMjAvMjEtMDktMjAyNi1kaWEtZGVsLWFsemhlaW1lci1mYXJtYWNvcy5qcGVnIiBsb2FkaW5nPSJsYXp5IiB3aWR0aD0iNDYwIiBpdGVtcHJvcD0iaW1hZ2UiPgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRleHQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5IiBpdGVtcHJvcD0iYXJ0aWNsZVNlY3Rpb24iIHN0eWxlPSJjb2xvcjogcmdiKDE0LCAxNywgMjYpOyI+TEEgVknRRVRBIERFIFBVRUJMQTwvc3Bhbj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGxpbmUiIGlkPSJiaWxkcy12d25qYXZraC1oZWFkbGluZSIgaXRlbXByb3A9ImhlYWRsaW5lIj5EzUEgTVVORElBTCBERUwgQUxaSMlJTUVSPC9oMj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9InBpZWNlLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vZGlhLW11bmRpYWwtZGVsLWFsemhlaW1lci0yMDM0MjE5NiIgaXRlbXByb3A9InVybCIgYXJpYS1sYWJlbGxlZGJ5PSJiaWxkcy12d25qYXZraC1oZWFkbGluZSI+PC9hPgogICAgICA8L2FydGljbGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0icGllY2UtbW9iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEiPgogICAgICAgICAgPGltZyBkZWNvZGluZz0iYXN5bmMiIGFsdD0iRO1hIE11bmRpYWwgZGVsIEFsemjpaW1lciIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9pbWcvMjAyNi8wOS8yMC8yMS0wOS0yMDI2LWRpYS1kZWwtYWx6aGVpbWVyLWZhcm1hY29zLmpwZWciIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIzNzUiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnkiIHN0eWxlPSJjb2xvcjogcmdiKDE0LCAxNywgMjYpOyI+TEEgVknRRVRBIERFIFBVRUJMQTwvc3Bhbj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGxpbmUiPkTNQSBNVU5ESUFMIERFTCBBTFpIyUlNRVI8L2gyPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1saW5lIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YSBjbGFzcz0icGllY2UtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vb3Bpbmlvbi9kaWEtbXVuZGlhbC1kZWwtYWx6aGVpbWVyLTIwMzQyMTk2IiB0YWJpbmRleD0iLTEiPjwvYT4KICAgICAgPC9hcnRpY2xlPgogIDwvc2VjdGlvbj4=
    • ¿Y si la víctima es Santiago Abascal?
    • Tres Cantos pide una auditoría a la Junta Electoral Central por 200 nuevos habitantes censados tras la
        • España
        • España

      Tres Cantos pide una auditoría a la Junta Electoral Central por 200 nuevos habitantes censados tras la 'Ley de Nietos'

      El Ayuntamiento de Tres Cantos ha pedido a la Junta Electoral Central y al INE una auditoría de los expedientes del censo exterior asignados al municipio desde 2022. El motivo es que ha crecido en más de 200 personas tras la 'Ley de Nietos', pese a que la localidad se fundó en 1991, décadas después del exilio, lo que hace difícil que existan tantos descendientes de exiliados vinculados a ella.
      • Pablo Romero-Salazar
      • 2026-09-21 16:36
    • La Delegación del Gobierno en Madrid ni disimula: publicita en sus redes institucionales el canal sanchista privado La Séptima
        • España
        • España

      La Delegación del Gobierno en Madrid ni disimula: publicita en sus redes institucionales el canal sanchista privado La Séptima

      • María Ruiz
      • 2026-09-21 19:51
    • Vox exige a Moncloa que aclare en papel cómo verificará que los votantes cumplen el requisito del exilio de la Ley de Nietos
        • España
        • España

      Vox exige a Moncloa que aclare cómo verificará que los votantes cumplen el requisito del exilio de la Ley de Nietos

      • Paula Ciordia
      • 2026-09-21 13:49
    • El PSOE de Sevilla y Adelante Andalucía ponen en riesgo la Semana Santa de Sevilla
        • España
        • España

      El PSOE de Sevilla y Adelante Andalucía ponen en riesgo la Semana Santa de Sevilla

      • Ezequiel Marín
      • 2026-09-21 18:07
    • Un mena marroquí cruzó desde Ceuta hasta Jerez escondido en eje de las ruedas del autobús del Valladolid
        • Deportes
        • Deportes

      Un mena marroquí cruzó desde Ceuta hasta Jerez escondido en el eje de las ruedas del autobús del Valladolid

      • Hugo Carrasco
      • 2026-09-21 14:28
    • Un policía tiroteado en un ataque frente a una sinagoga durante el Yom Kippur en Ontario
        • Internacional
        • Internacional

      Un policía tiroteado en un ataque frente a una sinagoga durante el Yom Kippur en Ontario

      • Rafael Escalona
      • 2026-09-21 21:21
    • Merz reúne de urgencia a la CDU tras el batacazo electoral y descarta dimitir
        • Internacional
        • Internacional

      Merz reúne de urgencia a la CDU tras el batacazo electoral y descarta dimitir

      • Rafael Escalona
      • 2026-09-21 15:25
    • Mbappé no cumple
    • Más polémica en contra del Real Madrid: el penalti por mano de Pubill que no se vio en televisión
        • Real Madrid
        • Real Madrid

      Más polémica en contra del Real Madrid: el penalti por mano de Pubill que no se vio en televisión

      • Hugo Carrasco
      • 2026-09-21 11:29
    • El Atlético contesta a Mourinho con la imagen de una impresora: Stop acoso arbitral ya
        • Real Madrid
        • Real Madrid

      El Atlético contesta a Mourinho con la imagen de una impresora: "Stop acoso arbitral ya"

      • Daniel Calle
      • 2026-09-21 17:26
    • De la Fuente, tras renovar con España: Lo mejor está por llegar
        • Deportes
        • Deportes

      De la Fuente, tras renovar con España: "Lo mejor está por llegar"

      La Federación Española abrió la Ciudad del Fútbol de Las Rozas para celebrar la renovación de Luis de la Fuente como seleccionador español hasta 2032. Acompañado de todos los títulos que ha ganado tanto con el combinado absoluto como con las categorías inferiores y por Rafael Louzán, presidente de la RFEF, el técnico campeón del mundo se mostró muy feliz por esta ampliación de contrato. 
      • Iván Martín
      • 2026-09-21 14:42
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLWZoanF4e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1maGpxeCBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstZmhqcXggLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstZmhqcXggLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLWZoanF4IC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstZmhqcXh7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1maGpxeCAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstZmhqcXggLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLWZoanF4IC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstZmhqcXggLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1maGpxeCAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86NC8zICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLWZoanF4IC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLWZoanF4IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstZmhqcXggLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay1maGpxeCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLWZoanF4IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLWZoanF4IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay1maGpxeCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLWZoanF4IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OjEwcHg7cmlnaHQ6YXV0bzt9CiAgLmJsay1maGpxeCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1maGpxeCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstZmhqcXggLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1maGpxeCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWZoanF4IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6I0ZGNTA1MCAhaW1wb3J0YW50O30KICAuYmxrLWZoanF4IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojRkY1MDUwICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLWZoanF4IC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLWZoanF4IC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLWZoanF4IC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstZmhqcXggLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstZmhqcXggLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstZmhqcXggLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1maGpxeCAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstZmhqcXggLmxlYWQtbWVkaWEgaW1nLAouYmxrLWZoanF4IC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLWZoanF4IC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1maGpxeCAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay1maGpxeCAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstZmhqcXggLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstZmhqcXggLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstZmhqcXgta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstZmhqcXggLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLWZoanF4LWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay1maGpxeC1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLWZoanF4LWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay1maGpxeCAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstZmhqcXgta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay1maGpxeC1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZmhqcXggLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLWZoanF4IC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLWZoanF4IC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstZmhqcXggLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay1maGpxeCAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay1maGpxeCAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstZmhqcXggLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstZmhqcXggLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstZmhqcXggLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWZoanF4IC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstZmhqcXggLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstZmhqcXggLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstZmhqcXggLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLWZoanF4IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstZmhqcXggLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay1maGpxeCAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstZmhqcXggLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstZmhqcXggLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstZmhqcXggLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay1maGpxeCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstZmhqcXggLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZmhqcXggLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay1maGpxeCAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay1maGpxeCAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstZmhqcXggLmxlYWQta2lja2VyLCAuYmxrLWZoanF4IC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstZmhqcXggLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstZmhqcXggLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLWZoanF4IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLmJsay1maGpxeCAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstZmhqcXggLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MnJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay1maGpxeCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay1maGpxeCAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLWZoanF4IC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstZmhqcXggLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstZmhqcXggLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay1maGpxeCAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay1maGpxeCAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1maGpxeCAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstZmhqcXggLnRodW1iIGltZywKLmJsay1maGpxeCAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLWZoanF4IC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstZmhqcXggLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay1maGpxeC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLWZoanF4IC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay1maGpxeCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstZmhqcXggLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay1maGpxeCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay1maGpxeCAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstZmhqcXggLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay1maGpxeCAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstZmhqcXggLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay1maGpxeCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay1maGpxeCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstZmhqcXggLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay1maGpxeCAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay1maGpxeCAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLWZoanF4IC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1maGpxeCAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1maGpxeCAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstZmhqcXgtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1maGpxeCAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay1maGpxeCAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQovKiBFbiBlbCBtb2RvICdsZWZ0JyBlbCBQbGF5IHBhc2EgYSBsYSBlc3F1aW5hIHN1cGVyaW9yIGRlcmVjaGEgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1maGpxeCAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b257bGVmdDphdXRvO3JpZ2h0OjEwcHg7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLWZoanF4IC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstZmhqcXggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLWZoanF4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGstZmhqcXggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLWZoanF4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1maGpxeCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLWZoanF4IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstZmhqcXggLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLWZoanF4IC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLWZoanF4IC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWZoanF4IC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay1maGpxeCAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLWZoanF4IC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLWZoanF4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstZmhqcXggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay1maGpxeCAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGstZmhqcXggLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLWZoanF4LWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay1maGpxeCAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay1maGpxeCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay1maGpxeCAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay1maGpxeCAubGVhZC1tZWRpYSA+IGltZywKLmJsay1maGpxeCAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstZmhqcXggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstZmhqcXggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLWZoanF4IC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGstZmhqcXggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay1maGpxeCAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGstZmhqcXgtYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGstZmhqcXggLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGstZmhqcXggLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGstZmhqcXggLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay1maGpxeCAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZmhqcXggLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1maGpxeCAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLWZoanF4IC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZmhqcXggLmhlYWRlcjItY2F0LXRhZywKLmJsay1maGpxeCAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay1maGpxeCAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstZmhqcXggLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLWZoanF4IC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1maGpxeCAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLWZoanF4IC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay1maGpxeCAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGstZmhqcXggLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstZmhqcXggLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay1maGpxeCAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay1maGpxeCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLWZoanF4IC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay1maGpxeCAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay1maGpxeCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGstZmhqcXggLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay1maGpxeCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLWZoanF4IC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGstZmhqcXggLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstZmhqcXggLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1maGpxeCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWZoanF4IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWZoanF4IC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay1maGpxeCAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay1maGpxeCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1maGpxeCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstZmhqcXggLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGstZmhqcXggLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay1maGpxeCI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBsZWFkLWJvZHktbGVmdCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvbWFtZGFuaS1pbmF1Z3VyYS1lbC1zb2NpYWxpc21vLWRlLWNsb2FjYS1lbi1udWV2YS15b3JrLTIwMjYwOTIxLTA5Mzg0MC0yNmI2ZmUuanBnIiBhbHQ9Ik1hbWRhbmkgaW5hdWd1cmEgZWwgc29jaWFsaXNtbyBkZSBjbG9hY2EgZW4gTnVldmEgWW9yayIgbG9hZGluZz0iZWFnZXIiIGZldGNocHJpb3JpdHk9ImhpZ2giIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kOiNGRjUwNTA7Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6I0ZGNTA1MCI+SU5URVJOQUNJT05BTDwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+TWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+TWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPkNhcmxvcyBFc3RlYmFuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW50ZXJuYWNpb25hbC9tYW1kYW5pLWluYXVndXJhLXNvY2lhbGlzbW8tY2xvYWNhLW51ZXZhLXlvcmstMjAzNDYyMTEiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrIiBhcmlhLWxhYmVsPSJNYW1kYW5pIGluYXVndXJhIGVsIHNvY2lhbGlzbW8gZGUgY2xvYWNhIGVuIE51ZXZhIFlvcmsiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLWZoanF4IC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLXdiOHRle21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay13Yjh0ZSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstd2I4dGUgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstd2I4dGUgLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLXdiOHRlIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstd2I4dGV7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay13Yjh0ZSAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstd2I4dGUgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLXdiOHRlIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstd2I4dGUgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay13Yjh0ZSAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86NC8zICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLXdiOHRlIC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLXdiOHRlIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstd2I4dGUgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay13Yjh0ZSAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLXdiOHRlIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLXdiOHRlIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay13Yjh0ZSAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLXdiOHRlIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OjEwcHg7cmlnaHQ6YXV0bzt9CiAgLmJsay13Yjh0ZSAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay13Yjh0ZSAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstd2I4dGUgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay13Yjh0ZSAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXdiOHRlIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6I0ZGNTA1MCAhaW1wb3J0YW50O30KICAuYmxrLXdiOHRlIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojRkY1MDUwICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLXdiOHRlIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLXdiOHRlIC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLXdiOHRlIC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstd2I4dGUgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstd2I4dGUgLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstd2I4dGUgLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay13Yjh0ZSAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstd2I4dGUgLmxlYWQtbWVkaWEgaW1nLAouYmxrLXdiOHRlIC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLXdiOHRlIC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay13Yjh0ZSAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay13Yjh0ZSAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstd2I4dGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstd2I4dGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstd2I4dGUta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstd2I4dGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLXdiOHRlLWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay13Yjh0ZS1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLXdiOHRlLWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay13Yjh0ZSAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstd2I4dGUta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay13Yjh0ZS1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2I4dGUgLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLXdiOHRlIC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLXdiOHRlIC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstd2I4dGUgLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay13Yjh0ZSAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay13Yjh0ZSAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstd2I4dGUgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstd2I4dGUgLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstd2I4dGUgLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXdiOHRlIC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstd2I4dGUgLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstd2I4dGUgLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstd2I4dGUgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLXdiOHRlIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstd2I4dGUgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay13Yjh0ZSAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstd2I4dGUgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstd2I4dGUgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstd2I4dGUgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay13Yjh0ZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstd2I4dGUgLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2I4dGUgLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay13Yjh0ZSAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay13Yjh0ZSAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstd2I4dGUgLmxlYWQta2lja2VyLCAuYmxrLXdiOHRlIC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstd2I4dGUgLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstd2I4dGUgLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLXdiOHRlIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLmJsay13Yjh0ZSAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstd2I4dGUgLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MnJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay13Yjh0ZSAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay13Yjh0ZSAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLXdiOHRlIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstd2I4dGUgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstd2I4dGUgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay13Yjh0ZSAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay13Yjh0ZSAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay13Yjh0ZSAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstd2I4dGUgLnRodW1iIGltZywKLmJsay13Yjh0ZSAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLXdiOHRlIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstd2I4dGUgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay13Yjh0ZS1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLXdiOHRlIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay13Yjh0ZSAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstd2I4dGUgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay13Yjh0ZSAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay13Yjh0ZSAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstd2I4dGUgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay13Yjh0ZSAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstd2I4dGUgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay13Yjh0ZSAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay13Yjh0ZSAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstd2I4dGUgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay13Yjh0ZSAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay13Yjh0ZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLXdiOHRlIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay13Yjh0ZSAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay13Yjh0ZSAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstd2I4dGUtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay13Yjh0ZSAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay13Yjh0ZSAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQovKiBFbiBlbCBtb2RvICdsZWZ0JyBlbCBQbGF5IHBhc2EgYSBsYSBlc3F1aW5hIHN1cGVyaW9yIGRlcmVjaGEgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay13Yjh0ZSAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b257bGVmdDphdXRvO3JpZ2h0OjEwcHg7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLXdiOHRlIC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstd2I4dGUgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLXdiOHRlIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGstd2I4dGUgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLXdiOHRlIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay13Yjh0ZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLXdiOHRlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstd2I4dGUgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLXdiOHRlIC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLXdiOHRlIC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXdiOHRlIC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLXdiOHRlIC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLXdiOHRlIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstd2I4dGUgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay13Yjh0ZSAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGstd2I4dGUgLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLXdiOHRlLWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay13Yjh0ZSAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay13Yjh0ZSAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay13Yjh0ZSAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay13Yjh0ZSAubGVhZC1tZWRpYSA+IGltZywKLmJsay13Yjh0ZSAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstd2I4dGUgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstd2I4dGUgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLXdiOHRlIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGstd2I4dGUgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay13Yjh0ZSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGstd2I4dGUtYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGstd2I4dGUgLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGstd2I4dGUgLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGstd2I4dGUgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay13Yjh0ZSAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2I4dGUgLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13Yjh0ZSAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLXdiOHRlIC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstd2I4dGUgLmhlYWRlcjItY2F0LXRhZywKLmJsay13Yjh0ZSAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay13Yjh0ZSAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstd2I4dGUgLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLXdiOHRlIC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13Yjh0ZSAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLXdiOHRlIC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay13Yjh0ZSAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGstd2I4dGUgLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstd2I4dGUgLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay13Yjh0ZSAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay13Yjh0ZSAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLXdiOHRlIC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay13Yjh0ZSAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay13Yjh0ZSAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGstd2I4dGUgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay13Yjh0ZSAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLXdiOHRlIC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGstd2I4dGUgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstd2I4dGUgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay13Yjh0ZSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXdiOHRlIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXdiOHRlIC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay13Yjh0ZSAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay13Yjh0ZSAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay13Yjh0ZSAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstd2I4dGUgLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGstd2I4dGUgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay13Yjh0ZSI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBsZWFkLWJvZHktbGVmdCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvbWFtZGFuaS1pbmF1Z3VyYS1lbC1zb2NpYWxpc21vLWRlLWNsb2FjYS1lbi1udWV2YS15b3JrLTIwMjYwOTIxLTA5Mzg0MC0yNmI2ZmUuanBnIiBhbHQ9Ik1hbWRhbmkgaW5hdWd1cmEgZWwgc29jaWFsaXNtbyBkZSBjbG9hY2EgZW4gTnVldmEgWW9yayIgbG9hZGluZz0iZWFnZXIiIGZldGNocHJpb3JpdHk9ImhpZ2giIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kOiNGRjUwNTA7Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6I0ZGNTA1MCI+SU5URVJOQUNJT05BTDwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+TWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+TWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPkNhcmxvcyBFc3RlYmFuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW50ZXJuYWNpb25hbC9tYW1kYW5pLWluYXVndXJhLXNvY2lhbGlzbW8tY2xvYWNhLW51ZXZhLXlvcmstMjAzNDYyMTEiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTWFtZGFuaSBpbmF1Z3VyYSBlbCBzb2NpYWxpc21vIGRlIGNsb2FjYSBlbiBOdWV2YSBZb3JrIiBhcmlhLWxhYmVsPSJNYW1kYW5pIGluYXVndXJhIGVsIHNvY2lhbGlzbW8gZGUgY2xvYWNhIGVuIE51ZXZhIFlvcmsiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLXdiOHRlIC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
    • Del circuito a la ciudad: OKDIARIO reabre Madring para analizar con expertos el impacto de la Fórmula 1
    • Así fue el festín con el que Javier Bardem y Penélope celebraron su último Premio Donostia: un menú de hasta 635 euros
        • Cool
        • Cool

      Así fue el festín con el que Javier Bardem y Penélope celebraron su último Premio Donostia: un menú de hasta 635 euros

      Penélope Cruz llegó ayer a San Sebastián con motivo del Festival de Cine, una de las grandes citas cinematográficas del año. La actriz regresa a una ciudad muy vinculada al mundo del cine y donde, junto a Javier Bardem, ya ha disfrutado de algunos de sus rincones gastronómicos más exclusivos. Entre ellos destaca Akelarre, el restaurante de Pedro Subijana situado en la ladera del Monte Igueldo, en uno de los escenarios más privilegiados de San Sebastián. Desde sus salones, el mar Cantábrico se convierte en parte de la experiencia gastronómica.
      • Marta Morales
      • 2026-09-21 14:01
    • Las zapatillas amarillas de 750 euros que Brad Pitt ha elegido para llegar al Festival de San Sebastián
        • Cool
        • Cool

      Las zapatillas amarillas de 750 euros que Brad Pitt ha lucido en el Festival de San Sebastián

      • Rocío Álvarez
      • 2026-09-21 15:43
    • Movistar Plus anuncia en San Sebastián un aluvión de estrenos con grandes directores en un año decisivo para el cine español
        • Cool
        • Cool

      Movistar Plus anuncia en San Sebastián un aluvión de estrenos con grandes directores en un año decisivo para el cine español

      • Paula M. Gonzálvez
      • 2026-09-21 20:18
    • Muere Presley Gerber, el hijo de Cindy Crawford, a los 27 años
        • Cool
        • Cool

      Muere Presley Gerber, el hijo de Cindy Crawford, a los 27 años

      • Marta Huertas
      • 2026-09-21 08:49
    • El emotivo mensaje de Rande Gerber, marido de Cindy Crawford, a su hijo Presley antes de su muerte: No me importaría que me pidieras consejo
        • Cool
        • Cool

      El emotivo mensaje del marido de Cindy Crawford a su hijo antes de su muerte

      • Marta Morales
      • 2026-09-21 12:39
    • OK AL DÍA

    • Los arqueólogos no salen de su asombro: encuentran un cadáver del Imperio romano que llevaba 2.000 años boca abajo enterrado entre frascos de perfume
        • Historia
        • Historia

       encuentran un cadáver del Imperio romano que llevaba 2.000 años enterrado boca abajo 

      • Naiara Philpotts
      • 2026-09-21 14:00
    • La reflexión de Antonio Gala, escritor español: Hace tiempo que no busco la felicidad, me pasa como con el amor, si tiene que volver tocará a mi puerta
        • Curiosidades
        • Curiosidades

      Antonio Gala: "Hace tiempo que no busco la felicidad, si tiene que volver tocará a mi puerta"

      • Carmen Ruiz
      • 2026-09-21 14:30
    • Marruecos está bombeando agua del Atlántico hasta el Sáhara para transformar 5.200 hectáreas de arena en campos de cultivo
        • Curiosidades
        • Curiosidades

      Marruecos bombea agua del Atlántico hasta el Sáhara para transformar la arena en campos de cultivo

      Marruecos quiere cultivar miles de hectáreas en una zona donde conseguir agua es uno de los grandes problemas. Para hacerlo ha puesto en marcha un proyecto en Dajla que parte de una solución tan llamativa como aprovechar el agua del océano Atlántico, desalarla y llevarla hasta las explotaciones agrícolas. El objetivo es regar alrededor de 5.200 hectáreas de terreno y producir cultivos como tomates y cebollas sin depender únicamente de las reservas de agua subterránea. 
      • Blanca Espada
      • 2026-09-21 07:00
    • Se busca al vecino de Salamanca que instaló una piscina de 2 metros cúbicos en el patio de luces de su comunidad de vecinos
        • España
        • España

      Se busca al vecino que instaló una piscina de 2 metros en el patio de luces de su comunidad de vecinos

      • Carmen Ruiz
      • 2026-09-21 11:51
    • Skechers revienta el mercado con sus zapatillas
        • Deportes
        • Deportes

      Skechers revienta el mercado con sus zapatillas 'tipo Adidas' pero mucho más cómodas y baratas

      • Luis G. Díaz
      • 2026-09-21 14:09
    • Ya está en vigor la norma de la Ley de Bienestar Animal: prohíbe a los dueños de perros y gatos que sus mascotas practiquen estas actividades
        • Mascotas
        • Mascotas

      la Ley de Bienestar Animal prohíbe a los dueños de perros y gatos que practiquen estas actividades

      • Janire Manzanas
      • 2026-09-21 11:50
    • En 1978 arrojaron al océano neumáticos rellenos de cemento y 40 años después se convirtieron en refugio para peces y langostas
        • Ciencia
        • Ciencia

      En 1978 arrojaron al océano neumáticos rellenos de cemento y se volvieron refugio para peces

      • Carla Abadía
      • 2026-09-21 14:30
    • Ni barcos ni radares: la Armada de EEUU prueba un “centinela” sin cables que duerme en el fondo del mar y detecta drones submarinos él solo
        • Techy
        • Techy

      la Armada de EEUU prueba un “vigía” sin cables que duerme en el fondo del mar y detecta drones 

      • Adrián Villellas
      • 2026-09-21 14:28
    • Alejandro Magno sobre el poder: Todo lo que hemos ganado con la espada no puede ser seguro ni duradero, pero el amor ganado con bondad es seguro y permanente
        • Curiosidades
        • Curiosidades

      Alejandro Magno: "Todo lo que hemos ganado con la espada no puede ser seguro ni duradero"

      • Janire Manzanas
      • 2026-09-21 14:31
    • El precio del combustible ahoga a España: diésel y gasolina suben un 40% y un 34% en 2026 y Puente culpa al PP
    • BNP da acceso a CaixaBank, ING y Sabadell a las cuentas de Cetelem para venderla antes de fin de año
        • Economía
        • Economía

      BNP da acceso a CaixaBank, ING y Sabadell a las cuentas de Cetelem para venderla antes de fin de año

      • Jose de la Morena
      • 2026-09-21 10:12
    • El fabricante de Ozempic se desploma en Bolsa ante la competencia y el fin de las patentes
        • Economía
        • Economía

      El fabricante de Ozempic cae en Bolsa ante la competencia y el fin de las patentes

      • Celia Amayuelas
      • 2026-09-21 11:53
    • IAogICAgPHN0eWxlPgogICAgQGltcG9ydCB1cmwoJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0L2lxYTFxZWIuY3NzJyk7CgogICAgLyogQ29udGVuZWRvciBwcmluY2lwYWwgbGltaXRhZG8gYSA5NjBweCBlbiBlc2NyaXRvcmlvICovCiAgICAuY3YtbnJhdHcgLnNlY3Rpb257bWF4LXdpZHRoOjk2MHB4O21hcmdpbjowIGF1dG87d2lkdGg6MTAwJX0KCiAgICAuY3YtbnJhdHcgLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46OHB4IDAgNTBweH0KICAgIC5jdi1ucmF0dyAuZm5kLWxpbmVhe3dpZHRoOjEwMCU7aGVpZ2h0OjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTI1cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQogICAgLmN2LW5yYXR3IC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMzMzM7Zm9udC1zaXplOjQycHg7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpfQoKICAgIC5jdi1ucmF0dyAuY2Fyb3VzZWx7LS1nYXA6MTZweDstLXBlZWs6MTAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctYm90dG9tOjZweH0KICAgIC5jdi1ucmF0dyAudHJhY2t7ZGlzcGxheTpmbGV4O2dhcDp2YXIoLS1nYXApO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5O3Njcm9sbC1iZWhhdmlvcjpzbW9vdGg7c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7cGFkZGluZy1yaWdodDp2YXIoLS1wZWVrKX0KICAgIC5jdi1ucmF0dyAudHJhY2s6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0KICAgIC5jdi1ucmF0dyAuY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvO3Njcm9sbC1zbmFwLWFsaWduOnN0YXJ0O3dpZHRoOmNhbGMoKDEwMCUgLSAyKnZhcigtLWdhcCkgLSB2YXIoLS1wZWVrKSkvMyk7YXNwZWN0LXJhdGlvOjkvMTY7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwMDA7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLCB0cmFuc2Zvcm0gLjRzIGVhc2V9CiAgICAuY3YtbnJhdHcgLmNhcmQuaXMtaW57b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfQoKICAgIC5jdi1ucmF0dyAudGh1bWJ7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlLCBvcGFjaXR5IC4yNXMgZWFzZTt0cmFuc2Zvcm06c2NhbGUoMS4wMSl9CiAgICAuY3YtbnJhdHcgLmNhcmQ6aG92ZXIgLnRodW1iLC5jdi1ucmF0dyAuY2FyZDpmb2N1cy12aXNpYmxlIC50aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4wNil9CiAgICAvKiBTaW4gb3ZlcmxheXMgcGVyc29uYWxpemFkb3M6IHNlIHVzYW4gY29udHJvbGVzIG5hdGl2b3MgZGVsIHBsYXllciAqLwoKICAgIC5jdi1ucmF0dyAuYXJ7cG9zaXRpb246cmVsYXRpdmV9CiAgICAuY3YtbnJhdHcgLmFycm93e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7Ym94LXNoYWRvdzowIDZweCAxNnB4IHJnYigwIDAgMCAvIDIwJSk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7dHJhbnNpdGlvbjouM3N9CiAgICAuY3YtbnJhdHcgLmFycm93OmhvdmVye2JhY2tncm91bmQ6cmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmZ9CiAgICAuY3YtbnJhdHcgLmFycm93OmZvY3Vze2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKX0KICAgIC5jdi1ucmF0dyAuYXJyb3cgc3Zne3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHh9CiAgICAuY3YtbnJhdHcgLmFycm93LmxlZnR7bGVmdDoxMHB4fQogICAgLmN2LW5yYXR3IC5hcnJvdy5yaWdodHtyaWdodDoxMHB4fQoKICAgIEBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAgICAgLyogRW4gbfN2aWwsIGVsIGNvbnRlbmVkb3Igb2N1cGEgdG9kbyBlbCBhbmNobyAqLwogICAgICAuY3YtbnJhdHcgLnNlY3Rpb257bWF4LXdpZHRoOjEwMCV9CiAgICAgIC5jdi1ucmF0dyAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpfQogICAgICAuY3YtbnJhdHcgLmNhcm91c2Vsey0tcGVlazoxMiV9CiAgICAgIC8qIDIgdGFyamV0YXMgY29tcGxldGFzICsgdW4gcGVlayBkZSBsYSAzqiAqLwogICAgICAuY3YtbnJhdHcgLmNhcmR7d2lkdGg6Y2FsYygoMTAwJSAtIDQqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8xKX0KICAgICAgLmN2LW5yYXR3IC5hcnJvd3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudH0KICAgICAgLmN2LW5yYXR3IC50cmFja3tvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47cGFkZGluZy1yaWdodDp2YXIoLS1wZWVrKX0KICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iY3YtbnJhdHciPgogICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgYXJpYS1sYWJlbD0iQ2FycnVzZWwgZGUgdu1kZW9zIChTaG9ydHMpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy1zZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TG9zICdzaG9ydHMnIGRlIE9LRElBUklPPC9oMj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbmQtbGluZWEiPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhciIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJMaXN0YWRvIGRlIHbtZGVvcyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyBsZWZ0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IkFudGVyaW9yIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTUgNmwtNiA2IDYgNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyByaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTaWd1aWVudGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDE4bDYtNi02LTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2Fyb3VzZWwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFjayIgcm9sZT0ibGlzdCI+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvN0pnN3ZBSFJxSEUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSI3Smc3dkFIUnFIRSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpLzdKZzd2QUhScUhFL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAxIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL0wzSGMxYnlicDRJIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iTDNIYzFieWJwNEkiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9MM0hjMWJ5YnA0SS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9kSmVNaWFYQTQxOCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9ImRKZU1pYVhBNDE4IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvZEplTWlhWEE0MTgvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDMiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMveHhBbF9zaDYzbnMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJ4eEFsX3NoNjNucyIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3h4QWxfc2g2M25zL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA0IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL3NoUzNuVVFLQmJ3IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0ic2hTM25VUUtCYnciIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9zaFMzblVRS0Jidy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNSIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy85WkszdGRHR0ZTVSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjlaSzN0ZEdHRlNVIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvOVpLM3RkR0dGU1UvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDYiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvVEMzd1A5Q0k5OGMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJUQzN3UDlDSTk4YyIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1RDM3dQOUNJOThjL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA3IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LW5yYXR3Jyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgcmV0dXJuICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA3NjgpID8gMiA6IDQ7CiAgICAgIH0KCiAgICAgIGFycm93cy5mb3JFYWNoKGZ1bmN0aW9uKGJ0bil7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICB2YXIgZGlyID0gdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ2xlZnQnKSA/IC0xIDogMTsKICAgICAgICAgIHZhciBjYXJkVyA9IGdldENhcmRXaWR0aCgpOwogICAgICAgICAgaWYgKCFjYXJkVykgcmV0dXJuOwogICAgICAgICAgdmFyIHN0ZXAgPSAoY2FyZFcgKyBHQVApICogZ2V0Q2FyZHNQZXJQYWdlKCkgKiBkaXI7CiAgICAgICAgICB0cmFjay5zY3JvbGxCeSh7IGxlZnQ6IHN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CgogICAgICAvLyBGYWRlLWluIGFsIGVudHJhciBlbiB2aWV3cG9ydAogICAgICB2YXIgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBlbi50YXJnZXQuY2xhc3NMaXN0LmFkZCgnaXMtaW4nKTsgfSB9KTsKICAgICAgfSwgeyByb290OiB0cmFjaywgdGhyZXNob2xkOiAwLjEgfSk7CiAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmNhcmQnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpeyBpby5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIC8vIENsaWNrIHBlcnNpc3RlbnRlIChzaW4gdGVhc2VyIHBvciBob3ZlcikKICAgICAgZnVuY3Rpb24gbWFrZUVtYmVkVXJsKGlkLCBvcHRzKXsKICAgICAgICB2YXIgcXMgPSBbCiAgICAgICAgICAnYXV0b3BsYXk9JyArIChvcHRzICYmIG9wdHMuYXV0b3BsYXk/ICcxJzonMCcpLAogICAgICAgICAgJ3BsYXlzaW5saW5lPTEnLCdmcz0xJywnaXZfbG9hZF9wb2xpY3k9MycsJ3Nob3dpbmZvPTEnLCdyZWw9MCcsJ2NjX2xvYWRfcG9saWN5PTAnLCdzdGFydD0wJywKICAgICAgICAgICdtdXRlPScgKyAob3B0cyAmJiBvcHRzLm11dGU/ICcxJzonMCcpLAogICAgICAgICAgKG9wdHMgJiYgb3B0cy5jb250cm9scz09PTA/ICdjb250cm9scz0wJzonY29udHJvbHM9MScpLAogICAgICAgICAgJ21vZGVzdGJyYW5kaW5nPTEnLCdlbmFibGVqc2FwaT0xJwogICAgICAgIF0uam9pbignJicpOwogICAgICAgIHJldHVybiAnaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJyArIGlkICsgJz8nICsgcXM7CiAgICAgIH0KCiAgICAgIC8vIENhcmdhciBBUEkgZGUgWW91VHViZSBiYWpvIGRlbWFuZGEKICAgICAgdmFyIHl0QXBpUHJvbWlzZSA9IG51bGw7CiAgICAgIGZ1bmN0aW9uIGVuc3VyZVlUQXBpKCl7CiAgICAgICAgaWYgKHdpbmRvdy5ZVCAmJiB3aW5kb3cuWVQuUGxheWVyKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgaWYgKHl0QXBpUHJvbWlzZSkgcmV0dXJuIHl0QXBpUHJvbWlzZTsKICAgICAgICB5dEFwaVByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKXsKICAgICAgICAgIHZhciBwcmV2Q2IgPSB3aW5kb3cub25Zb3VUdWJlSWZyYW1lQVBJUmVhZHk7CiAgICAgICAgICB3aW5kb3cub25Zb3VUdWJlSWZyYW1lQVBJUmVhZHkgPSBmdW5jdGlvbigpeyBpZiAodHlwZW9mIHByZXZDYj09PSdmdW5jdGlvbicpIHsgdHJ5eyBwcmV2Q2IoKTsgfWNhdGNoKF8pe30gfSByZXNvbHZlKCk7IH07CiAgICAgICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly93d3cueW91dHViZS5jb20vaWZyYW1lX2FwaSc7CiAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgIH0KCiAgICAgIC8vIEluc3RhbmNpYXIgcGxheWVyIG5hdGl2byBlbiB0YXJqZXRhcyB2aXNpYmxlcyBwYXJhIHF1ZSBlbCBpY29ubyBkZSBwbGF5IGFwYXJlemNhIGRlc2RlIGVsIGluaWNpbwogICAgICBmdW5jdGlvbiBpbml0UGxheWVyRm9yQ2FyZChjYXJkKXsKICAgICAgICBpZighY2FyZCB8fCBjYXJkLl95dFBsYXllciB8fCBjYXJkLl95dEluaXQpIHJldHVybjsKICAgICAgICB2YXIgaWQgPSBjYXJkLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIGlmKCFpZCkgcmV0dXJuOwogICAgICAgIGNhcmQuX3l0SW5pdCA9IHRydWU7CiAgICAgICAgdmFyIHBvc3RlciA9IGNhcmQucXVlcnlTZWxlY3RvcignaW1nLnRodW1iJyk7CiAgICAgICAgdmFyIGhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGhvbGRlci5zdHlsZS5wb3NpdGlvbj0nYWJzb2x1dGUnOyBob2xkZXIuc3R5bGUuaW5zZXQ9JzAnOyBob2xkZXIuc3R5bGUud2lkdGg9JzEwMCUnOyBob2xkZXIuc3R5bGUuaGVpZ2h0PScxMDAlJzsgaG9sZGVyLnN0eWxlLmJhY2tncm91bmQ9JyMwMDAnOwogICAgICAgIGlmKHBvc3Rlcil7IGNhcmQuaW5zZXJ0QmVmb3JlKGhvbGRlciwgcG9zdGVyKTsgfSBlbHNlIHsgY2FyZC5hcHBlbmRDaGlsZChob2xkZXIpOyB9CiAgICAgICAgLy8gT2N1bHRhbW9zIGVsIHDzc3RlciBjdWFudG8gYW50ZXMgcGFyYSBkZWphciB2ZXIgZWwgb3ZlcmxheSBuYXRpdm8KICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgcG9zdGVyLnN0eWxlLnBvaW50ZXJFdmVudHM9J25vbmUnOyB9CiAgICAgICAgZW5zdXJlWVRBcGkoKS50aGVuKGZ1bmN0aW9uKCl7CiAgICAgICAgICB2YXIgcGxheWVyID0gbmV3IFlULlBsYXllcihob2xkZXIsIHsKICAgICAgICAgICAgdmlkZW9JZDogaWQsCiAgICAgICAgICAgIHBsYXllclZhcnM6IHsgYXV0b3BsYXk6MCwgY29udHJvbHM6MSwgcmVsOjAsIHBsYXlzaW5saW5lOjEsIGl2X2xvYWRfcG9saWN5OjMsIG1vZGVzdGJyYW5kaW5nOjEsIGZzOjEsIG9yaWdpbjogKGxvY2F0aW9uICYmIGxvY2F0aW9uLm9yaWdpbikgPyBsb2NhdGlvbi5vcmlnaW4gOiB1bmRlZmluZWQgfSwKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAgICAgICAgICAgb25SZWFkeTogZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgcG9zdGVyLnN0eWxlLnBvaW50ZXJFdmVudHM9J25vbmUnOyB9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgcGVybWlzb3MgZGUgcGFudGFsbGEgY29tcGxldGEgZW4gZWwgaWZyYW1lIGdlbmVyYWRvCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgY2FyZC5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpewogICAgICAgICAgdHJ5eyBjYXJkLnJlbW92ZUNoaWxkKGhvbGRlcik7IH1jYXRjaChfKXsgfQogICAgICAgICAgLy8gU2kgZmFsbGEgbGEgQVBJLCBkZWphbW9zIGVsIHDzc3RlciBoYXN0YSBpbnRlcmFjY2nzbgogICAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLm9wYWNpdHk9Jyc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPScnOyB9CiAgICAgICAgICBjYXJkLl95dEluaXQgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfQoKICAgICAgLy8gSW5pY2lhbGl6YXIgYXV0b23hdGljYW1lbnRlIGxvcyBwbGF5ZXJzIGRlIGxhcyB0YXJqZXRhcyB2aXNpYmxlcyBhbCBjYXJnYXIKICAgICAgdmFyIGluaXRJTyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlbnRyaWVzKXsKICAgICAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZW4peyBpZihlbi5pc0ludGVyc2VjdGluZyl7IGluaXRQbGF5ZXJGb3JDYXJkKGVuLnRhcmdldCk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogbnVsbCwgdGhyZXNob2xkOiAwLjI1IH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW5pdElPLm9ic2VydmUoYyk7IH0pOwoKICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBhID0gZS50YXJnZXQuY2xvc2VzdCgnYS5jYXJkW2RhdGEteXQtaWRdJyk7CiAgICAgICAgaWYoIWEgfHwgIXJvb3QuY29udGFpbnMoYSkpIHJldHVybjsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgdmFyIHBvc3RlciA9IGEucXVlcnlTZWxlY3RvcignaW1nLnRodW1iJyk7CiAgICAgICAgLy8gc2luIG92ZXJsYXlzIHBlcnNvbmFsaXphZG9zCgogICAgICAgIC8vIFRvZ2dsZSBzaSB5YSBoYXkgcGxheWVyCiAgICAgICAgaWYgKGEuX3l0UGxheWVyKXsKICAgICAgICAgIHZhciBwID0gYS5feXRQbGF5ZXI7CiAgICAgICAgICBpZiAoYS5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXBhdXNlZCcpKXsKICAgICAgICAgICAgdHJ5eyBwLnVuTXV0ZSgpOyBwLnNldFZvbHVtZSgxMDApOyBwLnBsYXlWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRyeXsgcC5wYXVzZVZpZGVvKCk7IH1jYXRjaChfKXsgfQogICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBhdXNlZCcpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBzdG9wVGVhc2VyKGEpOwogICAgICAgIHZhciBpZCA9IGEuZ2V0QXR0cmlidXRlKCdkYXRhLXl0LWlkJyk7CiAgICAgICAgdmFyIGhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGhvbGRlci5zdHlsZS5wb3NpdGlvbj0nYWJzb2x1dGUnOyBob2xkZXIuc3R5bGUuaW5zZXQ9JzAnOyBob2xkZXIuc3R5bGUud2lkdGg9JzEwMCUnOyBob2xkZXIuc3R5bGUuaGVpZ2h0PScxMDAlJzsgaG9sZGVyLnN0eWxlLmJhY2tncm91bmQ9JyMwMDAnOwogICAgICAgIGlmKHBvc3Rlcil7IGEuaW5zZXJ0QmVmb3JlKGhvbGRlciwgcG9zdGVyKTsgfSBlbHNlIHsgYS5hcHBlbmRDaGlsZChob2xkZXIpOyB9CgogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjEsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKGV2KXsKICAgICAgICAgICAgICAgIHRyeXsgZXYudGFyZ2V0LnVuTXV0ZSgpOyBldi50YXJnZXQuc2V0Vm9sdW1lKDEwMCk7IGV2LnRhcmdldC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8pe30KICAgICAgICAgICAgICAgIC8vIEZvcnphciBmdWxsc2NyZWVuIGRpc3BvbmlibGUgZW4gaWZyYW1lIElGcmFtZSBBUEkKICAgICAgICAgICAgICAgIHRyeXsKICAgICAgICAgICAgICAgICAgdmFyIGlmciA9IHBsYXllci5nZXRJZnJhbWUgJiYgcGxheWVyLmdldElmcmFtZSgpOwogICAgICAgICAgICAgICAgICBpZiAoaWZyKXsKICAgICAgICAgICAgICAgICAgICBpZnIuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCcnKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY3VyID0gaWZyLmdldEF0dHJpYnV0ZSgnYWxsb3cnKSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICBpZnIuc2V0QXR0cmlidXRlKCdhbGxvdycsIChjdXIgPyBjdXIgKyAnOyAnIDogJycpICsgJ2Z1bGxzY3JlZW4nKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfWNhdGNoKF8peyB9CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uID0gcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gfHwgJ29wYWNpdHkgLjE1cyBlYXNlJzsgcG9zdGVyLnN0eWxlLm9wYWNpdHk9JzAnOyB9CiAgICAgICAgICAgICAgICAgIGEuY2xhc3NMaXN0LmFkZCgnaXMtcGxheWluZycpOwogICAgICAgICAgICAgICAgICBhLl95dFBsYXllciA9IHBsYXllcjsKICAgICAgICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpewogICAgICAgICAgLy8gRmFsbGJhY2s6IGlmcmFtZSBzaW1wbGUKICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKICAgICAgICAgIGlmcmFtZS5zcmMgPSBtYWtlRW1iZWRVcmwoaWQsIHthdXRvcGxheTp0cnVlLCBtdXRlOmZhbHNlfSk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvdycsICdhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhOyBwaWN0dXJlLWluLXBpY3R1cmUnKTsKICAgICAgICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsICcnKTsKICAgICAgICAgIGlmcmFtZS5zdHlsZS5wb3NpdGlvbj0nYWJzb2x1dGUnOyBpZnJhbWUuc3R5bGUuaW5zZXQ9JzAnOyBpZnJhbWUuc3R5bGUud2lkdGg9JzEwMCUnOyBpZnJhbWUuc3R5bGUuaGVpZ2h0PScxMDAlJzsgaWZyYW1lLnN0eWxlLmJvcmRlcj0nMCc7IGlmcmFtZS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IGlmcmFtZS5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICAgIGhvbGRlci5yZXBsYWNlV2l0aChpZnJhbWUpOwogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsgfSwgMTUwKTsKICAgICAgICB9KTsKICAgICAgfSk7CgogICAgICAKICAgIH0pKCk7CiAgICA8L3NjcmlwdD4=
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi1wNDV3bSAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi1wNDV3bSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXA0NXdtIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtcDQ1d20gLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXA0NXdtIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXA0NXdtIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgLmN2LXA0NXdtIC50cmFjazo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfQogICAgLmN2LXA0NXdtIC5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7d2lkdGg6Y2FsYygoMTAwJSAtIDIqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8zKTthc3BlY3QtcmF0aW86OS8xNjtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZX0KICAgIC5jdi1wNDV3bSAuY2FyZC5pcy1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9CgogICAgLmN2LXA0NXdtIC50aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlO3RyYW5zZm9ybTpzY2FsZSgxLjAxKX0KICAgIC5jdi1wNDV3bSAuY2FyZDpob3ZlciAudGh1bWIsLmN2LXA0NXdtIC5jYXJkOmZvY3VzLXZpc2libGUgLnRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0KICAgIC8qIFNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvczogc2UgdXNhbiBjb250cm9sZXMgbmF0aXZvcyBkZWwgcGxheWVyICovCgogICAgLmN2LXA0NXdtIC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi1wNDV3bSAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKTtib3gtc2hhZG93OjAgNnB4IDE2cHggcmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0cmFuc2l0aW9uOi4zc30KICAgIC5jdi1wNDV3bSAuYXJyb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZn0KICAgIC5jdi1wNDV3bSAuYXJyb3c6Zm9jdXN7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpfQogICAgLmN2LXA0NXdtIC5hcnJvdyBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0KICAgIC5jdi1wNDV3bSAuYXJyb3cubGVmdHtsZWZ0OjEwcHh9CiAgICAuY3YtcDQ1d20gLmFycm93LnJpZ2h0e3JpZ2h0OjEwcHh9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogICAgICAvKiBFbiBt83ZpbCwgZWwgY29udGVuZWRvciBvY3VwYSB0b2RvIGVsIGFuY2hvICovCiAgICAgIC5jdi1wNDV3bSAuc2VjdGlvbnttYXgtd2lkdGg6MTAwJX0KICAgICAgLmN2LXA0NXdtIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CiAgICAgIC5jdi1wNDV3bSAuY2Fyb3VzZWx7LS1wZWVrOjEyJX0KICAgICAgLyogMiB0YXJqZXRhcyBjb21wbGV0YXMgKyB1biBwZWVrIGRlIGxhIDOqICovCiAgICAgIC5jdi1wNDV3bSAuY2FyZHt3aWR0aDpjYWxjKCgxMDAlIC0gNCp2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzEpfQogICAgICAuY3YtcDQ1d20gLmFycm93e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fQogICAgICAuY3YtcDQ1d20gLnRyYWNre292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJjdi1wNDV3bSI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBhcmlhLWxhYmVsPSJDYXJydXNlbCBkZSB27WRlb3MgKFNob3J0cykiPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Mb3MgJ3Nob3J0cycgZGUgT0tESUFSSU88L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy83Smc3dkFIUnFIRSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjdKZzd2QUhScUhFIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvN0pnN3ZBSFJxSEUvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvTDNIYzFieWJwNEkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJMM0hjMWJ5YnA0SSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL0wzSGMxYnlicDRJL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL2RKZU1pYVhBNDE4IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iZEplTWlhWEE0MTgiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9kSmVNaWFYQTQxOC9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy94eEFsX3NoNjNucyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Inh4QWxfc2g2M25zIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkveHhBbF9zaDYzbnMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvc2hTM25VUUtCYnciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJzaFMzblVRS0JidyIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3NoUzNuVVFLQmJ3L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLzlaSzN0ZEdHRlNVIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iOVpLM3RkR0dGU1UiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS85WkszdGRHR0ZTVS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9UQzN3UDlDSTk4YyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IlRDM3dQOUNJOThjIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvVEMzd1A5Q0k5OGMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDciIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3NlY3Rpb24+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQ+CiAgICAoZnVuY3Rpb24oKXsKICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY3YtcDQ1d20nKTsKICAgICAgaWYgKCFyb290KSByZXR1cm47CiAgICAgIHZhciB0cmFjayA9IHJvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrJyk7CiAgICAgIGlmICghdHJhY2spIHJldHVybjsKCiAgICAgIHZhciBhcnJvd3MgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hcnJvdycpOwogICAgICB2YXIgR0FQID0gMTY7CgogICAgICBmdW5jdGlvbiBnZXRDYXJkV2lkdGgoKXsKICAgICAgICB2YXIgZmlyc3QgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5jYXJkJyk7CiAgICAgICAgaWYgKCFmaXJzdCkgcmV0dXJuIDA7CiAgICAgICAgcmV0dXJuIGZpcnN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwogICAgICB9CgogICAgICBmdW5jdGlvbiBnZXRDYXJkc1BlclBhZ2UoKXsKICAgICAgICByZXR1cm4gKHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCkgPyAyIDogNDsKICAgICAgfQoKICAgICAgYXJyb3dzLmZvckVhY2goZnVuY3Rpb24oYnRuKXsKICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIHZhciBkaXIgPSB0aGlzLmNsYXNzTGlzdC5jb250YWlucygnbGVmdCcpID8gLTEgOiAxOwogICAgICAgICAgdmFyIGNhcmRXID0gZ2V0Q2FyZFdpZHRoKCk7CiAgICAgICAgICBpZiAoIWNhcmRXKSByZXR1cm47CiAgICAgICAgICB2YXIgc3RlcCA9IChjYXJkVyArIEdBUCkgKiBnZXRDYXJkc1BlclBhZ2UoKSAqIGRpcjsKICAgICAgICAgIHRyYWNrLnNjcm9sbEJ5KHsgbGVmdDogc3RlcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIC8vIEZhZGUtaW4gYWwgZW50cmFyIGVuIHZpZXdwb3J0CiAgICAgIHZhciBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlbnRyaWVzKXsKICAgICAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZW4peyBpZihlbi5pc0ludGVyc2VjdGluZyl7IGVuLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdpcy1pbicpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IHRyYWNrLCB0aHJlc2hvbGQ6IDAuMSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGlvLm9ic2VydmUoYyk7IH0pOwoKICAgICAgLy8gQ2xpY2sgcGVyc2lzdGVudGUgKHNpbiB0ZWFzZXIgcG9yIGhvdmVyKQogICAgICBmdW5jdGlvbiBtYWtlRW1iZWRVcmwoaWQsIG9wdHMpewogICAgICAgIHZhciBxcyA9IFsKICAgICAgICAgICdhdXRvcGxheT0nICsgKG9wdHMgJiYgb3B0cy5hdXRvcGxheT8gJzEnOicwJyksCiAgICAgICAgICAncGxheXNpbmxpbmU9MScsJ2ZzPTEnLCdpdl9sb2FkX3BvbGljeT0zJywnc2hvd2luZm89MScsJ3JlbD0wJywnY2NfbG9hZF9wb2xpY3k9MCcsJ3N0YXJ0PTAnLAogICAgICAgICAgJ211dGU9JyArIChvcHRzICYmIG9wdHMubXV0ZT8gJzEnOicwJyksCiAgICAgICAgICAob3B0cyAmJiBvcHRzLmNvbnRyb2xzPT09MD8gJ2NvbnRyb2xzPTAnOidjb250cm9scz0xJyksCiAgICAgICAgICAnbW9kZXN0YnJhbmRpbmc9MScsJ2VuYWJsZWpzYXBpPTEnCiAgICAgICAgXS5qb2luKCcmJyk7CiAgICAgICAgcmV0dXJuICdodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgaWQgKyAnPycgKyBxczsKICAgICAgfQoKICAgICAgLy8gQ2FyZ2FyIEFQSSBkZSBZb3VUdWJlIGJham8gZGVtYW5kYQogICAgICB2YXIgeXRBcGlQcm9taXNlID0gbnVsbDsKICAgICAgZnVuY3Rpb24gZW5zdXJlWVRBcGkoKXsKICAgICAgICBpZiAod2luZG93LllUICYmIHdpbmRvdy5ZVC5QbGF5ZXIpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgICBpZiAoeXRBcGlQcm9taXNlKSByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICAgIHl0QXBpUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpewogICAgICAgICAgdmFyIHByZXZDYiA9IHdpbmRvdy5vbllvdVR1YmVJZnJhbWVBUElSZWFkeTsKICAgICAgICAgIHdpbmRvdy5vbllvdVR1YmVJZnJhbWVBUElSZWFkeSA9IGZ1bmN0aW9uKCl7IGlmICh0eXBlb2YgcHJldkNiPT09J2Z1bmN0aW9uJykgeyB0cnl7IHByZXZDYigpOyB9Y2F0Y2goXyl7fSB9IHJlc29sdmUoKTsgfTsKICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICBzLnNyYyA9ICdodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpJzsKICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHl0QXBpUHJvbWlzZTsKICAgICAgfQoKICAgICAgLy8gSW5zdGFuY2lhciBwbGF5ZXIgbmF0aXZvIGVuIHRhcmpldGFzIHZpc2libGVzIHBhcmEgcXVlIGVsIGljb25vIGRlIHBsYXkgYXBhcmV6Y2EgZGVzZGUgZWwgaW5pY2lvCiAgICAgIGZ1bmN0aW9uIGluaXRQbGF5ZXJGb3JDYXJkKGNhcmQpewogICAgICAgIGlmKCFjYXJkIHx8IGNhcmQuX3l0UGxheWVyIHx8IGNhcmQuX3l0SW5pdCkgcmV0dXJuOwogICAgICAgIHZhciBpZCA9IGNhcmQuZ2V0QXR0cmlidXRlKCdkYXRhLXl0LWlkJyk7CiAgICAgICAgaWYoIWlkKSByZXR1cm47CiAgICAgICAgY2FyZC5feXRJbml0ID0gdHJ1ZTsKICAgICAgICB2YXIgcG9zdGVyID0gY2FyZC5xdWVyeVNlbGVjdG9yKCdpbWcudGh1bWInKTsKICAgICAgICB2YXIgaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgaG9sZGVyLnN0eWxlLnBvc2l0aW9uPSdhYnNvbHV0ZSc7IGhvbGRlci5zdHlsZS5pbnNldD0nMCc7IGhvbGRlci5zdHlsZS53aWR0aD0nMTAwJSc7IGhvbGRlci5zdHlsZS5oZWlnaHQ9JzEwMCUnOyBob2xkZXIuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgaWYocG9zdGVyKXsgY2FyZC5pbnNlcnRCZWZvcmUoaG9sZGVyLCBwb3N0ZXIpOyB9IGVsc2UgeyBjYXJkLmFwcGVuZENoaWxkKGhvbGRlcik7IH0KICAgICAgICAvLyBPY3VsdGFtb3MgZWwgcPNzdGVyIGN1YW50byBhbnRlcyBwYXJhIGRlamFyIHZlciBlbCBvdmVybGF5IG5hdGl2bwogICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uID0gcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gfHwgJ29wYWNpdHkgLjE1cyBlYXNlJzsgcG9zdGVyLnN0eWxlLm9wYWNpdHk9JzAnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nbm9uZSc7IH0KICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheTowLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLm9wYWNpdHk9JzAnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nbm9uZSc7IH0KICAgICAgICAgICAgICAgIC8vIEZvcnphciBwZXJtaXNvcyBkZSBwYW50YWxsYSBjb21wbGV0YSBlbiBlbCBpZnJhbWUgZ2VuZXJhZG8KICAgICAgICAgICAgICAgIHRyeXsKICAgICAgICAgICAgICAgICAgdmFyIGlmciA9IHBsYXllci5nZXRJZnJhbWUgJiYgcGxheWVyLmdldElmcmFtZSgpOwogICAgICAgICAgICAgICAgICBpZiAoaWZyKXsKICAgICAgICAgICAgICAgICAgICBpZnIuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCcnKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY3VyID0gaWZyLmdldEF0dHJpYnV0ZSgnYWxsb3cnKSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICBpZnIuc2V0QXR0cmlidXRlKCdhbGxvdycsIChjdXIgPyBjdXIgKyAnOyAnIDogJycpICsgJ2Z1bGxzY3JlZW4nKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfWNhdGNoKF8peyB9CiAgICAgICAgICAgICAgICBjYXJkLl95dFBsYXllciA9IHBsYXllcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICB0cnl7IGNhcmQucmVtb3ZlQ2hpbGQoaG9sZGVyKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAvLyBTaSBmYWxsYSBsYSBBUEksIGRlamFtb3MgZWwgcPNzdGVyIGhhc3RhIGludGVyYWNjafNuCiAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nJzsgcG9zdGVyLnN0eWxlLnBvaW50ZXJFdmVudHM9Jyc7IH0KICAgICAgICAgIGNhcmQuX3l0SW5pdCA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CgogICAgICAvLyBJbmljaWFsaXphciBhdXRvbeF0aWNhbWVudGUgbG9zIHBsYXllcnMgZGUgbGFzIHRhcmpldGFzIHZpc2libGVzIGFsIGNhcmdhcgogICAgICB2YXIgaW5pdElPID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgaW5pdFBsYXllckZvckNhcmQoZW4udGFyZ2V0KTsgfSB9KTsKICAgICAgfSwgeyByb290OiBudWxsLCB0aHJlc2hvbGQ6IDAuMjUgfSk7CiAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmNhcmQnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpeyBpbml0SU8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgICAgdmFyIGEgPSBlLnRhcmdldC5jbG9zZXN0KCdhLmNhcmRbZGF0YS15dC1pZF0nKTsKICAgICAgICBpZighYSB8fCAhcm9vdC5jb250YWlucyhhKSkgcmV0dXJuOwogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB2YXIgcG9zdGVyID0gYS5xdWVyeVNlbGVjdG9yKCdpbWcudGh1bWInKTsKICAgICAgICAvLyBzaW4gb3ZlcmxheXMgcGVyc29uYWxpemFkb3MKCiAgICAgICAgLy8gVG9nZ2xlIHNpIHlhIGhheSBwbGF5ZXIKICAgICAgICBpZiAoYS5feXRQbGF5ZXIpewogICAgICAgICAgdmFyIHAgPSBhLl95dFBsYXllcjsKICAgICAgICAgIGlmIChhLmNsYXNzTGlzdC5jb250YWlucygnaXMtcGF1c2VkJykpewogICAgICAgICAgICB0cnl7IHAudW5NdXRlKCk7IHAuc2V0Vm9sdW1lKDEwMCk7IHAucGxheVZpZGVvKCk7IH1jYXRjaChfKXsgfQogICAgICAgICAgICBhLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLXBhdXNlZCcpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdHJ5eyBwLnBhdXNlVmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LmFkZCgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHN0b3BUZWFzZXIoYSk7CiAgICAgICAgdmFyIGlkID0gYS5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICB2YXIgaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgaG9sZGVyLnN0eWxlLnBvc2l0aW9uPSdhYnNvbHV0ZSc7IGhvbGRlci5zdHlsZS5pbnNldD0nMCc7IGhvbGRlci5zdHlsZS53aWR0aD0nMTAwJSc7IGhvbGRlci5zdHlsZS5oZWlnaHQ9JzEwMCUnOyBob2xkZXIuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgaWYocG9zdGVyKXsgYS5pbnNlcnRCZWZvcmUoaG9sZGVyLCBwb3N0ZXIpOyB9IGVsc2UgeyBhLmFwcGVuZENoaWxkKGhvbGRlcik7IH0KCiAgICAgICAgZW5zdXJlWVRBcGkoKS50aGVuKGZ1bmN0aW9uKCl7CiAgICAgICAgICB2YXIgcGxheWVyID0gbmV3IFlULlBsYXllcihob2xkZXIsIHsKICAgICAgICAgICAgdmlkZW9JZDogaWQsCiAgICAgICAgICAgIHBsYXllclZhcnM6IHsgYXV0b3BsYXk6MSwgY29udHJvbHM6MSwgcmVsOjAsIHBsYXlzaW5saW5lOjEsIGl2X2xvYWRfcG9saWN5OjMsIG1vZGVzdGJyYW5kaW5nOjEsIGZzOjEsIG9yaWdpbjogKGxvY2F0aW9uICYmIGxvY2F0aW9uLm9yaWdpbikgPyBsb2NhdGlvbi5vcmlnaW4gOiB1bmRlZmluZWQgfSwKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAgICAgICAgICAgb25SZWFkeTogZnVuY3Rpb24oZXYpewogICAgICAgICAgICAgICAgdHJ5eyBldi50YXJnZXQudW5NdXRlKCk7IGV2LnRhcmdldC5zZXRWb2x1bWUoMTAwKTsgZXYudGFyZ2V0LnBsYXlWaWRlbygpOyB9Y2F0Y2goXyl7fQogICAgICAgICAgICAgICAgLy8gRm9yemFyIGZ1bGxzY3JlZW4gZGlzcG9uaWJsZSBlbiBpZnJhbWUgSUZyYW1lIEFQSQogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IH0KICAgICAgICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7CiAgICAgICAgICAgICAgICAgIGEuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAvLyBGYWxsYmFjazogaWZyYW1lIHNpbXBsZQogICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgICAgICAgaWZyYW1lLnNyYyA9IG1ha2VFbWJlZFVybChpZCwge2F1dG9wbGF5OnRydWUsIG11dGU6ZmFsc2V9KTsKICAgICAgICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgJ2F1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IHBpY3R1cmUtaW4tcGljdHVyZScpOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywgJycpOwogICAgICAgICAgaWZyYW1lLnN0eWxlLnBvc2l0aW9uPSdhYnNvbHV0ZSc7IGlmcmFtZS5zdHlsZS5pbnNldD0nMCc7IGlmcmFtZS5zdHlsZS53aWR0aD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5oZWlnaHQ9JzEwMCUnOyBpZnJhbWUuc3R5bGUuYm9yZGVyPScwJzsgaWZyYW1lLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsgaWZyYW1lLnN0eWxlLmJhY2tncm91bmQ9JyMwMDAnOwogICAgICAgICAgaG9sZGVyLnJlcGxhY2VXaXRoKGlmcmFtZSk7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGEuY2xhc3NMaXN0LmFkZCgnaXMtcGxheWluZycpOyB9LCAxNTApOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIAogICAgfSkoKTsKICAgIDwvc2NyaXB0Pg==
    • Granada, una tierra de contrastes donde los sueños cobran vida
    • Pateras al mejor postor: el inédito plan de Baleares para subastar los cayucos que colapsan sus puertos
        • OkBaleares
        • OkBaleares

      Pateras al mejor postor: el inédito plan de Baleares para subastar los cayucos que colapsan sus puertos

      La venta mediante subasta pública de las pateras utilizadas por las mafias de la inmigración irregular se abre paso como la respuesta administrativa ante la llegada masiva de embarcaciones a las costas de las Islas Baleares. 
      • Pedro Serra
      • 2026-09-21 04:00
    • Así tratan de secuestrar a un hombre cinco individuos disfrazados de policías en pleno día en la AP7
        • Sucesos
        • Sucesos

      Así tratan de secuestrar a un hombre cinco individuos disfrazados de policías en pleno día en la AP7

      • Carmen Canales
      • 2026-09-21 18:49
    • Cae en Colombia una red criminal de tráfico de inmigrantes que vendía pasaportes a dominicanos para entrar en España
        • Internacional
        • Internacional

      Cae en Colombia una red criminal de tráfico de inmigrantes que vendía pasaportes a dominicanos para entrar en España

      • Rafael Escalona
      • 2026-09-21 20:50
    • Los médicos lanzan un ultimátum por las pagas extra y preparan movilizaciones: Que se mojen los políticos
        • OkSalud
        • OkSalud

      Los médicos lanzan un ultimátum por las pagas extra y preparan movilizaciones: "Que se mojen los políticos"

      • Diego Buenosvinos
      • 2026-09-21 16:20
    • Potencial Digital 2026 consolida a Extremadura como referente tecnológico del suroeste ibérico
    • Sanidad deja a los pacientes de Alzheimer sin acceso público a dos tratamientos ya aprobados en la UE
        • OkSalud
        • OkSalud

      Sanidad deja a los pacientes de Alzheimer sin acceso público a dos tratamientos ya aprobados en la UE

      • Diego Buenosvinos
      • 2026-09-21 05:40
    • Los coches eléctricos de segunda mano que puedes comprar por mucho menos de lo que imaginas
        • Motor
        • Motor

      Los coches eléctricos de segunda mano que puedes comprar por mucho menos de lo que imaginas

      • Andrea Aguado
      • 2026-09-21 06:00
    • Roborock Qrevo 2 Pro: el genio de la limpieza que nos facilita el día a día
    • La estafa de las maletas perdidas: una banda las sacaba de Barajas y cobraba tras reclamar la pérdida a las aerolíneas
        • Sucesos
        • Sucesos

      La estafa de las maletas perdidas: una banda las sacaba de Barajas y cobraba tras reclamar a las aerolíneas

      • Ángel Moya
      • 2026-09-21 11:43
    • Exigen transparencia sobre la evacuación de aguas residuales del campamento para inmigrantes de Ceuta
        • OKGREEN
        • OKGREEN

      Exigen transparencia sobre la evacuación de aguas residuales del campamento para inmigrantes de Ceuta

      • Antonio Quilis
      • 2026-09-21 11:55
    • Invertir y contribuir a proyectos sociales: la fórmula de los fondos solidarios de Banco Santander
    • Caos en las autoescuelas: más de 9.000 alumnos atrapados en Baleares y hasta seis meses de espera para el examen práctico
    • Apuñalamiento mortal en Son Gotleu: dos argelinos sujetaban a la víctima mientras el menor le apuñalaba en el pecho
        • OkBaleares
        • OkBaleares

      Apuñalamiento mortal en Son Gotleu: dos argelinos sujetaban a la víctima mientras el menor le apuñalaba en el pecho

      Giro brutal en la investigación del apuñalamiento mortal del barrio palmesano de Son Gotleu del 14 de septiembre. Según la investigación, un tercer joven, en colaboración con un compatriota, sujetó a la víctima para que el agresor principal le asestara una puñalada en el pecho que le provocó la muerte. 
      • Pedro Serra
      • 2026-09-21 10:36
    • Mazón esgrime el auto del TSJ que le exculpa en la comisión de la DANA del Congreso: Los tribunales ya se han pronunciado
        • España
        • España

      Mazón esgrime el auto del TSJ que le exculpa en la comisión de la DANA del Congreso: "Los tribunales se han pronunciado"

      • Ignacio Martínez
      • VALENCIA
      • 2026-09-21 13:05
    • Dos competiciones y un único camino: Liga Endesa y Liga Femenina Endesa lanzan juntos la nueva temporada
    • El presidente socialista de la Diputación de Sevilla riega con 72.600 € a
        • España
        • España

      El presidente socialista de la Diputación de Sevilla riega con 72.600 € a 'El País' por un patrocinio de 13 días

      • Ezequiel Marín
      • 2026-09-21 17:27
    • Hama technics abre las puertas de su nueva tienda online para acercar sus accesorios tecnológicos al consumidor
        • Tecnología
        • Tecnología

      Hama technics abre las puertas de su nueva tienda online para acercar sus accesorios tecnológicos al consumidor

      • OKDIARIO
      • 2026-09-21 07:00
    • si te lo perdiste...

    • Geoffrey Hinton, Nobel de Física y padrino de la IA (78 años): «Se va a descontrolar a menos que hagamos algo. Tenemos que frenar»
        • Techy
        • Techy

      Geoffrey Hinton, Nobel de Física y padrino de la IA: «Se va a descontrolar, hay que frenar»

      • Adrián Villellas
      • 2026-09-21 14:48
    • En 1989 compró una granja para convertirla en su lugar de retiro soñado: después de 37 años tiene 5.000 animales y es uno de los mayores refugios de fauna de toda Sudáfrica
        • Naturaleza
        • Naturaleza

      compró una granja sólo para convertirla en su retiro soñado y hoy tiene 5.000 animales 

      • Alejo Lucarás
      • 2026-09-21 15:00
    • La reflexión de Sigmund Freud, padre del psicoanalismo, sobre los hijos: No hay necesidad en la infancia tan fuerte como la protección de un padre
        • Curiosidades
        • Curiosidades

      La reflexión de Sigmund Freud sobre los hijos: "No hay necesidad en la infancia tan fuerte como la protección de un padre"

      La frase de Sigmund Freud resume una de sus ideas sobre la infancia, la vulnerabilidad y la necesidad de sentirse protegido. En “El malestar en la cultura”, Freud relaciona la experiencia del niño que descubre su propia fragilidad con la búsqueda posterior de una figura poderosa capaz de ofrecer seguridad frente a aquello que no puede controlar. Desde esta perspectiva, la protección paterna no es únicamente defensa física, sino una experiencia emocional que ayuda al pequeño a percibir el mundo como menos amenazante.
      • Marta Burgués
      • 2026-09-21 14:33
    • David, terapeuta funcional: La flacidez de los brazos puede mejorar con pesas, pero con una banda elástica se pueden conseguir mejores resultados en menos tiempo
        • Deporte
        • Deporte

      terapeuta funcional: "La flacidez de los brazos mejora más con una banda elástica que con las pesas"

      • Marta Burgues
      • 2026-09-21 10:24
    • La reflexión de Sócrates, filósofo, sobre el poder y el interés: Las almas ruines solo se dejan conquistar mediante regalos
        • Curiosidades
        • Curiosidades

      La reflexión de Sócrates sobre el interés: "Las almas ruines sólo se dejan conquistar con regalos"

      • Aitana Pascual
      • 2026-09-21 15:30
    • El nuevo gigante eléctrico chino mide 5,3 metros, tiene 646 CV y una batería de 120 kWh y ya suma 30.000 reservas en 48 horas
        • Techy
        • Techy

      El nuevo gigante eléctrico chino mide 5,3 m, tiene 646 CV, batería de 120 kWh y ya suma 30.000 reservas 

      • Adrián Villellas
      • 2026-09-21 15:37
    • Cuándo empieza el otoño 2026 en España: esta es la fecha y hora oficial del equinoccio
        • Sociedad
        • Sociedad

      Cuándo empieza el otoño 2026 en España: esta es la fecha y hora oficial del equinoccio

      • Aitana Pascual
      • 2026-09-21 15:42
    • La reflexión de María Zambrano sobre el amor que sigue conmoviendo: El corazón es centro, porque es lo único de nuestro ser que da sonido
        • Curiosidades
        • Curiosidades

      María Zambrano sobre el amor: "El corazón es el centro y lo único de nuestro ser que da sonido"

      • Aitana Pascual
      • 2026-09-21 13:00
    • La civilización etrusca tenía un calendario sagrado hace 2.500 años: se descubrió en 1898 y 128 años después aún no lo ha descifrado nadie
        • Historia
        • Historia

      La civilización etrusca tenía un calendario sagrado y 128 años después no lo ha descifrado nadie

      • Manuel Morera
      • 2026-09-21 16:00
    • Los OK y KO del lunes, 21 de septiembre de 2021
    • ZEL Fuerteventura: una nueva forma de vivir la isla
    • Diario Madridista

    • El Real Madrid lo tiene claro: autocrítica sí, silencio no
    • El vestuario del Real Madrid estalla: Nos han jodido bien y nos han puesto a un cobarde para arbitrar”
        • Real Madrid
        • Real Madrid

      El vestuario del Real Madrid estalla: "Nos han jodido bien y nos han puesto a un cobarde para arbitrar"

      El vestuario del Real Madrid terminó indignado con Miguel Ángel Ortiz Arias después de la derrota en el Metropolitano. Los jugadores consideran que el derbi quedó condicionado por un arbitraje que permitió al Atlético llevar la agresividad al límite y que, en cambio, aplicó el máximo rigor para expulsar a Dean Huijsen.
      • Iván Martín
      • 2026-09-20 21:00
    • Valdano señala a Valverde tras la durísima entrada de Kang-in Lee: Se levanta demasiado pronto...
        • Real Madrid
        • Real Madrid

      Valdano señala a Valverde tras la durísima entrada de Kang-in Lee: "Se levanta demasiado pronto..."

      • Pedro Antolinos
      • 2026-09-21 09:51
    • Mbappé cierra la polémica con Dembélé por el Balón de Oro: Ya he hablado con él y no hay tensión
        • Real Madrid
        • Real Madrid

      Mbappé cierra la polémica con Dembélé por el Balón de Oro: "Ya he hablado con él y no hay tensión"

      • Pablo Villanueva
      • 2026-09-21 16:56
    • Courtois, más allá del arbitraje: Lo evidente nos ha frustrado pero no hay que dejar escapar más puntos
        • Real Madrid
        • Real Madrid

      Courtois, más allá del arbitraje: "nos ha frustrado pero no hay que dejar escapar más puntos"

      • Kike Sáez
      • 2026-09-20 22:53
    • Vota en nuestra encuesta: ¿Qué jugadas del derbi estuvieron mal arbitradas?
        • Real Madrid
        • Real Madrid

      Vota en nuestra encuesta: ¿Qué jugadas del derbi estuvieron mal arbitradas?

      • Pablo Villanueva
      • 2026-09-21 11:29
    • Deportes

    • El Atlético respalda a Giuliano Simeone: ¿Fue MVP del derbi por ser el hijo del entrenador?
    • La controvertida decisión de Soto Grado tras la llamada del VAR en el Deportivo-Betis: El jugador mete la cabeza ahí
        • Deportes
        • Deportes

      La controvertida decisión de Soto Grado tras la llamada del VAR en el Deportivo-Betis: "El jugador mete la cabeza ahí"

      • Hugo Carrasco
      • 2026-09-21 14:00
    • La Federación de Ceuta carga contra Marlaska por la cancelación del partido de España sub-20: Un nuevo golpe difícil de justificar
        • Deportes
        • Deportes

      La Federación de Ceuta carga contra Marlaska por cancelar el partido de España sub-20: "Un nuevo golpe difícil de justificar"

      • Hugo Carrasco
      • 2026-09-21 12:14
    • Lamine Yamal celebra la victoria del Atlético en el derbi contra el Real Madrid
        • Deportes
        • Deportes

      Lamine Yamal celebra la victoria del Atlético en el derbi contra el Real Madrid

      Lamine Yamal celebró a su manera la victoria del Atlético contra el Real Madrid en el derbi disputado el pasado domingo en el Metropolitano y que tuvo como claro protagonista al árbitro Miguel Ángel Ortiz Arias. El futbolista del Barcelona respondió a una publicación en las redes sociales de Marc Pubil después de un triunfo que deja al Barcelona seis puntos por encima de los de Mourinho en la clasificación en la jornada 7 de la competición. 
      • Pedro Antolinos
      • 2026-09-21 10:48
    • Carlos Sainz confía en que Williams por fin pegue el estirón en Bakú
        • Deportes
        • Deportes

      Carlos Sainz confía en que Williams por fin pegue el estirón en Bakú

      • Kike Sáez
      • 2026-09-21 16:47
    • Qué partidos juega la selección española en este parón internacional: horarios y cómo ver a España por TV en directo
        • Deportes
        • Deportes

      Qué partidos juega la selección en este parón: horarios y cómo ver a España por TV en directo

      • Pedro Antolinos
      • 2026-09-21 10:22
    • Chus Mateo reactiva la operación retorno de Ricky Rubio a la selección española
        • Deportes
        • Deportes

      Chus Mateo reactiva la operación retorno de Ricky Rubio a la selección española

      • Kike Sáez
      • 2026-09-21 17:50
    • economía

    • La patrimonial de Ana Botín dispara sus beneficios a 4,4 millones tras la fuerte revalorización del Santander
    • Sánchez presenta un nuevo plan de IA para España pese a tener sin actividad tres comités con 55 expertos
        • Economía
        • Economía

      Sánchez presenta un nuevo plan de IA para España pese a tener sin actividad tres comités con 55 expertos

      El presidente del Gobierno, Pedro Sánchez, ha presentado un nuevo plan de Inteligencia Artificial, en esta ocasión para su "despliegue responsable", pese a tener tres más de tres comités de IA con más de 55 expertos sin actividad alguna.
      • Alba Martín
      • 2026-09-21 11:22
    • El Ibex 35 recupera terreno y roza los 19.650 puntos tras el alivio en Oriente Próximo
        • Economía
        • Economía

      El Ibex 35 recupera terreno y roza los 19.650 puntos tras el alivio en Oriente Próximo

      • Celia Amayuelas
      • 2026-09-21 09:27
    • Un arbitrario sistema de financiación
    • La economía de Sánchez empieza a resquebrajarse: la hostelería echa el freno mientras servicios y empleo caen
        • Economía
        • Economía

      La economía de Sánchez empieza a resquebrajarse: la hostelería echa el freno mientras servicios y empleo caen

      • Celia Amayuelas
      • 2026-09-21 11:08
    • Europa mira a Canadá para reducir su dependencia de Trump y China: apuesta por níquel, uranio, IA y defensa 
        • Economía
        • Economía

      Europa mira a Canadá para reducir su dependencia de Trump y China: apuesta por níquel, uranio, IA y defensa 

      • Celia Amayuelas
      • 2026-09-21 05:45
    • Solo el 37% de las empresas utiliza Inteligencia Artificial en procesos de Recursos Humanos
        • Economía
        • Economía

      Solo el 37% de las empresas utiliza Inteligencia Artificial en procesos de Recursos Humanos

      • OKDIARIO
      • 2026-09-21 16:10
    • COOL

    • La confesión más personal de Carmina Ordóñez: Yo les he dado malos ejemplos a mis hijos
        • Cool
        • Cool

      La confesión más personal de Carmina Ordóñez: "Yo les he dado malos ejemplos a mis hijos"

      • Rocío Álvarez
      • 2026-09-21 13:15
    • 'Resident Evil
        • Cool
        • Cool

      'Resident Evil' sacude la cartelera: recauda 108 millones en su primer fin de semana

      • Francisco-Eme
      • 2026-09-21 11:52
    • Rafael Amargo, sin consuelo: las imágenes más duras del bailaor en el último adiós a su padre
        • Cool
        • Cool

      Rafael Amargo, sin consuelo: las imágenes más duras del bailaor en el último adiós a su padre

      Rafael Amargo ha despedido a su padre, Florentino García, en Valderrubio (Granada), rodeado de familiares, amigos y vecinos de la localidad. COOL ha tenido acceso en primicia a las imágenes del último adiós, que muestran al bailaor visiblemente afectado y arropado por los suyos. Horas antes, el artista había dedicado a su padre un emotivo mensaje en redes sociales recordando la profunda complicidad que los unía. La ceremonia estuvo marcada por numerosos gestos de cariño y por la música de Rafael Farina, una de las grandes pasiones de Florentino.
      • Marta Menéndez
      • 2026-09-21 13:05
    • 'La Revuelta
        • Cool
        • Cool

      'La Revuelta' cambia de estrategia con los invitados tras hundir las audiencias de TVE

      • Sergio Espí
      • 2026-09-21 18:36
    • La Reina Sofía, vitoreada en Sevilla por el Día Mundial del Alzheimer y con un estilismo de diez
        • Cool
        • Cool

      La Reina Sofía, vitoreada en Sevilla por el Día Mundial del Alzheimer con un estilismo de diez

      • Marta Menéndez
      • 2026-09-21 17:00
    • Aitana desvela los principios de su romance con Plex: Ahí estaba yo, viendo tus vídeos cada noche
        • Cool
        • Cool

      Aitana desvela los principios de su romance con Plex: "Ahí estaba yo, viendo tus vídeos cada noche"

      • Marta Huertas
      • 2026-09-21 10:20
    • Happy FM

    • Avance de
        • HappyFM
        • HappyFM

      Avance de 'La Promesa' de hoy, 21 de septiembre: Jacobo hace una confesión a Martina y Adriano

      • Nacho Molina
      • 2026-09-21 18:00
    • Avance semanal de
        • HappyFM
        • HappyFM

      Avance semanal de 'La Promesa', del 21 al 25 de septiembre: Pía acepta ser la madrina de Curro

      • Nacho Molina
      • 2026-09-21 12:32
    • Un soltero de
        • HappyFM
        • HappyFM

      Un soltero de 'First Dates', sobre su cita: "Me encantaría cumplir mi fantasía con esos muslos"

      • Idania Monzón
      • 2026-09-21 11:33
    • Avance semanal de
        • HappyFM
        • HappyFM

      Avance semanal de 'Valle Salvaje', del 21 al 25 de septiembre: Genaro fingirá ser sirviente en la Casa Pequeña

      • Nacho Molina
      • 2026-09-21 11:06
    • ¿Quién va hoy a
        • HappyFM
        • HappyFM

      ¿Quién va hoy a 'El Hormiguero'? Todos los invitados del 21 al 24 de septiembre

      • Nacho Molina
      • 2026-09-21 10:10
    • Quién era Presley Gerber: su edad, de dónde era y de qué ha muerto
        • HappyFM
        • HappyFM

      Quién era Presley Gerber: su edad, de dónde era y de qué ha muerto

      • Idania Monzón
      • 2026-09-21 10:30
    • Okmotor

    • Un español asegura haber encontrado el truco para aprobar el carnet de conducir: Me preparé el examen en tres días y aprobé a la primera
        • Motor
        • Motor

      Un español asegura haber encontrado el truco para aprobar el carnet de conducir

      • Janire Manzanas
      • 2026-09-20 11:00
    • Bruselas alerta sobre las marcas chinas que Sánchez impulsa en España: Deben reducir ventas para cumplir la normativa
        • Motor
        • Motor

      Bruselas alerta sobre las marcas chinas que Sánchez impulsa en España: "Deben reducir ventas para cumplir la normativa"

      • Andrea Aguado
      • 2026-09-20 05:44
    • Francisco Javier Suárez, mecánico experto: Después del verano, cuando el coche recupera la rutina, hay señales de que conviene no dejar para más adelante
        • Motor
        • Motor

      Un mecánico advierte sobre las señales de tu coche que no debes ignorar

      • Janire Manzanas
      • 2026-09-19 11:10
    • OKGreen

    • ¿Chao pistacho? Su elevada huella hídrica y la inestabilidad climática ponen su cultivo en peligro
        • OKGREEN
        • OKGREEN

      ¿Chao pistacho? Su elevada huella hídrica y la inestabilidad climática ponen su cultivo en peligro

      A finales de 2023, una influencer subió a TikTok un vídeo en el que se la veía disfrutando de una conocida marca de chocolate Dubái. La rápida viralidad que alcanzó dicha publicación, que a día de hoy supera los 153 millones de reproducciones y los 8 millones de likes, fue tan espectacular que muchos consideran que aquí comenzaron a ponerse de moda estos productos. 
      • Daniel Jiménez
      • 2026-09-21 05:30
    • Se agotaría en un siglo: el recurso limitado que hace inviable que miles de personas vivan en la Luna
        • OKGREEN
        • OKGREEN

      Se agotaría en un siglo: el recurso limitado que hace inviable que miles de personas vivan en la Luna

      • Antonio Quilis
      • 2026-09-21 05:00
    • S. M. el Rey inaugura la exposición sobre la evolución tecnológica y el futuro de la electricidad organizada por Iberdrola
        • OKGREEN
        • OKGREEN

      el Rey inaugura la exposición sobre la evolución tecnológica y el futuro de la electricidad organizada por Iberdrola

      • OKDIARIO
      • 2026-09-21 16:21
    • OKSalud

    • Dolor abdominal y dificultad para ir al baño: todo lo que debes saber sobre la obstrucción intestinal
    • ¿Olvidos normales o Alzheimer? Las claves para reconocer las primeras señales
        • OkSalud
        • OkSalud

      ¿Olvidos normales o Alzheimer? Las claves para reconocer las primeras señales

      • B. Muñoz
      • 2026-09-21 05:40
    • Dra. Mercè Boada: Es posible desarrollar terapias que modifiquen el desarrollo del Alzheimer
        • OkSalud
        • OkSalud

      Dra. Mercè Boada: "Es posible desarrollar terapias que modifiquen el desarrollo del Alzheimer"

      • Beatriz Muñoz
      • 2026-09-21 05:40
    • Del diagnóstico precoz a los nuevos tratamientos: los avances que están cambiando el abordaje del Alzheimer
        • OkSalud
        • OkSalud

      Del diagnóstico precoz a los nuevos tratamientos: los avances que están cambiando el abordaje del Alzheimer

      La investigación sobre el Alzheimer atraviesa un momento de avances en distintos frentes. Las estrategias terapéuticas, biomarcadores y herramientas basadas en inteligencia artificial permiten ampliar el conocimiento sobre la enfermedad, mejorar su detección y explorar nuevas formas de intervenir sobre su evolución.
      • Diego Buenosvinos
      • 2026-09-21 05:40
    • OKCLUB

    • Hazte socio de OKCLUB por sólo 10 euros y disfruta de todas las ventajas de OKDIARIO
        • OKCLUB
        • OKCLUB

      Hazte socio de OKCLUB por sólo 10 euros y disfruta de todas las ventajas de OKDIARIO

      • OKDIARIO
      • 2026-09-03 10:38
    • Paco Rabadán: El derbi madrileño monopoliza el interés del fin de semana
        • OKCLUB
        • OKCLUB

      Paco Rabadán: "El derbi madrileño monopoliza el interés del fin de semana"

      • OKDIARIO
      • 2026-09-19 05:45
    • navarra

    • Última hora del incendio en Padre Menni: un herido sigue en la UCI y el HUN da el alta a casi todos los ingresados
        • Sucesos

      Última hora del incendio en Padre Menni: un herido sigue en la UCI y el HUN da el alta a casi todos los ingresados

    • Atascos a la vista en Landaben: cortan un acceso clave desde la A-15 por obras y amenazan con colapsar las horas punta
        • Sociedad

      Atascos a la vista en Landaben: cortan un acceso clave desde la A-15 por obras y amenazan con colapsar las horas punta

    • Chivite obligará a fichar a todo el personal de Salud y exigirá dinero a los funcionarios si no cumplen el horario
        • Sociedad

      Chivite obligará a fichar a todo el personal de Salud y exigirá dinero a los funcionarios si no cumplen el horario

    • El campo navarro calienta motores para un nuevo 'tractorazo': UAGN exige frenar la subida del gasóleo o
        • Sociedad

      El campo navarro calienta motores para un nuevo 'tractorazo': UAGN exige frenar la subida del gasóleo o "habrá paros"

    • Huelga de 15 días en la contrata informática del Gobierno de Navarra: peligra el mantenimiento en colegios y sedes
        • Sociedad

      Huelga de 15 días en la contrata informática del Gobierno de Navarra: peligra el mantenimiento en colegios y sedes

    • Los médicos navarros alertan del sistema de fichaje de Chivite: puede contar como ausencia un descanso obligatorio
        • Sociedad

      Los médicos navarros alertan del sistema de fichaje de Chivite: puede contar como ausencia un descanso obligatorio

    • metabolic

    • Núria Márquez, fisioterapeuta, avisa sobre el error que cometemos muchas personas al caminar: «Tienes que educar a tu cerebro para que no lo haga»
        • Deporte

      Núria Márquez, fisioterapeuta, avisa sobre el error que cometemos muchas personas al caminar: «Tienes que educar a tu cerebro para que no lo haga»

    • Miguel Naranjo, nutricionista: «Estos son los tacos perfectos para cenar si quieres perder grasa sin pasar hambre»
        • Alimentos

      Miguel Naranjo, nutricionista: «Estos son los tacos perfectos para cenar si quieres perder grasa sin pasar hambre»

    • David, terapeuta funcional: «La flacidez de los brazos puede mejorar con pesas, pero con una banda elástica se pueden conseguir mejores resultados en menos tiempo»
        • Deporte

      David, terapeuta funcional: «La flacidez de los brazos puede mejorar con pesas, pero con una banda elástica se pueden conseguir mejores resultados en menos tiempo»

    • José Ruiz, entrenador personal: «Estos son los 10 ejercicios de gimnasia que yo seguiría haciendo a partir de los 50 años»
        • Entrenamiento

      José Ruiz, entrenador personal: «Estos son los 10 ejercicios de gimnasia que yo seguiría haciendo a partir de los 50 años»

    • Expertos en entrenamiento físico dejan claro que no hace falta ir al gimnasio: basta con 100 repeticiones al día de este ejercicio para mantenerse en forma
        • Deporte

      Expertos en entrenamiento físico dejan claro que no hace falta ir al gimnasio: basta con 100 repeticiones al día de este ejercicio para mantenerse en forma

    • El efecto rebote no estaría en el peso: el verdadero problema de las dietas para adelgazar podría estar en los músculos
        • Deporte

      El efecto rebote no estaría en el peso: el verdadero problema de las dietas para adelgazar podría estar en los músculos

    • talent24h

    • Paula, de 23 años, deja su trabajo tras un solo día por el horario de lunes a sábado
        • Actualidad

      Paula, de 23 años, deja su trabajo tras un solo día por el horario de lunes a sábado

    • Antonio cotizó 45 años y denuncia que jubilarse a los 62 le recortó la pensión un 24%
        • Actualidad

      Antonio cotizó 45 años y denuncia que jubilarse a los 62 le recortó la pensión un 24%

    • Hallan plumas de un ave de hace 66 millones de años dentro de un excremento de dinosaurio
        • Actualidad

      Hallan plumas de un ave de hace 66 millones de años dentro de un excremento de dinosaurio

    • Trabajar en España y Filipinas puede permitir sumar años cotizados para acceder a una pensión
        • Actualidad

      Trabajar en España y Filipinas puede permitir sumar años cotizados para acceder a una pensión

    • El TSJPV rechaza 61.000 euros de indemnización a una crupier que solo trabajó 1 hora y 53 minutos
        • Actualidad

      El TSJPV rechaza 61.000 euros de indemnización a una crupier que solo trabajó 1 hora y 53 minutos

    • Tres profesiones con fuerte desgaste físico piden poder jubilarse antes sin perder pensión
        • Empleo

      Tres profesiones con fuerte desgaste físico piden poder jubilarse antes sin perder pensión

    • Muy Interesante

    • LG dinamita el precio de su monitor Ultrafine 32U701SB-B de 32
        • Compras

      LG dinamita el precio de su monitor Ultrafine 32U701SB-B de 32" para cerrar el mes por todo lo alto

    • ¿Quién llevó la agricultura occidental a Gansu, China, hace 3.500 años? El ADN plantea una sorprendente respuesta
        • Historia

      ¿Quién llevó la agricultura occidental a Gansu, China, hace 3.500 años? El ADN plantea una sorprendente respuesta

    • Canon mueve ficha y desploma el precio de su cámara EOS R100 para liderar las ventas de otoño
        • Compras

      Canon mueve ficha y desploma el precio de su cámara EOS R100 para liderar las ventas de otoño

    • Crecer con salud: claves y señales de alerta para acompañar el desarrollo infantil
        • Actualidad

      Crecer con salud: claves y señales de alerta para acompañar el desarrollo infantil

    • De desaparecer durante décadas a tener 100 concesionarios: el secreto detrás del regreso de esta mítica marca española
        • Actualidad

      De desaparecer durante décadas a tener 100 concesionarios: el secreto detrás del regreso de esta mítica marca española

    • El hielo de la Antártida y Groenlandia no solo se está derritiendo: 50 años de datos revelan qué está ocurriendo con sus glaciares
        • Ciencia

      El hielo de la Antártida y Groenlandia no solo se está derritiendo: 50 años de datos revelan qué está ocurriendo con sus glaciares

    • okzinet

    • Este puede ser el motivo por el que tu hijo adolescente ya no te cuenta nada (y 5 formas de reabrir la conversación)
        • Ser Padres

      Este puede ser el motivo por el que tu hijo adolescente ya no te cuenta nada (y 5 formas de reabrir la conversación)

    • “Todos son más altos que yo”: 3 pasos de la psicóloga Silvia Álava para responder a tu hijo y proteger su autoestima
        • Ser Padres

      “Todos son más altos que yo”: 3 pasos de la psicóloga Silvia Álava para responder a tu hijo y proteger su autoestima

    • La marca que muchos recuerdan de sus padres ya tiene 30.478 coches en España, pero hay una cifra que sorprende todavía más
        • Ser Padres

      La marca que muchos recuerdan de sus padres ya tiene 30.478 coches en España, pero hay una cifra que sorprende todavía más

    • Gorditas de chicharrón prensado: la receta casera para disfrutar del auténtico México
        • Mia Revista

      Gorditas de chicharrón prensado: la receta casera para disfrutar del auténtico México

    • Pinza de plátano: 5 claves para saber si de verdad da el doble de volumen a tu coleta
        • Mia Revista

      Pinza de plátano: 5 claves para saber si de verdad da el doble de volumen a tu coleta

    • Cómo maquillar los ojos a partir de los 50: 5 trucos que favorecen
        • Mia Revista

      Cómo maquillar los ojos a partir de los 50: 5 trucos que favorecen

    • Techy

        • Techy

      La reflexión de Mustafa Suleyman, jefe de la IA de Microsoft: «Si caminas una hora recorres una distancia, si caminas dos, doblas la distancia. Esta intución es útil pero fracasa con la IA»

      • Adrián Villellas
    • Cazas en la cubierta del portaaviones USS Abraham Lincoln a su llegada al puerto de Laem Chabang, en Tailandia
        • Techy

      Ni 295 días en el mar lo frenan: el portaaviones USS Abraham Lincoln vuelve al Mar del Sur de China con dos fragatas australianas tras su escala en Tailandia

      • Adrián Villellas
    • Célula solar manipulada en laboratorio durante pruebas de conexión sin soldadura
        • Techy

      Alemania lo vuelve a hacer: crea un panel solar sin soldaduras que apenas pierde eficiencia

      • Adrián Villellas
    • Recreación con IA de una central nuclear transportable llegando por barco a una instalación costera
        • Techy

      Canadá prepara una central nuclear “móvil” de 50 MW que llegará completamente montada por barco

      • Adrián Villellas
    • Aerogenerador marino MySE18.X-20MW de MingYang con rotor de hasta 292 metros
        • Techy

      Ni huracanes ni cambio climático: China estrena una turbina eólica de 20 MW que puede alterar el aire de su entorno

      • Adrián Villellas
    • Ilustración de la red CHIME localizando la ráfaga rápida de radio RBFLOAT en su galaxia de origen
        • Techy

      Los astrónomos no dan crédito: localizan el origen de una de las ráfagas de radio más brillantes jamás detectadas que recorrió 130 millones de años luz

      • Adrián Villellas
    • OkPlanes

    • Cirque du Soleil KURIOS
        • OkPlanes

      El Cirque du Soleil trae a Madrid la fantasía steampunk de KURIOS

      • Sandra Quintana C
    • this is michael
        • OkPlanes

      El homenaje a Michael Jackson llega al Palacio Vistalegre

      • Sandra Quintana C
    • Film Symphony Orchestra
        • OkPlanes

      Film Symphony Orchestra arranca su gira Odisea en el Auditorio Nacional

      • Sandra Quintana C
    • Al-Mounia
        • OkPlanes

      Alta cocina marroquí y danza del vientre en el histórico Al-Mounia

      • Sandra Quintana C
    • ballet de kiev
        • OkPlanes

      El Ballet de Kiev regresa a Gran Vía con El lago de los cisnes

      • Sandra Quintana C
    • colores del sonido
        • OkPlanes

      El Teatro Calderón acoge Colores del Sonido a partir del 29 de septiembre

      • Sandra Quintana C
    • Curiosidades

    • Imagen generada con IA.
        • Curiosidades

      Los expertos aconsejan guardar los envases de leche y zumo: pueden ayudar a mantener tu casa hasta 3,1 °C más fresca

      • Carla Abadía
    • Papel de aluminio en la mesa de la plancha
        • Curiosidades

      Expertas en limpieza coinciden: «Poner papel de aluminio bajo la funda de la tabla potencia el planchado al máximo»

      • Janire Manzanas
        • Curiosidades

      Morgan Freeman: «Creo que Dios, quien quiera que creas que sea, escucha todas las plegarias, incluso si a veces la respuesta es no»

      • Fernando Larruscain
    • Paneles solares en el jardín
        • Curiosidades

      Harto de pagar la factura de la luz, un joven montó 10 paneles solares en su jardín en sólo 20 minutos: «La forma más sencilla»

      • Janire Manzanas
    • Canela en polvo en las plantas
        • Curiosidades

      Canela en polvo en la tierra de las plantas: cómo ayuda, cuándo usarla y por qué la recomiendan los jardineros

      • Janire Manzanas
    • andrea camionera
        • Curiosidades

      Andrea, española de 26 años trabajando de camionera: «Ser mujer es una ventaja en el sentido de que siempre tienes una mano que te va a ayudar»

      • Blanca Espada
    • Recetas de cocina

    • Receta de pimientos del piquillo
        • Recetas de cocina

      Pimientos del piquillo en freidora de aire: receta sencilla y muy sabrosa

      • Francisco María
    • Galletas avena
        • Recetas de cocina

      Galletas de avena en freidora de aire: receta saludable para picar entre horas

      • Francisco María
    • Bizcocho casero
        • Recetas de cocina

      Cake de calabaza en freidora de aire: receta jugosa para el otoño

      • Francisco María
    • Receta de caballa
        • Recetas de cocina

      Caballa en freidora de aire: receta saludable y deliciosa

      • Francisco María
    • sandwich Harrison Ford
        • Recetas de cocina

      La famosa receta del sándwich de Harrison Ford, actor de 84 años: «Queso cheddar con pan integral, tomate y salsa Worcestershire»

      • Blanca Espada
    • Filete a la plancha
        • Recetas de cocina

      Los chefs españoles coinciden: «El filete a la plancha perfecto no lleva sal gorda; mejor sal fina 4 horas antes de cocinarlo o al final»

      • Janire Manzanas
    • OkShopping

    • mejores gafas de sol 2026
        • OkShopping

      Comparativa de gafas de sol: mejores marcas, protección UV y cómo elegir según tu estilo

      • New Mall Media
    • Dyson Cyclone V10
        • OkShopping

      Esta Dyson Cyclone V10 baja de precio e incluye un kit de limpieza a fondo para toda la casa

      • New Mall Media
    • LG American Combi Door-in-Door™ GMJ960MBJE
        • OkShopping

      El frigorífico americano de LG que cuesta 1.000 euros menos y ofrece 634 litros de capacidad

      • New Mall Media
    • aparador Nemore de Kave Home
        • OkShopping

      Kave Home presenta un aparador de diseño curvado con sobre efecto mármol y roble ebonizado

      • New Mall Media
    • Bitdefender
        • OkShopping

      Phishing, ransomware y tiendas falsas: cómo protegerte de las principales amenazas online en 2026

      • New Mall Media
    • Agenda Amazon
        • OkShopping

      Las agendas de siempre están bien, pero hay opciones diferentes mucho más llamativas y por menos de 20 euros

      • Laura Mesonero
    • Mascotas

    • Imagen generada por IA.
        • Mascotas

      Los expertos en comportamiento canino coinciden: a tu perro le gustan las caricias pero «no todas se viven de la misma manera»

      • Carmen Ruiz
    • Perro
        • Mascotas

      Los veterinarios expertos coinciden: si tu perro cierra los ojos y echa las orejas hacia atrás cuando le regañas no es porque sienta culpa, en realidad sólo está reaccionando a tu tono de voz

      • Janire Manzanas
    • Perro montando un cojín
        • Mascotas

      Los veterinarios expertos avisan: ver a tu perro montando un cojín puede parecer gracioso pero en realidad «puede ocurrir por estrés o frustración»

      • Janire Manzanas
    • Imagen generada por IA.
        • Mascotas

      La alerta de un veterinario a los dueños de los perros: «Si tu mascota come demasiado rápido puede sufrir vómitos y gases»

      • Carmen Ruiz
    • Imagen generada por IA.
        • Mascotas

      Expertos en cuidado animal coinciden: la persona favorita de tu mascota siempre es la más arisca y lejana de él

      • Carmen Ruiz
    • Perro, animales, mascotas
        • Mascotas

      Ponerle a tu perro un lazo de color rojo alrededor del cuello: para qué sirve y por qué cada vez más gente lo está haciendo en España

      • Ana López Vera
    • Ciencia

    • Equinoccio
        • Ciencia

      Equinoccio de otoño 2026: cuándo comienza la nueva estación y qué ocurre en el cielo

      • Francisco María
    • Microondas
        • Ciencia

      Un científico español advierte a la población: «Nunca toques esta pieza del microondas, puede contener óxido de berilio y los daños son irreversibles»

      • Janire Manzanas
        • Ciencia

      Científicos vierten miles de litros de sosa cáustica en el mar: un experimento pionero que provoca la aparición de una mancha rojiza en el océano

      • Álvaro Olivero
    • Impresión 3D con biocompuestos marinos, desarrollada por el CITA de la Real Academia Danesa de Arquitectura, Diseño y Conservación.
        • Ciencia

      Dinamarca rompe las reglas de la construcción: desarrolla algas marinas que capturan CO2 y pueden sustituir al plástico polipropileno

      • Naiara Philpotts
    • Conjunción lunar
        • Ciencia

      Conjunción Luna-Venus de septiembre de 2026: cuándo ver el encuentro entre nuestro satélite y el planeta más brillante

      • Francisco María
    • Centro de Visitantes de la vía navegable de Illinois, en la esclusa de Starved Rock. Foto: Sherie Loverkamp / CC BY-SA 4.0.
        • Ciencia

      En 1933 Estados Unidos construyó un río artificial de 536 km: después de 93 años sigue siendo una ruta de expansión para uno de los peores peces invasores del mundo

      • Naiara Philpotts
    • Bebés

    • antojos aversiones embarazo
        • Bebés

      Antojos y aversiones en el embarazo: ¿Qué los causa y cómo manejarlos?

      • Blanca Espada
    • embarazo ectópico
        • Bebés

      Embarazo Ectópico: Síntomas, Causas y Tratamiento

      • Blanca Espada
    • ansiedad embarazo
        • Bebés

      Cómo gestionar la ansiedad en el embarazo: consejos y recursos para sentirte mejor

      • Blanca Espada
    • alimentación complementaria
        • Bebés

      Cómo introducir la alimentación complementaria sin morir en el intento: trucos y recetas para padres primerizos

      • Blanca Espada
    • urticaria niños
        • Bebés

      Urticaria en niños: causas, síntomas, tratamiento y complicaciones

      • Blanca Espada
    • granuloma umbilical
        • Bebés

      Granuloma umbilical del bebé: ¿Qué es y cómo tratarlo?

      • Blanca Espada
    • Tecnología

    • iPhone Duo
        • Tecnología

      Apple estrena su iPhone plegable ante un mercado dominado por Samsung: estos datos muestran el reto del Duo

      • Nacho Grosso
    • Cosori Turbo Tower Pro Smart
        • Tecnología

      La Cosori Turbo Tower Pro Smart es la freidora de aire vertical que cocina dos platos completamente distintos a la vez

      • Nacho Grosso
    • iPhone 18 Pro apertura variable
        • Tecnología

      El iPhone 18 Pro, así cambia tus fotos la apertura variable que ya llevas en el bolsillo

      • Nacho Grosso
    • HUAWEI FreeBuds Neo
        • Tecnología

      HUAWEI sube el listón de sus auriculares con los FreeBuds Neo y su cancelación de ruido

      • Nacho Grosso
    • BleeqUp Rover
        • Tecnología

      Las BleeqUp Rover, las gafas deportivas con IA que vigilan tu seguridad mientras grabas cada pedalada

      • Nacho Grosso
    • iPhone Duo
        • Tecnología

      No le he puesto las manos encima al iPhone Duo, pero cada vez veo más claro que es un acierto

      • Nacho Grosso
    Ir Arriba

    Noticias de última hora

    • Las fotos de Zapatero retomando sus carreras por la zona restringida de El Pardo tras meses de reclusión
    • La Federación responde a Marlaska: «Nunca se organizará ningún partido si hay un informe policial que lo desaconseje»
    • Un policía tiroteado en un ataque frente a una sinagoga durante el Yom Kippur en Ontario
    • Marlaska culpa ahora a la Federación de que España no juegue en Ceuta: «El informe no dice que no se celebre»
    • El letrado de Argüeso presentará un escrito para que los abogados puedan asistir a los comparecientes en la comisión de la DANA
    • Cae en Colombia una red criminal de tráfico de inmigrantes que vendía pasaportes a dominicanos para entrar en España
    • Héctor Álvarez consigue la primera medalla de España en el Mundial de ciclismo
    • Japón pone la técnica y Perú el carácter en este restaurante de Madrid: una cocina de ají, brasa y contrastes
    • Rafael Grossi, director del OIEA: «El mundo se vuelve con un gran sentido de optimismo hacia los usos pacíficos de la energía nuclear»
    • Movistar Plus anuncia en San Sebastián un aluvión de estrenos con grandes directores en un año decisivo para el cine español

    Noticias más vistas

    • El Gobierno de Sánchez consigue que España no juegue en Ceuta: el duelo ante México sub-20 será en Madrid
    • Marlaska deja a Ceuta sin España y desata la indignación: «Quieren evitar una exaltación de españolidad»
    • Flores, el bolichico que murió de forma «repentina» y que conecta el ‘caso Zapatero’ con la financiación ilegal del PSOE
    • El informe chapucero de la consultora de Zapatero plagia el 75% de un boletín del Banco de España y tiene 7 erratas graves
    • Montero habla de «gastos irregulares» de la Junta mientras se investiga el uso de la FAFFE por el PSOE como «agencia de colocación»
    • Lo llaman la ‘Florencia española’ pero esta ciudad Patrimonio de la Humanidad y repleta de palacios es la gran desconocida de España
    • Segunda División sí, España no: Ceuta juega ante el Valladolid sin problemas tras el veto del Gobierno a la Selección
    • La siniestra historia detrás del piso de Sánchez en Mojácar: una mafia francesa afín al PSOE dio un pelotazo
    • Covington siembra dudas sobre el vendaje de Gaethje en su pelea con Topuria: «Había algo en su guante»
    • Interior exige a la RFEF cancelar el partido de la Selección española Sub-20 organizado en Ceuta para apoyar a su población

    Noticias virales

    • Los expertos instan a rociar vinagre alrededor del inodoro con frecuencia en casa: para qué sirve y por qué recomiendan hacerlo
    • Se buscan voluntarios para vivir gratis en EEUU a cambio de trabajar 18 horas semanales restaurando una casa-castillo sin experiencia profesional previa
    • La psicología sugiere que los nacidos entre 1940 y 1960 hablan demasiado porque llevan desde la infancia esperando a tener voz
    • Los cocineros españoles coinciden: «Para que la tortilla francesa no se te pegue lo importante no es echar aceite, sino calentar bien la sartén»
    • Pelayo Gayol, ex instructor de los GEO, sobre el liderazgo: «Yo solo soy muy poquita cosa, pero con mi equipo soy invencible»
    • Marruecos está bombeando agua del Atlántico hasta el Sáhara para transformar 5.200 hectáreas de arena en campos de cultivo
    • La reflexión vital de Gabriel García Márquez, escritor: «Creo que no hay mayor desgracia humana que la incapacidad para amar»
    • Álvaro Pedrera, experto español en plantas: «Si tus plantas tienen las puntas de las hojas marrones el problema no es de riego, sino de humedad ambiental»
    • La frase del día de Clint Eastwood, actor y director (96 años): «Somos como boxeadores, uno nunca sabe cuánto tiempo más le queda»
    • Stephen Hawking sobre el conocimiento: «El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento»
    Gobierno de España

    Esta empresa se ha acogido a las subvenciones del Gobierno de España cofinanciadas con el Fondo Europeo de Desarrollo Regional para las regiones ultraperiféricas para el transporte de mercancías en Canarias.”Una manera de hacer Europa”

    Unión Europea. Fondo europeo de desarollo regional.
    • DOS MIL PALABRAS S.L. 2026.
    • Contacto
    • Aviso Legal
    • Política de Privacidad
    • Política de Cookies
    • Noticias
    • RSS
    • Quiénes somos
    • Auditado por ComScore