• 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:
  • Socios de Sánchez
  • Propuesta escaños
  • Premios récords de audiencia
  • Errores Hacienda
  • Boicot al GP
  • Repatriación de menores
  • Chabolismo en Palma
  • Alineación Barcelona-Levante
  • Horario del Real Sociedad – Atlético de Madrid
  • Horario Levante – Barcelona
  • Últimas noticias
Más

    El sitio de los inconformistas

    13 Sep 2026
    Actualizado 15:21 CET
    INICIAR SESIÓN
    Es Noticia
    • Personas que dan las GRACIAS al CRUZAR
    • Significado del PROVERBIO ÁRABE
    • Proverbio árabe sobre la RIQUEZA
    • TRABAJAR después de la JUBILACIÓN
    • REFLEXIÓN Sun Tzu, filósofo chino
    • María Montessori PEDAGOOGA
    • REFLEXIÓN Miguel de Cervantes
    • Reflexión de ‘El Principito’ sobre el AMOR
    • Miguel de Unamuno sobre cómo ser verdaderamente FELIZ
    • BOMBEROS sobre las fugas de GAS
    • IDEA de Alejandro Magno
    • REFLEXIÓN de Jean Tirole
    • CONSTRUCCIÓN central hidroeléctrica CASERA
    • Reflexión de Agatha Christie sobre la VIDA
    • Receta TORTILLA de PATATA
    • PALABRAS del Emperador Augusto

    Okdiario

    • España
    • Economía
    • Deportes
    • Diario Madridista
    • Investigación
    • Cool
    • Opinión
    • Sociedad
    • Lotería de Navidad
    • Directo
    • F1 Madrid hoy, en directo
    • Tres Eurofighter del Ejército del Aire sobrevuelan Madring pero no dibujan en el cielo la bandera de España
        • Deportes
        • Deportes

      Tres Eurofighter del Ejército del Aire sobrevuelan Madring pero no dibujan en el cielo la bandera de España

      • Miguel Zorío
      • 2026-09-13 14:54
    • El Gobierno de Sánchez confirma su boicot al GP de España en Madrid: ni un sólo ministro en la carrera de F1
        • Deportes
        • Deportes

      El Gobierno de Sánchez confirma su boicot al GP de España en Madrid: ni un sólo ministro en la carrera de F1

      • Kike Sáez
      • 2026-09-13 14:04
    • El Rey Felipe VI apoya la Fórmula 1 en Madrid: acude a la carrera con la Princesa Leonor y la Infanta Sofía
        • Deportes
        • Deportes

      El Rey Felipe VI apoya la Fórmula 1 en Madrid: acude a la carrera con la Princesa Leonor y la Infanta Sofía

      • Kike Sáez
      • 2026-09-13 13:59
    • Impresionante: así sonó el himno de España en Madring con un espectacular tifo en la grada principal
        • Deportes
        • Deportes

      Impresionante: así sonó el himno de España en Madring con un espectacular tifo en la grada principal

      Madring vibró con el himno nacional de España. Como es habitual, antes de cada carrera de Fórmula 1 sonó el himno del país correspondiente en el que se corre. En este caso, el de España. Y en Madrid no fue menos. Los pilotos se colocaron en primera fila para la ceremonia pre carrera, con Sainz y Alonso liderando a la parrilla, y el circuito entero se puso en pie para culminar el acto con el himno de España.
      • Miguel Zorío
      • 2026-09-13 15:11
    • Almeida denuncia en OKDIARIO el doble rasero del Gobierno con la F1: A Cataluña van y a Madrid no viene ninguno
        • Deportes
        • Deportes

      Almeida denuncia en OKDIARIO el doble rasero del Gobierno con la F1: "A Cataluña van y a Madrid no viene ninguno"

      • Kike Sáez
      • 2026-09-13 14:21
    • Fernando Alonso juega con su futuro: No sé si va a ser la última vez que corra en España
        • Deportes
        • Deportes

      Fernando Alonso juega con su futuro: "No sé si va a ser la última vez que corra en España"

      • Daniel Calle
      • 2026-09-13 13:50
    • PGlmcmFtZSBoZWlnaHQ9JzI1MHB4JyB3aWR0aD0nMTAwJScgICAgICAgICAgICAgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvaHRtbC8ybW51dzgtY2FycnVzZWwtZGlyZWN0b3MucGhwP21vZGU9ZGVzayIgICBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bWF4LSI+PC9pZnJhbWU+
      PGlmcmFtZSBoZWlnaHQ9JzY1MHB4JyB3aWR0aD0nMTAwJScgICAgICAgICBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9odG1sLzJtbnV3OC1jYXJydXNlbC1kaXJlY3Rvcy5waHA/bW9kZT1tb2JpbGUiICAgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iIHN0eWxlPSJib3JkZXI6MDtkaXNwbGF5OmJsb2NrO21heC0iPjwvaWZyYW1lPg==
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCkuICovCi5ibGstbzFlN3d7bWF4LWlubGluZS1zaXplOjk2MHB4O21hcmdpbjowIGF1dG87Y29udGFpbmVyLXR5cGU6aW5saW5lLXNpemU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTBweDt9Ci5ibGstbzFlN3cgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0fQouYmxrLW8xZTd3IC5wYWdle2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDoxNXB4fQouYmxrLW8xZTd3IC5wYWdlIC5jb2x1bW57b3JkZXI6MX0KLmJsay1vMWU3dyAucGFnZSAubGVhZHtvcmRlcjoyfQovKiA4NjBweCB5IG5vIDQ3NXB4OiBjb24gbGEgY29sdW1uYSBmaWphICgyMjBweCArIDIwcHggZGUgZ2FwID0gMjQwcHgpLAogICBjdWFscXVpZXIgYW5jaG8gZGUgaWZyYW1lIHBvciBkZWJham8gZGUgfjg2MHB4IGRlamEgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgKDFmcikgY2FkYSB2ZXogY29uIG1lbm9zIGVzcGFjaW8gaGFzdGEgY29sYXBzYXIgYSAwcHggZGUgYW5jaG8gYW50ZXMgZGUKICAgbGxlZ2FyIGEgdW4gYnJlYWtwb2ludCB0YW4gYmFqbyBjb21vIDQ3NXB4ICYjODIxMjsgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgZGlyZWN0YW1lbnRlIGRlc2FwYXJlY2UgZW4gZXNhIGZyYW5qYSBpbnRlcm1lZGlhIChuaSAiZGVzayIgY29tcGxldG8gbmkKICAgIm3zdmlsIiBlc3RyZWNobykuIENvbiA4NjBweCBzZSBwYXNhIGEgdW5hIHNvbGEgY29sdW1uYSBhcGlsYWRhIGFudGVzIGRlCiAgIHF1ZSBlc28gcHVlZGEgb2N1cnJpci4KICAgRXN0ZSBicmVha3BvaW50IHNlIG9taXRlIHBvciBjb21wbGV0byBtaWVudHJhcyBsYSBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkKICAgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldyk6IHBlbnNhZG8gcGFyYSBjdWFuZG8gZWwgbfNkdWxvIGxsZXZhIHN1CiAgIGNvbHVtbmEgYSA5NjBweCwgZGVqYSBkZSB0ZW5lciBzZW50aWRvIGVuIHVuYSBleHBvcnRhY2nzbiBkZSBzb2xvIGxhCiAgIG5vdGljaWEgcHJpbmNpcGFsIGEgdW4gYW5jaG8gZmlqbyBlbGVnaWRvIGEgbWFubyAmIzgyMTI7IGxvcyBhbmNob3Mgc2ltdWxhZG9zCiAgICg2MTMvNDYwLzMwN3B4KSBlc3ThbiBUT0RPUyBwb3IgZGViYWpvIGRlIDg2MHB4LCBhc+0gcXVlIHNpbiBlc3RlIGdhdGluZwogICBlbCBIVE1MIGV4cG9ydGFkbyBjYWVy7WEgc2llbXByZSBhIGxhIHRpcG9ncmFm7WEgIk3zdmlsIiAoY29uICFpbXBvcnRhbnQpCiAgIHNlYSBjdWFsIHNlYSBsYSBxdWUgZWwgdXN1YXJpbyBjb25maWd1cvMgZW4gIkRlc2siIHBhcmEgZXNhIHNpbXVsYWNp824sCiAgIGRhbmRvIGxhIGZhbHNhIHNlbnNhY2nzbiBkZSBxdWUgdW5hIGNvbmZpZ3VyYWNp824gInBpc2EiIGEgb3RyYS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLW8xZTd3e2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7fQogIC5ibGstbzFlN3cgLnBhZ2V7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KICAuYmxrLW8xZTd3IC5wYWdlIC5zdGFjay10aXRsZSB7Zm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OiAxLjJlbTt9CiAgLmJsay1vMWU3dyAucGFnZSAuc3RhY2stYXV0aG9yIHttYXJnaW4tdG9wOiAxMHB4O30KICAuYmxrLW8xZTd3IC5sZWFkLW1lZGlhLmlzLWlmcmFtZXtibG9jay1zaXplOjQwMHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstbzFlN3cgLmxlYWQtbWVkaWF7YXNwZWN0LXJhdGlvOjE2LzkgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAucGFnZSAubGVhZHtvcmRlcjoxfQogIC5ibGstbzFlN3cgLnBhZ2UgLmNvbHVtbntvcmRlcjoyfQogIC8qIFBvciBkZWJham8gZGVsIGJyZWFrcG9pbnQsIGVsIGxlYWQtYm9keSBzaWVtcHJlIHZ1ZWx2ZSBhIGlyIGRlYmFqbyBkZWwKICAgICBsZWFkLW1lZGlhIChubyBoYXkgc2l0aW8gcGFyYSBlbCBsYXlvdXQgbGFkbyBhIGxhZG8pLiAqLwogIC5ibGstbzFlN3cgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQsCiAgLmJsay1vMWU3dyAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FzcGVjdC1yYXRpbzphdXRvO30KICAuYmxrLW8xZTd3IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAogIC5ibGstbzFlN3cgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MSAxIGF1dG87fQogIC5ibGstbzFlN3cgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKICAuYmxrLW8xZTd3IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MSAxIGF1dG87aW5saW5lLXNpemU6OTAlO21hcmdpbjotMzBweCBhdXRvIDA7YmxvY2stc2l6ZTphdXRvO2FsaWduLXNlbGY6YXV0bztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHg7fQogIC5ibGstbzFlN3cgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6MTBweDtyaWdodDphdXRvO30KICAuYmxrLW8xZTd3IC5wYWdlIC5jb2x1bW4taXRlbXtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KICAuYmxrLW8xZTd3IC5wYWdlIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9CiAgLmJsay1vMWU3dyAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMjEgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjIxcHggIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMTggLmxlZnQtdGl0bGV7Zm9udC1zaXplOjE4cHggIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAucGFnZSAubGVmdC1wbGF5ewogICAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICAgIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4OwogIH0KICAuYmxrLW8xZTd3IC5wYWdlIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICAgIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICAgIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKICB9Cn0KLyogVGlwb2dyYWbtYSAiTfN2aWwiIChhbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL3RpdHVsYXJlcyBhbmltYWRvcykgY29uIFNVCiAgIFBST1BJTyBicmVha3BvaW50ICg0ODBweCksIHNlcGFyYWRvIGRlbCBkZSBhcnJpYmEgKDg2MHB4LCBzb2xvIHBhcmEgYXBpbGFyCiAgIGxhIHJlamlsbGEgY29sdW1uYStub3RpY2lhKTogdW4gY29udGVuZWRvciByZWFsIGRlIG1lbm9zIGRlIDg2MHB4IGVzIG11eQogICBoYWJpdHVhbCAocC5lai4gdW5hIGNvbHVtbmEgZGUgYXJ07WN1bG8gZGUgfjcwMHB4KSB5IE5PIGVzIHVuIG3zdmlsICYjODIxMjsgY29uCiAgIHVuIPpuaWNvIGJyZWFrcG9pbnQgY29tcGFydGlkbywgbGEgdGlwb2dyYWbtYSAiRGVzayIgcXVlIGNvbmZpZ3VyYSBlbAogICB1c3VhcmlvIG5vIGxsZWdhYmEgYSB2ZXJzZSBudW5jYSBlbiBlc2UgY2FzbywgY2F5ZW5kbyBzaWVtcHJlIGEgbG9zIHZhbG9yZXMKICAgcG9yIGRlZmVjdG8gZGUgIk3zdmlsIiBzaW4gcXVlIG5hZGllIGxvIGh1YmllcmEgcGVkaWRvLiA0ODBweCBz7SBzZQogICBjb3JyZXNwb25kZSBjb24gdW4gYW5jaG8gZGUgbfN2aWwgcmVhbCAobGEgdmlzdGEgIk3zdmlsIiBkZWwgcHJvcGlvIGdlc3RvcgogICBzaW11bGEgMzc1cHgpLiBJZ3VhbCBxdWUgZWwgYnJlYWtwb2ludCBkZSBhcnJpYmEsIHNlIG9taXRlIGR1cmFudGUgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBkZSBsYSBub3RpY2lhIHByaW5jaXBhbCAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstbzFlN3cgLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstbzFlN3cgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiMwMEE3RkYgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC10aXRsZXtmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstbzFlN3cgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstbzFlN3cgLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstbzFlN3cgLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vMWU3dyAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay1vMWU3dyAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1vMWU3dyAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLW8xZTd3IC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay1vMWU3dyAubGVhZC1tZWRpYSBpbWcsCi5ibGstbzFlN3cgLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstbzFlN3cgLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLW8xZTd3IC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLW8xZTd3IC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay1vMWU3dyAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay1vMWU3dyAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay1vMWU3dy1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay1vMWU3dyAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstbzFlN3cta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLW8xZTd3LWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstbzFlN3cta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLW8xZTd3IC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay1vMWU3dy1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLW8xZTd3LWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vMWU3dyAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstbzFlN3cgLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstbzFlN3cgLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay1vMWU3dyAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLW8xZTd3IC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLW8xZTd3IC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay1vMWU3dyAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay1vMWU3dyAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay1vMWU3dyAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstbzFlN3cgLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1vMWU3dyAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL2F1dG9yIGNlbnRyYWRvcyBlbiB2ZXJ0aWNhbCBkZW50cm8gZGVsIGFsdG8KICAgc29icmFudGUgYmFqbyBsYSBjYXRlZ29y7WEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1vMWU3dyAubGVhZC1ib2R5LW1haW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpbmxpbmUtc2l6ZToxMDAlO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1vMWU3dyAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGstbzFlN3cgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay1vMWU3dyAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLW8xZTd3IC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLW8xZTd3IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA0MnB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9Ci5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotMzBweDt9Ci5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXJpZ2h0OjA7fQovKiBQb3NpY2nzbiAnYm90dG9tLWZ1bGwnIGRlbCBsZWFkLWJvZHkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gaW5saW5lLXNpemUKICAgZW4gdmV6IGRlIHdpZHRoIHBvciBlbCBtaXNtbyBtb3Rpdm8gcXVlIGVsIHJlc3RvIGRlIGVzdGUgYmxvcXVlIChldml0YXIKICAgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbCB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MKICAgZGlyZWN0YW1lbnRlKS4gKi8KLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktYm90dG9tLWZ1bGwgLmxlYWQtYm9keXsKICBpbmxpbmUtc2l6ZToxMDAlOwogIG1hcmdpbjowOwogIHBhZGRpbmctdG9wOjMwcHg7CiAgcGFkZGluZy1ib3R0b206MzBweDsKICBib3JkZXI6bm9uZTsKfQovKiBFdGlxdWV0YSBkZSBleGNsdXNpdmEgKG8gdGV4dG8gcGVyc29uYWxpemFkbykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vMWU3dyAubGVhZC1leGNsdXNpdmUtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDt6LWluZGV4OjM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtsZXR0ZXItc3BhY2luZzowLjVweDtwYWRkaW5nOjJweCA4cHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb2ludGVyLWV2ZW50czpub25lO30KLyogU2VsZWN0b3IgY29uIDMgY2xhc2VzICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKCIubGVhZC1tZWRpYSBpbWciIHRhbWJp6W4KICAgbWF0Y2hlYSBlc3RlIDxpbWc+IHkgbGUgZ2FuYWJhIGVuIGVzcGVjaWZpY2lkYWQpLiAqLwouYmxrLW8xZTd3IC5sZWFkLWV4Y2x1c2l2ZS10YWcgLmxlYWQtZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW8xZTd3IC5sZWFkLWNhdHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06c2tld1koLTZkZWcpO21hcmdpbi10b3A6LTE1cHg7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1vMWU3dyAubGVhZC1raWNrZXIsIC5ibGstbzFlN3cgLmxlYWQtc3VidGl0bGV7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7Cn0KLmJsay1vMWU3dyAubGVhZC1raWNrZXJ7Zm9udC13ZWlnaHQ6NzAwO30KLmJsay1vMWU3dyAubGVhZC1zdWJ0aXRsZXtmb250LXdlaWdodDo2MDA7fQovKiBUYW1h8W8vaW50ZXJsaW5lYWRvL2NvbG9yIGRlIGFudGV07XR1bG8geSBzdWJ07XR1bG8gZW4gRGVzayAodmFsb3JlcyBwb3IKICAgZGVmZWN0byBkZWwgYmxvcXVlOyBlbCBvdmVycmlkZSBkZSBN83ZpbCB2YSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywKICAgeWEgcXVlIGVsIEhUTUwgZXhwb3J0YWRvIGVzIHJlc3BvbnNpdmUgeSBubyBkZXBlbmRlIGRlIHF16SB2aXN0YSB0dXZpZXJhcwogICBzZWxlY2Npb25hZGEgZW4gZWwgZ2VzdG9yIGFsIGV4cG9ydGFyL2NvcGlhcikuICovCi5ibGstbzFlN3cgLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQouYmxrLW8xZTd3IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQovKiB0ZXh0LXdyYXA6YmFsYW5jZSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlbCBnZXN0b3IgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIGVzYSByZWdsYSk6IHJlcGFydGUgbGFzCiAgIGztbmVhcyBkZWwgdGl0dWxhciBkZSBmb3JtYSBt4XMgdW5pZm9ybWUgZGVudHJvIGRlIGNhZGEgZGlzcG9zaXRpdm8sIHNpbgogICBwcmV0ZW5kZXIgaWd1YWxhciBlbCBu+m1lcm8gZGUgbO1uZWFzIGVudHJlIHBsYXRhZm9ybWFzIGRpc3RpbnRhcy4gKi8KLmJsay1vMWU3dyAubGVhZC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6MS4wMjttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstbzFlN3cgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstbzFlN3cgLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay1vMWU3dyAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLW8xZTd3IC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLW8xZTd3IC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstbzFlN3cgLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstbzFlN3cgLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstbzFlN3cgLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLW8xZTd3IC50aHVtYiBpbWcsCi5ibGstbzFlN3cgLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay1vMWU3dyAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLW8xZTd3IC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstbzFlN3ctYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1vMWU3dyAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstbzFlN3cgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLW8xZTd3IC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstbzFlN3cgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstbzFlN3cgLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLW8xZTd3IC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstbzFlN3cgLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLW8xZTd3IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstbzFlN3cgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstbzFlN3cgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLW8xZTd3IC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstbzFlN3cgLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstbzFlN3cgLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay1vMWU3dyAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstbzFlN3cgLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstbzFlN3cgLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLW8xZTd3LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstbzFlN3cgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstbzFlN3cgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KLyogRW4gZWwgbW9kbyAnbGVmdCcgZWwgUGxheSBwYXNhIGEgbGEgZXNxdWluYSBzdXBlcmlvciBkZXJlY2hhICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6YXV0bztyaWdodDoxMHB4O30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLW8xZTd3IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLW8xZTd3IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstbzFlN3cgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1vMWU3dyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLW8xZTd3IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay1vMWU3dyAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1vMWU3dyAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay1vMWU3dyAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1vMWU3dyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLW8xZTd3IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstbzFlN3cgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLW8xZTd3IC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay1vMWU3dy1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstbzFlN3cgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstbzFlN3cgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstbzFlN3cgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstbzFlN3cgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstbzFlN3cgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLW8xZTd3IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLW8xZTd3IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1vMWU3dyAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLW8xZTd3IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstbzFlN3cgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLW8xZTd3LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLW8xZTd3IC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLW8xZTd3IC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLW8xZTd3IC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstbzFlN3cgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW8xZTd3IC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbzFlN3cgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay1vMWU3dyAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW8xZTd3IC5oZWFkZXIyLWNhdC10YWcsCi5ibGstbzFlN3cgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstbzFlN3cgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW8xZTd3IC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay1vMWU3dyAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbzFlN3cgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay1vMWU3dyAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstbzFlN3cgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLW8xZTd3IC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW8xZTd3IC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstbzFlN3cgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstbzFlN3cgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay1vMWU3dyAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstbzFlN3cgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstbzFlN3cgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLW8xZTd3IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstbzFlN3cgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay1vMWU3dyAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLW8xZTd3IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLW8xZTd3IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstbzFlN3cgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1vMWU3dyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vMWU3dyAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstbzFlN3cgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstbzFlN3cgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstbzFlN3cgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW8xZTd3IC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLW8xZTd3IC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstbzFlN3ciPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VsLWdvYmllcm5vLXRpZW5lLXNvYnJlLWxhLW1lc2EtdW5hLXByb3B1ZXN0YS1wYXJhLXJlc2VydmFyLTctZXNjYW5vcy1xdWUtc29sby1lc2NvZ2VyaWFuLWxvcy1lc3Bhbm9sZXMtZW4tZWwtZXh0cmFuamVyby0yMDI2MDkxMi0yMzA3NTItZTBlNDBlLmpwZyIgYWx0PSJFbCBHb2JpZXJubyB0aWVuZSBzb2JyZSBsYSBtZXNhIHVuYSBwcm9wdWVzdGEgcGFyYSByZXNlcnZhciA3IGVzY2Hxb3MgcXVlIHPzbG8gZXNjb2dlcu1hbiBsb3MgZXNwYfFvbGVzIGVuIGVsIGV4dHJhbmplcm8iIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIDxidXR0b24gY2xhc3M9InBsYXktYnV0dG9uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGRpdiBjbGFzcz0icGxheS1pY29uIj48L2Rpdj48c3BhbiBjbGFzcz0icGxheS10ZXh0Ij5QbGF5PC9zcGFuPjwvYnV0dG9uPgogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiMwMEE3RkY7Y29sb3I6I2ZmZiI+RVNQQdFBPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5FbCBHb2JpZXJubyB0aWVuZSBzb2JyZSBsYSBtZXNhIHVuYSBwcm9wdWVzdGEgcGFyYSByZXNlcnZhciA3IGVzY2Hxb3MgcXVlIHPzbG8gZXNjb2dlcu1hbiBsb3MgZXNwYfFvbGVzIGVuIGVsIGV4dHJhbmplcm88L3NwYW4+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtbW9iaWxlIj5FbCBHb2JpZXJubyB0aWVuZSBzb2JyZSBsYSBtZXNhIHVuYSBwcm9wdWVzdGEgcGFyYSByZXNlcnZhciA3IGVzY2Hxb3MgcXVlIHPzbG8gZXNjb2dlcu1hbiBsb3MgZXNwYfFvbGVzIGVuIGVsIGV4dHJhbmplcm88L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+UmFmYWVsIE1vbGluYTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxhIGNsYXNzPSJsZWFkLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9nb2JpZXJuby10aWVuZS1zb2JyZS1tZXNhLXByb3B1ZXN0YS1yZXNlcnZhci03LWVzY2Fub3MtcXVlLXNvbG8tZXNjb2dlcmlhbi1lc3Bhbm9sZXMtZXh0cmFuamVyby0yMDI2NzM1OCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJFbCBHb2JpZXJubyB0aWVuZSBzb2JyZSBsYSBtZXNhIHVuYSBwcm9wdWVzdGEgcGFyYSByZXNlcnZhciA3IGVzY2Hxb3MgcXVlIHPzbG8gZXNjb2dlcu1hbiBsb3MgZXNwYfFvbGVzIGVuIGVsIGV4dHJhbmplcm8iIGFyaWEtbGFiZWw9IkVsIEdvYmllcm5vIHRpZW5lIHNvYnJlIGxhIG1lc2EgdW5hIHByb3B1ZXN0YSBwYXJhIHJlc2VydmFyIDcgZXNjYfFvcyBxdWUgc/NsbyBlc2NvZ2Vy7WFuIGxvcyBlc3Bh8W9sZXMgZW4gZWwgZXh0cmFuamVybyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstbzFlN3cgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIGZ1bmN0aW9uIGZpdCgpewogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCkuICovCi5ibGstOXJpMHF7bWF4LWlubGluZS1zaXplOjk2MHB4O21hcmdpbjowIGF1dG87Y29udGFpbmVyLXR5cGU6aW5saW5lLXNpemU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTBweDt9Ci5ibGstOXJpMHEgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0fQouYmxrLTlyaTBxIC5wYWdle2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDoxNXB4fQouYmxrLTlyaTBxIC5wYWdlIC5jb2x1bW57b3JkZXI6MX0KLmJsay05cmkwcSAucGFnZSAubGVhZHtvcmRlcjoyfQovKiA4NjBweCB5IG5vIDQ3NXB4OiBjb24gbGEgY29sdW1uYSBmaWphICgyMjBweCArIDIwcHggZGUgZ2FwID0gMjQwcHgpLAogICBjdWFscXVpZXIgYW5jaG8gZGUgaWZyYW1lIHBvciBkZWJham8gZGUgfjg2MHB4IGRlamEgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgKDFmcikgY2FkYSB2ZXogY29uIG1lbm9zIGVzcGFjaW8gaGFzdGEgY29sYXBzYXIgYSAwcHggZGUgYW5jaG8gYW50ZXMgZGUKICAgbGxlZ2FyIGEgdW4gYnJlYWtwb2ludCB0YW4gYmFqbyBjb21vIDQ3NXB4ICYjODIxMjsgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgZGlyZWN0YW1lbnRlIGRlc2FwYXJlY2UgZW4gZXNhIGZyYW5qYSBpbnRlcm1lZGlhIChuaSAiZGVzayIgY29tcGxldG8gbmkKICAgIm3zdmlsIiBlc3RyZWNobykuIENvbiA4NjBweCBzZSBwYXNhIGEgdW5hIHNvbGEgY29sdW1uYSBhcGlsYWRhIGFudGVzIGRlCiAgIHF1ZSBlc28gcHVlZGEgb2N1cnJpci4KICAgRXN0ZSBicmVha3BvaW50IHNlIG9taXRlIHBvciBjb21wbGV0byBtaWVudHJhcyBsYSBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkKICAgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldyk6IHBlbnNhZG8gcGFyYSBjdWFuZG8gZWwgbfNkdWxvIGxsZXZhIHN1CiAgIGNvbHVtbmEgYSA5NjBweCwgZGVqYSBkZSB0ZW5lciBzZW50aWRvIGVuIHVuYSBleHBvcnRhY2nzbiBkZSBzb2xvIGxhCiAgIG5vdGljaWEgcHJpbmNpcGFsIGEgdW4gYW5jaG8gZmlqbyBlbGVnaWRvIGEgbWFubyAmIzgyMTI7IGxvcyBhbmNob3Mgc2ltdWxhZG9zCiAgICg2MTMvNDYwLzMwN3B4KSBlc3ThbiBUT0RPUyBwb3IgZGViYWpvIGRlIDg2MHB4LCBhc+0gcXVlIHNpbiBlc3RlIGdhdGluZwogICBlbCBIVE1MIGV4cG9ydGFkbyBjYWVy7WEgc2llbXByZSBhIGxhIHRpcG9ncmFm7WEgIk3zdmlsIiAoY29uICFpbXBvcnRhbnQpCiAgIHNlYSBjdWFsIHNlYSBsYSBxdWUgZWwgdXN1YXJpbyBjb25maWd1cvMgZW4gIkRlc2siIHBhcmEgZXNhIHNpbXVsYWNp824sCiAgIGRhbmRvIGxhIGZhbHNhIHNlbnNhY2nzbiBkZSBxdWUgdW5hIGNvbmZpZ3VyYWNp824gInBpc2EiIGEgb3RyYS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLTlyaTBxe2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7fQogIC5ibGstOXJpMHEgLnBhZ2V7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KICAuYmxrLTlyaTBxIC5wYWdlIC5zdGFjay10aXRsZSB7Zm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OiAxLjJlbTt9CiAgLmJsay05cmkwcSAucGFnZSAuc3RhY2stYXV0aG9yIHttYXJnaW4tdG9wOiAxMHB4O30KICAuYmxrLTlyaTBxIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXtibG9jay1zaXplOjQwMHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstOXJpMHEgLmxlYWQtbWVkaWF7YXNwZWN0LXJhdGlvOjE2LzkgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAucGFnZSAubGVhZHtvcmRlcjoxfQogIC5ibGstOXJpMHEgLnBhZ2UgLmNvbHVtbntvcmRlcjoyfQogIC8qIFBvciBkZWJham8gZGVsIGJyZWFrcG9pbnQsIGVsIGxlYWQtYm9keSBzaWVtcHJlIHZ1ZWx2ZSBhIGlyIGRlYmFqbyBkZWwKICAgICBsZWFkLW1lZGlhIChubyBoYXkgc2l0aW8gcGFyYSBlbCBsYXlvdXQgbGFkbyBhIGxhZG8pLiAqLwogIC5ibGstOXJpMHEgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQsCiAgLmJsay05cmkwcSAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FzcGVjdC1yYXRpbzphdXRvO30KICAuYmxrLTlyaTBxIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAogIC5ibGstOXJpMHEgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MSAxIGF1dG87fQogIC5ibGstOXJpMHEgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKICAuYmxrLTlyaTBxIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MSAxIGF1dG87aW5saW5lLXNpemU6OTAlO21hcmdpbjotMzBweCBhdXRvIDA7YmxvY2stc2l6ZTphdXRvO2FsaWduLXNlbGY6YXV0bztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHg7fQogIC5ibGstOXJpMHEgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6MTBweDtyaWdodDphdXRvO30KICAuYmxrLTlyaTBxIC5wYWdlIC5jb2x1bW4taXRlbXtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KICAuYmxrLTlyaTBxIC5wYWdlIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9CiAgLmJsay05cmkwcSAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMjEgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjIxcHggIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMTggLmxlZnQtdGl0bGV7Zm9udC1zaXplOjE4cHggIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAucGFnZSAubGVmdC1wbGF5ewogICAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICAgIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4OwogIH0KICAuYmxrLTlyaTBxIC5wYWdlIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICAgIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICAgIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKICB9Cn0KLyogVGlwb2dyYWbtYSAiTfN2aWwiIChhbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL3RpdHVsYXJlcyBhbmltYWRvcykgY29uIFNVCiAgIFBST1BJTyBicmVha3BvaW50ICg0ODBweCksIHNlcGFyYWRvIGRlbCBkZSBhcnJpYmEgKDg2MHB4LCBzb2xvIHBhcmEgYXBpbGFyCiAgIGxhIHJlamlsbGEgY29sdW1uYStub3RpY2lhKTogdW4gY29udGVuZWRvciByZWFsIGRlIG1lbm9zIGRlIDg2MHB4IGVzIG11eQogICBoYWJpdHVhbCAocC5lai4gdW5hIGNvbHVtbmEgZGUgYXJ07WN1bG8gZGUgfjcwMHB4KSB5IE5PIGVzIHVuIG3zdmlsICYjODIxMjsgY29uCiAgIHVuIPpuaWNvIGJyZWFrcG9pbnQgY29tcGFydGlkbywgbGEgdGlwb2dyYWbtYSAiRGVzayIgcXVlIGNvbmZpZ3VyYSBlbAogICB1c3VhcmlvIG5vIGxsZWdhYmEgYSB2ZXJzZSBudW5jYSBlbiBlc2UgY2FzbywgY2F5ZW5kbyBzaWVtcHJlIGEgbG9zIHZhbG9yZXMKICAgcG9yIGRlZmVjdG8gZGUgIk3zdmlsIiBzaW4gcXVlIG5hZGllIGxvIGh1YmllcmEgcGVkaWRvLiA0ODBweCBz7SBzZQogICBjb3JyZXNwb25kZSBjb24gdW4gYW5jaG8gZGUgbfN2aWwgcmVhbCAobGEgdmlzdGEgIk3zdmlsIiBkZWwgcHJvcGlvIGdlc3RvcgogICBzaW11bGEgMzc1cHgpLiBJZ3VhbCBxdWUgZWwgYnJlYWtwb2ludCBkZSBhcnJpYmEsIHNlIG9taXRlIGR1cmFudGUgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBkZSBsYSBub3RpY2lhIHByaW5jaXBhbCAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstOXJpMHEgLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstOXJpMHEgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiMwMEE3RkYgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC10aXRsZXtmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstOXJpMHEgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstOXJpMHEgLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstOXJpMHEgLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay05cmkwcSAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay05cmkwcSAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay05cmkwcSAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLTlyaTBxIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay05cmkwcSAubGVhZC1tZWRpYSBpbWcsCi5ibGstOXJpMHEgLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstOXJpMHEgLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLTlyaTBxIC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLTlyaTBxIC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay05cmkwcSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay05cmkwcSAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay05cmkwcS1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay05cmkwcSAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstOXJpMHEta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLTlyaTBxLWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstOXJpMHEta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLTlyaTBxIC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay05cmkwcS1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLTlyaTBxLWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay05cmkwcSAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstOXJpMHEgLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstOXJpMHEgLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay05cmkwcSAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLTlyaTBxIC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLTlyaTBxIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay05cmkwcSAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay05cmkwcSAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay05cmkwcSAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstOXJpMHEgLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay05cmkwcSAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL2F1dG9yIGNlbnRyYWRvcyBlbiB2ZXJ0aWNhbCBkZW50cm8gZGVsIGFsdG8KICAgc29icmFudGUgYmFqbyBsYSBjYXRlZ29y7WEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay05cmkwcSAubGVhZC1ib2R5LW1haW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpbmxpbmUtc2l6ZToxMDAlO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay05cmkwcSAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGstOXJpMHEgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay05cmkwcSAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLTlyaTBxIC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLTlyaTBxIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA0MnB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9Ci5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotMzBweDt9Ci5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXJpZ2h0OjA7fQovKiBQb3NpY2nzbiAnYm90dG9tLWZ1bGwnIGRlbCBsZWFkLWJvZHkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gaW5saW5lLXNpemUKICAgZW4gdmV6IGRlIHdpZHRoIHBvciBlbCBtaXNtbyBtb3Rpdm8gcXVlIGVsIHJlc3RvIGRlIGVzdGUgYmxvcXVlIChldml0YXIKICAgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbCB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MKICAgZGlyZWN0YW1lbnRlKS4gKi8KLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktYm90dG9tLWZ1bGwgLmxlYWQtYm9keXsKICBpbmxpbmUtc2l6ZToxMDAlOwogIG1hcmdpbjowOwogIHBhZGRpbmctdG9wOjMwcHg7CiAgcGFkZGluZy1ib3R0b206MzBweDsKICBib3JkZXI6bm9uZTsKfQovKiBFdGlxdWV0YSBkZSBleGNsdXNpdmEgKG8gdGV4dG8gcGVyc29uYWxpemFkbykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay05cmkwcSAubGVhZC1leGNsdXNpdmUtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDt6LWluZGV4OjM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtsZXR0ZXItc3BhY2luZzowLjVweDtwYWRkaW5nOjJweCA4cHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb2ludGVyLWV2ZW50czpub25lO30KLyogU2VsZWN0b3IgY29uIDMgY2xhc2VzICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKCIubGVhZC1tZWRpYSBpbWciIHRhbWJp6W4KICAgbWF0Y2hlYSBlc3RlIDxpbWc+IHkgbGUgZ2FuYWJhIGVuIGVzcGVjaWZpY2lkYWQpLiAqLwouYmxrLTlyaTBxIC5sZWFkLWV4Y2x1c2l2ZS10YWcgLmxlYWQtZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTlyaTBxIC5sZWFkLWNhdHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06c2tld1koLTZkZWcpO21hcmdpbi10b3A6LTE1cHg7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay05cmkwcSAubGVhZC1raWNrZXIsIC5ibGstOXJpMHEgLmxlYWQtc3VidGl0bGV7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7Cn0KLmJsay05cmkwcSAubGVhZC1raWNrZXJ7Zm9udC13ZWlnaHQ6NzAwO30KLmJsay05cmkwcSAubGVhZC1zdWJ0aXRsZXtmb250LXdlaWdodDo2MDA7fQovKiBUYW1h8W8vaW50ZXJsaW5lYWRvL2NvbG9yIGRlIGFudGV07XR1bG8geSBzdWJ07XR1bG8gZW4gRGVzayAodmFsb3JlcyBwb3IKICAgZGVmZWN0byBkZWwgYmxvcXVlOyBlbCBvdmVycmlkZSBkZSBN83ZpbCB2YSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywKICAgeWEgcXVlIGVsIEhUTUwgZXhwb3J0YWRvIGVzIHJlc3BvbnNpdmUgeSBubyBkZXBlbmRlIGRlIHF16SB2aXN0YSB0dXZpZXJhcwogICBzZWxlY2Npb25hZGEgZW4gZWwgZ2VzdG9yIGFsIGV4cG9ydGFyL2NvcGlhcikuICovCi5ibGstOXJpMHEgLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQouYmxrLTlyaTBxIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQovKiB0ZXh0LXdyYXA6YmFsYW5jZSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlbCBnZXN0b3IgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIGVzYSByZWdsYSk6IHJlcGFydGUgbGFzCiAgIGztbmVhcyBkZWwgdGl0dWxhciBkZSBmb3JtYSBt4XMgdW5pZm9ybWUgZGVudHJvIGRlIGNhZGEgZGlzcG9zaXRpdm8sIHNpbgogICBwcmV0ZW5kZXIgaWd1YWxhciBlbCBu+m1lcm8gZGUgbO1uZWFzIGVudHJlIHBsYXRhZm9ybWFzIGRpc3RpbnRhcy4gKi8KLmJsay05cmkwcSAubGVhZC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6MS4wMjttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstOXJpMHEgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstOXJpMHEgLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay05cmkwcSAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLTlyaTBxIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLTlyaTBxIC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstOXJpMHEgLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstOXJpMHEgLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstOXJpMHEgLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLTlyaTBxIC50aHVtYiBpbWcsCi5ibGstOXJpMHEgLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay05cmkwcSAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLTlyaTBxIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstOXJpMHEtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay05cmkwcSAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstOXJpMHEgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLTlyaTBxIC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstOXJpMHEgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstOXJpMHEgLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLTlyaTBxIC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstOXJpMHEgLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLTlyaTBxIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstOXJpMHEgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstOXJpMHEgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLTlyaTBxIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstOXJpMHEgLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstOXJpMHEgLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay05cmkwcSAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstOXJpMHEgLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstOXJpMHEgLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLTlyaTBxLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstOXJpMHEgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstOXJpMHEgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KLyogRW4gZWwgbW9kbyAnbGVmdCcgZWwgUGxheSBwYXNhIGEgbGEgZXNxdWluYSBzdXBlcmlvciBkZXJlY2hhICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9ue2xlZnQ6YXV0bztyaWdodDoxMHB4O30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLTlyaTBxIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLTlyaTBxIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstOXJpMHEgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay05cmkwcSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLTlyaTBxIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay05cmkwcSAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay05cmkwcSAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay05cmkwcSAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay05cmkwcSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLTlyaTBxIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstOXJpMHEgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLTlyaTBxIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay05cmkwcS1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstOXJpMHEgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstOXJpMHEgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstOXJpMHEgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstOXJpMHEgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstOXJpMHEgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLTlyaTBxIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTlyaTBxIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay05cmkwcSAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLTlyaTBxIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstOXJpMHEgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLTlyaTBxLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLTlyaTBxIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLTlyaTBxIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLTlyaTBxIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstOXJpMHEgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTlyaTBxIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstOXJpMHEgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay05cmkwcSAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTlyaTBxIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstOXJpMHEgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstOXJpMHEgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTlyaTBxIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay05cmkwcSAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstOXJpMHEgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay05cmkwcSAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstOXJpMHEgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLTlyaTBxIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTlyaTBxIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstOXJpMHEgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstOXJpMHEgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay05cmkwcSAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstOXJpMHEgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstOXJpMHEgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLTlyaTBxIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstOXJpMHEgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay05cmkwcSAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLTlyaTBxIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTlyaTBxIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstOXJpMHEgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay05cmkwcSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay05cmkwcSAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstOXJpMHEgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstOXJpMHEgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstOXJpMHEgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTlyaTBxIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLTlyaTBxIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstOXJpMHEiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWJvdHRvbS1mdWxsIj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9lbC1nb2JpZXJuby10aWVuZS1zb2JyZS1sYS1tZXNhLXVuYS1wcm9wdWVzdGEtcGFyYS1yZXNlcnZhci03LWVzY2Fub3MtcXVlLXNvbG8tZXNjb2dlcmlhbi1sb3MtZXNwYW5vbGVzLWVuLWVsLWV4dHJhbmplcm8tMjAyNjA5MTItMjMwNzUyLWUwZTQwZS5qcGciIGFsdD0iRWwgR29iaWVybm8gdGllbmUgc29icmUgbGEgbWVzYSB1bmEgcHJvcHVlc3RhIHBhcmEgcmVzZXJ2YXIgNyBlc2Nh8W9zIHF1ZSBz82xvIGVzY29nZXLtYW4gbG9zIGVzcGHxb2xlcyBlbiBlbCBleHRyYW5qZXJvIiBsb2FkaW5nPSJlYWdlciIgZmV0Y2hwcmlvcml0eT0iaGlnaCIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLW92ZXJsYXkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTQsMTcsMjYsMC4wMCk7Ij48L2Rpdj4KICAgICAgICAKICAgICAgICA8YnV0dG9uIGNsYXNzPSJwbGF5LWJ1dHRvbiIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InBsYXktaWNvbiI+PC9kaXY+PHNwYW4gY2xhc3M9InBsYXktdGV4dCI+UGxheTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojMDBBN0ZGO2NvbG9yOiNmZmYiPkVTUEHRQTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+RWwgR29iaWVybm8gdGllbmUgc29icmUgbGEgbWVzYSB1bmEgcHJvcHVlc3RhIHBhcmEgcmVzZXJ2YXIgNyBlc2Nh8W9zIHF1ZSBz82xvIGVzY29nZXLtYW4gbG9zIGVzcGHxb2xlcyBlbiBlbCBleHRyYW5qZXJvPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+RWwgR29iaWVybm8gdGllbmUgc29icmUgbGEgbWVzYSB1bmEgcHJvcHVlc3RhIHBhcmEgcmVzZXJ2YXIgNyBlc2Nh8W9zIHF1ZSBz82xvIGVzY29nZXLtYW4gbG9zIGVzcGHxb2xlcyBlbiBlbCBleHRyYW5qZXJvPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPlJhZmFlbCBNb2xpbmE8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvZ29iaWVybm8tdGllbmUtc29icmUtbWVzYS1wcm9wdWVzdGEtcmVzZXJ2YXItNy1lc2Nhbm9zLXF1ZS1zb2xvLWVzY29nZXJpYW4tZXNwYW5vbGVzLWV4dHJhbmplcm8tMjAyNjczNTgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iRWwgR29iaWVybm8gdGllbmUgc29icmUgbGEgbWVzYSB1bmEgcHJvcHVlc3RhIHBhcmEgcmVzZXJ2YXIgNyBlc2Nh8W9zIHF1ZSBz82xvIGVzY29nZXLtYW4gbG9zIGVzcGHxb2xlcyBlbiBlbCBleHRyYW5qZXJvIiBhcmlhLWxhYmVsPSJFbCBHb2JpZXJubyB0aWVuZSBzb2JyZSBsYSBtZXNhIHVuYSBwcm9wdWVzdGEgcGFyYSByZXNlcnZhciA3IGVzY2Hxb3MgcXVlIHPzbG8gZXNjb2dlcu1hbiBsb3MgZXNwYfFvbGVzIGVuIGVsIGV4dHJhbmplcm8iPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLTlyaTBxIC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICBmdW5jdGlvbiBmaXQoKXsKICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBiYXNlRm9udFNpemVQeCArICdweCc7CiAgICB2YXIgYXZhaWxhYmxlSGVpZ2h0ID0gbWFpbi5jbGllbnRIZWlnaHQ7CiAgICBpZiAoIWF2YWlsYWJsZUhlaWdodCkgcmV0dXJuOwogICAgLy8gVmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gZml0TGVhZFRpdGxlVG9Cb3goKSBkZWwgZ2VzdG9yOgogICAgLy8gbWFpbi5zY3JvbGxIZWlnaHQgbnVuY2EgYmFqYSBkZSBjbGllbnRIZWlnaHQgYXVucXVlIGVsIGNvbnRlbmlkbyByZWFsCiAgICAvLyBvY3VwZSBtZW5vcywgYXPtIHF1ZSBubyBzaXJ2ZSBwYXJhIGRldGVjdGFyIGN14W50byBzb2JyYSBvIGZhbHRhIGNvbgogICAgLy8gZWwgdGl0dWxhciBhY3R1YWwgJiM4MjEyOyBzZSBzdW1hIGVuIHN1IGx1Z2FyIGVsIGFsdG8gcmVhbCBkZSBjYWRhIGhpam8KICAgIC8vIFZJU0lCTEUgZGVsIGJsb3F1ZSwgc2Fsdm8gZWwgcHJvcGlvIHRpdHVsYXIsIG3hcyBlbCBodWVjbyAoImdhcCIpCiAgICAvLyBlbnRyZSBlbGxvczsgbm8gY2FtYmlhIGNvbiBlbCB0YW1h8W8gZGVsIHRpdHVsYXIsIGFz7SBxdWUgc2UgbWlkZSB1bmEKICAgIC8vIHNvbGEgdmV6LCBhbnRlcyBkZSBsYSBi+nNxdWVkYSBiaW5hcmlhLgogICAgdmFyIGdhcFB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG1haW4pLnJvd0dhcCkgfHwgcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG1haW4pLmdhcCkgfHwgMDsKICAgIHZhciB2aXNpYmxlQ2hpbGRyZW4gPSBbXS5zbGljZS5jYWxsKG1haW4uY2hpbGRyZW4pLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoYykuZGlzcGxheSAhPT0gJ25vbmUnOyB9KTsKICAgIHZhciBvdGhlcnNIZWlnaHQgPSB2aXNpYmxlQ2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gYyAhPT0gdGl0bGVFbDsgfSkucmVkdWNlKGZ1bmN0aW9uKHN1bSwgYyl7IHJldHVybiBzdW0gKyBjLm9mZnNldEhlaWdodDsgfSwgMCkKICAgICAgKyBnYXBQeCAqIE1hdGgubWF4KDAsIHZpc2libGVDaGlsZHJlbi5sZW5ndGggLSAxKTsKICAgIHZhciBhdmFpbGFibGVGb3JUaXRsZSA9IE1hdGgubWF4KDAsIGF2YWlsYWJsZUhlaWdodCAtIG90aGVyc0hlaWdodCk7CiAgICBpZiAoIWF2YWlsYWJsZUZvclRpdGxlKSByZXR1cm47CiAgICBmdW5jdGlvbiBoZWlnaHRBdFNjYWxlKHNjYWxlKXsKICAgICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IE1hdGgubWluKGJhc2VGb250U2l6ZVB4ICogc2NhbGUsIE1BWF9GT05UX1BYKSArICdweCc7CiAgICAgIHJldHVybiB0aXRsZUVsLm9mZnNldEhlaWdodDsKICAgIH0KICAgIHZhciBsbyA9IE1JTl9TQ0FMRSwgaGkgPSBNQVhfU0NBTEU7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKyl7CiAgICAgIHZhciBtaWQgPSAobG8gKyBoaSkgLyAyOwogICAgICBpZiAoaGVpZ2h0QXRTY2FsZShtaWQpIDw9IGF2YWlsYWJsZUZvclRpdGxlKSBsbyA9IG1pZDsgZWxzZSBoaSA9IG1pZDsKICAgIH0KICAgIGhlaWdodEF0U2NhbGUobG8pOwogIH0KICBmaXQoKTsKICBpZiAoZG9jdW1lbnQuZm9udHMgJiYgZG9jdW1lbnQuZm9udHMucmVhZHkpeyBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKGZpdCk7IH0KICBpZiAod2luZG93LlJlc2l6ZU9ic2VydmVyKXsgbmV3IFJlc2l6ZU9ic2VydmVyKGZpdCkub2JzZXJ2ZShhcnRpY2xlKTsgfQogIGVsc2UgeyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml0KTsgfQp9KSgpOwo8L3NjcmlwdD4=
    • El Supremo frena la Ley de Nietos pero sigue el riesgo de pucherazo
    • Vox llevará al Congreso el acuerdo vigente de repatriación de menores con Marruecos para forzar su expulsión
        • España
        • España

      Vox llevará al Congreso el acuerdo vigente de repatriación de menores con Marruecos para forzar su expulsión

      • Paula Ciordia
      • 2026-09-13 05:45
    • Los socios de Sánchez abandonan el barco: el PNV dice ahora que no descarta que Marruecos esté cantajeando al presidente
        • España
        • España

      Los socios de Sánchez abandonan el barco: el PNV dice ahora que no descarta que Marruecos esté "chantajeando" al presidente

      • Esther Jaén
      • 2026-09-13 13:13
    • Así acosa e increpa el PSOE a sus disidentes: la denuncia de una ex concejal socialista a OKDIARIO
        • España
        • España

      Así acosa e increpa el PSOE a sus disidentes: la denuncia de una ex concejal socialista a OKDIARIO

      La ex concejal socialista en el Ayuntamiento de Logroño, Eva Loza, denuncia ante OKDIARIO el acoso al que ha sido sometida por su ex formación política, tras abandonar el partido por discrepancias con la gestión de Pedro Sánchez al frente del PSOE y del Gobierno. Eva Loza fue seguida, increpada y acosada recientemente por una ex compañera en el ayuntamiento logroñés en la manifestación celebrada en la capital de La Rioja el pasado 2 de septiembre, para manifestar el apoyo al pueblo de Ceuta.
      • Esther Jaén
      • 2026-09-13 14:41
    • El éxodo de Ceuta
    • Nueva negligencia en Adamuz: la Guardia Civil detecta traviesas desnudas sin balasto junto al punto de fractura del raíl
        • España
        • España

      Nueva negligencia en Adamuz: la Guardia Civil detecta traviesas "desnudas" sin balasto junto al punto de fractura del raíl

      • Fernán González
      • 2026-09-13 14:10
    • La Fiscalía destapa que hay 4.000 menas pendientes de que se les haga la prueba de edad por falta de medios
    • El Gobierno traslada a 864 inmigrantes ilegales asentados en las calles de Ceuta a un nuevo macrocentro
        • España
        • España

      El Gobierno traslada a 864 inmigrantes ilegales asentados en las calles de Ceuta a un nuevo macrocentro

      El Gobierno ha trasladado este domingo a un total de 864 ilegales a un macrocentro de acogida recién habilitado en el barrio ceutí de Los Rosales. El Ministerio de Inclusión, Seguridad Social y Migraciones, que dirige Elma Saiz, ha confirmado la operación y ha insistido en que se ha desarrollado "de forma voluntaria y sin incidentes", con la participación de las Fuerzas y Cuerpos de Seguridad del Estado desplegadas en la ciudad autónoma.
      • Rodrigo Villar
      • 2026-09-13 13:17
    • Vox acusa a Marlaska de acabar con la estrategia contra el narco en Andalucía: ¿Qué intereses había en juego?
        • España
        • España

      Vox acusa a Marlaska de "acabar con la estrategia" contra el narco en Andalucía: "¿Qué intereses había en juego?"

      • Rodrigo Villar
      • 2026-09-13 12:35
    • Un nuevo campamento de inmigrantes pone en alerta el puerto de Ceuta: Hace falta un refuerzo policial urgente
        • España
        • España

      Un nuevo campamento de inmigrantes pone en alerta el puerto de Ceuta: "Hace falta un refuerzo policial urgente"

      • Charo Miñano
      • 2026-09-12 19:07
    • ¿Cuántos yihadistas más quedan en Ceuta?
    • Estupor en la sanidad penitenciaria de Marlaska: 3.000 presos con trastornos graves y ningún psiquiatra contratado
    • Iker Jiménez y Carmen Porter premiados en el Festival de Televisión de Vitoria por sus récords de audiencia en Horizonte
        • Cool
        • Cool

      Iker Jiménez y Carmen Porter premiados en el Festival de Televisión de Vitoria por sus récords de audiencia en Horizonte

      Iker Jiménez y Carmen Porter han recibido este sábado el reconocimiento a su labor al frente de Horizonte siendo premiados en el Festival de Televisión de Vitoria, que alcanza ya su XVIII edición. El llamado FesTVal ha destacado la labor de los dos presentadores otorgándoles este premio "por firmar su mejor temporada de audiencia desde su estreno y convertirse en el programa más visto de Cuatro la pasada temporada, un éxito que ha impulsado a Mediaset España a convertirlo en formato diario y a reforzar con él el access prime time de la cadena".
      • OKDIARIO
      • 2026-09-13 01:40
    • Hacienda se equivoca y el contribuyente paga: sus tribunales corrigen 4 de cada 10 reclamaciones
        • Economía
        • Economía

      Hacienda se equivoca y el contribuyente paga: sus tribunales corrigen 4 de cada 10 reclamaciones

      • Jose de la Morena
      • 2026-09-13 05:45
    • El coche eléctrico no salva el empleo del automóvil en Europa: los nuevos puestos no compensan los recortes
    • Motos gana también a Broncano en los despachos: 7yacción gana 6,5 millones frente a 15.000 € de Encofrados Encofrasa
        • Economía
        • Economía

      Motos gana también a Broncano en los despachos: 7yacción gana 6,5 millones frente a 15.000 € de Encofrados Encofrasa

      • Carlos Ribagorda
      • 2026-09-13 05:45
    • Uno de cada cuatro contratos de agosto duró 7 días o menos y la mitad se firmaron para máximo 3 meses
        • Economía
        • Economía

      Uno de cada cuatro contratos de agosto duró 7 días o menos y la mitad se firmaron para máximo 3 meses

      • Carlos Ribagorda
      • 2026-09-13 13:00
    • Chocolate: el pecado que nadie quiere absolver
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBUaXR1bGFyIGZpbmFsIGNhcnJ1c2VsIChIVE1MIGV4cG9ydGFkbykgKi8KICAgIC5jdi13N3cwNSAuYmctc2VjdGlvbi10aXRsZSB7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206NTBweDsKICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgfQogICAgLmN2LXc3dzA1IC5mbmQtbGluZWEgewogICAgICB3aWR0aDoxMDAlOwogICAgICBoZWlnaHQ6NXB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgICB6LWluZGV4OjE7CiAgICAgIG1hcmdpbi10b3A6LTI1cHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIC5jdi13N3cwNSAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICAgICAgZm9udC13ZWlnaHQ6OTAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgICBtYXJnaW46MDsKICAgICAgbGluZS1oZWlnaHQ6MS4yOwogICAgICBsZXR0ZXItc3BhY2luZzotMXB4OwogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgei1pbmRleDoyOwogICAgICBiYWNrZ3JvdW5kOiNmZmY7CiAgICAgIHBhZGRpbmc6NHB4IDEzcHggNHB4IDEzcHg7CiAgICAgIGJvcmRlcjoxcHggc29saWQgIzMzMzsKICAgICAgZm9udC1zaXplOjQycHg7CiAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgIH0KCiAgICAuY3Ytdzd3MDUgLmNhcm91c2VsewogICAgICAtLWdhcDoxNnB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgcGFkZGluZy1ib3R0b206NnB4OwogICAgfQogICAgLnJvdyBzZWN0aW9ueyB3aWR0aDotd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9CiAgICAuY3Ytdzd3MDUgLnNlY3Rpb257IHdpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH0KICAgIC5jdi13N3cwNSAudHJhY2t7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93LXg6aGlkZGVuOwogICAgICBzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5OwogICAgICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogICAgfQogICAgLmN2LXc3dzA1IC5jYXJkewogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgZmxleDowIDAgYXV0bzsKICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgICAgIHdpZHRoOmNhbGMoKDEwMCUgLSAzKnZhcigtLWdhcCkpLzQpOwogICAgICBhc3BlY3QtcmF0aW86OS8xNjsKICAgICAgYm9yZGVyLXJhZGl1czoxMHB4OwogICAgICBvdmVyZmxvdzpoaWRkZW47CiAgICAgIGJhY2tncm91bmQ6IzExMTsKICAgICAgaXNvbGF0aW9uOmlzb2xhdGU7CiAgICB9CiAgICAuY3Ytdzd3MDUgLmNhcmQgaW1newogICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgaW5zZXQ6MDsKICAgICAgd2lkdGg6MTAwJTsKICAgICAgaGVpZ2h0OjEwMCU7CiAgICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICBzY2FsZTogMS4wMjsKICAgIH0KICAgIC5jdi13N3cwNSAuY2FyZDpob3ZlciBpbWcsCiAgICAuY3Ytdzd3MDUgLmNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7CiAgICB9CgogICAgLmN2LXc3dzA1IC5jYXJkIHZpZGVvLnRlYXNlcnsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGluc2V0OjA7CiAgICAgIHdpZHRoOjEwMCU7CiAgICAgIGhlaWdodDoxMDAlOwogICAgICBvYmplY3QtZml0OmNvdmVyOwogICAgICBvcGFjaXR5OjA7CiAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7CiAgICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICAgIHNjYWxlOiAxLjAyOwogICAgfQogICAgLmN2LXc3dzA1IC5jYXJkLmhhcy10ZWFzZXI6aG92ZXIgaW1nLAogICAgLmN2LXc3dzA1IC5jYXJkLmhhcy10ZWFzZXI6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIG9wYWNpdHk6MDsKICAgIH0KICAgIC5jdi13N3cwNSAuY2FyZC5oYXMtdGVhc2VyOmhvdmVyIHZpZGVvLnRlYXNlciwKICAgIC5jdi13N3cwNSAuY2FyZC5oYXMtdGVhc2VyOmZvY3VzLXZpc2libGUgdmlkZW8udGVhc2VyewogICAgICBvcGFjaXR5OjE7CiAgICB9CgogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpewogICAgICAuY3Ytdzd3MDUgLmNhcmQgaW1neyB0cmFuc2l0aW9uOiBub25lOyB9CiAgICAgIC5jdi13N3cwNSAuY2FyZCB2aWRlby50ZWFzZXJ7IHRyYW5zaXRpb246bm9uZTsgfQogICAgfQoKICAgIC5jdi13N3cwNSAuc2hhZGV7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICBpbnNldDphdXRvIDAgMCAwOwogICAgICBoZWlnaHQ6NzAlOwogICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuODUpIDEwMCUpOwogICAgfQogICAgLmN2LXc3dzA1IC50aXRsZXsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGxlZnQ6MTJweDsKICAgICAgcmlnaHQ6MTJweDsKICAgICAgYm90dG9tOjEwcHg7CiAgICAgIG1hcmdpbjowOwogICAgICBjb2xvcjojZmZmOwogICAgICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OjkwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgICBkaXNwbGF5Oi13ZWJraXQtYm94OwogICAgICAtd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsKICAgIH0KICAgIC5jdi13N3cwNSAudGl0bGUudGl0bGUtbGFyZ2V7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MWVtOy13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTt9CiAgICAuY3Ytdzd3MDUgLnRpdGxlLnRpdGxlLXNtYWxse2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjFlbTstd2Via2l0LWxpbmUtY2xhbXA6NztsaW5lLWNsYW1wOjc7fQogICAgLmN2LXc3dzA1IC50aXRsZSAuYWNjZW50e2NvbG9yOnZhcigtLWFjY2VudCwgIzAwZDRmZil9CgogICAgLmN2LXc3dzA1IC5wbGF5LWJ0bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMSk7Ym9yZGVyLXJhZGl1czozNXB4O3otaW5kZXg6Mjt9CiAgICAuY3Ytdzd3MDUgLnBsYXktYnRuOjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjhweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjNweDt9CiAgICBAa2V5ZnJhbWVzIGN2LXc3dzA1UGxheUJsaW5rezAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTt9NTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsLjkpO319CgogICAgLmN2LXc3dzA1IC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi13N3cwNSAuYXJyb3d7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICB0b3A6NTAlOwogICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsKICAgICAgd2lkdGg6NDRweDsKICAgICAgaGVpZ2h0OjQ0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICAgIGJveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICAgIGN1cnNvcjpwb2ludGVyOwogICAgICB6LWluZGV4OjI7CiAgICAgIHRyYW5zaXRpb246LjNzOwogICAgfQogICAgLmN2LXc3dzA1IC5hcnJvdzpob3ZlcnsKICAgICAgYmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICB9CiAgICAuY3Ytdzd3MDUgLmFycm93OmZvY3VzewogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICB9CiAgICAuY3Ytdzd3MDUgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LXc3dzA1IC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi13N3cwNSAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC5jdi13N3cwNSAuYmctc2VjdGlvbi10aXRsZXsKICAgICAgICBtYXJnaW4tYm90dG9tOjMycHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CiAgICAgIC5jdi13N3cwNSAuZm5kLWxpbmVhewogICAgICAgIG1hcmdpbi10b3A6LTE4cHg7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7CiAgICAgIH0KICAgICAgLmN2LXc3dzA1IC5zZWN0aW9uLXRpdGxlewogICAgICAgIGZvbnQtc2l6ZToyN3B4OwogICAgICAgIHBhZGRpbmc6MnB4IDhweCAycHggOHB4OwogICAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgICAgfQogICAgICAuY3Ytdzd3MDUgLmNhcmR7CiAgICAgICAgd2lkdGg6Y2FsYygoMTAwJSAtIDEqdmFyKC0tZ2FwKSkvMik7CiAgICAgIH0KICAgICAgLmN2LXc3dzA1IC50aXRsZS50aXRsZS1sYXJnZXsKICAgICAgICBmb250LXNpemU6MjRweDsKICAgICAgfQogICAgICAuY3Ytdzd3MDUgLnRpdGxlLnRpdGxlLXNtYWxsewogICAgICAgIGZvbnQtc2l6ZToxOHB4OwogICAgICB9CiAgICAgIC5jdi13N3cwNSAuYXJyb3d7CiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IAogICAgICB9CiAgICAgIC5jdi13N3cwNSAudHJhY2t7CiAgICAgICAgb3ZlcmZsb3cteDphdXRvOwogICAgICB9CiAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImN2LXc3dzA1Ij4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIHbtZGVvcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmctc2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICBMb3Mgdu1kZW9zIGRlIENldXRhCiAgICAgICAgICA8L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIGRlc3RhY2Fkb3MiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYXJyb3cgbGVmdCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJBbnRlcmlvciI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE1IDZsLTYgNiA2IDYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcm91c2VsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhY2siIHJvbGU9Imxpc3QiPgogIAogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9DZjJ3UE1Yb1FBMCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS95b3V0dWJlLW1pbmlhdHVyYS0yMDI2MDkxMS0xMDQwNTYtY2I5NGJkLmpwZyIgYWx0PSJW7WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj5BcmRlbiA0MjxzcGFuIGNsYXNzPSJhY2NlbnQiPiBjaGFib2xhcyBkZSBpbnZhc29yZXM8L3NwYW4+IGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsJm5ic3A7PC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy8xN19DWkJld3Q2TSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogTGFzIGNoYWJvbGFzIGFyZGllcm9uIGFsIGNhZXJzZSB1bmEgdmVsYSB0cmFzIHVuYSBwZWxlYSBkZSBpbnZhc29yZXMiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBMYXMgY2hhYm9sYXMgYXJkaWVyb24gYWwgY2FlcnNlIHVuYSB2ZWxhIHRyYXMgdW5hIHBlbGVhIGRlIGludmFzb3JlcyIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEveW91dHViZS1taW5pYXR1cmEtMjAyNjA5MTEtMTA0MDQ1LTIyMDRlZS5qcGciIGFsdD0iVu1kZW86IExhcyBjaGFib2xhcyBhcmRpZXJvbiBhbCBjYWVyc2UgdW5hIHZlbGEgdHJhcyB1bmEgcGVsZWEgZGUgaW52YXNvcmVzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkxhcyBjaGFib2xhcyBhcmRpZXJvbiBhbCA8c3BhbiBjbGFzcz0iYWNjZW50Ij5jYWVyc2UgdW5hIHZlbGE8L3NwYW4+IHRyYXMgdW5hIHBlbGVhIGRlIGludmFzb3JlczwvZGl2PjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9wZEJ2akFQZWZ4cyIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogwWZyaWNhIFNvdG86ICZxdW90O0VuIDk1IGHxb3Mgbm8gaGFi7WEgdmlzdG8gbmFkYSBpZ3VhbCZxdW90OyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IMFmcmljYSBTb3RvOiAmcXVvdDtFbiA5NSBh8W9zIG5vIGhhYu1hIHZpc3RvIG5hZGEgaWd1YWwmcXVvdDsiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2FmcmljYS1zb3RvLWVuLTk1LWFub3Mtbm8taGFiaWEtdmlzdG8tbmFkYS1pZ3VhbC1taW5pYXR1cmEtMjAyNjA5MTAtMjAxMDIxLTQ2N2RhOC5qcGciIGFsdD0iVu1kZW86IMFmcmljYSBTb3RvOiAmcXVvdDtFbiA5NSBh8W9zIG5vIGhhYu1hIHZpc3RvIG5hZGEgaWd1YWwmcXVvdDsiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+wWZyaWNhIFNvdG86ICI8c3BhbiBjbGFzcz0iYWNjZW50Ij5FbiA5NSBh8W9zPC9zcGFuPiBubyBoYWLtYSB2aXN0byBuYWRhIGlndWFsIjwvZGl2PjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9CUzdDLVY2dGhwUSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogRWwgUHLtbmNpcGUgYW1hbmVjZSBjb24gY2luY28gY29jaGVzIGNhbGNpbmFkb3MiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBFbCBQcu1uY2lwZSBhbWFuZWNlIGNvbiBjaW5jbyBjb2NoZXMgY2FsY2luYWRvcyIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvZWwtcHJpbmNpcGUtYW1hbmVjZS1jb24tY2luY28tY29jaGVzLWNhbGNpbmFkb3MtbWluaWF0dXJhLTIwMjYwOTEwLTIwMTIwMi05YjhmODQuanBnIiBhbHQ9IlbtZGVvOiBFbCBQcu1uY2lwZSBhbWFuZWNlIGNvbiBjaW5jbyBjb2NoZXMgY2FsY2luYWRvcyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+PGRpdj5FbCBQcu1uY2lwZSBhbWFuZWNlIGNvbiA8c3BhbiBjbGFzcz0iYWNjZW50Ij5jaW5jbyBjb2NoZXMgY2FsY2luYWRvczwvc3Bhbj48L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvMkRBY3N2R1I3NVUiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IEdyaXRvcyBkZSAmcXVvdDuhUGVkcm8gU+FuY2hleiwgaGlqbyBkZSBwdXRhISZxdW90OyBwb3IgZWwgbnVldm8gY2FtcGFtZW50byIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IEdyaXRvcyBkZSAmcXVvdDuhUGVkcm8gU+FuY2hleiwgaGlqbyBkZSBwdXRhISZxdW90OyBwb3IgZWwgbnVldm8gY2FtcGFtZW50byIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvZ3JpdG9zLWRlLXBlZHJvLXNhbmNoZXotaGlqby1kZS1wdXRhLXBvci1lbC1udWV2by1jYW1wYW1lbnRvLW1pbmlhdHVyYS0yMDI2MDkxMC0yMDE1MDktNGVlYmRiLmpwZyIgYWx0PSJW7WRlbzogR3JpdG9zIGRlICZxdW90O6FQZWRybyBT4W5jaGV6LCBoaWpvIGRlIHB1dGEhJnF1b3Q7IHBvciBlbCBudWV2byBjYW1wYW1lbnRvIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkdyaXRvcyBkZSA8c3BhbiBjbGFzcz0iYWNjZW50Ij4ioVBlZHJvIFPhbmNoZXosIGhpam8gZGUgcHV0YSEiPC9zcGFuPiBwb3IgZWwgbnVldm8gY2FtcGFtZW50bzwvZGl2PjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy8tLVluR010RzdMbyIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogTG9zIGludmFzb3JlcyB5YSBjb25zdHJ1eWVuIGNhc2V0YXMgZW4g4XJib2xlcyBjYXNpIGNlbnRlbmFyaW9zIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogTG9zIGludmFzb3JlcyB5YSBjb25zdHJ1eWVuIGNhc2V0YXMgZW4g4XJib2xlcyBjYXNpIGNlbnRlbmFyaW9zIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9sb3MtaW52YXNvcmVzLXlhLWNvbnN0cnV5ZW4tY2FzZXRhcy1lbi1hcmJvbGVzLWNhc2ktY2VudGVuYXJpb3MtcXVlLXNvbi1wYXRyaW1vbmlvLW5hdHVyYWwtZGUtY2V1dGEtbWluaWF0dXJhLTIwMjYwOTEwLTIwMTYyMC0xNjQzY2QuanBnIiBhbHQ9IlbtZGVvOiBMb3MgaW52YXNvcmVzIHlhIGNvbnN0cnV5ZW4gY2FzZXRhcyBlbiDhcmJvbGVzIGNhc2kgY2VudGVuYXJpb3MiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+TG9zIGludmFzb3JlcyB5YSA8c3BhbiBjbGFzcz0iYWNjZW50Ij5jb25zdHJ1eWVuIGNhc2V0YXMgZW4g4XJib2xlczwvc3Bhbj4gY2FzaSBjZW50ZW5hcmlvczwvZGl2PjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9mVWNYU0dVN0FjMCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogJnF1b3Q7TGEgc2VndXJpZGFkIHF1ZSBoYXkgZW4gdW4gY29sZWdpbyBlcyB1biBjb25zZXJqZSB5IHVuIHZpZ2lsYW50ZSZxdW90OyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86ICZxdW90O0xhIHNlZ3VyaWRhZCBxdWUgaGF5IGVuIHVuIGNvbGVnaW8gZXMgdW4gY29uc2VyamUgeSB1biB2aWdpbGFudGUmcXVvdDsiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL3RvZGEtbGEtc2VndXJpZGFkLXF1ZS1oYXktcGFyYS11bi1jb2xlZ2lvLWRlLTkwMC1hbHVtbm9zLWVzLXVuLWNvbnNlcmplLXktdW4tdmlnaWxhbnRlLW1pbmlhdHVyYS0yMDI2MDkxMC0yMDE5MDYtYTQxMThlLmpwZyIgYWx0PSJW7WRlbzogJnF1b3Q7TGEgc2VndXJpZGFkIHF1ZSBoYXkgZW4gdW4gY29sZWdpbyBlcyB1biBjb25zZXJqZSB5IHVuIHZpZ2lsYW50ZSZxdW90OyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+PGRpdj4iTGEgc2VndXJpZGFkIHF1ZSBoYXkgZW4gdW4gY29sZWdpbyBlcyA8c3BhbiBjbGFzcz0iYWNjZW50Ij51biBjb25zZXJqZSB5IHVuIHZpZ2lsYW50ZTwvc3Bhbj4iPC9kaXY+PC9oMj4KICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbigpewogICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jdi13N3cwNScpOwogICAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgICAgdmFyIHRyYWNrID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2snKTsKICAgICAgaWYgKCF0cmFjaykgcmV0dXJuOwoKICAgICAgdmFyIGFycm93cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmFycm93Jyk7CiAgICAgIHZhciBHQVAgPSAxNjsKCiAgICAgIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgICAgIHZhciBmaXJzdCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNhcmQnKTsKICAgICAgICBpZiAoIWZpcnN0KSByZXR1cm4gMDsKICAgICAgICByZXR1cm4gZmlyc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldENhcmRzUGVyUGFnZSgpewogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiA0OwogICAgICB9CgogICAgICAvLyBIdWVjbyBhIGxhIGRlcmVjaGEgZGVsIHRyYWNrID0gMTAlIGRlbCBhbmNobyBkZSBVTkEgdGFyamV0YSAobm8gZGVsCiAgICAgIC8vIGNvbnRlbmVkb3IpLCBwYXJhIHF1ZSBzZSBpbnR1eWEgdmlzdWFsbWVudGUgcXVlIGhheSBt4XMgdu1kZW9zLgogICAgICBmdW5jdGlvbiB1cGRhdGVQYWRIaW50KCl7CiAgICAgICAgdmFyIGNhcmRXID0gZ2V0Q2FyZFdpZHRoKCk7CiAgICAgICAgaWYgKCFjYXJkVykgcmV0dXJuOwogICAgICAgIHRyYWNrLnN0eWxlLnBhZGRpbmdSaWdodCA9IE1hdGgucm91bmQoY2FyZFcgKiAwLjEwKSArICdweCc7CiAgICAgIH0KICAgICAgdXBkYXRlUGFkSGludCgpOwogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlUGFkSGludCk7CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgdmFyIHRlYXNlckNhcmRzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZC5oYXMtdGVhc2VyJyk7CiAgICAgIHRlYXNlckNhcmRzLmZvckVhY2goZnVuY3Rpb24oY2FyZCl7CiAgICAgICAgdmFyIHYgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvLnRlYXNlcicpOwogICAgICAgIGlmICghdikgcmV0dXJuOwoKICAgICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbigpewogICAgICAgICAgdHJ5ewogICAgICAgICAgICB2LmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgdmFyIHAgPSB2LnBsYXkoKTsKICAgICAgICAgICAgaWYgKHAgJiYgdHlwZW9mIHAudGhlbiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgIHAuY2F0Y2goZnVuY3Rpb24oKXt9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfWNhdGNoKGUpe30KICAgICAgICB9KTsKCiAgICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsKICAgICAgICAgICAgdi5wYXVzZSgpOwogICAgICAgICAgICB2LmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgIH1jYXRjaChlKXt9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSkoKTsKICAgIDwvc2NyaXB0Pg==
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBUaXR1bGFyIGZpbmFsIGNhcnJ1c2VsIChIVE1MIGV4cG9ydGFkbykgKi8KICAgIC5jdi00MGM2eCAuYmctc2VjdGlvbi10aXRsZSB7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206NTBweDsKICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgfQogICAgLmN2LTQwYzZ4IC5mbmQtbGluZWEgewogICAgICB3aWR0aDoxMDAlOwogICAgICBoZWlnaHQ6NXB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgICB6LWluZGV4OjE7CiAgICAgIG1hcmdpbi10b3A6LTI1cHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIC5jdi00MGM2eCAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICAgICAgZm9udC13ZWlnaHQ6OTAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgICBtYXJnaW46MDsKICAgICAgbGluZS1oZWlnaHQ6MS4yOwogICAgICBsZXR0ZXItc3BhY2luZzotMXB4OwogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgei1pbmRleDoyOwogICAgICBiYWNrZ3JvdW5kOiNmZmY7CiAgICAgIHBhZGRpbmc6NHB4IDEzcHggNHB4IDEzcHg7CiAgICAgIGJvcmRlcjoxcHggc29saWQgIzMzMzsKICAgICAgZm9udC1zaXplOjQycHg7CiAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgIH0KCiAgICAuY3YtNDBjNnggLmNhcm91c2VsewogICAgICAtLWdhcDoxNnB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgcGFkZGluZy1ib3R0b206NnB4OwogICAgfQogICAgLnJvdyBzZWN0aW9ueyB3aWR0aDotd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9CiAgICAuY3YtNDBjNnggLnNlY3Rpb257IHdpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH0KICAgIC5jdi00MGM2eCAudHJhY2t7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93LXg6aGlkZGVuOwogICAgICBzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5OwogICAgICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogICAgfQogICAgLmN2LTQwYzZ4IC5jYXJkewogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgZmxleDowIDAgYXV0bzsKICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgICAgIHdpZHRoOmNhbGMoKDEwMCUgLSAzKnZhcigtLWdhcCkpLzQpOwogICAgICBhc3BlY3QtcmF0aW86OS8xNjsKICAgICAgYm9yZGVyLXJhZGl1czoxMHB4OwogICAgICBvdmVyZmxvdzpoaWRkZW47CiAgICAgIGJhY2tncm91bmQ6IzExMTsKICAgICAgaXNvbGF0aW9uOmlzb2xhdGU7CiAgICB9CiAgICAuY3YtNDBjNnggLmNhcmQgaW1newogICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgaW5zZXQ6MDsKICAgICAgd2lkdGg6MTAwJTsKICAgICAgaGVpZ2h0OjEwMCU7CiAgICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICBzY2FsZTogMS4wMjsKICAgIH0KICAgIC5jdi00MGM2eCAuY2FyZDpob3ZlciBpbWcsCiAgICAuY3YtNDBjNnggLmNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7CiAgICB9CgogICAgLmN2LTQwYzZ4IC5jYXJkIHZpZGVvLnRlYXNlcnsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGluc2V0OjA7CiAgICAgIHdpZHRoOjEwMCU7CiAgICAgIGhlaWdodDoxMDAlOwogICAgICBvYmplY3QtZml0OmNvdmVyOwogICAgICBvcGFjaXR5OjA7CiAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7CiAgICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICAgIHNjYWxlOiAxLjAyOwogICAgfQogICAgLmN2LTQwYzZ4IC5jYXJkLmhhcy10ZWFzZXI6aG92ZXIgaW1nLAogICAgLmN2LTQwYzZ4IC5jYXJkLmhhcy10ZWFzZXI6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIG9wYWNpdHk6MDsKICAgIH0KICAgIC5jdi00MGM2eCAuY2FyZC5oYXMtdGVhc2VyOmhvdmVyIHZpZGVvLnRlYXNlciwKICAgIC5jdi00MGM2eCAuY2FyZC5oYXMtdGVhc2VyOmZvY3VzLXZpc2libGUgdmlkZW8udGVhc2VyewogICAgICBvcGFjaXR5OjE7CiAgICB9CgogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpewogICAgICAuY3YtNDBjNnggLmNhcmQgaW1neyB0cmFuc2l0aW9uOiBub25lOyB9CiAgICAgIC5jdi00MGM2eCAuY2FyZCB2aWRlby50ZWFzZXJ7IHRyYW5zaXRpb246bm9uZTsgfQogICAgfQoKICAgIC5jdi00MGM2eCAuc2hhZGV7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICBpbnNldDphdXRvIDAgMCAwOwogICAgICBoZWlnaHQ6NzAlOwogICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuODUpIDEwMCUpOwogICAgfQogICAgLmN2LTQwYzZ4IC50aXRsZXsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGxlZnQ6MTJweDsKICAgICAgcmlnaHQ6MTJweDsKICAgICAgYm90dG9tOjEwcHg7CiAgICAgIG1hcmdpbjowOwogICAgICBjb2xvcjojZmZmOwogICAgICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OjkwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgICBkaXNwbGF5Oi13ZWJraXQtYm94OwogICAgICAtd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsKICAgIH0KICAgIC5jdi00MGM2eCAudGl0bGUudGl0bGUtbGFyZ2V7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MWVtOy13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTt9CiAgICAuY3YtNDBjNnggLnRpdGxlLnRpdGxlLXNtYWxse2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjFlbTstd2Via2l0LWxpbmUtY2xhbXA6NztsaW5lLWNsYW1wOjc7fQogICAgLmN2LTQwYzZ4IC50aXRsZSAuYWNjZW50e2NvbG9yOnZhcigtLWFjY2VudCwgIzAwZDRmZil9CgogICAgLmN2LTQwYzZ4IC5wbGF5LWJ0bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMSk7Ym9yZGVyLXJhZGl1czozNXB4O3otaW5kZXg6Mjt9CiAgICAuY3YtNDBjNnggLnBsYXktYnRuOjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjhweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjNweDt9CiAgICBAa2V5ZnJhbWVzIGN2LTQwYzZ4UGxheUJsaW5rezAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTt9NTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsLjkpO319CgogICAgLmN2LTQwYzZ4IC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi00MGM2eCAuYXJyb3d7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICB0b3A6NTAlOwogICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsKICAgICAgd2lkdGg6NDRweDsKICAgICAgaGVpZ2h0OjQ0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICAgIGJveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICAgIGN1cnNvcjpwb2ludGVyOwogICAgICB6LWluZGV4OjI7CiAgICAgIHRyYW5zaXRpb246LjNzOwogICAgfQogICAgLmN2LTQwYzZ4IC5hcnJvdzpob3ZlcnsKICAgICAgYmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICB9CiAgICAuY3YtNDBjNnggLmFycm93OmZvY3VzewogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICB9CiAgICAuY3YtNDBjNnggLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LTQwYzZ4IC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi00MGM2eCAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC5jdi00MGM2eCAuYmctc2VjdGlvbi10aXRsZXsKICAgICAgICBtYXJnaW4tYm90dG9tOjMycHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CiAgICAgIC5jdi00MGM2eCAuZm5kLWxpbmVhewogICAgICAgIG1hcmdpbi10b3A6LTE4cHg7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7CiAgICAgIH0KICAgICAgLmN2LTQwYzZ4IC5zZWN0aW9uLXRpdGxlewogICAgICAgIGZvbnQtc2l6ZToyN3B4OwogICAgICAgIHBhZGRpbmc6MnB4IDhweCAycHggOHB4OwogICAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgICAgfQogICAgICAuY3YtNDBjNnggLmNhcmR7CiAgICAgICAgd2lkdGg6Y2FsYygoMTAwJSAtIDEqdmFyKC0tZ2FwKSkvMik7CiAgICAgIH0KICAgICAgLmN2LTQwYzZ4IC50aXRsZS50aXRsZS1sYXJnZXsKICAgICAgICBmb250LXNpemU6MjRweDsKICAgICAgfQogICAgICAuY3YtNDBjNnggLnRpdGxlLnRpdGxlLXNtYWxsewogICAgICAgIGZvbnQtc2l6ZToxOHB4OwogICAgICB9CiAgICAgIC5jdi00MGM2eCAuYXJyb3d7CiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IAogICAgICB9CiAgICAgIC5jdi00MGM2eCAudHJhY2t7CiAgICAgICAgb3ZlcmZsb3cteDphdXRvOwogICAgICB9CiAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImN2LTQwYzZ4Ij4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIHbtZGVvcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmctc2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICBMb3Mgdu1kZW9zIGRlIENldXRhCiAgICAgICAgICA8L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIGRlc3RhY2Fkb3MiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYXJyb3cgbGVmdCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJBbnRlcmlvciI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE1IDZsLTYgNiA2IDYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcm91c2VsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhY2siIHJvbGU9Imxpc3QiPgogIAogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9DZjJ3UE1Yb1FBMCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS95b3V0dWJlLW1pbmlhdHVyYS0yMDI2MDkxMS0xMDQwNTYtY2I5NGJkLmpwZyIgYWx0PSJW7WRlbzogQXJkZW4gNDIgY2hhYm9sYXMgZGUgaW52YXNvcmVzIGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj5BcmRlbiA0MjxzcGFuIGNsYXNzPSJhY2NlbnQiPiBjaGFib2xhcyBkZSBpbnZhc29yZXM8L3NwYW4+IGFjYW1wYWRvcyBlbiBlbCBUYXJhamFsJm5ic3A7PC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy8xN19DWkJld3Q2TSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogTGFzIGNoYWJvbGFzIGFyZGllcm9uIGR1cmFudGWgdW5hIHBlbGVhIGRlIGludmFzb3JlcyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IExhcyBjaGFib2xhcyBhcmRpZXJvbiBkdXJhbnRloHVuYSBwZWxlYSBkZSBpbnZhc29yZXMiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL3lvdXR1YmUtbWluaWF0dXJhLTIwMjYwOTExLTEwNDA0NS0yMjA0ZWUuanBnIiBhbHQ9IlbtZGVvOiBMYXMgY2hhYm9sYXMgYXJkaWVyb24gZHVyYW50ZaB1bmEgcGVsZWEgZGUgaW52YXNvcmVzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkxhcyBjaGFib2xhcyBhcmRpZXJvbiA8c3BhbiBjbGFzcz0iYWNjZW50Ij5kdXJhbnRlJm5ic3A7dW5hIHBlbGVhPC9zcGFuPiBkZSBpbnZhc29yZXM8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvcGRCdmpBUGVmeHMiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IMFmcmljYSBTb3RvOiAmcXVvdDtFbiA5NSBh8W9zIG5vIGhhYu1hIHZpc3RvIG5hZGEgaWd1YWwmcXVvdDsiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiDBZnJpY2EgU290bzogJnF1b3Q7RW4gOTUgYfFvcyBubyBoYWLtYSB2aXN0byBuYWRhIGlndWFsJnF1b3Q7IgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9hZnJpY2Etc290by1lbi05NS1hbm9zLW5vLWhhYmlhLXZpc3RvLW5hZGEtaWd1YWwtbWluaWF0dXJhLTIwMjYwOTEwLTIwMTAyMS00NjdkYTguanBnIiBhbHQ9IlbtZGVvOiDBZnJpY2EgU290bzogJnF1b3Q7RW4gOTUgYfFvcyBubyBoYWLtYSB2aXN0byBuYWRhIGlndWFsJnF1b3Q7IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PsFmcmljYSBTb3RvOiAiPHNwYW4gY2xhc3M9ImFjY2VudCI+RW4gOTUgYfFvczwvc3Bhbj4gbm8gaGFi7WEgdmlzdG8gbmFkYSBpZ3VhbCI8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvQlM3Qy1WNnRocFEiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IEVsIFBy7W5jaXBlIGFtYW5lY2UgY29uIGNpbmNvIGNvY2hlcyBjYWxjaW5hZG9zIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogRWwgUHLtbmNpcGUgYW1hbmVjZSBjb24gY2luY28gY29jaGVzIGNhbGNpbmFkb3MiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VsLXByaW5jaXBlLWFtYW5lY2UtY29uLWNpbmNvLWNvY2hlcy1jYWxjaW5hZG9zLW1pbmlhdHVyYS0yMDI2MDkxMC0yMDEyMDItOWI4Zjg0LmpwZyIgYWx0PSJW7WRlbzogRWwgUHLtbmNpcGUgYW1hbmVjZSBjb24gY2luY28gY29jaGVzIGNhbGNpbmFkb3MiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+RWwgUHLtbmNpcGUgYW1hbmVjZSBjb24gPHNwYW4gY2xhc3M9ImFjY2VudCI+Y2luY28gY29jaGVzIGNhbGNpbmFkb3M8L3NwYW4+PC9kaXY+PC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8veW91dHViZS5jb20vc2hvcnRzLzJEQWNzdkdSNzVVIgogICAgICAgICAgIHRhcmdldD0iX3RvcCIKICAgICAgICAgICB0aXRsZT0iVmVyIHbtZGVvOiBHcml0b3MgZGUgJnF1b3Q7oVBlZHJvIFPhbmNoZXosIGhpam8gZGUgcHV0YSEmcXVvdDsgcG9yIGVsIG51ZXZvIGNhbXBhbWVudG8iCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBHcml0b3MgZGUgJnF1b3Q7oVBlZHJvIFPhbmNoZXosIGhpam8gZGUgcHV0YSEmcXVvdDsgcG9yIGVsIG51ZXZvIGNhbXBhbWVudG8iCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2dyaXRvcy1kZS1wZWRyby1zYW5jaGV6LWhpam8tZGUtcHV0YS1wb3ItZWwtbnVldm8tY2FtcGFtZW50by1taW5pYXR1cmEtMjAyNjA5MTAtMjAxNTA5LTRlZWJkYi5qcGciIGFsdD0iVu1kZW86IEdyaXRvcyBkZSAmcXVvdDuhUGVkcm8gU+FuY2hleiwgaGlqbyBkZSBwdXRhISZxdW90OyBwb3IgZWwgbnVldm8gY2FtcGFtZW50byIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+PGRpdj5Hcml0b3MgZGUgPHNwYW4gY2xhc3M9ImFjY2VudCI+IqFQZWRybyBT4W5jaGV6LCBoaWpvIGRlIHB1dGEhIjwvc3Bhbj4gcG9yIGVsIG51ZXZvIGNhbXBhbWVudG88L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvLS1ZbkdNdEc3TG8iCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IExvcyBpbnZhc29yZXMgeWEgY29uc3RydXllbiBjYXNldGFzIGVuIOFyYm9sZXMgY2FzaSBjZW50ZW5hcmlvcyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IExvcyBpbnZhc29yZXMgeWEgY29uc3RydXllbiBjYXNldGFzIGVuIOFyYm9sZXMgY2FzaSBjZW50ZW5hcmlvcyIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvbG9zLWludmFzb3Jlcy15YS1jb25zdHJ1eWVuLWNhc2V0YXMtZW4tYXJib2xlcy1jYXNpLWNlbnRlbmFyaW9zLXF1ZS1zb24tcGF0cmltb25pby1uYXR1cmFsLWRlLWNldXRhLW1pbmlhdHVyYS0yMDI2MDkxMC0yMDE2MjAtMTY0M2NkLmpwZyIgYWx0PSJW7WRlbzogTG9zIGludmFzb3JlcyB5YSBjb25zdHJ1eWVuIGNhc2V0YXMgZW4g4XJib2xlcyBjYXNpIGNlbnRlbmFyaW9zIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkxvcyBpbnZhc29yZXMgeWEgPHNwYW4gY2xhc3M9ImFjY2VudCI+Y29uc3RydXllbiBjYXNldGFzIGVuIOFyYm9sZXM8L3NwYW4+IGNhc2kgY2VudGVuYXJpb3M8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvZlVjWFNHVTdBYzAiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86ICZxdW90O0xhIHNlZ3VyaWRhZCBxdWUgaGF5IGVuIHVuIGNvbGVnaW8gZXMgdW4gY29uc2VyamUgeSB1biB2aWdpbGFudGUmcXVvdDsiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiAmcXVvdDtMYSBzZWd1cmlkYWQgcXVlIGhheSBlbiB1biBjb2xlZ2lvIGVzIHVuIGNvbnNlcmplIHkgdW4gdmlnaWxhbnRlJnF1b3Q7IgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS90b2RhLWxhLXNlZ3VyaWRhZC1xdWUtaGF5LXBhcmEtdW4tY29sZWdpby1kZS05MDAtYWx1bW5vcy1lcy11bi1jb25zZXJqZS15LXVuLXZpZ2lsYW50ZS1taW5pYXR1cmEtMjAyNjA5MTAtMjAxOTA2LWE0MTE4ZS5qcGciIGFsdD0iVu1kZW86ICZxdW90O0xhIHNlZ3VyaWRhZCBxdWUgaGF5IGVuIHVuIGNvbGVnaW8gZXMgdW4gY29uc2VyamUgeSB1biB2aWdpbGFudGUmcXVvdDsiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+IkxhIHNlZ3VyaWRhZCBxdWUgaGF5IGVuIHVuIGNvbGVnaW8gZXMgPHNwYW4gY2xhc3M9ImFjY2VudCI+dW4gY29uc2VyamUgeSB1biB2aWdpbGFudGU8L3NwYW4+IjwvZGl2PjwvaDI+CiAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3NlY3Rpb24+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQ+CiAgICAoZnVuY3Rpb24oKXsKICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY3YtNDBjNngnKTsKICAgICAgaWYgKCFyb290KSByZXR1cm47CiAgICAgIHZhciB0cmFjayA9IHJvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrJyk7CiAgICAgIGlmICghdHJhY2spIHJldHVybjsKCiAgICAgIHZhciBhcnJvd3MgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hcnJvdycpOwogICAgICB2YXIgR0FQID0gMTY7CgogICAgICBmdW5jdGlvbiBnZXRDYXJkV2lkdGgoKXsKICAgICAgICB2YXIgZmlyc3QgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5jYXJkJyk7CiAgICAgICAgaWYgKCFmaXJzdCkgcmV0dXJuIDA7CiAgICAgICAgcmV0dXJuIGZpcnN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwogICAgICB9CgogICAgICBmdW5jdGlvbiBnZXRDYXJkc1BlclBhZ2UoKXsKICAgICAgICByZXR1cm4gKHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCkgPyAyIDogNDsKICAgICAgfQoKICAgICAgLy8gSHVlY28gYSBsYSBkZXJlY2hhIGRlbCB0cmFjayA9IDEwJSBkZWwgYW5jaG8gZGUgVU5BIHRhcmpldGEgKG5vIGRlbAogICAgICAvLyBjb250ZW5lZG9yKSwgcGFyYSBxdWUgc2UgaW50dXlhIHZpc3VhbG1lbnRlIHF1ZSBoYXkgbeFzIHbtZGVvcy4KICAgICAgZnVuY3Rpb24gdXBkYXRlUGFkSGludCgpewogICAgICAgIHZhciBjYXJkVyA9IGdldENhcmRXaWR0aCgpOwogICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICB0cmFjay5zdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLnJvdW5kKGNhcmRXICogMC4xMCkgKyAncHgnOwogICAgICB9CiAgICAgIHVwZGF0ZVBhZEhpbnQoKTsKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZVBhZEhpbnQpOwoKICAgICAgYXJyb3dzLmZvckVhY2goZnVuY3Rpb24oYnRuKXsKICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIHZhciBkaXIgPSB0aGlzLmNsYXNzTGlzdC5jb250YWlucygnbGVmdCcpID8gLTEgOiAxOwogICAgICAgICAgdmFyIGNhcmRXID0gZ2V0Q2FyZFdpZHRoKCk7CiAgICAgICAgICBpZiAoIWNhcmRXKSByZXR1cm47CiAgICAgICAgICB2YXIgc3RlcCA9IChjYXJkVyArIEdBUCkgKiBnZXRDYXJkc1BlclBhZ2UoKSAqIGRpcjsKICAgICAgICAgIHRyYWNrLnNjcm9sbEJ5KHsgbGVmdDogc3RlcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHZhciB0ZWFzZXJDYXJkcyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmNhcmQuaGFzLXRlYXNlcicpOwogICAgICB0ZWFzZXJDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uKGNhcmQpewogICAgICAgIHZhciB2ID0gY2FyZC5xdWVyeVNlbGVjdG9yKCd2aWRlby50ZWFzZXInKTsKICAgICAgICBpZiAoIXYpIHJldHVybjsKCiAgICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsKICAgICAgICAgICAgdi5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICAgIHZhciBwID0gdi5wbGF5KCk7CiAgICAgICAgICAgIGlmIChwICYmIHR5cGVvZiBwLnRoZW4gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICBwLmNhdGNoKGZ1bmN0aW9uKCl7fSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH1jYXRjaChlKXt9CiAgICAgICAgfSk7CgogICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0cnl7CiAgICAgICAgICAgIHYucGF1c2UoKTsKICAgICAgICAgICAgdi5jdXJyZW50VGltZSA9IDA7CiAgICAgICAgICB9Y2F0Y2goZSl7fQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pKCk7CiAgICA8L3NjcmlwdD4=
    • Hace cuatro años se oyó: ¡La reina ha muerto, viva el rey!
    • Sube & Baja, por Jaime Peñafiel: semana del 5 al 11 de septiembre
    • La IA en medicina, el trabajo, la seguridad jurídica y los medios centrarán la III Jornada OKINNOVA
    • Güler sí que es intocable
    • OK AL DÍA

    • Quitar todos los dispositivos electrónicos de la mesita de noche: para qué sirve y cuáles son sus ventajas según el Feng Shui
        • Curiosidades
        • Curiosidades

      Quitar todos los dispositivos electrónicos de la mesita de noche: para qué sirve

      • Ana López Vera
      • 2026-09-13 10:30
    • La psicología tiene la teoría de que las personas que se ríen en momentos serios no son insensibles, sólo tratan de gestionar las emociones como buenamente pueden
        • Curiosidades
        • Curiosidades

      las personas que se ríen en momentos serios no son insensibles

      • Aitana Pascual
      • 2026-09-13 10:32
    • Eleanor Roosevelt y la frase que sigue inspirando: El futuro pertenece a aquellos que creen en la belleza de sus sueños
        • Curiosidades
        • Curiosidades

      Eleanor Roosevelt y la frase que sigue inspirando: "El futuro pertenece a aquellos que creen en la belleza de sus sueños"

      "El futuro pertenece a aquellos que creen en la belleza de sus sueños". Esta célebre frase de Eleanor Roosevelt ha trascendido generaciones y continúa siendo una de las reflexiones más compartidas sobre el valor de la esperanza, la perseverancia y la confianza en uno mismo. Su mensaje, sencillo pero profundo, recuerda que las grandes transformaciones comienzan con una idea y con la determinación de quienes se atreven a hacerla realidad.
      • Aitana Pascual
      • 2026-09-13 10:31
    • La reflexión de Gabriel García Márquez sobre la vida que te hará pensar: La vida no es sino una continua sucesión de oportunidades para sobrevivir
        • Curiosidades
        • Curiosidades

      Gabriel García Márquez: "La vida no es sino una continua sucesión de oportunidades para sobrevivir"

      • Aitana Pascual
      • 2026-09-13 10:33
    • María Montessori, pedagoga italiana, sobre la educación: “Nunca ayudes a un niño en una tarea en la que siente que puede tener éxito”
        • Curiosidades
        • Curiosidades

      María Montessori: "Nunca ayudes a un niño en una tarea en la que siente que puede tener éxito"

      • Ángel Pérez
      • 2026-09-13 09:55
    • La psicología dice que las personas que corren la silla después de levantarse no lo hacen porque sean obedientes sino porque son disciplinadas y tienen atención social
        • Curiosidades
        • Curiosidades

      las personas que corren la silla después de levantarse no lo hacen porque sean obedientes

      • Ángel Pérez
      • 2026-09-13 09:56
    • La psicología llega a la conclusión de que las personas que dan las gracias a los coches cuando cruzan la calle no lo hacen por amabilidad sino que es un reconocimiento social
        • Curiosidades
        • Curiosidades

      las personas que dan las gracias a los coches cuando cruzan la calle no lo hacen por amabilidad

      • Ángel Pérez
      • 2026-09-13 09:56
    • La reflexión de Juana de Arco que sigue emocionando seis siglos después: Es mejor estar sola con Dios. Su amistad no me fallará, ni su consejo ni su amor
        • Curiosidades
        • Curiosidades

      Juana de Arco: "Es mejor estar sola con Dios. Su amistad no me fallará, ni su consejo ni su amor"

      • Aitana Pascual
      • 2026-09-13 10:33
    • Miguel de Unamuno sobre cómo ser verdaderamente feliz: No hay más felicidad que la de amar lo que nos hace sufrir
        • Curiosidades
        • Curiosidades

      Unamuno: "No hay más felicidad que la de amar lo que nos hace sufrir"

      • Aitana Pascual
      • 2026-09-13 10:34
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi16bTRidiAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi16bTRidiAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXptNGJ2IC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3Ytem00YnYgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXptNGJ2IC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXptNGJ2IC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgLmN2LXptNGJ2IC50cmFjazo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfQogICAgLmN2LXptNGJ2IC5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7d2lkdGg6Y2FsYygoMTAwJSAtIDIqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8zKTthc3BlY3QtcmF0aW86OS8xNjtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZX0KICAgIC5jdi16bTRidiAuY2FyZC5pcy1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9CgogICAgLmN2LXptNGJ2IC50aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlO3RyYW5zZm9ybTpzY2FsZSgxLjAxKX0KICAgIC5jdi16bTRidiAuY2FyZDpob3ZlciAudGh1bWIsLmN2LXptNGJ2IC5jYXJkOmZvY3VzLXZpc2libGUgLnRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0KICAgIC8qIFNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvczogc2UgdXNhbiBjb250cm9sZXMgbmF0aXZvcyBkZWwgcGxheWVyICovCgogICAgLmN2LXptNGJ2IC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi16bTRidiAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKTtib3gtc2hhZG93OjAgNnB4IDE2cHggcmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0cmFuc2l0aW9uOi4zc30KICAgIC5jdi16bTRidiAuYXJyb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZn0KICAgIC5jdi16bTRidiAuYXJyb3c6Zm9jdXN7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpfQogICAgLmN2LXptNGJ2IC5hcnJvdyBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0KICAgIC5jdi16bTRidiAuYXJyb3cubGVmdHtsZWZ0OjEwcHh9CiAgICAuY3Ytem00YnYgLmFycm93LnJpZ2h0e3JpZ2h0OjEwcHh9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogICAgICAvKiBFbiBt83ZpbCwgZWwgY29udGVuZWRvciBvY3VwYSB0b2RvIGVsIGFuY2hvICovCiAgICAgIC5jdi16bTRidiAuc2VjdGlvbnttYXgtd2lkdGg6MTAwJX0KICAgICAgLmN2LXptNGJ2IC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CiAgICAgIC5jdi16bTRidiAuY2Fyb3VzZWx7LS1wZWVrOjEyJX0KICAgICAgLyogMiB0YXJqZXRhcyBjb21wbGV0YXMgKyB1biBwZWVrIGRlIGxhIDOqICovCiAgICAgIC5jdi16bTRidiAuY2FyZHt3aWR0aDpjYWxjKCgxMDAlIC0gNCp2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzEpfQogICAgICAuY3Ytem00YnYgLmFycm93e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fQogICAgICAuY3Ytem00YnYgLnRyYWNre292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJjdi16bTRidiI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBhcmlhLWxhYmVsPSJDYXJydXNlbCBkZSB27WRlb3MgKFNob3J0cykiPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Mb3MgJ3Nob3J0cycgZGUgT0tESUFSSU88L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy83STNwR3RYRzdaTSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjdJM3BHdFhHN1pNIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvN0kzcEd0WEc3Wk0vaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvVzdnYjhhYzhMMzAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJXN2diOGFjOEwzMCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1c3Z2I4YWM4TDMwL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL2J1MkN5b0FwX1FRIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iYnUyQ3lvQXBfUVEiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9idTJDeW9BcF9RUS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy8yS3o3VUNTWU9PRSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjJLejdVQ1NZT09FIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvMkt6N1VDU1lPT0UvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMveGpycEx2cUxVN3ciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJ4anJwTHZxTFU3dyIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3hqcnBMdnFMVTd3L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL1hHdmp6THdEMFZjIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iWEd2anpMd0QwVmMiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9YR3Zqekx3RDBWYy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbigpewogICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jdi16bTRidicpOwogICAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgICAgdmFyIHRyYWNrID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2snKTsKICAgICAgaWYgKCF0cmFjaykgcmV0dXJuOwoKICAgICAgdmFyIGFycm93cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmFycm93Jyk7CiAgICAgIHZhciBHQVAgPSAxNjsKCiAgICAgIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgICAgIHZhciBmaXJzdCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNhcmQnKTsKICAgICAgICBpZiAoIWZpcnN0KSByZXR1cm4gMDsKICAgICAgICByZXR1cm4gZmlyc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldENhcmRzUGVyUGFnZSgpewogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiA0OwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi16bTRidiAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi16bTRidiAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXptNGJ2IC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3Ytem00YnYgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXptNGJ2IC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXptNGJ2IC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgLmN2LXptNGJ2IC50cmFjazo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfQogICAgLmN2LXptNGJ2IC5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7d2lkdGg6Y2FsYygoMTAwJSAtIDIqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8zKTthc3BlY3QtcmF0aW86OS8xNjtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZX0KICAgIC5jdi16bTRidiAuY2FyZC5pcy1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9CgogICAgLmN2LXptNGJ2IC50aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlO3RyYW5zZm9ybTpzY2FsZSgxLjAxKX0KICAgIC5jdi16bTRidiAuY2FyZDpob3ZlciAudGh1bWIsLmN2LXptNGJ2IC5jYXJkOmZvY3VzLXZpc2libGUgLnRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0KICAgIC8qIFNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvczogc2UgdXNhbiBjb250cm9sZXMgbmF0aXZvcyBkZWwgcGxheWVyICovCgogICAgLmN2LXptNGJ2IC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi16bTRidiAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKTtib3gtc2hhZG93OjAgNnB4IDE2cHggcmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0cmFuc2l0aW9uOi4zc30KICAgIC5jdi16bTRidiAuYXJyb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZn0KICAgIC5jdi16bTRidiAuYXJyb3c6Zm9jdXN7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpfQogICAgLmN2LXptNGJ2IC5hcnJvdyBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0KICAgIC5jdi16bTRidiAuYXJyb3cubGVmdHtsZWZ0OjEwcHh9CiAgICAuY3Ytem00YnYgLmFycm93LnJpZ2h0e3JpZ2h0OjEwcHh9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogICAgICAvKiBFbiBt83ZpbCwgZWwgY29udGVuZWRvciBvY3VwYSB0b2RvIGVsIGFuY2hvICovCiAgICAgIC5jdi16bTRidiAuc2VjdGlvbnttYXgtd2lkdGg6MTAwJX0KICAgICAgLmN2LXptNGJ2IC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CiAgICAgIC5jdi16bTRidiAuY2Fyb3VzZWx7LS1wZWVrOjEyJX0KICAgICAgLyogMiB0YXJqZXRhcyBjb21wbGV0YXMgKyB1biBwZWVrIGRlIGxhIDOqICovCiAgICAgIC5jdi16bTRidiAuY2FyZHt3aWR0aDpjYWxjKCgxMDAlIC0gNCp2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzEpfQogICAgICAuY3Ytem00YnYgLmFycm93e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fQogICAgICAuY3Ytem00YnYgLnRyYWNre292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJjdi16bTRidiI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBhcmlhLWxhYmVsPSJDYXJydXNlbCBkZSB27WRlb3MgKFNob3J0cykiPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Mb3MgJ3Nob3J0cycgZGUgT0tESUFSSU88L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy83STNwR3RYRzdaTSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjdJM3BHdFhHN1pNIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvN0kzcEd0WEc3Wk0vaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvVzdnYjhhYzhMMzAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJXN2diOGFjOEwzMCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1c3Z2I4YWM4TDMwL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL2J1MkN5b0FwX1FRIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iYnUyQ3lvQXBfUVEiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9idTJDeW9BcF9RUS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy8yS3o3VUNTWU9PRSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IjJLejdVQ1NZT09FIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvMkt6N1VDU1lPT0UvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMveGpycEx2cUxVN3ciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJ4anJwTHZxTFU3dyIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3hqcnBMdnFMVTd3L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL1hHdmp6THdEMFZjIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iWEd2anpMd0QwVmMiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9YR3Zqekx3RDBWYy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbigpewogICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jdi16bTRidicpOwogICAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgICAgdmFyIHRyYWNrID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2snKTsKICAgICAgaWYgKCF0cmFjaykgcmV0dXJuOwoKICAgICAgdmFyIGFycm93cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmFycm93Jyk7CiAgICAgIHZhciBHQVAgPSAxNjsKCiAgICAgIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgICAgIHZhciBmaXJzdCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNhcmQnKTsKICAgICAgICBpZiAoIWZpcnN0KSByZXR1cm4gMDsKICAgICAgICByZXR1cm4gZmlyc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldENhcmRzUGVyUGFnZSgpewogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiA0OwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
    • De Feijóo, sus 65 años y el carisma
    • La
    • El Supremo evita (por ahora) el gran pucherazo
    • Kia renueva su exitoso XCeed con mejoras en conectividad, seguridad y opciones electrificadas
        • Motor
        • Motor

      Kia renueva su exitoso XCeed con mejoras en conectividad, seguridad y opciones electrificadas

      El segmento de los crossovers compactos recibe una de sus actualizaciones más esperadas con el lanzamiento del nuevo Kia XCeed. Manteniendo la esencia que le ha convertido en uno de los preferidos del mercado por su combinación de estilo, dinamismo y practicidad diaria, la marca surcoreana introduce mejoras sustanciales en diseño, conectividad avanzada, seguridad y confort de marcha.
      • OKDIARIO
      • 2026-09-07 07:00
    • PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgLyogQSBjb250aW51YWNp824gc2UgZXNwZWNpZmljYSBlbCBjb2xvciBkZWwgZm9uZG8gKi8KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICAvKiBBIGNvbnRpbnVhY2nzbiBzZSBlc3BlY2lmaWNhIGVsIGNvbG9yIGRlbCB0ZXh0byAqLwogICAgY29sb3I6ICMwMDA7CiAgICAvKiBSZWxsZW5vIHBhcmEgZGFyIGVzcGFjaW8gYWwgY29udGVuaWRvICovCiAgICBwYWRkaW5nOiA4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJzsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KICAuZWNpLXRpdHVsbyB7CiAgICAvKiBFbCB0YW1h8W8gZGVsIHRleHRvIGRlbCBjb250aWxsbyAqLwogICAgICBmb250LXNpemU6IDI0cHg7CiAgfQogIC5lY2ktbG9nbyB7fQogIC5lY2ktbG9nbyBwIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgdGV4dG8ganVudG8gYWwgbG9nbyAqLwogICAgZm9udC1zaXplOiAxMHB4OwogIH0KICAuZWNpLWxvZ28gaW1nIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgbG9nbyAqLwogICAgd2lkdGg6IDEyMHB4OwogICAgaGVpZ2h0OiAzMHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgfQoKPC9zdHlsZT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWxjb3J0ZWluZ2xlcy5lcy8iIHRhcmdldD0iX2JsYW5rIiBpZD0iY2ludGlsbG8tZWNpIj4KICA8ZGl2IGNsYXNzPSJlY2ktdGl0dWxvIj4KICAgIDwhLS0gRWRpdGFyIGVzdGUgdGV4dG8gSU5JQ0lPIC0tPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgICA8IS0tIEVkaXRhciBlc3RlIHRleHRvIEZJTiAtLT4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJlY2ktbG9nbyI+CiAgICA8cD4KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBJTklDSU8gLS0+CiAgICAgIEVuIGNvbGFib3JhY2nzbiBjb24KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBGSU4gLS0+CiAgICA8L3A+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzA4LzI3L2xvZ28tZWwtY29ydGUtaW5nbGVzLW5lZ3JvLmpwZyIgYWx0PSJFbCBDb3J0ZSBJbmds6XMiPgogIDwvZGl2Pgo8L2E+
      PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgLyogQSBjb250aW51YWNp824gc2UgZXNwZWNpZmljYSBlbCBjb2xvciBkZWwgZm9uZG8gKi8KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICAvKiBBIGNvbnRpbnVhY2nzbiBzZSBlc3BlY2lmaWNhIGVsIGNvbG9yIGRlbCB0ZXh0byAqLwogICAgY29sb3I6ICMwMDA7CiAgICAvKiBSZWxsZW5vIHBhcmEgZGFyIGVzcGFjaW8gYWwgY29udGVuaWRvICovCiAgICBwYWRkaW5nOiA4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJzsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KICAuZWNpLXRpdHVsbyB7CiAgICAvKiBFbCB0YW1h8W8gZGVsIHRleHRvIGRlbCBjb250aWxsbyAqLwogICAgICBmb250LXNpemU6IDI0cHg7CiAgfQogIC5lY2ktbG9nbyB7fQogIC5lY2ktbG9nbyBwIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgdGV4dG8ganVudG8gYWwgbG9nbyAqLwogICAgZm9udC1zaXplOiAxMHB4OwogIH0KICAuZWNpLWxvZ28gaW1nIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgbG9nbyAqLwogICAgd2lkdGg6IDEyMHB4OwogICAgaGVpZ2h0OiAzMHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgfQoKPC9zdHlsZT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWxjb3J0ZWluZ2xlcy5lcy8iIHRhcmdldD0iX2JsYW5rIiBpZD0iY2ludGlsbG8tZWNpIj4KICA8ZGl2IGNsYXNzPSJlY2ktdGl0dWxvIj4KICAgIDwhLS0gRWRpdGFyIGVzdGUgdGV4dG8gSU5JQ0lPIC0tPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgICA8IS0tIEVkaXRhciBlc3RlIHRleHRvIEZJTiAtLT4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJlY2ktbG9nbyI+CiAgICA8cD4KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBJTklDSU8gLS0+CiAgICAgIEVuIGNvbGFib3JhY2nzbiBjb24KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBGSU4gLS0+CiAgICA8L3A+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzA4LzI3L2xvZ28tZWwtY29ydGUtaW5nbGVzLW5lZ3JvLmpwZyIgYWx0PSJFbCBDb3J0ZSBJbmds6XMiPgogIDwvZGl2Pgo8L2E+
    • Dr. Roviralta: Hasta 20.000 personas sin identificar y una vacunación incompleta disparan el riesgo epidemiológico
    • Dr. Roviralta: Los médicos de Ceuta están al límite con bajas psicológicas, renuncias y guardias a 10,50 euros
        • OkSalud
        • OkSalud

      Dr. Roviralta: "Los médicos de Ceuta están al límite con bajas psicológicas, renuncias y guardias a 10,50 euros"

      • Diego Buenosvinos
      • 2026-09-13 05:40
    • Trump dice en Dublín que le gustaría ver la reunificación de Irlanda: Ocurrirá tarde o temprano
        • Internacional
        • Internacional

      Trump dice en Dublín que le gustaría ver la reunificación de Irlanda: "Ocurrirá tarde o temprano"

      • Neila Gallego
      • 2026-09-12 19:14
    • «Señores, hemos llegado a España acompañando al ‘Guernica’»: 45 años de la llegada de la obra de Picasso en un vuelo regular
    • Baños, lavanderías y duchas públicas gratis ante el imparable incremento del chabolismo en Palma
        • OkBaleares
        • OkBaleares

      Baños, lavanderías y duchas públicas gratis ante el imparable incremento del chabolismo en Palma

      El incremento del chabolismo en Palma será uno de los temas centrales del primer pleno municipal del último curso político de la legislatura, que se celebrará el último jueves del presente mes de septiembre y donde se pondrá sobre la mesa la necesidad de crear una red de baños, lavanderías y duchas públicas gratuitas para los sin techo. Sendas propuestas presentadas por Més y Vox ponen en el punto de mira esta problemática ligada al imposible mercado de la vivienda que está provocando un aumento constante de asentamientos, muchos de los cuales se han cronificado en barrios del Ensanche y extrarradio de la capital balear.
      • Indalecio Ribelles
      • 2026-09-13 04:00
    • Secuestrada, violada y embarazada: piden 8 años para un ecuatoriano que encerró a una joven en su casa de Palma
        • OkBaleares
        • OkBaleares

      Secuestrada, violada y embarazada: piden 8 años para un ecuatoriano que encerró a una joven en su casa de Palma

      • Julio Bastida
      • 2026-09-13 04:00
    • Aerosol y humo no son lo mismo: qué dice la ciencia sobre las alternativas al cigarrillo
    • El concurso de ideas para el futuro jardín botánico de Palma tendrá que esperar: impugnado y paralizado a las primeras de cambio
        • OkBaleares
        • OkBaleares

      El concurso de ideas para el futuro jardín botánico de Palma tendrá que esperar: impugnado y paralizado a las primeras de cambio

      • Indalecio Ribelles
      • 2026-09-13 04:00
    • El Govern de Prohens reduce la sensación de saturación turística de este año a momentos muy, muy puntuales
        • OkBaleares
        • OkBaleares

      El Govern de Prohens reduce la sensación de saturación turística de este año a "momentos muy, muy puntuales"

      • Tomas Ibarz
      • 2026-09-13 04:00
    • A la playa en bus: Ibiza y su revolución del transporte público, un millón de usuarios más en cinco meses
        • OkBaleares
        • OkBaleares

      A la playa en bus: Ibiza y su revolución del transporte público, un millón de usuarios más en cinco meses

      • Indalecio Ribelles
      • 2026-09-13 04:00
    • Banco Santander y Fórmula 1: 20 años de historia y el regreso del Gran Premio a Madrid
    • Marga Prohens prorrogará el Pacto balear por la Sostenibilidad más allá de 2027
        • OkBaleares
        • OkBaleares

      Marga Prohens prorrogará el Pacto balear por la Sostenibilidad más allá de 2027

      • Tomas Ibarz
      • 2026-09-12 04:00
    • José Javier Esparza presenta
        • OkBaleares
        • OkBaleares

      José Javier Esparza presenta 'Reiniciar España' ante decenas de personas en el Auditorium de Palma

      • Julio Bastida
      • 2026-09-12 00:02
    • CaixaBank acompaña a la nueva generación del baloncesto femenino español
    • si te lo perdiste...

    • La polémica lección de un español en Suiza tras ir a un supermercado: Vosotros comprando fruta de Marruecos y nosotros comprando fruta de España
        • Economía
        • Economía

      un español en Suiza tras ir a un supermercado: "Vosotros comprando fruta de Marruecos y nosotros comprando fruta de España"

      • Aitana Pascual
      • 2026-09-13 10:35
    • Fiódor Dostoievski, escritor ruso: Cuanto más quiero a la humanidad en conjunto, menos cariño me inspiran las personas en particular
        • Curiosidades
        • Curiosidades

      Dostoievski: "Cuanto más quiero a la humanidad en conjunto, menos cariño me inspiran las personas en particular"

      • Janire Manzanas
      • 2026-09-13 11:00
    • La reflexión de Agatha Christie sobre la vida que te emocionará: Aprendí que no se puede dar marcha atrás, que la esencia de la vida es ir hacia adelante
        • Curiosidades
        • Curiosidades

      La reflexión de Agatha Christie sobre la vida que te emocionará: "Aprendí que no se puede dar marcha atrás, que la esencia de la vida es ir hacia adelante"

      "Aprendí que no se puede dar marcha atrás, que la esencia de la vida es ir hacia adelante. La vida, en realidad, es una calle de sentido único". Esta gran reflexión de Agatha Christie es una de las más compartidas de la escritora británica. Aunque es conocida mundialmente por crear personajes como Hercule Poirot y Miss Marple, Christie también dejó pensamientos que invitan a reflexionar sobre el paso del tiempo y la importancia de vivir sin quedar atrapados en el pasado.
      • Aitana Pascual
      • 2026-09-13 10:36
    • La verdadera historia de Catalina de Erauso, la monja alférez: de huir de un convento vasco a convertirse en temido soldado de Indias
        • Historia
        • Historia

      La historia de Catalina de Erauso: de huir de un convento vasco a convertirse en temido soldado

      • Francisco María
      • 2026-09-13 11:00
    • Los biólogos ponen el grito en el cielo: 1,6 millones de toneladas de munición oxidada de la II Guerra Mundial está contaminando las aguas marinas alemanas
        • Naturaleza
        • Naturaleza

      1,6 millones de toneladas de munición de la II Guerra Mundial está contaminando las aguas

      • Sofía Narváez
      • 2026-09-13 11:30
    • Mientras Europa se fija en las placas solares, un joven vietnamita acaba de construir su propia central hidroeléctrica casera para no pagar más luz
        • Curiosidades
        • Curiosidades

      un joven vietnamita acaba de construir su propia central hidroeléctrica

      • Janire Manzanas
      • 2026-09-13 11:30
    • George Clooney no quiso ver
        • Cool
        • Cool

      George Clooney no quiso ver 'Thelma & Louise' durante años por culpa de Brad Pitt

      • Carmen Fernández Etreros
      • 2026-09-13 12:00
    • La cita de Miguel de Cervantes, autor de
        • Curiosidades
        • Curiosidades

      Cervantes sobre la felicidad: "Para alcanzar la felicidad sólo se necesitan cuatro cosas"

      • Fernando Larruscain
      • 2026-09-13 10:01
    • Ver para creer: los científicos sugieren que el Arca de Noé podría estar enterrada en la montaña más alta de Turquía
        • Ciencia
        • Ciencia

      los científicos sugieren que el Arca de Noé podría estar en la montaña más alta de Turquía

      • Carmen Ruiz
      • 2026-09-13 12:00
    • Los OK y KO del domingo, 13 de septiembre de 2026
    • ZEL Fuerteventura: una nueva forma de vivir la isla
    • Diario Madridista

    • Rüdiger y Courtois escuchan el consejo del Real Madrid
    • El Castilla paga los errores ante el Águilas y pierde el primer partido de la temporada
        • Cantera
        • Cantera

      El Castilla paga los errores ante el Águilas y pierde el primer partido de la temporada

      El Castilla ha perdido el primer partido de la temporada. Después de venir de ganar al Torremolinos en el Alfredo Di Stéfano, los de Julián López de Lerma pagaron muy caros los errores contra el Águilas y cayeron en la tercera jornada de Liga. Un jarro de agua fría en el que un penalti fallado y una jugada ensayada rival arruinaron la buena imagen que había mostrado el conjunto madridista.
      • Pablo Villanueva
      • 2026-09-12 15:41
    • Deportes

    • Levante - Barcelona: Flick quiere el pleno al 15
    • Real Sociedad - Atlético de Madrid: A lamerse las heridas de la Champions
        • Deportes
        • Deportes

      Real Sociedad - Atlético de Madrid: A lamerse las heridas de la Champions

      El Atlético de Madrid quiere recuperar las buenas sensaciones en Anoeta. El equipo se enfrentará a la Real Sociedad en la quinta jornada de liga. Simeone tiene la oportunidad de volver a la senda de la victoria después de dos derrotas consecutivas. Además, el encuentro será clave para conocer más sobre la situación actual de Julián Álvarez, que ya fue titular ante el Liverpool el miércoles. El partido arrancará este domingo 13 de septiembre a las 21:00 horas.
      • Alejandro Fernández
      • 2026-09-13 05:50
    • Jornada 5 de la Liga: resumen de todos los partidos
        • Deportes
        • Deportes

      El Athletic se estrella con el Elche en casa después de un penalti y un gol en propia puerta

      • Hugo Carrasco
      • 2026-09-12 20:32
    • Dembélé se ve por encima de Lamine, Rodri y Mbappé en el Balón de Oro: He sido el mejor
        • Deportes
        • Deportes

      Dembélé se ve por encima de Lamine, Rodri y Mbappé en el Balón de Oro: "He sido el mejor"

      • Alejandro Fernández
      • 2026-09-12 20:43
    • Rybakina y los demonios
        • Deportes
        • Deportes

      Rybakina y los demonios 'atrapan' a una Sabalenka desesperada: el US Open y el mundo tienen nueva reina

      • Alejandro Peinado
      • Enviado especial
      • NUEVA YORK
      • 2026-09-13 00:46
    • Sabalenka rompe la raqueta, lanza pelotas a la grada y lo pierde todo: Quería dejar salir toda la agresividad
        • Deportes
        • Deportes

      Sabalenka rompe la raqueta, lanza pelotas a la grada y lo pierde todo: "Quería dejar salir toda la agresividad"

      • Alejandro Peinado
      • Enviado especial
      • NUEVA YORK
      • 2026-09-13 01:58
    • España roza la hazaña pero cae ante Estados Unidos en la semifinal del Mundial de baloncesto femenino
        • Deportes
        • Deportes

      España roza la hazaña pero cae ante Estados Unidos en la semifinal del Mundial de baloncesto femenino

      España ha estado muy cerca de firmar una de las grandes hazañas deportivas del año en el Mundial de baloncesto femenino. La Selección española ha caído ante la todopoderosa Estados Unidos en semifinales del Mundial (66-76) tras empezar el último cuarto con empate. Pero ahí, en los últimos diez minutos, España se hundió y Estados Unidos se creció. El equipo entrenado por Miguel Méndez jugará ante Alemania -país anfitrión- por el bronce. 
      • Daniel Calle
      • 2026-09-12 21:49
    • Pipi Estrada no tiene piedad con Infantino en sus notas de la semana: No me gustan tus triquiñuelas
    • economía

    • Los accionistas se
        • Economía
        • Economía

      Los accionistas se 'forran' con el boom de la IA: las empresas reparten 827.000 millones en dividendos

      Los dividendos mundiales alcanzaron un nuevo récord en el segundo trimestre de 2026. Las empresas repartieron 827.300 millones de dólares entre abril y junio, un 7,9% más que un año antes, según el último Dividend Watch de Capital Group. 
      • Celia Amayuelas
      • 2026-09-13 05:45
    • Revolut confirma que ha entregado datos sensibles de algunos clientes tras una solicitud gubernamental falsa
        • Economía
        • Economía

      Revolut confirma que ha entregado datos sensibles de algunos clientes tras una solicitud gubernamental falsa

      • Carlos Ribagorda
      • 2026-09-12 16:49
    • COOL

    • El brutal enfrentamiento de George Clooney con un consagrado director: Un tipo miserable que hace de tu vida un infierno
        • Cool
        • Cool

      El brutal enfrentamiento de George Clooney con un consagrado director: "Un tipo miserable que hace de tu vida un infierno"

      • Francisco-Eme
      • 2026-09-12 18:15
    • Muere Davina Sheffield a los 75 años: la mujer que enamoró al rey Carlos III antes que Lady Di y Camilla Parker Bowles
        • Cool
        • Cool

      Muere Davina Sheffield a los 75 años: la mujer que enamoró al rey Carlos III antes que Lady Di y Camilla Parker Bowles

      • Javi Fernández
      • 2026-09-12 19:29
    • Kiko Matamoros devuelve el dardo a Makoke tras culparle de sus problemas con Hacienda: «Claro, por eso está condenada»
        • Cool
        • Cool

      Kiko Matamoros devuelve el dardo a Makoke tras culparle de sus problemas con Hacienda: «Claro, por eso está condenada»

      Kiko Matamoros ha celebrado por todo lo alto el 50 cumpleaños de su compañero y amigo Kiko Hernández. Una celebración en la que no han faltado otros rostros conocidos como Marta López o Marta López Álamo, pareja del cumpleañero. A la salida del restaurante, Matamoros se ha encontrado con las cámaras y, como suele ser habitual, no ha tenido reparos en responder a las preguntas que le han planteado. Entre ellas, las relacionadas con su exmujer, Makoke, tanto por sus fotografías de luna de miel como por sus últimas declaraciones sobre Hacienda.
      • Javi Fernández
      • 2026-09-12 21:01
    • Los VIP llegan a la Fórmula 1 de Madrid ‘farmeando aura’: Alonso en familia, Leclerc a punto de ser padre o Beckham en solitario
        • Cool
        • Cool

      Los VIP llegan a la Fórmula 1 de Madrid ‘farmeando aura’: Alonso en familia, Leclerc a punto de ser padre o Beckham en solitario

      • Javi Fernández
      • 2026-09-12 14:47
    • Brad Pitt deja de ser el número 1 en Apple TV después de 9 meses: Ryan Reynolds y Kenneth Branagh toman el relevo
        • Cool
        • Cool

      Brad Pitt deja de ser el número 1 en Apple TV después de 9 meses: Ryan Reynolds y Kenneth Branagh toman el relevo

      • Francisco-Eme
      • 2026-09-12 13:00
    • Happy FM

    • Sale a la luz cómo es el casting de
        • HappyFM
        • HappyFM

      Sale a la luz cómo es el casting de 'First Dates': "A nadie le decimos lo que tiene que decir"

      • Idania Monzón
      • 2026-09-12 13:36
    • ¿Sigue abierta la Taberna Los 50 en Sevilla tras
        • HappyFM
        • HappyFM

      ¿Sigue abierta la Taberna Los 50 en Sevilla tras 'Pesadilla en la cocina'?

      • Nacho Molina
      • 2026-09-10 19:52
    • Por qué no hay nuevo capítulo de
        • HappyFM
        • HappyFM

      Por qué no hay nuevo capítulo de 'Valle Salvaje' hoy: te lo explicamos

      • Nacho Molina
      • 2026-09-11 14:17
    • Una colaboradora del programa de Alba Carrillo, sobre Ibiza: Cuando fui allí me enteré que es España
        • HappyFM
        • HappyFM

      Una colaboradora del programa de Alba Carrillo, sobre Ibiza: "Cuando fui allí me enteré que es España"

      • Idania Monzón
      • 2026-09-11 13:33
    • 'Equipo de Investigación
        • HappyFM
        • HappyFM

      'Equipo de Investigación' destapa el truco detrás del precio de la fruta más barata

      • Nacho Molina
      • 2026-09-11 12:58
    • 'De Viernes
        • HappyFM
        • HappyFM

      'De Viernes' anuncia sus invitados para hoy, viernes 11 de septiembre

      • Nacho Molina
      • 2026-09-11 11:59
    • Okmotor

    • Geely E2: el nuevo rey de la ciudad es eléctrico y tiene 497 km de autonomía, por menos de 14.000 euros
        • Motor
        • Motor

      Geely E2: el nuevo rey de la ciudad es eléctrico y tiene 497 km de autonomía, por menos de 14.000 euros

      • OKDIARIO
      • 2026-09-11 13:34
    • Un camionero español que trabaja en EEUU: Lo cómoda que es la vida de camionero de larga distancia aquí, no lo tenía en Europa
        • Motor
        • Motor

      Un camionero español que trabaja en EEUU: "Lo cómoda que es la vida de camionero de larga distancia aquí, no lo tenía en Europa"

      • Janire Manzanas
      • 2026-09-11 13:00
    • Un conductor de BMW intenta ahorrar combustible cambiando la configuración de los neumáticos: tras 15.000 km, se arrepiente
        • Motor
        • Motor

      Un conductor de BMW intenta ahorrar combustible cambiando la configuración de los neumáticos: tras 15.000 km, se arrepiente

      • Marta Burgués
      • 2026-09-11 12:23
    • OKGreen

    • Rut Ballesteros: Hay que retirar el postureo, el greenwashing y el socialwashing
        • OKGREEN
        • OKGREEN

      "Hay que retirar el postureo, el greenwashing y el socialwashing"

      Rut Ballesteros Gil lleva más de dos décadas convirtiendo la sostenibilidad en gestión concreta. Es socia fundadora de CAVALA Soluciones Sostenibles, presidenta del Colegio Profesional de Ambientólogos de la Comunidad de Madrid y profesora asociada en la Universidad Rey Juan Carlos. Su trayectoria incluye el acompañamiento a empresas y profesionales en la integración de la sostenibilidad, la estrategia ESG y el impacto social en su forma de gestionar, con etapas destacadas al frente de proyectos en España y Perú.
      • Antonio Quilis
      • 2026-09-13 05:00
    • Centros de datos flotantes: energía de las olas del mar para alimentar a la inteligencia artificial
        • OKGREEN
        • OKGREEN

      Centros de datos flotantes: energía de las olas del mar para alimentar a la inteligencia artificial

      • Daniel Jiménez
      • 2026-09-12 05:00
    • Almeida se quita la boina: el alcalde de Madrid presume de sus buenos datos de calidad del aire
        • OKGREEN
        • OKGREEN

      Almeida se quita la boina: el alcalde de Madrid presume de sus buenos datos de calidad del aire

      • Antonio Quilis
      • 2026-09-11 14:42
    • OKSalud

    • Piel seca, picor y brotes: todo lo que debes saber sobre el cuidado de la dermatitis atópica
    • La miopía infantil se triplica entre los 8 y 12 años: Es posible anticiparse
        • OkSalud
        • OkSalud

      La miopía infantil se triplica entre los 8 y 12 años: "Es posible anticiparse"

      • Diego Buenosvinos
      • 2026-09-13 05:40
    • Éstas son las dos lesiones más habituales que puedes padecer al retomar el ejercicio físico en septiembre
        • OkSalud
        • OkSalud

      Éstas son las dos lesiones más habituales que puedes padecer al retomar el ejercicio físico en septiembre

      • B. Muñoz
      • 2026-09-13 05:40
    • Dr. Roviralta: Un solo hospital y un déficit brutal de médicos hacen imposible afrontar un brote epidemiológico
        • OkSalud
        • OkSalud

      Dr. Roviralta: "Un solo hospital y un déficit brutal de médicos hacen imposible afrontar un brote epidemiológico"

      El Ministerio de Sanidad sostiene que el sistema sanitario de Ceuta no está colapsado y que todavía existe un porcentaje importante de camas disponibles. Sin embargo, el presidente del Colegio de Médicos de Ceuta, Enrique Roviralta, cuestiona esta lectura en OKSALUD y advierte de que disponer de camas físicas no significa tener capacidad asistencial para atenderlas. Según explica, el único hospital de la ciudad afronta una situación excepcional con una plantilla mermada por las vacaciones y sin un refuerzo externo efectivo después de semanas de presión extraordinaria.
      • Diego Buenosvinos
      • 2026-09-13 05:40
    • Psicología infantil: cómo conseguir que la vuelta al cole sea más fácil
    • 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
    • Daniel Calle: El esperado GP de España de F1 en Madrid lidera un fin de semana deportivo muy apasionante
        • OKCLUB
        • OKCLUB

      Daniel Calle: "El esperado GP de España de F1 en Madrid lidera un fin de semana deportivo muy apasionante"

      • OKDIARIO
      • 2026-09-12 05:49
    • navarra

    • La rápida llamada al 092 permite detener en Pamplona al autor de dos tirones con dos personas heridas
        • Sucesos

      La rápida llamada al 092 permite detener en Pamplona al autor de dos tirones con dos personas heridas

    • El pueblo medieval de Navarra donde una paloma cambió la historia y las candelas todavía iluminan el camino
        • Sociedad

      El pueblo medieval de Navarra donde una paloma cambió la historia y las candelas todavía iluminan el camino

    • Vuelve el olor a brasa en Pamplona: ya hay fecha para el XX Concurso de chistorra de Navarra
        • Pamplona

      Vuelve el olor a brasa en Pamplona: ya hay fecha para el XX Concurso de chistorra de Navarra

    • Un ciclista de 52 años, herido grave tras una caída en Baztan: ha sido necesario movilizar dos helicópteros
        • Sucesos

      Un ciclista de 52 años, herido grave tras una caída en Baztan: ha sido necesario movilizar dos helicópteros

    • Navarra afrontará un inicio de semana estable antes de una caída de temperaturas que podrá ser extraordinaria
        • El Tiempo

      Navarra afrontará un inicio de semana estable antes de una caída de temperaturas que podrá ser extraordinaria

    • Un investigador de la UPNA será premiado en Chicago por un trabajo sobre cerebro y conducta
        • Sociedad

      Un investigador de la UPNA será premiado en Chicago por un trabajo sobre cerebro y conducta

    • metabolic

    • La recomendación de un fisioterapeuta para prevenir la fascitis plantar: cómo fortalecer los músculos de los pies desde casa con 3 ejercicios
        • Salud

      La recomendación de un fisioterapeuta para prevenir la fascitis plantar: cómo fortalecer los músculos de los pies desde casa con 3 ejercicios

    • El significado de poder mantener los talones en alto durante 30 segundos si tienes más de 50 años, según los entrenadores expertos
        • Deporte

      El significado de poder mantener los talones en alto durante 30 segundos si tienes más de 50 años, según los entrenadores expertos

    • Las expertas en pilates lo tienen claro: «A partir de los 60 años, la flexibilidad puede mejorarse con ejercicios de 3 a 5 veces por semana»
        • Deporte

      Las expertas en pilates lo tienen claro: «A partir de los 60 años, la flexibilidad puede mejorarse con ejercicios de 3 a 5 veces por semana»

    • Los entrenadores expertos lo avalan: para tonificar los músculos a partir de los 60 años lo importante es «ser constantes»
        • Deporte

      Los entrenadores expertos lo avalan: para tonificar los músculos a partir de los 60 años lo importante es «ser constantes»

    • Felipe Isidro, catedrático y experto en educación física: «Los dos ítems que marcan tu edad biológica son la fuerza y la capacidad de llevar oxígeno a los músculos»
        • Entrenamiento

      Felipe Isidro, catedrático y experto en educación física: «Los dos ítems que marcan tu edad biológica son la fuerza y la capacidad de llevar oxígeno a los músculos»

    • No es yogur: ¿Qué producto lácteo debería estar en tu menú diario?
        • Alimentos

      No es yogur: ¿Qué producto lácteo debería estar en tu menú diario?

    • talent24h

    • El Consejo de Ministros aprueba una norma que amplía la información obligatoria antes de empezar a trabajar y durante la relación laboral
        • Actualidad

      El Consejo de Ministros aprueba una norma que amplía la información obligatoria antes de empezar a trabajar y durante la relación laboral

    • La OCDE señala a España entre los países que suben las cotizaciones para financiar las pensiones
        • Actualidad

      La OCDE señala a España entre los países que suben las cotizaciones para financiar las pensiones

    • El TSJ niega la incapacidad a un trabajador con fibromialgia porque puede coger la baja cuando empeore
        • Actualidad

      El TSJ niega la incapacidad a un trabajador con fibromialgia porque puede coger la baja cuando empeore

    • Una casa de 650 m² se inspira en un hormiguero para combatir el calor extremo
        • Actualidad

      Una casa de 650 m² se inspira en un hormiguero para combatir el calor extremo

    • Las motos podrán circular por el arcén desde el 1 de octubre con un límite de 30 km/h
        • Actualidad

      Las motos podrán circular por el arcén desde el 1 de octubre con un límite de 30 km/h

    • Carmen tiene dos trabajos y a los 47 años comparte piso con otras ocho personas
        • Actualidad

      Carmen tiene dos trabajos y a los 47 años comparte piso con otras ocho personas

    • Muy Interesante

    • 14 dientes de tiburón fósiles revelan el mar tropical que cubrió el desierto de Egipto hace 75 millones de años
        • Ciencia

      14 dientes de tiburón fósiles revelan el mar tropical que cubrió el desierto de Egipto hace 75 millones de años

    • Los pilotos de Fórmula 1 corren con el calor de Madrid: esto es lo que le ocurre a su cuerpo dentro del coche
        • Ciencia

      Los pilotos de Fórmula 1 corren con el calor de Madrid: esto es lo que le ocurre a su cuerpo dentro del coche

    • Paleontólogos analizan el fósil de una extraña criatura gigante y descubren las huellas de un ataque mortal de hace más de 80 millones de años
        • Ciencia

      Paleontólogos analizan el fósil de una extraña criatura gigante y descubren las huellas de un ataque mortal de hace más de 80 millones de años

    • ¿Qué tipo de sismógrafo andaluz eres cuando la tierra tiembla?
        • Juegos

      ¿Qué tipo de sismógrafo andaluz eres cuando la tierra tiembla?

    • Cómo de pequeño puede llegar a ser un transistor
        • Ciencia

      Cómo de pequeño puede llegar a ser un transistor

    • ¿Temían que regresara de la tumba? Por qué una joven fue enterrada con una hoz en el cuello hace 400 años
        • Historia

      ¿Temían que regresara de la tumba? Por qué una joven fue enterrada con una hoz en el cuello hace 400 años

    • okzinet

    • 6 errores al usar la pelota de pilates en el embarazo que puedes estar cometiendo y no lo sabes
        • Ser Padres

      6 errores al usar la pelota de pilates en el embarazo que puedes estar cometiendo y no lo sabes

    • Mi hijo se niega a aprender habilidades básicas para su edad: 5 estrategias de una psicóloga cuando nada funciona
        • Ser Padres

      Mi hijo se niega a aprender habilidades básicas para su edad: 5 estrategias de una psicóloga cuando nada funciona

    • 5 trucos para vestir a un bebé que llora cada vez que le cambias la ropa (sin que sea una batalla)
        • Ser Padres

      5 trucos para vestir a un bebé que llora cada vez que le cambias la ropa (sin que sea una batalla)

    • Manicura chocolate: 5 formas elegantes de llevar el color de uñas que vuelve cada otoño
        • Mia Revista

      Manicura chocolate: 5 formas elegantes de llevar el color de uñas que vuelve cada otoño

    • Parece Nutella pero es una crema de castañas asadas: untable, poco dulce y lista en 45 minutos
        • Mia Revista

      Parece Nutella pero es una crema de castañas asadas: untable, poco dulce y lista en 45 minutos

    • 5 velas por menos de 10 euros ideales para crear un ambiente más cálido en tu casa este otoño
        • Mia Revista

      5 velas por menos de 10 euros ideales para crear un ambiente más cálido en tu casa este otoño

    • Techy

    • 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
    • Piloto militar entrenando en un simulador de vuelo de un caza F-16
        • Techy

      Marruecos empieza a preparar a sus pilotos de F-16 Block 72 con dos nuevos simuladores de vuelo impulsados por el Pentágono

      • Adrián Villellas
    • Goma de borrar limpiando los contactos metálicos del compartimento de pilas de un mando a distancia
        • Techy

      Ni pilas nuevas ni cargador: el truco de la goma de borrar que puede hacer que el mando de la tele vuelva a funcionar

      • Adrián Villellas
    • Portaaviones USS Abraham Lincoln navegando con aviones y helicópteros de su grupo aéreo en formación
        • Techy

      El gigantesco portaaviones nuclear de EEUU retoma su misión tras acumular 286 días en el mar

      • Adrián Villellas
    • OkPlanes

    • 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
    • anyma aeden
        • OkPlanes

      Anyma presentará su show ÆDEN en la Ciudad del Rock

      • Sandra Quintana C
    • Curiosidades

    • voluntarios para vivir gratis en una finca de Puerto Rico
        • Curiosidades

      Se buscan voluntarios para vivir gratis en una finca de Puerto Rico con comida incluida a cambio de trabajar 20 horas semanales: imprescindible hablar español o inglés

      • Alejo Lucarás
    • Emperador Augusto
        • Curiosidades

      Las palabras que pronunció el emperador Augusto antes de morir te harán reflexionar: «La comedia ha terminado. ¡Aplaudid!»

      • Laura Mesonero
    • Salvador Dalí, frase, reflexión
        • Curiosidades

      La cita de Salvador Dalí, pintor y escultor del siglo XX: «La única diferencia entre un loco y yo es que yo no estoy loco»

      • Ana López Vera
    • Albert Einstein. Imagen de GettyImages.
        • Curiosidades

      El consejo de Albert Einstein: «No intentes convertirte en un hombre de éxito, sino en un hombre de valor»

      • Aitana Pascual
    • Niña jugando a la goma - IA
        • Curiosidades

      La psicología es plenamente consciente: las personas nacidas entre 1960 y 1970 constituyen la última generación que experimentó una infancia realmente feliz

      • Laura Mesonero
    • Velocidad de los barcos en nudos
        • Curiosidades

      ¿Por qué se mide la velocidad de los barcos en nudos y a cuántos km/h equivalen?

      • Janire Manzanas
    • Recetas de cocina

    • Pechuga de pollo
        • Recetas de cocina

      La pechuga de pollo no quedará dura ni seca si se hace esto mientras se fríe

      • Janire Manzanas
    • Saltear verdura
        • Recetas de cocina

      David Guibert, chef profesional: «Mucha gente añade el aceite a la sartén, pero es mejor incorporarlo directamente a la carne o la verdura»

      • Janire Manzanas
    • Receta de escalivada
        • Recetas de cocina

      Escalivada catalana: receta tradicional con verduras asadas al estilo catalán

      • Francisco María
    • Recetas de berza
        • Recetas de cocina

      Berza rehogada: receta tradicional sencilla y muy sabrosa

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

      Lombarda encurtida: receta fácil para conservarla y disfrutarla durante más tiempo

      • Francisco María
    • Lasaña diferente
        • Recetas de cocina

      Lasaña de boniato: receta diferente, saludable y llena de sabor

      • Francisco María
    • OkShopping

    • 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
    • campana extractora decorativa LG
        • OkShopping

      Esta campana extractora LG tiene 630 m³/h de potencia y puede ser el aliado perfecto para tu cocina

      • New Mall Media
    • olla eléctrica
        • OkShopping

      La práctica olla eléctrica para cocinar arroz, al vapor y mantener la comida caliente que está tirada de precio en Aliexpress

      • New Mall Media
    • butaca Milare de Kave Home
        • OkShopping

      El rincón de lectura perfecto puede empezar con esta butaca de líneas curvas de Kave Home

      • New Mall Media
    • Shark AI ULTRA
        • OkShopping

      El robot aspirador Shark AI ULTRA que aspira, friega y se vacía solo tiene descuento

      • New Mall Media
    • Armario Stove Canadian
        • OkShopping

      El armario de roble que multiplica el espacio de almacenaje del dormitorio y está rebajado 54 euros

      • New Mall Media
    • Mascotas

    • Imagen generada por IA
        • Mascotas

      Los veterinarios coinciden: «Los gatos naranjas suelen ser amigables y disfrutan en familia»

      • Fernando Larruscain
    • Una mujer sostiene a su gato en brazos. Foto: prostooleh / Freepik.
        • Mascotas

      Los expertos lo tienen claro y desmontan un mito de siempre: los gatos aman a sus dueños tanto como los perros, lo que pasa es que no lo exterioriza igual

      • Naiara Philpotts
    • Imagen generada por IA.
        • Mascotas

      Confirmado por la Ley de Bienestar Animal: los dueños de perros están obligados a hacerse responsables de las molestias que el animal genere a otras personas

      • Carmen Ruiz
    • Gatos
        • Mascotas

      Los veterinarios expertos avisan a los dueños de gatos: «Aprenden a manipularnos para conseguir lo que quieren»

      • Janire Manzanas
    • Fran Estévez.
        • Mascotas

      Los expertos en adiestramiento canino lo confirman: «Cuanto antes se establezcan unas buenas bases de educación y obediencia, más fácil será evitar problemas de conducta»

      • Sofía Crotti
    • Gato
        • Mascotas

      Los veterinarios lo tienen claro: la personalidad de un gato tiende a parecerse mucho al de su dueño y está comprobado

      • Janire Manzanas
    • Ciencia

    • Imagen generada por IA.
        • Ciencia

      Ver para creer: los científicos sugieren que el Arca de Noé podría estar enterrada en la montaña más alta de Turquía

      • Carmen Ruiz
    • Alergias
        • Ciencia

      La paradoja de las alergias modernas: por qué la ultrahigiene urbana está disparando trastornos inmunológicos en la infancia

      • Francisco María
    • Réplicas de Iguanodon bernissartensis en el Museo Paleontológico de Castilla-La Mancha, en Cuenca. Foto: PePeEfe / CC BY-SA 4.0.
        • Ciencia

      Los paleontólogos siguen atónitos: un dinosaurio del Cretácico castellonés padeció una infección bacteriana, y lo descubren gracias a un bulto hallado en uno de sus huesos

      • Naiara Philpotts
    • cueva sellada
        • Ciencia

      Increíble pero cierto: hallan en España una nueva especie animal con más de 100 millones de años

      • Janire Manzanas
    • Contaminación
        • Ciencia

      Nadie lo vio venir, pero la ciencia lo reafirma: China fulmina en 12 años el 98% de la contaminación de su capital

      • Alejo Lucarás
    • Universos paralelos
        • Ciencia

      ¿Podríamos vivir en un espejo cósmico? La fascinante teoría matemática que revive el debate sobre universos paralelos

      • Francisco María
    • 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

    • Touch ID iPhone Duo
        • Tecnología

      El Touch ID vuelve a aparecer en el iPhone Duo, aunque Apple nunca lo dejó de usar

      • Nacho Grosso
    • iPhone Duo
        • Tecnología

      La apuesta que Apple ha esperado ocho años en atreverse a lanzar

      • Nacho Grosso
    • JBL Live Beam 4
        • Tecnología

      En los JBL Live Beam 4 el estuche manda tanto como el sonido y los propios auriculares

      • Nacho Grosso
    • iPhopne 18 Pro
        • Tecnología

      La cámara del iPhone 18 Pro por fin aprende a abrir y cerrar el ojo

      • Nacho Grosso
        • Tecnología

      Mantener pulsado el botón «0» del mando a distancia durante 3 segundos: ¿para qué sirve y cuándo debes hacerlo?

      • Álvaro Olivero
    • Huawei Watch GT 7 Pro
        • Tecnología

      Huawei Watch GT 7 Pro, el reloj de batería eterna que prefiere pulir antes que reinventar

      • Nacho Grosso
    Ir Arriba

    Noticias de última hora

    • Levante – Barcelona, en directo | Sigue en vivo online el resultado y la última hora del partido de la Liga hoy
    • Madring se llena de VIP’s: Nadal, Figo, Zidane, De la Fuente, Florentino…
    • Impresionante: así sonó el himno de España en Madring con un espectacular tifo en la grada principal
    • Gobierno fallido y traidor a Ceuta
    • La Vuelta a España 2027 empezará en Santiago de Compostela, terminará en Madrid y cambiará de fechas
    • Se buscan voluntarios para vivir gratis en una finca de Puerto Rico con comida incluida a cambio de trabajar 20 horas semanales: imprescindible hablar español o inglés
    • F1 Madrid hoy, en directo: horario, dónde ver la carrera del GP de España en Madring, última hora de la parrilla de salida y resultado de Alonso y Sainz
    • Tres Eurofighter del Ejército del Aire sobrevuelan Madring pero no dibujan en el cielo la bandera de España
    • Las palabras que pronunció el emperador Augusto antes de morir te harán reflexionar: «La comedia ha terminado. ¡Aplaudid!»
    • Así acosa e increpa el PSOE a sus disidentes: la denuncia de una ex concejal socialista a OKDIARIO

    Noticias más vistas

    • Horario del GP de España de F1 hoy: a qué hora es y dónde ver en directo y por televisión en vivo online gratis la carrera del Mundial de Fórmula 1
    • El Barcelona pide a sus aficionados de toda España que aprendan catalán: «Habla azulgrana, habla catalán»
    • Así queda la clasificación general de la Vuelta Ciclista a España 2026 tras la etapa 20 de hoy sábado, 12 de septiembre
    • Etapa 20 de La Vuelta a España 2026 hoy, sábado 12 de septiembre de La Calahorra a Collado del Alguacil: horario, recorrido, perfil y dónde ver por TV
    • Ayuso machaca a TVE por su boicot al GP de España de F1 en Madrid: «Hace lo imposible por deslucir el éxito»
    • España roza la hazaña pero cae ante Estados Unidos en la semifinal del Mundial de baloncesto femenino
    • El día de Mas: la etapa reina con final en el Collado del Alguacil decidirá al campeón de la Vuelta a España 2026
    • Tebas manda a Antiviolencia los gritos de «¡Pedro Sánchez, hijo de puta!» en los estadios de España… y Andorra
    • Así queda la clasificación general de la Vuelta Ciclista a España 2026 tras la etapa 19 de hoy viernes, 11 de septiembre
    • El Barça pone una cláusula de 150 millones a un jugador con 4 minutos en Primera tras criticar que la de Julián era abusiva

    Noticias virales

    • La importante reflexión de Arturo Pérez-Reverte (74 años) sobre los perros: «Nadie que no haya convivido con ellos conocerá hasta donde llega la lealtad»
    • Con 23 años Mario dejó la ciudad para abrir un bar en un pueblo de 100 habitantes: «Para mí el éxito es que no me tenga que ir del pueblo»
    • La reflexión de ‘El club de los poetas muertos’ sobre la felicidad en la vida: «Muéstrame un corazón que esté libre de necios sueños, y te enseñaré a un hombre feliz»
    • Los expertos en interiorismo lo confirman: poner el cubo de basura debajo del fregadero está bien, pero hay una alternativa más cómoda y práctica
    • Pompeyo Trogo sobre el poder de Hispania: «Los hispanos son muy valientes, pero con un gran defecto: si no tienen un enemigo común, ocupan su tiempo en pelearse entre ellos»
    • Buscan voluntarios para vivir gratis en la Patagonia: ofrecen alojamiento y comida a cambio de trabajar 30 horas a la semana
    • ¿Por qué algunas ventanas tienen rejas curvas? En arquitectura tienen una función
    • Fernando Savater (79 años), filósofo español: «Libertad es decidir, pero también, no lo olvides, darte cuenta de que estás decidiendo»
    • Harrison Ford, actor a sus 84 años: «Lo único que le diría a la gente es que se aferre a lo que es individual en ellos»
    • Günter Grass, Premio Nobel de Literatura, sobre la infancia: «No hay espectáculo más hermoso que la mirada de un niño que lee»
    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