• 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:
  • Sánchez amenaza PP
  • Ayuso Milei Ley de Nietos
  • Policías La Coruña
  • Marruecos Honda de David
  • Papa León XIV
  • Boicot Abascal Alavés
  • Amenazas Milei URJC
  • Joyas Zapatero
  • Tellado Abascal La Coruña
  • Abascal habla Milei
  • PSOE mitin Sánchez
  • Ayuso decreto de vivienda
  • Horario del Celtic – Celta
  • Lillestrom – Real Sociedad
  • Horario Getafe – Lugano
  • Horario Barcelona – Real Madrid
  • Horario GP Estados Unidos F1
  • Últimas noticias
Más

    El sitio de los inconformistas

    21 Oct 2026
    Actualizado 22:19 CET
    INICIAR SESIÓN
    Es Noticia
    • Poner una hoja de LAUREL detrás de la PUERTA
    • JORGE LORENZO, sobre los IMPUESTOS en España
    • La frase de POMPEYO TROGO que ha dejado huella
    • Buscan VOLUNTARIOS para vivir gratis en una GRANJA francesa
    • Un ingeniero ordena verter AGUA CONTAMINADA al mar
    • La rutina de ANTONIO LOBATO para estar en forma
    • La frase de MARIO BENEDETTI para reflexionar
    • Encuentran en el DESIERTO una nota con una dirección de 1977
    • La reflexión de PAULO COELHO sobre la humildad
    • VETERINARIOS aclaran que les causa un enfado a tu PERRO
    • La importante REFLEXIÓN de Virginia Woolf
    • La PSICOLOGÍA explica la razón de escuchar MÚSICA de tu adolescencia
    • Los EXPERTOS recomiensan rociar VINAGRE alrededor del inodoro
    • Las NORMAS que debes saber antes de instalar un cargador de COCHE eléctrico
    • Qué significa el PROVERBIO chino sobre el ÁRBOL
    • El BOE confirma el PUENTE del 2 de noviembre
    • El momento en el que debes limpiar los filtros del AIRE ACONDICIONADO
    • La PSICOLOGÍA cuestiona a las personas que no tienen AMIGOS

    Okdiario

    • España
    • Economía
    • Deportes
    • Diario Madridista
    • Investigación
    • Cool
    • Opinión
    • Sociedad
    • Lotería de Navidad
    • Directo
    • Real Madrid – Leipzig, en directo el partido de Champions League
    • Última hora de las huelgas, elecciones generales del 29-N y actualidad política hoy
    • PGlmcmFtZSBoZWlnaHQ9JzI1MHB4JyB3aWR0aD0nMTAwJScgICBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9odG1sL2h6NWJveS1jYXJydXNlbC1kaXJlY3Rvcy1mdXRib2wucGhwP21vZGU9ZGVzayIgICBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bWF4LSI+PC9pZnJhbWU+
      PGlmcmFtZSBoZWlnaHQ9JzY1MHB4JyB3aWR0aD0nMTAwJScgICBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9odG1sL2h6NWJveS1jYXJydXNlbC1kaXJlY3Rvcy1mdXRib2wucGhwP21vZGU9bW9iaWxlIiAgIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iYm9yZGVyOjA7ZGlzcGxheTpibG9jazttYXgtIj48L2lmcmFtZT4=
    • Real Madrid – RB Leipzig, en directo | Dónde ver, alineaciones y cómo va online gratis el partido de la Champions League en vivo hoy
        • Real Madrid
        • Real Madrid
      • EN DIRECTO

      Arda Güler amplia la renta del Real Madrid contra el Leipzig

      • Alberto Sarmiento
      • 2026-10-21 21:16
    • Bernardo Silva marca su primer gol con el Real Madrid tras una acción de nueve ante el RB Leipzig
        • Real Madrid
        • Real Madrid

      Bernardo Silva marca su primer gol con el Real Madrid tras una acción de nueve ante el RB Leipzig

      • Alejandro Fernández
      • 2026-10-21 21:53
    • ¿Por qué no juega Diomande el partido del Real Madrid ante el Leipzig en Champions?
        • Real Madrid
        • Real Madrid

      ¿Por qué no juega Diomande el partido del Real Madrid ante el Leipzig en Champions?

      • Daniel Calle
      • 2026-10-21 20:12
    • Sánchez amenaza a PP, Vox y Milei: Os vamos a llevar al aserradero
        • España
        • España

      Sánchez amenaza a PP, Vox y Milei: "Os vamos a llevar al aserradero"

      • Rafael Molina
      • 2026-10-21 20:34
    • La
        • España
        • España

      La 'kale borroka' vuelve a sembrar el pánico en las calles en La Coruña: barricadas, mobiliario urbano quemado y cargas policiales

      • María Ruiz
      • 2026-10-21 22:04
    • Cayetana Álvarez de Toledo acompañará a Feijóo como nº 2 de la lista por Madrid
        • España
        • España

      Cayetana Álvarez de Toledo acompañará a Feijóo como nº 2 de la lista por Madrid

      Cayetana Álvarez de Toledo, portavoz adjunta del Grupo Popular en el Congreso, acompañará al líder del PP y candidato a la Presidencia del Gobierno, Alberto Núñez Feijóo, como número dos de la lista por Madrid a la Cámara Baja en las elecciones del próximo 29 de noviembre, según ha podido saber OKDIARIO.
      • Segundo Sanz
      • 2026-10-21 14:37
    • El intento de boicot contra Abascal se repite antes de su mitin en Avilés: la Policía carga contra los radicales
        • España
        • España

      El intento de boicot contra Abascal se repite antes de su mitin en Avilés: la Policía carga contra los radicales

      Horas después del escrache contra Abascal en La Coruña, el mitin del líder de Vox en la plaza de Camposagrado, en Avilés, estuvo precedido de otra movilización. El colectivo Asturies Antifascista convocó una manifestación con el lema Paremos los pies al fascismo a unos 200-300 metros del acto de Vox. La proximidad entre ambas concentraciones ha obligado a montar un cordón policial.
      • María Ruiz
      • 2026-10-21 20:57
    • El Gobierno rabia porque hasta Pumpido ha votado en contra de dejar votar a los falsos nietos del exilio
        • España
        • España

      Hasta Pumpido ha votado en contra de dejar votar a los falsos nietos del exilio y el Gobierno rabia

      • Rafael Molina
      • 2026-10-21 13:25
    • Campo, el ministro de los indultos, y el magistrado Sáez, los únicos que defienden el recurso por los nietos
        • España
        • España

      Campo, el ministro de los indultos, y el magistrado Sáez, los únicos que defienden el recurso por los nietos

      • Fernán González
      • 2026-10-21 13:30
    • El Constitucional tumba por 10 a 2 el recurso del Defensor del Pueblo contra la suspensión de voto de los falsos nietos
        • España
        • España

      El Constitucional tumba por 10 a 2 el recurso del Defensor del Pueblo contra la suspensión de voto de los falsos nietos

      El Tribunal Constitucional tumba por 10 a 2 el recurso del Defensor del Pueblo contra la suspensión de voto de los falsos nietos. El Pleno de la Corte de Garantías resolverá mediante auto al existir dos votos particulares de magistrados del Constitucional. El defensor del pueblo ha fracasado en su intento de frenar la medida cautelar que impuso la Sala Tercera del Tribunal Supremo para impedir que algunos nacionalizados por la Ley de Nietos votasen el 19 de noviembre.
      • Irene Tabera
      • 2026-10-21 13:07
    • 12 policías antidisturbios heridos por la
        • España
        • España

      12 policías antidisturbios heridos por la 'borroka gallega' que ha intentado censurar a Abascal en La Coruña

      • Rosalina Moreno
      • 2026-10-21 17:10
    • Estos son los adoquines que han lanzado los antifascistas para reventar el mitin de Vox en La Coruña
        • España
        • España

      Estos son los adoquines que han lanzado los antifascistas para reventar el mitin de Vox en La Coruña

      • Paula Ciordia
      • Enviada especial
      • La Coruña
      • 2026-10-21 21:52
    • Los universitarios de La Coruña desmontan el bulo estudiantil antifascista: «Aquí nunca les hemos visto»
        • España
        • España

      Los universitarios de La Coruña desmontan el bulo estudiantil antifascista: "Aquí nunca les hemos visto"

      • Paula Ciordia
      • Enviada especial
      • La Coruña
      • 2026-10-21 21:16
    • La extrema izquierda recibe entre amenazas a Milei en la Universidad Rey Juan Carlos: ¡Fascista, estás en nuestra lista!
        • España
        • España

      La extrema izquierda recibe entre amenazas a Milei en la Universidad Rey Juan Carlos: "¡Fascista, estás en nuestra lista!"

      La visita del presidente de la República Argentina, Javier Milei, al campus de Vicálvaro de la Universidad Rey Juan Carlos (URJC) ha estado marcada por el evidente contraste entre el ruido de una minoría en los exteriores y la absoluta tranquilidad académica en el interior. Un grupo de estudiantes de extrema izquierda ha recibido al mandatario desplegando banderas rojas, insignias palestinas y alzando consignas radicales, llegando a obstaculizar el paso de los alumnos que acudían a estudiar o a presenciar la ponencia de Milei.
      • Sira Lobato
      • 2026-10-21 17:21
    • Ayuso recibe a Milei en Madrid y le alerta de la cirugía electoral de Sánchez con la Ley de Nietos
        • España
        • España

      Ayuso recibe a Milei en Madrid y le alerta de la "cirugía electoral" de Sánchez con la Ley de Nietos

      • Pablo Romero-Salazar
      • 2026-10-21 19:38
    • Abascal y Milei hablan por videollamada: No hay nada más divertido que patear culos zurdos
        • España
        • España

      Abascal y Milei hablan por videollamada: "No hay nada más divertido que patear culos zurdos"

      • Pablo Romero-Salazar
      • 2026-10-21 18:25
    • Lleno absoluto de Cayetana Álvarez de Toledo en Sevilla: El sanchismo va a recordarse como la etapa de la indecencia
        • España
        • España

      Lleno absoluto de Cayetana Álvarez de Toledo en Sevilla: "El sanchismo va a recordarse como la etapa de la indecencia"

      • Ezequiel Marín
      • 2026-10-21 21:46
    • El PSOE pone a los asistentes al mitin de Sánchez en Burgos a darse besos ante las cámaras tras hacerlo él con Begoña
        • España
        • España

      El PSOE pone a los asistentes al mitin de Sánchez en Burgos a darse besos ante las cámaras tras hacerlo él con Begoña

      • Rafael Molina
      • 2026-10-21 19:03
    • Frente Amplio se retira de una primera circunscripción y no presentará lista al Congreso en Teruel para no restar votos al PSOE
        • España
        • España

      Frente Amplio se retira de una primera circunscripción y no presentará lista al Congreso en Teruel para no restar votos al PSOE

      • Neila Gallego
      • 2026-10-21 19:56
    • PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9wLnR5cGVraXQubmV0IiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcyI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcCI+CjxzdHlsZT4KLyogYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQ6IHZlciByZWxhdGVkVXBwZXJjYXNlVGl0bGVGb250IG3hcyBhYmFqby4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7CiAgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBNZWRpdW0lMjBDbmQub3RmIik7Cn0KLyogYW1wbGl0dWRlLWJvb2s6IHZlciByZWxhdGVkQXV0aG9yRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLWJvb2siOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsKfQovKiBjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZSBhcXXtIGVzIGltcHJlc2NpbmRpYmxlOiBjb252aWVydGUgZXN0ZSBibG9xdWUKICAgZW4gZWwgY29udGVuZWRvciBkZSByZWZlcmVuY2lhIHBhcmEgbG9zICJAY29udGFpbmVyICguLi4taW5saW5lLXNpemUuLi4pIgogICBkZSBt4XMgYWJham8uIFVzYW1vcyBAY29udGFpbmVyIGVuIHZleiBkZSBAbWVkaWEgcG9ycXVlICJAbWVkaWEKICAgKG1heC1pbmxpbmUtc2l6ZTouLi4pIiBOTyBlcyB1bmEgY29uZGljafNuIENTUyB24WxpZGEgJiM4MjEyOyBpbmxpbmUtc2l6ZSBzb2xvCiAgIGV4aXN0ZSBjb21vIGNhcmFjdGVy7XN0aWNhIGRlIEBjb250YWluZXIsIG51bmNhIGRlIEBtZWRpYSAmIzgyMTI7IGFz7SBxdWUgZXNhcwogICByZWdsYXMgamFt4XMgc2UgYWN0aXZhYmFuICh2ZXJpZmljYWRvIGNvbiBtYXRjaE1lZGlhOiBzaWVtcHJlIGZhbHNlLCBzaW4KICAgaW1wb3J0YXIgZWwgYW5jaG8pLCB5IHBvciBlc28gbGEgbm90aWNpYSBwcmluY2lwYWwgcG9k7WEgZGVzYXBhcmVjZXIgbyBlbAogICBkaXNl8W8gbfN2aWwgbm8gc2UgYWN0aXZhYmEgbnVuY2EuIEBjb250YWluZXIgc+0gc29wb3J0YSBpbmxpbmUtc2l6ZSBkZQogICBmb3JtYSB24WxpZGEsIHkgZXZpdGEgaWd1YWxtZW50ZSBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsCiAgIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUyBkaXJlY3RhbWVudGUuICovCi8qIEZJWCBPS0RJQVJJTyAqLwogICAgLml0ZW0gYXJ0aWNsZSAuYXJ0aWNsZS1zY3JpcHQgewogICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9Ci8qIENvbnRlbmVkb3IgZGUgdG9kYSBsYSBhcGVydHVyYSAoY2FiZWNlcmEgKyBub3RpY2lhIHByaW5jaXBhbCArIGNvbHVtbmEpOgogICBmb25kbyBibGFuY28geSBhaXJlIGFscmVkZWRvciwgc29sbyBlbiBEZXNrICYjODIxMjsgdmVyIG92ZXJyaWRlIGRlbnRybyBkZWwKICAgQGNvbnRhaW5lcihtYXgtaW5saW5lLXNpemU6ODYwcHgpIGRlIG3hcyBhYmFqbywgcXVlIGxvIGFudWxhIHBvciBkZWJham8KICAgZGUgZXNlIGFuY2hvIChlcXVpdmFsZW50ZSBhIGxhIHZpc3RhIE3zdmlsKSwgeSBhcXXtIG1pc21vIGNvbiBlbCB0ZXh0byBhCiAgIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEgKGJvZHlQb3NpdGlvbkJsb2Nrc0NvbHVtbik6IGNvbiBlc2UgbGF5b3V0IGxhCiAgIG5vdGljaWEgcHJpbmNpcGFsIHlhIG9jdXBhIGVsIDEwMCUgZGVsIGFuY2hvIHkgc29sYXBhIHN1IHByb3BpYSBmb3RvIGRlCiAgIGJvcmRlIGEgYm9yZGUsIGFz7SBxdWUgZWwgYWlyZS9mb25kbyBibGFuY28gc29icmEuICovCi5ibGstZGhlYm97bWF4LWlubGluZS1zaXplOjk2MHB4O21hcmdpbjowIGF1dG87Y29udGFpbmVyLXR5cGU6aW5saW5lLXNpemU7fQouYmxrLWRoZWJvIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0KLmJsay1kaGVibyAucGFnZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MTVweH0KLmJsay1kaGVibyAucGFnZSAuY29sdW1ue29yZGVyOjN9Ci5ibGstZGhlYm8gLnBhZ2UgLmxlYWR7b3JkZXI6Mn0KLyogODYwcHggeSBubyA0NzVweDogY29uIGxhIGNvbHVtbmEgZmlqYSAoMjIwcHggKyAyMHB4IGRlIGdhcCA9IDI0MHB4KSwKICAgY3VhbHF1aWVyIGFuY2hvIGRlIGlmcmFtZSBwb3IgZGViYWpvIGRlIH44NjBweCBkZWphIGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgICgxZnIpIGNhZGEgdmV6IGNvbiBtZW5vcyBlc3BhY2lvIGhhc3RhIGNvbGFwc2FyIGEgMHB4IGRlIGFuY2hvIGFudGVzIGRlCiAgIGxsZWdhciBhIHVuIGJyZWFrcG9pbnQgdGFuIGJham8gY29tbyA0NzVweCAmIzgyMTI7IGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgIGRpcmVjdGFtZW50ZSBkZXNhcGFyZWNlIGVuIGVzYSBmcmFuamEgaW50ZXJtZWRpYSAobmkgImRlc2siIGNvbXBsZXRvIG5pCiAgICJt83ZpbCIgZXN0cmVjaG8pLiBDb24gODYwcHggc2UgcGFzYSBhIHVuYSBzb2xhIGNvbHVtbmEgYXBpbGFkYSBhbnRlcyBkZQogICBxdWUgZXNvIHB1ZWRhIG9jdXJyaXIuCiAgIEVzdGUgYnJlYWtwb2ludCBzZSBvbWl0ZSBwb3IgY29tcGxldG8gbWllbnRyYXMgbGEgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpCiAgIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpOiBwZW5zYWRvIHBhcmEgY3VhbmRvIGVsIG3zZHVsbyBsbGV2YSBzdQogICBjb2x1bW5hIGEgOTYwcHgsIGRlamEgZGUgdGVuZXIgc2VudGlkbyBlbiB1bmEgZXhwb3J0YWNp824gZGUgc29sbyBsYQogICBub3RpY2lhIHByaW5jaXBhbCBhIHVuIGFuY2hvIGZpam8gZWxlZ2lkbyBhIG1hbm8gJiM4MjEyOyBsb3MgYW5jaG9zIHNpbXVsYWRvcwogICAoNjEzLzQ2MC8zMDdweCkgZXN04W4gVE9ET1MgcG9yIGRlYmFqbyBkZSA4NjBweCwgYXPtIHF1ZSBzaW4gZXN0ZSBnYXRpbmcKICAgZWwgSFRNTCBleHBvcnRhZG8gY2Flcu1hIHNpZW1wcmUgYSBsYSB0aXBvZ3JhZu1hICJN83ZpbCIgKGNvbiAhaW1wb3J0YW50KQogICBzZWEgY3VhbCBzZWEgbGEgcXVlIGVsIHVzdWFyaW8gY29uZmlndXLzIGVuICJEZXNrIiBwYXJhIGVzYSBzaW11bGFjafNuLAogICBkYW5kbyBsYSBmYWxzYSBzZW5zYWNp824gZGUgcXVlIHVuYSBjb25maWd1cmFjafNuICJwaXNhIiBhIG90cmEuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1kaGVib3tiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowO30KICAuYmxrLWRoZWJvIC5wYWdle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmJsay1kaGVibyAucGFnZSAuc3RhY2stdGl0bGUge2ZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDogMS4yZW07fQogIC5ibGstZGhlYm8gLnBhZ2UgLnN0YWNrLWF1dGhvciB7bWFyZ2luLXRvcDogMTBweDt9CiAgLmJsay1kaGVibyAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YmxvY2stc2l6ZTo0MDBweCAhaW1wb3J0YW50O30KICAuYmxrLWRoZWJvIC5sZWFkLW1lZGlhe2FzcGVjdC1yYXRpbzoxNi85ICFpbXBvcnRhbnQ7fQogIC5ibGstZGhlYm8gLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLWRoZWJvIC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLWRoZWJvIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstZGhlYm8gLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay1kaGVibyAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLWRoZWJvIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLWRoZWJvIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay1kaGVibyAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLWRoZWJvIC5wYWdlIC5jb2x1bW4taXRlbXtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KICAuYmxrLWRoZWJvIC5wYWdlIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9CiAgLmJsay1kaGVibyAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMjEgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjIxcHggIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAucGFnZSAuY29sdW1uLWl0ZW0udGl0bGUtb25seS1tb2JpbGUtMTggLmxlZnQtdGl0bGV7Zm9udC1zaXplOjE4cHggIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAucGFnZSAubGVmdC1wbGF5ewogICAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICAgIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4OwogIH0KICAuYmxrLWRoZWJvIC5wYWdlIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICAgIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICAgIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKICB9Cn0KLyogVGlwb2dyYWbtYSAiTfN2aWwiIChhbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL3RpdHVsYXJlcyBhbmltYWRvcykgY29uIFNVCiAgIFBST1BJTyBicmVha3BvaW50ICg0ODBweCksIHNlcGFyYWRvIGRlbCBkZSBhcnJpYmEgKDg2MHB4LCBzb2xvIHBhcmEgYXBpbGFyCiAgIGxhIHJlamlsbGEgY29sdW1uYStub3RpY2lhKTogdW4gY29udGVuZWRvciByZWFsIGRlIG1lbm9zIGRlIDg2MHB4IGVzIG11eQogICBoYWJpdHVhbCAocC5lai4gdW5hIGNvbHVtbmEgZGUgYXJ07WN1bG8gZGUgfjcwMHB4KSB5IE5PIGVzIHVuIG3zdmlsICYjODIxMjsgY29uCiAgIHVuIPpuaWNvIGJyZWFrcG9pbnQgY29tcGFydGlkbywgbGEgdGlwb2dyYWbtYSAiRGVzayIgcXVlIGNvbmZpZ3VyYSBlbAogICB1c3VhcmlvIG5vIGxsZWdhYmEgYSB2ZXJzZSBudW5jYSBlbiBlc2UgY2FzbywgY2F5ZW5kbyBzaWVtcHJlIGEgbG9zIHZhbG9yZXMKICAgcG9yIGRlZmVjdG8gZGUgIk3zdmlsIiBzaW4gcXVlIG5hZGllIGxvIGh1YmllcmEgcGVkaWRvLiA0ODBweCBz7SBzZQogICBjb3JyZXNwb25kZSBjb24gdW4gYW5jaG8gZGUgbfN2aWwgcmVhbCAobGEgdmlzdGEgIk3zdmlsIiBkZWwgcHJvcGlvIGdlc3RvcgogICBzaW11bGEgMzc1cHgpLiBJZ3VhbCBxdWUgZWwgYnJlYWtwb2ludCBkZSBhcnJpYmEsIHNlIG9taXRlIGR1cmFudGUgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBkZSBsYSBub3RpY2lhIHByaW5jaXBhbCAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstZGhlYm8gLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojRkY1MDUwICFpbXBvcnRhbnQ7fQogIC5ibGstZGhlYm8gLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiNGRjUwNTAgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC10aXRsZXtmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstZGhlYm8gLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstZGhlYm8gLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstZGhlYm8gLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1kaGVibyAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay1kaGVibyAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1kaGVibyAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLWRoZWJvIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay1kaGVibyAubGVhZC1tZWRpYSBpbWcsCi5ibGstZGhlYm8gLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstZGhlYm8gLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLWRoZWJvIC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLWRoZWJvIC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay1kaGVibyAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay1kaGVibyAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay1kaGViby1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay1kaGVibyAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstZGhlYm8ta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLWRoZWJvLWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstZGhlYm8ta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLWRoZWJvIC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay1kaGViby1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLWRoZWJvLWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1kaGVibyAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstZGhlYm8gLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstZGhlYm8gLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay1kaGVibyAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLWRoZWJvIC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLWRoZWJvIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay1kaGVibyAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay1kaGVibyAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay1kaGVibyAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstZGhlYm8gLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1kaGVibyAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL2F1dG9yIGNlbnRyYWRvcyBlbiB2ZXJ0aWNhbCBkZW50cm8gZGVsIGFsdG8KICAgc29icmFudGUgYmFqbyBsYSBjYXRlZ29y7WEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1kaGVibyAubGVhZC1ib2R5LW1haW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpbmxpbmUtc2l6ZToxMDAlO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1kaGVibyAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGstZGhlYm8gLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay1kaGVibyAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLWRoZWJvIC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLWRoZWJvIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA0MnB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9Ci5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotMzBweDt9Ci5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXJpZ2h0OjA7fQovKiBQb3NpY2nzbiAnYm90dG9tLWZ1bGwnIGRlbCBsZWFkLWJvZHkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gaW5saW5lLXNpemUKICAgZW4gdmV6IGRlIHdpZHRoIHBvciBlbCBtaXNtbyBtb3Rpdm8gcXVlIGVsIHJlc3RvIGRlIGVzdGUgYmxvcXVlIChldml0YXIKICAgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbCB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MKICAgZGlyZWN0YW1lbnRlKS4gKi8KLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktYm90dG9tLWZ1bGwgLmxlYWQtYm9keXsKICBpbmxpbmUtc2l6ZToxMDAlOwogIG1hcmdpbjowOwogIHBhZGRpbmctdG9wOjMwcHg7CiAgcGFkZGluZy1ib3R0b206MzBweDsKICBib3JkZXI6bm9uZTsKfQovKiBFdGlxdWV0YSBkZSBleGNsdXNpdmEgKG8gdGV4dG8gcGVyc29uYWxpemFkbykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1kaGVibyAubGVhZC1leGNsdXNpdmUtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDt6LWluZGV4OjM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtsZXR0ZXItc3BhY2luZzowLjVweDtwYWRkaW5nOjJweCA4cHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb2ludGVyLWV2ZW50czpub25lO30KLyogU2VsZWN0b3IgY29uIDMgY2xhc2VzICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKCIubGVhZC1tZWRpYSBpbWciIHRhbWJp6W4KICAgbWF0Y2hlYSBlc3RlIDxpbWc+IHkgbGUgZ2FuYWJhIGVuIGVzcGVjaWZpY2lkYWQpLiAqLwouYmxrLWRoZWJvIC5sZWFkLWV4Y2x1c2l2ZS10YWcgLmxlYWQtZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWRoZWJvIC5sZWFkLWNhdHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06c2tld1koLTZkZWcpO21hcmdpbi10b3A6LTE1cHg7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1kaGVibyAubGVhZC1raWNrZXIsIC5ibGstZGhlYm8gLmxlYWQtc3VidGl0bGV7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7Cn0KLmJsay1kaGVibyAubGVhZC1raWNrZXJ7Zm9udC13ZWlnaHQ6NzAwO30KLmJsay1kaGVibyAubGVhZC1zdWJ0aXRsZXtmb250LXdlaWdodDo2MDA7fQovKiBUYW1h8W8vaW50ZXJsaW5lYWRvL2NvbG9yIGRlIGFudGV07XR1bG8geSBzdWJ07XR1bG8gZW4gRGVzayAodmFsb3JlcyBwb3IKICAgZGVmZWN0byBkZWwgYmxvcXVlOyBlbCBvdmVycmlkZSBkZSBN83ZpbCB2YSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywKICAgeWEgcXVlIGVsIEhUTUwgZXhwb3J0YWRvIGVzIHJlc3BvbnNpdmUgeSBubyBkZXBlbmRlIGRlIHF16SB2aXN0YSB0dXZpZXJhcwogICBzZWxlY2Npb25hZGEgZW4gZWwgZ2VzdG9yIGFsIGV4cG9ydGFyL2NvcGlhcikuICovCi5ibGstZGhlYm8gLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiNGRjUwNTA7fQouYmxrLWRoZWJvIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiNGRjUwNTA7fQovKiB0ZXh0LXdyYXA6YmFsYW5jZSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlbCBnZXN0b3IgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIGVzYSByZWdsYSk6IHJlcGFydGUgbGFzCiAgIGztbmVhcyBkZWwgdGl0dWxhciBkZSBmb3JtYSBt4XMgdW5pZm9ybWUgZGVudHJvIGRlIGNhZGEgZGlzcG9zaXRpdm8sIHNpbgogICBwcmV0ZW5kZXIgaWd1YWxhciBlbCBu+m1lcm8gZGUgbO1uZWFzIGVudHJlIHBsYXRhZm9ybWFzIGRpc3RpbnRhcy4gKi8KLmJsay1kaGVibyAubGVhZC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToyLjJyZW07bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstZGhlYm8gLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstZGhlYm8gLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay1kaGVibyAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLWRoZWJvIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLWRoZWJvIC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstZGhlYm8gLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstZGhlYm8gLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstZGhlYm8gLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLWRoZWJvIC50aHVtYiBpbWcsCi5ibGstZGhlYm8gLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay1kaGVibyAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLWRoZWJvIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstZGhlYm8tYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1kaGVibyAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstZGhlYm8gLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLWRoZWJvIC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstZGhlYm8gLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstZGhlYm8gLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLWRoZWJvIC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstZGhlYm8gLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLWRoZWJvIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstZGhlYm8gLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstZGhlYm8gLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLWRoZWJvIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstZGhlYm8gLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstZGhlYm8gLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay1kaGVibyAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstZGhlYm8gLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstZGhlYm8gLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLWRoZWJvLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstZGhlYm8gLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHR7dG9wOjEwcHg7cmlnaHQ6MTBweDtsZWZ0OmF1dG87Ym90dG9tOmF1dG87fQouYmxrLWRoZWJvIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7Ym90dG9tOjEwcHg7bGVmdDoxMHB4O3RvcDphdXRvO3JpZ2h0OmF1dG87fQouYmxrLWRoZWJvIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0e2JvdHRvbToxMHB4O3JpZ2h0OjEwcHg7dG9wOmF1dG87bGVmdDphdXRvO30KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy10b3AtbGVmdCwKLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHQsCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci8qIFBvc2ljafNuICdib3R0b20nIHBvciBkZWZlY3RvOiBlbCBsZWFkLWJvZHkgc29sYXBhIDMwcHggc29icmUgZWwgYm9yZGUKICAgSU5GRVJJT1IgZGUgbGEgZm90by927WRlbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgY29uICdib3R0b20tZnVsbCcKICAgbmkgY29uICdsZWZ0Jy8ncmlnaHQnIChhanVzdGUgaG9yaXpvbnRhbCBwcm9waW8sIHZlciBhcnJpYmEpLiAqLwouYmxrLWRoZWJvIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdCwKLmJsay1kaGVibyAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NDBweDsgfQouYmxrLWRoZWJvIC5wbGF5LWJ1dHRvbiAucGxheS1pY29uewogIGlubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjtib3JkZXItdG9wOjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsKfQouYmxrLWRoZWJvIC5wbGF5LWJ1dHRvbiAucGxheS10ZXh0e2Rpc3BsYXk6bm9uZTt9CgovKiBUaXR1bGFyZXMgYW5pbWFkb3MgKGNhcGEgYWx0ZXJuYXRpdmEgc29icmUgbGVhZC1tZWRpYSkgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYQogICBoZXJyYW1pZW50YS4gQ2FkYSB0aXR1bGFyIHRpZW5lIHN1IHByb3BpYSBwb3NpY2nzbiAoY2xhc2UgcG9zLSosIHZlcgogICBidWlsZFNjb3BlZEhUTUwpIHkgc2UgcmV2ZWxhIGztbmVhIHBvciBs7W5lYSAodW5hIHZleiBtZWRpZGFzIHN1cyBs7W5lYXMKICAgcmVhbGVzIHBvciBlbCBzY3JpcHQgc3RhbmRhbG9uZSwgdmVyIGJ1aWxkQW5pbUhlYWRsaW5lc1NjcmlwdCkgY29uIHVuYQogICBjYWphIGRlIGZvbmRvIGRldHLhcyBkZSBjYWRhIGztbmVhIHkgdW4gZmFkZSBkZSBvcGFjaWRhZCBlbnRyZSB0aXR1bGFyZXMuICovCi5ibGstZGhlYm8gLmxlYWQtYW5pbS1oZWFkbGluZXN7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICB6LWluZGV4OjQ7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoxNXB4OwogIG9wYWNpdHk6MDsKfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBib3R0b206NjBweDsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0eyB0b3A6NjBweDsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1kaGVibyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstZGhlYm8gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBsZWZ0OmF1dG87IHJpZ2h0OjE1cHg7IH0KLmJsay1kaGVibyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHR7IHRvcDo2MHB4OyB9Ci5ibGstZGhlYm8gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjYwcHg7IH0KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnQsCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnQsCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLWRoZWJvIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstZGhlYm8gLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1kaGVibyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci5ibGstZGhlYm8gLmxlYWQtYW5pbS1oZWFkbGluZS5pcy1hY3RpdmV7IG9wYWNpdHk6MTsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0tbGluZXsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OnRhYmxlOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo5MDA7CiAgY29sb3I6I2ZmZjsKICBwYWRkaW5nOjJweCA4cHg7CiAgY2xpcC1wYXRoOmluc2V0KDAgMTAwJSAwIDApOwogIG9wYWNpdHk6MTsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlOwp9Ci5ibGstZGhlYm8gLmxlYWQtYW5pbS1saW5lLmlzLWhpZGluZ3sgb3BhY2l0eTowOyB9Ci8qIFNvbGFwZSBkZSAxcHggZW50ZXJhIGVudHJlIGztbmVhcyBwYXJhIGNlcnJhciBlbCBoaWxvIGRlIHN1Yi1w7XhlbCBxdWUKICAgcHVlZGUgcXVlZGFyIGVudHJlIHN1cyBjYWphcyBkZSBmb25kbyAocmVkb25kZW8gZGUgYWx0dXJhcyBmcmFjY2lvbmFyaWFzKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstZGhlYm8gLmxlYWQtYW5pbS1saW5lICsgLmxlYWQtYW5pbS1saW5lewogIG1hcmdpbi10b3A6LTFweDsKfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0tbGluZTpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6NnB4OyB9Ci5ibGstZGhlYm8gLmxlYWQtYW5pbS1saW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctYm90dG9tOjZweDsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstZGhlYm8gLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1kaGVibyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHQgLmxlYWQtYW5pbS1saW5leyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6MDsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0taGVhZGxpbmVzLmlzLXBvc2l0aXZlIC5sZWFkLWFuaW0tbGluZXsgY29sb3I6IzBFMTExQTsgfQouYmxrLWRoZWJvIC5sZWFkLWFuaW0tbGluZS1iZ3sgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHotaW5kZXg6LTE7IH0KLmJsay1kaGVibyAubGVhZC1hbmltLWxpbmUtdGV4dHsgcG9zaXRpb246cmVsYXRpdmU7IH0KQGtleWZyYW1lcyBibGstZGhlYm8tYW5pbS1saW5lLXJldmVhbHsgdG97IGNsaXAtcGF0aDppbnNldCgwIDAgMCAwKTsgfSB9CgovKiBBbmNob3Igb3ZlcmxheSBmb3IgZnVsbCBjbGlja2FibGUgbGVhZCAqLwouYmxrLWRoZWJvIC5sZWFkLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjF9CgovKiBIb3ZlciBvcGFjaXR5IGFuaW1hdGlvbiAqLwouYmxrLWRoZWJvIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAouYmxrLWRoZWJvIC5jb2x1bW4taXRlbTpob3ZlcntvcGFjaXR5Oi44fQovKiBGb3RvIHByaW5jaXBhbCAoZmFsbGJhY2svc2luZ2xlKSBvIGNhcnJ1c2VsIGRlIGZvdG9zOiBvcGFjaWRhZCAwLjkgYWwKICAgcGFzYXIgZWwgcmF0824gcG9yIGxhIHRhcmpldGEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4KICAgbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGEgdu1kZW8gbmkgYWwKICAgY29tcGFyYWRvciBhbnRlcy9kZXNwdelzLiAqLwouYmxrLWRoZWJvIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLWRoZWJvIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1kaGVibyAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKLmJsay1kaGVibyAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6Ljk7fQovKiBFbiBlbCBhbmNobyBt83ZpbCAobWlzbW8gQGNvbnRhaW5lciBxdWUgZWwgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvKSBubwogICBhcGxpY2EgZXN0YSBhbmltYWNp824gZGUgb3BhY2lkYWQgc29icmUgbGEgbm90aWNpYSBwcmluY2lwYWw6IHZhIERFU1BVyVMKICAgZGUgbGEgcmVnbGEgZ2VuZXJhbCBkZSBhcnJpYmEgKG1pc21hIGVzcGVjaWZpY2lkYWQpIHBhcmEgcG9kZXIgZ2FuYXJsZS4KICAgT21pdGlkbywgaWd1YWwgcXVlIGVsIGJsb3F1ZSBkZSB0aXBvZ3JhZu1hIGRlIGFycmliYSwgbWllbnRyYXMgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstZGhlYm8gLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCiAgLmJsay1kaGVibyAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKICAuYmxrLWRoZWJvIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eToxO30KfQoKLyogQW5pbWFjafNuIGNvbXBhcnRpZGEgcGxheSBwcmluY2lwYWwgKyBjdWFkcmFkb3MgcGxheSBhcGlsYWRhcyAqLwpAa2V5ZnJhbWVzIGJsay1kaGViby1ibGlua3sKICAwJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpfQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSl9Cn0KLyogQ2FiZWNlcmEgKi8KLmJsay1kaGVibyAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxMHB4IDAgMzJweH0KLmJsay1kaGVibyAuZm5kLWxpbmVhe2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTo1cHg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tdG9wOi0xOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzM30KLmJsay1kaGVibyAuc2VjdGlvbi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LTFweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4IDEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjMEUxMTFBO3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTtmb250LXNpemU6NDJweDtjb2xvcjojMEUxMTFBO30KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsuYmxrLWRoZWJvIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MCAxMHB4fX0KLyogQ2FiZWNlcmEgJiM4MjEyOyBEaXNl8W8gMiAodGl0dWxhciArIGNhcnJ1c2VsIGRlIGxvZ290aXBvcykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1kaGVibyAuaGVhZGVyMntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzBFMTExQTt9Ci8qIGFsaWduLXNlbGY6ZmxleC1lbmQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSAxNXB4IGRlIGxhIGztbmVhIHNlcGFyYWRvcmEKICAgZW4gRGVzayAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MKICAgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWRoZWJvIC5oZWFkZXIyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4OjEgMSA1MCU7bWluLWlubGluZS1zaXplOjA7YWxpZ24tc2VsZjpmbGV4LWVuZDt9Ci5ibGstZGhlYm8gLmhlYWRlcjItdGFnc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleDowIDAgYXV0bzt9Ci8qIE1pc21vIHRhbWHxby90aXBvZ3JhZu1hIHF1ZSAubGVhZC1leGNsdXNpdmUtdGFnIChsYSBkZSBsYSBub3RpY2lhCiAgIHByaW5jaXBhbCkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZQogICBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1kaGVibyAuaGVhZGVyMi1jYXQtdGFnLAouYmxrLWRoZWJvIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWd7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6LjhlbTtsZXR0ZXItc3BhY2luZzouNXB4O3BhZGRpbmc6MnB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7fQouYmxrLWRoZWJvIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay1kaGVibyAuaGVhZGVyMi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZTozNnB4O2xpbmUtaGVpZ2h0OjEuMDU7Y29sb3I6IzBFMTExQTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWluLWlubGluZS1zaXplOjA7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO30KLyogU2VwYXJhY2nzbiBkZSAxMHB4IGVudHJlIGVsIHRleHRvIGRlIHBhdHJvY2luaW8geSBlbCBsb2dvIGVuIERlc2sgJiM4MjEyOyBlbgogICBN83ZpbCBzaWd1ZSBzaW4gc2VwYXJhY2nzbiAoZ2FwOjAsIHZlciBAY29udGFpbmVyIG3hcyBhYmFqbykuICovCi5ibGstZGhlYm8gLmhlYWRlcjItbG9nb3Mtd3JhcHtmbGV4OjAgMCBhdXRvO21heC1pbmxpbmUtc2l6ZTo1MCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fQovKiBFdGlxdWV0YSBvcGNpb25hbCBqdW50byBhbCBjYXJydXNlbCBkZSBsb2dvcyAocC5lai4gIlBhdHJvY2luYWRvIHBvcjoiKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWRoZWJvIC5oZWFkZXIyLWxvZ29zLWxhYmVse2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjY3O3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5ibGstZGhlYm8gLmhlYWRlcjItbG9nb3N7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTYwcHg7YmxvY2stc2l6ZTo1MHB4O2ZsZXgtc2hyaW5rOjA7fQouYmxrLWRoZWJvIC5oZWFkZXIyLWxvZ29zIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO21heC1pbmxpbmUtc2l6ZToxMDAlO21heC1ibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb250YWluO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UtaW4tb3V0O30KLmJsay1kaGVibyAuaGVhZGVyMi1sb2dvcyBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9Ci8qIElndWFsIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsOiBwb3IgZGViYWpvIGRlIGVzdGUgYW5jaG8gc2UKICAgaW50ZW50YSBwcmltZXJvIDEgU09MQSBGSUxBIChldGlxdWV0YXMrdGl0dWxhciBqdW50byBhbCBsb2dvLCBpZ3VhbCBxdWUKICAgZW4gRGVzaywgYSB0YW1h8W8gcmVkdWNpZG8pLiBFbCBibG9xdWUgZGUgbG9nb3MgbWFudGllbmUgU0lFTVBSRSBzdQogICBkaXNwb3NpY2nzbiBlbiBjb2x1bW5hIChldGlxdWV0YSBkZSBwYXRyb2NpbmlvIGVuY2ltYSBkZWwgbG9nbywKICAgYWxpbmVhZG9zIGEgbGEgZGVyZWNoYSwgc2luIHNlcGFyYWNp824pIHRhbnRvIGVuIGVzdGEgZmlsYSD6bmljYSBjb21vIGVuCiAgIGVsIHJlc2d1YXJkbyBkZSBhYmFqby4gU2kgZWwgdGl0dWxhciwgc3VtYWRvIGFsIGFuY2hvIGRlIGxhcyBldGlxdWV0YXMKICAgYWN0aXZhcyAoY2F0ZWdvcu1hIHkvbyBleGNsdXNpdmEsIHNpIGxhcyBoYXkpLCBzdXBlcmEgZWwgNTUlIGRlbCBhbmNobwogICB0b3RhbCBkZSBsYSBjYWJlY2VyYSAoY2FkYSB1bm8gbWVkaWRvIGEgdW5hIHNvbGEgbO1uZWEpLCBlbCBzY3JpcHQKICAgc3RhbmRhbG9uZSBh8WFkaWRvIGFsIGZpbmFsIGRlIGVzdGUgSFRNTCAodmVyCiAgIGJ1aWxkSGVhZGVyMlN0YWNraW5nU2NyaXB0KCkpIGxvIGRldGVjdGEgbWlkaWVuZG8gc3UgYW5jaG8gbmF0dXJhbAogICB5IGHxYWRlIGxhIGNsYXNlICJoZWFkZXIyLXN0YWNrZWQiOiBlbCBibG9xdWUgZGUKICAgbG9nb3Mgc3ViZSBlbnRvbmNlcyBhIHN1IHByb3BpYSBmaWxhIChhbGluZWFkbyBhIGxhIGRlcmVjaGEpIHkKICAgdGl0dWxhcitldGlxdWV0YXMgYmFqYW4gYSBsYSBmaWxhIGRlIGFiYWpvLCBhIGFuY2hvIGNvbXBsZXRvICYjODIxMjsgbWlzbW8KICAgbGF5b3V0IGRlIDIgZmlsYXMgcXVlIGhhYu1hIGFudGVzIHNpZW1wcmUgcG9yIGRlYmFqbyBkZSBlc3RlIGJyZWFrcG9pbnQsCiAgIGFob3JhIHNvbG8gY29tbyByZXNndWFyZG8uIERlbnRybyBkZSBlc2UgcmVzZ3VhcmRvLCBjb24gZXRpcXVldGEocykgZWwKICAgdGl0dWxhciBwYXNhIGFkZW3hcyBhIHN1IFBST1BJQSBmaWxhIGEgYW5jaG8gY29tcGxldG8sIGRlYmFqbyBkZSBsYSBmaWxhIGRlIGV0aXF1ZXRhcyAodmVyCiAgICIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnQiIG3hcyBhYmFqbykuIEVsIGxvZ28gc2UgcmVkdWNlIHVuIDIwJQogICAoMTYweDUwICYjODU5NDsgMTI4eDQwKS4KICAgYWxpZ24tc2VsZjpmbGV4LWVuZCBlbiBoZWFkZXIyLWxlZnQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSBsb3MgMTBweAogICBkZWwgcGFkZGluZy1ib3R0b20gcmVzcGVjdG8gYSBsYSBs7W5lYSBzZXBhcmFkb3JhICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlCiAgIGVuIERlc2sgKHZlciBoZWFkZXIyLWxlZnQgbeFzIGFycmliYSk6IHNpbiBlc3RvLCBhbCBzZXIgZWwgYmxvcXVlIGRlCiAgIGxvZ29zIG3hcyBhbHRvIHF1ZSBlbCB0aXR1bGFyLCBlbCBjZW50cmFkbyB2ZXJ0aWNhbCBkZWwgcm93IGRlamFiYSB1bgogICBodWVjbyBtYXlvciBlbnRyZSBlbCB0aXR1bGFyIHkgbGEgbO1uZWEuIEVsIGJsb3F1ZSBkZSBsb2dvcyBzaWd1ZQogICBjZW50cmFkbyAoc2luIGVzZSBvdmVycmlkZSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1kaGVibyAuaGVhZGVyMntmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30KICAuYmxrLWRoZWJvIC5oZWFkZXIyLWxlZnR7b3JkZXI6MTthbGlnbi1zZWxmOmZsZXgtZW5kO30KICAuYmxrLWRoZWJvIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MjthbGlnbi1zZWxmOmNlbnRlcjttYXgtaW5saW5lLXNpemU6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC5ibGstZGhlYm8gLmhlYWRlcjItbG9nb3N7aW5saW5lLXNpemU6MTI4cHg7YmxvY2stc2l6ZTo0MHB4O30KICAuYmxrLWRoZWJvIC5oZWFkZXIyLXRpdGxle2ZvbnQtc2l6ZToyN3B4O30KICAuYmxrLWRoZWJvIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9CiAgLmJsay1kaGVibyAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdHtvcmRlcjoyO2FsaWduLXNlbGY6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NXB4O30KICAuYmxrLWRoZWJvIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjE7bWF4LWlubGluZS1zaXplOjEwMCU7YWxpZ24tc2VsZjpmbGV4LWVuZDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC8qIFJlc2d1YXJkbyBpbnRlcm1lZGlvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YTogc29sbyBlbCB0aXR1bGFyIGJhamEgYSBzdQogICAgIHByb3BpYSBmaWxhIGEgYW5jaG8gY29tcGxldG8gY3VhbmRvIGxhcyBldGlxdWV0YXMgU80gY2FiZW4ganVudG8gYWwKICAgICBsb2dvIHBlcm8gZWwgdGl0dWxhciBuby4gaGVhZGVyMi1sZWZ0IHBhc2EgZGUgZmlsYSBhIGNvbHVtbmEKICAgICAoZXRpcXVldGFzIGFycmliYSwgdGl0dWxhciBkZWJham8pIHkgcmVjdXBlcmEgYWxpZ24tc2VsZjphdXRvIHBhcmEKICAgICBjZW50cmFyc2UgdmVydGljYWxtZW50ZSBjb250cmEgZWwgbG9nbyAoYWxpZ24tc2VsZjpjZW50ZXIgZGUgbGEgcmVnbGEKICAgICBiYXNlIGRlIC5oZWFkZXIyLWxvZ29zLXdyYXAsIGFycmliYSksIGlndWFsIHF1ZSBlbiBlbCByZXN0byBkZSBlc3RhZG9zLiAqLwogIC5ibGstZGhlYm8gLmhlYWRlcjIuaGVhZGVyMi10aXRsZS1iZWxvdyAuaGVhZGVyMi1sZWZ0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLXNlbGY6YXV0bztnYXA6NXB4O30KfQoKLyogRXN0aWxvICJmb3RvIGdyYW5kZSArIHRpdHVsYXIiOiBmb3RvIDE2OjkgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbyAmIzgyMTI7IGVsZWdpYmxlCiAgIHBvciBub3RpY2lhIGRlc2RlIGVsIGdlc3Rvci4gTm8gc2UgcmVzdHJpbmdlIGNvbiBAY29udGFpbmVyIHBvcnF1ZQogICAuY29sdW1uLWl0ZW0geWEgZXMgYmxvY2sgcG9yIGRlZmVjdG8gKGVsIHRodW1iIHkgZWwgdGV4dG8gc2UgYXBpbGFuIHNvbG9zCiAgIHNpbiBt4XMgYWp1c3RlKSwgYXPtIHF1ZSBlbCBkaXNl8W8gZnVuY2lvbmEgaWd1YWwgZGUgYmllbiBlbiBjdWFscXVpZXIKICAgYW5jaG8sIERlc2sgbyBN83ZpbC4gKi8KLmJsay1kaGVibyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1kaGVibyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAudGh1bWJ7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLWRoZWJvIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo5MDA7fQovKiBFbiBN83ZpbCBlbCB0aXR1bGFyIGRlIGVzdGUgZGlzZfFvIHNlIG11ZXN0cmEgbeFzIGdyYW5kZSAoMS41cmVtIGVuIHZleiBkZQogICBsb3MgMS4ycmVtIGRlIERlc2spICYjODIxMjsgbWlzbWEgZXNwZWNpZmljaWRhZCAoMyBjbGFzZXMpIHF1ZSBsYSByZWdsYSBkZQogICBhcnJpYmE7IGFsIGlyIERFU1BVyVMgZW4gZWwgQ1NTIGdhbmEgcG9yIG9yZGVuIGRlIGNhc2NhZGEuIFNlIHVzYSBlbAogICBicmVha3BvaW50IGRlIDQ4MHB4IChlbCBkZSB0aXBvZ3JhZu1hIGVuIGVzdGEgYXBwLCBubyBlbCBkZSA4NjBweCBxdWUgYXF17QogICBzb2xvIGdvYmllcm5hIGVsIGFwaWxhZG8gZGUgY29sdW1uYXMpIHBhcmEgcXVlIGNvaW5jaWRhIGNvbiBlbCByZXN0byBkZQogICBjYW1iaW9zIGRlIHRleHRvL3RhbWHxbyBwb3IgdmlzdGEuIE5vIGFmZWN0YSBhbCByZXNndWFyZG8gZGUgMiBjb2x1bW5hcyBlbgogICBt83ZpbCAobW9iLWdyaWQpLCBt4XMgZXNwZWPtZmljbyAoMThweCwgdmVyIG3hcyBhcnJpYmEpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstZGhlYm8gLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjEuNXJlbTt9Cn0KLyogRXN0aWxvICJCbG9xdWUgbWVkaWEiICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstZGhlYm8gLm1lZGlhLWJsb2NrLW1lZGlhe2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOmF1dG87fQouYmxrLWRoZWJvIC5tZWRpYS1ibG9jay13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWRoZWJvIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLWRoZWJvIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcCBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay1kaGVibyAuY29sdW1uLWl0ZW0ubGF5b3V0LW1lZGlhLWJsb2Nre2JvcmRlcjpub25lO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jsb2NrLXNpemU6YXV0bztmbGV4OjAgMCBhdXRvO30KLmJsay1kaGVibyAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spe2ZsZXg6MSAxIGF1dG87fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iYmxrLWRoZWJvIj4KICAKICA8bWFpbiBjbGFzcz0icGFnZSI+CiAgICAKICAgIDxhcnRpY2xlIGNsYXNzPSJsZWFkIGxlYWQtYm9keS1sZWZ0Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPHZpZGVvIGNsYXNzPSJsZWFkLXZpZGVvIiBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9tYXJydWVjb3MtdWx0aW1hLWNvbi1pc3JhZWwtbGEtY29tcHJhLWRlLWxhLWhvbmRhLWRlLWRhdmlkLXRyYXMtaW50ZXJlc2Fyc2UtcG9yLWFybWFzLWNhcGFjZXMtZGUtYWxjYW56YXItY2FuYXJpYXMtMjAyNjEwMjEtMTkyMDIzLWYyOGI5My5tcDQiIHBvc3Rlcj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL21hcnJ1ZWNvcy11bHRpbWEtY29uLWlzcmFlbC1sYS1jb21wcmEtZGUtbGEtaG9uZGEtZGUtZGF2aWQtdHJhcy1pbnRlcmVzYXJzZS1wb3ItYXJtYXMtY2FwYWNlcy1kZS1hbGNhbnphci1jYW5hcmlhcy1wb3N0ZXItMjAyNjEwMjEtMTkyMDIzLWQ3NmM3NS5qcGciIGF1dG9wbGF5IG11dGVkIGxvb3AgcGxheXNpbmxpbmUgcHJlbG9hZD0ibWV0YWRhdGEiPjwvdmlkZW8+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icGxheS1idXR0b24gcG9zLXRvcC1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InBsYXktaWNvbiI+PC9kaXY+PHNwYW4gY2xhc3M9InBsYXktdGV4dCI+UGxheTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSIgc3R5bGU9ImJhY2tncm91bmQ6I0ZGNTA1MDsiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFkLWNhdCIgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZjtjb2xvcjojRkY1MDUwIj5JTlRFUk5BQ0lPTkFMPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5NYXJydWVjb3MgdWx0aW1hIGNvbiBJc3JhZWwgbGEgY29tcHJhIGRlIGxhIEhvbmRhIGRlIERhdmlkIHRyYXMgaW50ZXJlc2Fyc2UgcG9yIGFybWFzIGNhcGFjZXMgZGUgYWxjYW56YXIgQ2FuYXJpYXM8L3NwYW4+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtbW9iaWxlIj5NYXJydWVjb3MgdWx0aW1hIGNvbiBJc3JhZWwgbGEgY29tcHJhIGRlIGxhIEhvbmRhIGRlIERhdmlkIHRyYXMgaW50ZXJlc2Fyc2UgcG9yIGFybWFzIGNhcGFjZXMgZGUgYWxjYW56YXIgQ2FuYXJpYXM8L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+TWFy7WEgUnVpejwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxhIGNsYXNzPSJsZWFkLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ludGVybmFjaW9uYWwvbWFycnVlY29zLXVsdGltYS1pc3JhZWwtY29tcHJhLWhvbmRhLWRhdmlkLWludGVyZXNhcnNlLWFybWFzLWNhcGFjZXMtYWxjYW56YXItY2FuYXJpYXMtMjA2MDMwMTAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTWFycnVlY29zIHVsdGltYSBjb24gSXNyYWVsIGxhIGNvbXByYSBkZSBsYSBIb25kYSBkZSBEYXZpZCB0cmFzIGludGVyZXNhcnNlIHBvciBhcm1hcyBjYXBhY2VzIGRlIGFsY2FuemFyIENhbmFyaWFzIiBhcmlhLWxhYmVsPSJNYXJydWVjb3MgdWx0aW1hIGNvbiBJc3JhZWwgbGEgY29tcHJhIGRlIGxhIEhvbmRhIGRlIERhdmlkIHRyYXMgaW50ZXJlc2Fyc2UgcG9yIGFybWFzIGNhcGFjZXMgZGUgYWxjYW56YXIgQ2FuYXJpYXMiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLWRoZWJvIC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
      PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9wLnR5cGVraXQubmV0IiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcyI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcCI+CjxzdHlsZT4KLyogYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQ6IHZlciByZWxhdGVkVXBwZXJjYXNlVGl0bGVGb250IG3hcyBhYmFqby4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7CiAgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBNZWRpdW0lMjBDbmQub3RmIik7Cn0KLyogYW1wbGl0dWRlLWJvb2s6IHZlciByZWxhdGVkQXV0aG9yRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLWJvb2siOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsKfQovKiBjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZSBhcXXtIGVzIGltcHJlc2NpbmRpYmxlOiBjb252aWVydGUgZXN0ZSBibG9xdWUKICAgZW4gZWwgY29udGVuZWRvciBkZSByZWZlcmVuY2lhIHBhcmEgbG9zICJAY29udGFpbmVyICguLi4taW5saW5lLXNpemUuLi4pIgogICBkZSBt4XMgYWJham8uIFVzYW1vcyBAY29udGFpbmVyIGVuIHZleiBkZSBAbWVkaWEgcG9ycXVlICJAbWVkaWEKICAgKG1heC1pbmxpbmUtc2l6ZTouLi4pIiBOTyBlcyB1bmEgY29uZGljafNuIENTUyB24WxpZGEgJiM4MjEyOyBpbmxpbmUtc2l6ZSBzb2xvCiAgIGV4aXN0ZSBjb21vIGNhcmFjdGVy7XN0aWNhIGRlIEBjb250YWluZXIsIG51bmNhIGRlIEBtZWRpYSAmIzgyMTI7IGFz7SBxdWUgZXNhcwogICByZWdsYXMgamFt4XMgc2UgYWN0aXZhYmFuICh2ZXJpZmljYWRvIGNvbiBtYXRjaE1lZGlhOiBzaWVtcHJlIGZhbHNlLCBzaW4KICAgaW1wb3J0YXIgZWwgYW5jaG8pLCB5IHBvciBlc28gbGEgbm90aWNpYSBwcmluY2lwYWwgcG9k7WEgZGVzYXBhcmVjZXIgbyBlbAogICBkaXNl8W8gbfN2aWwgbm8gc2UgYWN0aXZhYmEgbnVuY2EuIEBjb250YWluZXIgc+0gc29wb3J0YSBpbmxpbmUtc2l6ZSBkZQogICBmb3JtYSB24WxpZGEsIHkgZXZpdGEgaWd1YWxtZW50ZSBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsCiAgIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUyBkaXJlY3RhbWVudGUuICovCi8qIEZJWCBPS0RJQVJJTyAqLwogICAgLml0ZW0gYXJ0aWNsZSAuYXJ0aWNsZS1zY3JpcHQgewogICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9Ci8qIENvbnRlbmVkb3IgZGUgdG9kYSBsYSBhcGVydHVyYSAoY2FiZWNlcmEgKyBub3RpY2lhIHByaW5jaXBhbCArIGNvbHVtbmEpOgogICBmb25kbyBibGFuY28geSBhaXJlIGFscmVkZWRvciwgc29sbyBlbiBEZXNrICYjODIxMjsgdmVyIG92ZXJyaWRlIGRlbnRybyBkZWwKICAgQGNvbnRhaW5lcihtYXgtaW5saW5lLXNpemU6ODYwcHgpIGRlIG3hcyBhYmFqbywgcXVlIGxvIGFudWxhIHBvciBkZWJham8KICAgZGUgZXNlIGFuY2hvIChlcXVpdmFsZW50ZSBhIGxhIHZpc3RhIE3zdmlsKSwgeSBhcXXtIG1pc21vIGNvbiBlbCB0ZXh0byBhCiAgIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEgKGJvZHlQb3NpdGlvbkJsb2Nrc0NvbHVtbik6IGNvbiBlc2UgbGF5b3V0IGxhCiAgIG5vdGljaWEgcHJpbmNpcGFsIHlhIG9jdXBhIGVsIDEwMCUgZGVsIGFuY2hvIHkgc29sYXBhIHN1IHByb3BpYSBmb3RvIGRlCiAgIGJvcmRlIGEgYm9yZGUsIGFz7SBxdWUgZWwgYWlyZS9mb25kbyBibGFuY28gc29icmEuICovCi5ibGstaHg1bGd7bWF4LWlubGluZS1zaXplOjk2MHB4O21hcmdpbjowIGF1dG87Y29udGFpbmVyLXR5cGU6aW5saW5lLXNpemU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTBweDt9Ci5ibGstaHg1bGcgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0fQouYmxrLWh4NWxnIC5wYWdle2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDoxNXB4fQouYmxrLWh4NWxnIC5wYWdlIC5jb2x1bW57b3JkZXI6M30KLmJsay1oeDVsZyAucGFnZSAubGVhZHtvcmRlcjoyfQovKiA4NjBweCB5IG5vIDQ3NXB4OiBjb24gbGEgY29sdW1uYSBmaWphICgyMjBweCArIDIwcHggZGUgZ2FwID0gMjQwcHgpLAogICBjdWFscXVpZXIgYW5jaG8gZGUgaWZyYW1lIHBvciBkZWJham8gZGUgfjg2MHB4IGRlamEgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgKDFmcikgY2FkYSB2ZXogY29uIG1lbm9zIGVzcGFjaW8gaGFzdGEgY29sYXBzYXIgYSAwcHggZGUgYW5jaG8gYW50ZXMgZGUKICAgbGxlZ2FyIGEgdW4gYnJlYWtwb2ludCB0YW4gYmFqbyBjb21vIDQ3NXB4ICYjODIxMjsgbGEgbm90aWNpYSBwcmluY2lwYWwKICAgZGlyZWN0YW1lbnRlIGRlc2FwYXJlY2UgZW4gZXNhIGZyYW5qYSBpbnRlcm1lZGlhIChuaSAiZGVzayIgY29tcGxldG8gbmkKICAgIm3zdmlsIiBlc3RyZWNobykuIENvbiA4NjBweCBzZSBwYXNhIGEgdW5hIHNvbGEgY29sdW1uYSBhcGlsYWRhIGFudGVzIGRlCiAgIHF1ZSBlc28gcHVlZGEgb2N1cnJpci4KICAgRXN0ZSBicmVha3BvaW50IHNlIG9taXRlIHBvciBjb21wbGV0byBtaWVudHJhcyBsYSBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkKICAgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldyk6IHBlbnNhZG8gcGFyYSBjdWFuZG8gZWwgbfNkdWxvIGxsZXZhIHN1CiAgIGNvbHVtbmEgYSA5NjBweCwgZGVqYSBkZSB0ZW5lciBzZW50aWRvIGVuIHVuYSBleHBvcnRhY2nzbiBkZSBzb2xvIGxhCiAgIG5vdGljaWEgcHJpbmNpcGFsIGEgdW4gYW5jaG8gZmlqbyBlbGVnaWRvIGEgbWFubyAmIzgyMTI7IGxvcyBhbmNob3Mgc2ltdWxhZG9zCiAgICg2MTMvNDYwLzMwN3B4KSBlc3ThbiBUT0RPUyBwb3IgZGViYWpvIGRlIDg2MHB4LCBhc+0gcXVlIHNpbiBlc3RlIGdhdGluZwogICBlbCBIVE1MIGV4cG9ydGFkbyBjYWVy7WEgc2llbXByZSBhIGxhIHRpcG9ncmFm7WEgIk3zdmlsIiAoY29uICFpbXBvcnRhbnQpCiAgIHNlYSBjdWFsIHNlYSBsYSBxdWUgZWwgdXN1YXJpbyBjb25maWd1cvMgZW4gIkRlc2siIHBhcmEgZXNhIHNpbXVsYWNp824sCiAgIGRhbmRvIGxhIGZhbHNhIHNlbnNhY2nzbiBkZSBxdWUgdW5hIGNvbmZpZ3VyYWNp824gInBpc2EiIGEgb3RyYS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLWh4NWxne2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7fQogIC5ibGstaHg1bGcgLnBhZ2V7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KICAuYmxrLWh4NWxnIC5wYWdlIC5zdGFjay10aXRsZSB7Zm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OiAxLjJlbTt9CiAgLmJsay1oeDVsZyAucGFnZSAuc3RhY2stYXV0aG9yIHttYXJnaW4tdG9wOiAxMHB4O30KICAuYmxrLWh4NWxnIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXtibG9jay1zaXplOjQwMHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQtbWVkaWF7YXNwZWN0LXJhdGlvOjQvMyAhaW1wb3J0YW50O30KICAuYmxrLWh4NWxnIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1oeDVsZyAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1oeDVsZyAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLWh4NWxnIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstaHg1bGcgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1oeDVsZyAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1oeDVsZyAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstaHg1bGcgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1oeDVsZyAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1oeDVsZyAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstaHg1bGcgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1oeDVsZyAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWh4NWxnIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6I0ZGNTA1MCAhaW1wb3J0YW50O30KICAuYmxrLWh4NWxnIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojRkY1MDUwICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLWh4NWxnIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLWh4NWxnIC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLWh4NWxnIC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstaHg1bGcgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstaHg1bGcgLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstaHg1bGcgLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1oeDVsZyAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstaHg1bGcgLmxlYWQtbWVkaWEgaW1nLAouYmxrLWh4NWxnIC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLWh4NWxnIC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1oeDVsZyAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay1oeDVsZyAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstaHg1bGcgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstaHg1bGcgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstaHg1bGcta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstaHg1bGcgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLWh4NWxnLWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay1oeDVsZy1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLWh4NWxnLWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay1oeDVsZyAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstaHg1bGcta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay1oeDVsZy1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstaHg1bGcgLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLWh4NWxnIC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLWh4NWxnIC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstaHg1bGcgLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay1oeDVsZyAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay1oeDVsZyAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstaHg1bGcgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstaHg1bGcgLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstaHg1bGcgLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWh4NWxnIC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstaHg1bGcgLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstaHg1bGcgLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstaHg1bGcgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLWh4NWxnIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstaHg1bGcgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay1oeDVsZyAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay1oeDVsZyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstaHg1bGcgLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay1oeDVsZyAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay1oeDVsZyAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstaHg1bGcgLmxlYWQta2lja2VyLCAuYmxrLWh4NWxnIC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstaHg1bGcgLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstaHg1bGcgLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLWh4NWxnIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLmJsay1oeDVsZyAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkY1MDUwO30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstaHg1bGcgLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6Mi4ycmVtO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt0ZXh0LXdyYXA6YmFsYW5jZTt9Ci8qIFRpdHVsYXIgY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGEgKHZlciBidWlsZFNjb3BlZEhUTUwpOgogICBzZSBnZW5lcmFuIGxvcyBkb3MgdGV4dG9zIChEZXNrL03zdmlsKSB5IGFxde0gc2UgbXVlc3RyYSBzb2xvIHVubyBzZWf6biBlbAogICBhbmNobyByZWFsIGRlbCBjb250ZW5lZG9yICYjODIxMjsgZWwgbWlzbW8gbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIHlhIHVzYSBlbAogICByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8gcGFyYSBhZGFwdGFyc2Ugc2luIGRlcGVuZGVyIGRlIEpTLiAqLwouYmxrLWh4NWxnIC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBBbnRldO10dWxvL3N1YnTtdHVsbyBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YTogbWlzbW8KICAgbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgKHZlciBhcnJpYmEpLiAqLwouYmxrLWh4NWxnIC5sZWFkLWtpY2tlci1tb2JpbGUsIC5ibGstaHg1bGcgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIFRpdHVsYXIgZGUgbm90aWNpYSByZWxhY2lvbmFkYSAoY29sdW1uYSkgY29uIHRleHRvIHByb3BpbyBlbiBN83ZpbCAodmVyCiAgIGl0ZW0udGl0bGVNb2JpbGUgZW4gYnVpbGRDb2x1bW5JdGVtVGl0bGVIVE1MKTogbWlzbW8gbWVjYW5pc21vIGRlCiAgIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgcHJpbmNpcGFsIGRlIGFycmliYS4gKi8KLmJsay1oeDVsZyAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLmJsay1oeDVsZyAuYXV0aG9yLWxhYmVse2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmJsb2NrfQouYmxrLWh4NWxnIC5jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47fQouYmxrLWh4NWxnIC5jb2x1bW4taXRlbXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLWh4NWxnIC50aHVtYntwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzo0LzM7YmFja2dyb3VuZDojZWVlO292ZXJmbG93OmhpZGRlbn0KLmJsay1oeDVsZyAudGh1bWIgaW1nLAouYmxrLWh4NWxnIC50aHVtYiB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci5ibGstaHg1bGcgLnRodW1iIC5wbGF5LXNxdWFyZSwKLmJsay1oeDVsZyAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmV7CiAgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IGxlZnQ6NXB4OwogIGlubGluZS1zaXplOjI1cHg7YmxvY2stc2l6ZToyNXB4O2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyOwogIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTsKICBjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cywgdHJhbnNmb3JtIC4xMnM7CiAgei1pbmRleDoyOyBhbmltYXRpb246YmxrLWh4NWxnLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstaHg1bGcgLnRodW1iIC5wbGF5LXNxdWFyZTo6YmVmb3JlLAouYmxrLWh4NWxnIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo2cHggc29saWQgI2ZmZjtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KLmJsay1oeDVsZyAudGh1bWIgLnBsYXktc3F1YXJlOmhvdmVyLAouYmxrLWh4NWxnIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTpob3ZlcnsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuODUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTsgfQouYmxrLWh4NWxnIC5zdGFjay10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMTVlbTttYXJnaW46MDtjb2xvcjojMmMzZTUzO30KLmJsay1oeDVsZyAuc3RhY2stYXV0aG9ye2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjtjb2xvcjojODI4NTk1O2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMXB4O2xldHRlci1zcGFjaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt9Ci8qIFNpbiBlc3RhIHJlZ2xhIGVsIGF1dG9yIHF1ZWRhIHBlZ2FkbyBqdXN0byBkZWJham8gZGVsIHRpdHVsYXIgZW4gdmV6IGRlCiAgIGFiYWpvIGRlIGxhIHRhcmpldGE6IC5tb2Qtc3RhY2sgbmVjZXNpdGEgc2VyIGZsZXgtY29sdW1uIGNvbgogICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiBwYXJhIHF1ZSBlbCBodWVjbyBzb2JyYW50ZSAoY3VhbmRvIGxhCiAgIHRhcmpldGEgY3JlY2UgbeFzIHF1ZSBzdSBjb250ZW5pZG8sIHZlciAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spCiAgIG3hcyBhYmFqbykgZW1wdWplIGVsIGF1dG9yIGhhY2lhIGVsIGJvcmRlIGluZmVyaW9yLiAqLwouYmxrLWh4NWxnIC5tb2Qtc3RhY2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtmbGV4OjEgMSBhdXRvO30KLyogRXN0aWxvICJmb3RvIHBlcXVl8WEgKyB0aXR1bGFyIjogZm90byA0OjMgYSBsYSBpenF1aWVyZGEsIHRleHRvIGEgbGEgZGVyZWNoYS4gKi8KLmJsay1oeDVsZyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxMTBweCAxZnI7Z2FwOjEwcHg7fQovKiBFc3RpbG8gInNvbG8gdGV4dG8iIChwb3IgZGVmZWN0byk6IGVsIGF1dG9yIHNlIHBvc2ljaW9uYSBlbiBhYnNvbHV0bywKICAgYW5jbGFkbyBhIGxhIGVzcXVpbmEgaW5mZXJpb3IgZGVyZWNoYSBkZSBsYSB0YXJqZXRhIChpZ3VhbCBxdWUgZWwgcGxheSBkZQogICBsYXMgbWluaWF0dXJhcyksIGVuIHZleiBkZSBkZXBlbmRlciBkZSBxdWUgZWwgYmxvcXVlIGRlIHRleHRvIHRlbmdhIGh1ZWNvCiAgIGRlIHNvYnJhIHBhcmEgZW1wdWphcmxvIGFiYWpvIGNvbiBmbGV4Ym94ICYjODIxMjsgY29uIHTtdHVsb3MgZGUgMi0zIGztbmVhcyBlc2UKICAgaHVlY28gbm8gZXhpc3RlIHkgZWwgYXV0b3IgbnVuY2EgbGxlZ2FiYSBhIGJhamFyLiBwYWRkaW5nLWJvdHRvbSBlbgogICBsZWZ0LWJvZHkgcmVzZXJ2YSBlbCBlc3BhY2lvIHBhcmEgcXVlIGVsIHTtdHVsbyBubyBzZSBzb2xhcGUgY29uIOlsLiAqLwouYmxrLWh4NWxnIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAubGVmdC1ib2R5e3BhZGRpbmctYm90dG9tOjMzcHg7fQouYmxrLWh4NWxnIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAuc3RhY2stYXV0aG9ye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7Ym90dG9tOjEwcHg7bWFyZ2luLXRvcDowO30KLmJsay1oeDVsZyAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQouYmxrLWh4NWxnIC5sZWZ0LXBsYXl7CiAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206IDRweDsKfQouYmxrLWh4NWxnIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4Owp9Ci5ibGstaHg1bGcgLnJlbGF0ZWQtbGl2ZS10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkY1MDUwOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkY1MDUwOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLWh4NWxnIC5yZWxhdGVkLWVkaXRvcmlhbC10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkFCMTIxOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkFCMTIxOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLWh4NWxnIC5wbGF5LWJ1dHRvbnsKICAvKiBBbmNoby9hbHRvIGZpam9zIGVuIHZleiBkZSBhc3BlY3QtcmF0aW86MS8xICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoZWwKICAgICBj4WxjdWxvIGRlICJzaHJpbmstdG8tZml0IiBwYXJhIHVuIDxidXR0b24+IGVuIGFic29sdXRvIHNpbiB0YW1h8W8KICAgICBleHBs7WNpdG8gbm8gZXMgZmlhYmxlIGVudHJlIG1vdG9yZXM7IGVuIFdlYktpdC9pT1MgZGFiYSB1biByZWN04W5ndWxvCiAgICAgdmVydGljYWwgZXN0cmVjaO1zaW1vIGVuIHZleiBkZSB1biBjdWFkcmFkbykuICovCiAgYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOwogIHBvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDsKICBpbmxpbmUtc2l6ZTozNHB4O2Jsb2NrLXNpemU6MzRweDsKICBkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4OwogIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC40Mik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjNweDsKICBjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7YW5pbWF0aW9uOmJsay1oeDVsZy1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLWh4NWxnIC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0e3RvcDoxMHB4O3JpZ2h0OjEwcHg7bGVmdDphdXRvO2JvdHRvbTphdXRvO30KLmJsay1oeDVsZyAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0e2JvdHRvbToxMHB4O2xlZnQ6MTBweDt0b3A6YXV0bztyaWdodDphdXRvO30KLmJsay1oeDVsZyAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHtib3R0b206MTBweDtyaWdodDoxMHB4O3RvcDphdXRvO2xlZnQ6YXV0bzt9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLWxlZnQsCi5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0LAouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQovKiBQb3NpY2nzbiAnYm90dG9tJyBwb3IgZGVmZWN0bzogZWwgbGVhZC1ib2R5IHNvbGFwYSAzMHB4IHNvYnJlIGVsIGJvcmRlCiAgIElORkVSSU9SIGRlIGxhIGZvdG8vdu1kZW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGNvbiAnYm90dG9tLWZ1bGwnCiAgIG5pIGNvbiAnbGVmdCcvJ3JpZ2h0JyAoYWp1c3RlIGhvcml6b250YWwgcHJvcGlvLCB2ZXIgYXJyaWJhKS4gKi8KLmJsay1oeDVsZyAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnQsCi5ibGstaHg1bGcgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjQwcHg7IH0KLmJsay1oeDVsZyAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay1oeDVsZyAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLWh4NWxnIC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstaHg1bGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLWh4NWxnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGstaHg1bGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLWh4NWxnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1oeDVsZyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLWh4NWxnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstaHg1bGcgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLWh4NWxnIC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLWh4NWxnIC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWh4NWxnIC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay1oeDVsZyAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLWh4NWxnIC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLWh4NWxnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstaHg1bGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay1oeDVsZyAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGstaHg1bGcgLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLWh4NWxnLWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay1oeDVsZyAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay1oeDVsZyAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay1oeDVsZyAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay1oeDVsZyAubGVhZC1tZWRpYSA+IGltZywKLmJsay1oeDVsZyAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstaHg1bGcgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstaHg1bGcgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLWh4NWxnIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGstaHg1bGcgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay1oeDVsZyAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGstaHg1bGctYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGstaHg1bGcgLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGstaHg1bGcgLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGstaHg1bGcgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay1oeDVsZyAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstaHg1bGcgLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1oeDVsZyAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLWh4NWxnIC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstaHg1bGcgLmhlYWRlcjItY2F0LXRhZywKLmJsay1oeDVsZyAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay1oeDVsZyAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstaHg1bGcgLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLWh4NWxnIC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1oeDVsZyAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLWh4NWxnIC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay1oeDVsZyAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGstaHg1bGcgLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstaHg1bGcgLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay1oeDVsZyAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay1oeDVsZyAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLWh4NWxnIC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay1oeDVsZyAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay1oeDVsZyAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGstaHg1bGcgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay1oeDVsZyAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLWh4NWxnIC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGstaHg1bGcgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstaHg1bGcgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1oeDVsZyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWh4NWxnIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWh4NWxnIC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay1oeDVsZyAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay1oeDVsZyAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1oeDVsZyAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstaHg1bGcgLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGstaHg1bGcgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay1oeDVsZyI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBsZWFkLWJvZHktYm90dG9tLWZ1bGwiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8dmlkZW8gY2xhc3M9ImxlYWQtdmlkZW8iIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL21hcnJ1ZWNvcy11bHRpbWEtY29uLWlzcmFlbC1sYS1jb21wcmEtZGUtbGEtaG9uZGEtZGUtZGF2aWQtdHJhcy1pbnRlcmVzYXJzZS1wb3ItYXJtYXMtY2FwYWNlcy1kZS1hbGNhbnphci1jYW5hcmlhcy0yMDI2MTAyMS0xOTIwMjMtZjI4YjkzLm1wNCIgcG9zdGVyPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvbWFycnVlY29zLXVsdGltYS1jb24taXNyYWVsLWxhLWNvbXByYS1kZS1sYS1ob25kYS1kZS1kYXZpZC10cmFzLWludGVyZXNhcnNlLXBvci1hcm1hcy1jYXBhY2VzLWRlLWFsY2FuemFyLWNhbmFyaWFzLXBvc3Rlci0yMDI2MTAyMS0xOTIwMjMtZDc2Yzc1LmpwZyIgYXV0b3BsYXkgbXV0ZWQgbG9vcCBwbGF5c2lubGluZSBwcmVsb2FkPSJtZXRhZGF0YSI+PC92aWRlbz4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLW92ZXJsYXkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTQsMTcsMjYsMC4wMCk7Ij48L2Rpdj4KICAgICAgICAKICAgICAgICA8YnV0dG9uIGNsYXNzPSJwbGF5LWJ1dHRvbiBwb3MtdG9wLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGRpdiBjbGFzcz0icGxheS1pY29uIj48L2Rpdj48c3BhbiBjbGFzcz0icGxheS10ZXh0Ij5QbGF5PC9zcGFuPjwvYnV0dG9uPgogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5IiBzdHlsZT0iYmFja2dyb3VuZDojRkY1MDUwOyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2NvbG9yOiNGRjUwNTAiPklOVEVSTkFDSU9OQUw8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5LW1haW4iPgogICAgICAgICAgCiAgICAgICAgICA8aDIgY2xhc3M9ImxlYWQtdGl0bGUiPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLWRlc2siPk1hcnJ1ZWNvcyB1bHRpbWEgY29uIElzcmFlbCBsYSBjb21wcmEgZGUgbGEgSG9uZGEgZGUgRGF2aWQgdHJhcyBpbnRlcmVzYXJzZSBwb3IgYXJtYXMgY2FwYWNlcyBkZSBhbGNhbnphciBDYW5hcmlhczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPk1hcnJ1ZWNvcyB1bHRpbWEgY29uIElzcmFlbCBsYSBjb21wcmEgZGUgbGEgSG9uZGEgZGUgRGF2aWQgdHJhcyBpbnRlcmVzYXJzZSBwb3IgYXJtYXMgY2FwYWNlcyBkZSBhbGNhbnphciBDYW5hcmlhczwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj5NYXLtYSBSdWl6PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW50ZXJuYWNpb25hbC9tYXJydWVjb3MtdWx0aW1hLWlzcmFlbC1jb21wcmEtaG9uZGEtZGF2aWQtaW50ZXJlc2Fyc2UtYXJtYXMtY2FwYWNlcy1hbGNhbnphci1jYW5hcmlhcy0yMDYwMzAxMCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJNYXJydWVjb3MgdWx0aW1hIGNvbiBJc3JhZWwgbGEgY29tcHJhIGRlIGxhIEhvbmRhIGRlIERhdmlkIHRyYXMgaW50ZXJlc2Fyc2UgcG9yIGFybWFzIGNhcGFjZXMgZGUgYWxjYW56YXIgQ2FuYXJpYXMiIGFyaWEtbGFiZWw9Ik1hcnJ1ZWNvcyB1bHRpbWEgY29uIElzcmFlbCBsYSBjb21wcmEgZGUgbGEgSG9uZGEgZGUgRGF2aWQgdHJhcyBpbnRlcmVzYXJzZSBwb3IgYXJtYXMgY2FwYWNlcyBkZSBhbGNhbnphciBDYW5hcmlhcyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstaHg1bGcgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
    • Yanes revela que las joyas de Zapatero no tienen numeración y situará su valor algo por debajo de los 1,3 millones de Ansorena
        • España
        • España

      Yanes revela que las joyas de Zapatero no tienen numeración y situará su valor algo por debajo de los 1,3 millones de Ansorena

      La segunda tasación de las joyas de José Luis Rodríguez Zapatero encargada a la joyería Yanes por el juez acreditará su valor por un poco menos de los 1,3 millones de euros que dio Ansorena y no se podrá tasar la fecha exacta de montaje al carecer las joyas de un número de sellos distintivos claro.
      • Irene Tabera
      • 2026-10-21 05:48
    • Yanes no puede precisar la fecha exacta en la que se montaron las joyas de Zapatero
        • España
        • España

      Yanes no puede precisar la fecha exacta en la que se montaron las joyas de Zapatero

      • Irene Tabera
      • 2026-10-21 05:50
    • Una juez admite una querella contra Sofía Puente por prevaricar con la orden que nacionalizó a los falsos nietos
        • España
        • España

      Una juez admite una querella contra Sofía Puente por prevaricar con la orden que nacionalizó a los 'nietos'

      • Rosalina Moreno
      • 2026-10-21 11:49
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLTNyanh0e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7fQouYmxrLTNyanh0IGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0KLmJsay0zcmp4dCAucGFnZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjMwMHB4IDFmcjtnYXA6MTVweH0KLmJsay0zcmp4dCAucGFnZSAuY29sdW1ue29yZGVyOjF9Ci5ibGstM3JqeHQgLnBhZ2UgLmxlYWR7b3JkZXI6Mn0KLyogODYwcHggeSBubyA0NzVweDogY29uIGxhIGNvbHVtbmEgZmlqYSAoMjIwcHggKyAyMHB4IGRlIGdhcCA9IDI0MHB4KSwKICAgY3VhbHF1aWVyIGFuY2hvIGRlIGlmcmFtZSBwb3IgZGViYWpvIGRlIH44NjBweCBkZWphIGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgICgxZnIpIGNhZGEgdmV6IGNvbiBtZW5vcyBlc3BhY2lvIGhhc3RhIGNvbGFwc2FyIGEgMHB4IGRlIGFuY2hvIGFudGVzIGRlCiAgIGxsZWdhciBhIHVuIGJyZWFrcG9pbnQgdGFuIGJham8gY29tbyA0NzVweCAmIzgyMTI7IGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgIGRpcmVjdGFtZW50ZSBkZXNhcGFyZWNlIGVuIGVzYSBmcmFuamEgaW50ZXJtZWRpYSAobmkgImRlc2siIGNvbXBsZXRvIG5pCiAgICJt83ZpbCIgZXN0cmVjaG8pLiBDb24gODYwcHggc2UgcGFzYSBhIHVuYSBzb2xhIGNvbHVtbmEgYXBpbGFkYSBhbnRlcyBkZQogICBxdWUgZXNvIHB1ZWRhIG9jdXJyaXIuCiAgIEVzdGUgYnJlYWtwb2ludCBzZSBvbWl0ZSBwb3IgY29tcGxldG8gbWllbnRyYXMgbGEgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpCiAgIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpOiBwZW5zYWRvIHBhcmEgY3VhbmRvIGVsIG3zZHVsbyBsbGV2YSBzdQogICBjb2x1bW5hIGEgOTYwcHgsIGRlamEgZGUgdGVuZXIgc2VudGlkbyBlbiB1bmEgZXhwb3J0YWNp824gZGUgc29sbyBsYQogICBub3RpY2lhIHByaW5jaXBhbCBhIHVuIGFuY2hvIGZpam8gZWxlZ2lkbyBhIG1hbm8gJiM4MjEyOyBsb3MgYW5jaG9zIHNpbXVsYWRvcwogICAoNjEzLzQ2MC8zMDdweCkgZXN04W4gVE9ET1MgcG9yIGRlYmFqbyBkZSA4NjBweCwgYXPtIHF1ZSBzaW4gZXN0ZSBnYXRpbmcKICAgZWwgSFRNTCBleHBvcnRhZG8gY2Flcu1hIHNpZW1wcmUgYSBsYSB0aXBvZ3JhZu1hICJN83ZpbCIgKGNvbiAhaW1wb3J0YW50KQogICBzZWEgY3VhbCBzZWEgbGEgcXVlIGVsIHVzdWFyaW8gY29uZmlndXLzIGVuICJEZXNrIiBwYXJhIGVzYSBzaW11bGFjafNuLAogICBkYW5kbyBsYSBmYWxzYSBzZW5zYWNp824gZGUgcXVlIHVuYSBjb25maWd1cmFjafNuICJwaXNhIiBhIG90cmEuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0zcmp4dHtiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowO30KICAuYmxrLTNyanh0IC5wYWdle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmJsay0zcmp4dCAucGFnZSAuc3RhY2stdGl0bGUge2ZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDogMS4yZW07fQogIC5ibGstM3JqeHQgLnBhZ2UgLnN0YWNrLWF1dGhvciB7bWFyZ2luLXRvcDogMTBweDt9CiAgLmJsay0zcmp4dCAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YmxvY2stc2l6ZTo0MDBweCAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLW1lZGlhe2FzcGVjdC1yYXRpbzo0LzMgIWltcG9ydGFudDt9CiAgLmJsay0zcmp4dCAucGFnZSAubGVhZHtvcmRlcjoxfQogIC5ibGstM3JqeHQgLnBhZ2UgLmNvbHVtbntvcmRlcjoyfQogIC8qIFBvciBkZWJham8gZGVsIGJyZWFrcG9pbnQsIGVsIGxlYWQtYm9keSBzaWVtcHJlIHZ1ZWx2ZSBhIGlyIGRlYmFqbyBkZWwKICAgICBsZWFkLW1lZGlhIChubyBoYXkgc2l0aW8gcGFyYSBlbCBsYXlvdXQgbGFkbyBhIGxhZG8pLiAqLwogIC5ibGstM3JqeHQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQsCiAgLmJsay0zcmp4dCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FzcGVjdC1yYXRpbzphdXRvO30KICAuYmxrLTNyanh0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAogIC5ibGstM3JqeHQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MSAxIGF1dG87fQogIC5ibGstM3JqeHQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKICAuYmxrLTNyanh0IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MSAxIGF1dG87aW5saW5lLXNpemU6OTAlO21hcmdpbjotMzBweCBhdXRvIDA7YmxvY2stc2l6ZTphdXRvO2FsaWduLXNlbGY6YXV0bztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHg7fQogIC5ibGstM3JqeHQgLnBhZ2UgLmNvbHVtbi1pdGVte2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQogIC5ibGstM3JqeHQgLnBhZ2UgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KICAuYmxrLTNyanh0IC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0yMSAubGVmdC10aXRsZXtmb250LXNpemU6MjFweCAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0xOCAubGVmdC10aXRsZXtmb250LXNpemU6MThweCAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5wYWdlIC5sZWZ0LXBsYXl7CiAgICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogICAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogICAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7CiAgfQogIC5ibGstM3JqeHQgLnBhZ2UgLmxlZnQtcGxheTo6YmVmb3JlewogICAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogICAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4OwogIH0KfQovKiBUaXBvZ3JhZu1hICJN83ZpbCIgKGFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vdGl0dWxhcmVzIGFuaW1hZG9zKSBjb24gU1UKICAgUFJPUElPIGJyZWFrcG9pbnQgKDQ4MHB4KSwgc2VwYXJhZG8gZGVsIGRlIGFycmliYSAoODYwcHgsIHNvbG8gcGFyYSBhcGlsYXIKICAgbGEgcmVqaWxsYSBjb2x1bW5hK25vdGljaWEpOiB1biBjb250ZW5lZG9yIHJlYWwgZGUgbWVub3MgZGUgODYwcHggZXMgbXV5CiAgIGhhYml0dWFsIChwLmVqLiB1bmEgY29sdW1uYSBkZSBhcnTtY3VsbyBkZSB+NzAwcHgpIHkgTk8gZXMgdW4gbfN2aWwgJiM4MjEyOyBjb24KICAgdW4g+m5pY28gYnJlYWtwb2ludCBjb21wYXJ0aWRvLCBsYSB0aXBvZ3JhZu1hICJEZXNrIiBxdWUgY29uZmlndXJhIGVsCiAgIHVzdWFyaW8gbm8gbGxlZ2FiYSBhIHZlcnNlIG51bmNhIGVuIGVzZSBjYXNvLCBjYXllbmRvIHNpZW1wcmUgYSBsb3MgdmFsb3JlcwogICBwb3IgZGVmZWN0byBkZSAiTfN2aWwiIHNpbiBxdWUgbmFkaWUgbG8gaHViaWVyYSBwZWRpZG8uIDQ4MHB4IHPtIHNlCiAgIGNvcnJlc3BvbmRlIGNvbiB1biBhbmNobyBkZSBt83ZpbCByZWFsIChsYSB2aXN0YSAiTfN2aWwiIGRlbCBwcm9waW8gZ2VzdG9yCiAgIHNpbXVsYSAzNzVweCkuIElndWFsIHF1ZSBlbCBicmVha3BvaW50IGRlIGFycmliYSwgc2Ugb21pdGUgZHVyYW50ZSBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGRlIGxhIG5vdGljaWEgcHJpbmNpcGFsICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay0zcmp4dCAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiMwMEE3RkYgIWltcG9ydGFudDt9CiAgLmJsay0zcmp4dCAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLXRpdGxle2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgLmJsay0zcmp4dCAubGVhZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay0zcmp4dCAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay0zcmp4dCAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTNyanh0IC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLTNyanh0IC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTNyanh0IC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstM3JqeHQgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLTNyanh0IC5sZWFkLW1lZGlhIGltZywKLmJsay0zcmp4dCAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay0zcmp4dCAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstM3JqeHQgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstM3JqeHQgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLTNyanh0IC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLTNyanh0IC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLTNyanh0LWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLTNyanh0IC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay0zcmp4dC1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstM3JqeHQta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay0zcmp4dC1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstM3JqeHQgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLTNyanh0LWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstM3JqeHQta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTNyanh0IC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay0zcmp4dCAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay0zcmp4dCAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLTNyanh0IC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstM3JqeHQgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstM3JqeHQgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLTNyanh0IC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLTNyanh0IC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLTNyanh0IC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay0zcmp4dCAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLTNyanh0IC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTNyanh0IC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTNyanh0IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay0zcmp4dCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLTNyanh0IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstM3JqeHQgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstM3JqeHQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTNyanh0IC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstM3JqeHQgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstM3JqeHQgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLTNyanh0IC5sZWFkLWtpY2tlciwgLmJsay0zcmp4dCAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLTNyanh0IC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLTNyanh0IC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay0zcmp4dCAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstM3JqeHQgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLTNyanh0IC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuMXJlbTtsaW5lLWhlaWdodDoxLjAyO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay0zcmp4dCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay0zcmp4dCAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLTNyanh0IC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstM3JqeHQgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstM3JqeHQgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay0zcmp4dCAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay0zcmp4dCAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay0zcmp4dCAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstM3JqeHQgLnRodW1iIGltZywKLmJsay0zcmp4dCAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLTNyanh0IC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstM3JqeHQgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay0zcmp4dC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLTNyanh0IC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay0zcmp4dCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstM3JqeHQgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay0zcmp4dCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay0zcmp4dCAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstM3JqeHQgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay0zcmp4dCAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstM3JqeHQgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay0zcmp4dCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay0zcmp4dCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstM3JqeHQgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay0zcmp4dCAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay0zcmp4dCAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLTNyanh0IC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay0zcmp4dCAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay0zcmp4dCAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstM3JqeHQtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay0zcmp4dCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstM3JqeHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstM3JqeHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstM3JqeHQgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLTNyanh0IC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstM3JqeHQgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstM3JqeHQgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay0zcmp4dCAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLTNyanh0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay0zcmp4dCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLTNyanh0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay0zcmp4dCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstM3JqeHQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay0zcmp4dCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLTNyanh0IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay0zcmp4dCAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay0zcmp4dCAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay0zcmp4dCAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay0zcmp4dCAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay0zcmp4dCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLTNyanh0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstM3JqeHQgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLTNyanh0IC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay0zcmp4dC1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstM3JqeHQgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstM3JqeHQgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstM3JqeHQgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstM3JqeHQgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstM3JqeHQgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLTNyanh0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTNyanh0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0zcmp4dCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLTNyanh0IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstM3JqeHQgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLTNyanh0LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLTNyanh0IC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLTNyanh0IC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLTNyanh0IC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstM3JqeHQgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTNyanh0IC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3JqeHQgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay0zcmp4dCAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTNyanh0IC5oZWFkZXIyLWNhdC10YWcsCi5ibGstM3JqeHQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstM3JqeHQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTNyanh0IC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay0zcmp4dCAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstM3JqeHQgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay0zcmp4dCAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstM3JqeHQgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLTNyanh0IC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTNyanh0IC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstM3JqeHQgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstM3JqeHQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay0zcmp4dCAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstM3JqeHQgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstM3JqeHQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLTNyanh0IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstM3JqeHQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay0zcmp4dCAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLTNyanh0IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTNyanh0IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstM3JqeHQgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay0zcmp4dCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0zcmp4dCAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstM3JqeHQgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstM3JqeHQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstM3JqeHQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTNyanh0IC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLTNyanh0IC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstM3JqeHQiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIDxhc2lkZSBjbGFzcz0iY29sdW1uIj4KICAgICAgCiAgICA8YSBjbGFzcz0iY29sdW1uLWl0ZW0gbGF5b3V0LXRpdGxlLW9ubHkgdGl0bGUtb25seS1tb2JpbGUtMTgiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vdHUtcGxhbi1lcmEtcmVkb25kby1wZXJvLXRlLXBpbGxhbW9zLWxsYXZlcy1kZWwtY2hvbGxvLXBpc28tbWFub3MtMjA1OTMyNzYiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iVHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zIj4KICAgICAgPGRpdiBjbGFzcz0ibGVmdC1ib2R5Ij4KICAgICAgPGg0IGNsYXNzPSJsZWZ0LXRpdGxlIiBzdHlsZT0iZm9udC1zaXplOjE4cHg7Ij48c3BhbiBjbGFzcz0icmVsYXRlZC1lZGl0b3JpYWwtdGFnIj5FRElUT1JJQUw8L3NwYW4+PHNwYW4gY2xhc3M9InJlbGF0ZWQtdGl0bGUtZGVzayI+VHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLW1vYmlsZSI+VHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zPC9zcGFuPjwvaDQ+CiAgICAgIDxkaXYgY2xhc3M9InN0YWNrLWF1dGhvciI+T0tESUFSSU88L2Rpdj4KICAgIDwvZGl2PgogICAgPC9hPgoKICAgIDxhIGNsYXNzPSJjb2x1bW4taXRlbSBsYXlvdXQtcGhvdG8tbGVmdCIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW52ZXN0aWdhY2lvbi90cm9sYXMtcmVkb25kby1kaWNlLXF1ZS1waXNvLXNhbGlvLXN1YmFzdGEtOTIwLTAwMC1ldXJvcy1wZXJvLW9jdWx0YS1xdWUtYWNhYm8tdmVuZGllbmRvLTE1LW1pbGxvbmVzLTIwNTk0MzIzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IlJlZG9uZG8gbWllbnRlOiBkaWNlIHF1ZSB1biBwaXNvIHNhbGnzIGEgc3ViYXN0YSBwb3IgOTIwLjAwMCAmIzgzNjQ7IHBlcm8gb2N1bHRhIHF1ZSBzZSB2ZW5kafMgZW4gMSw1IG1pbGxvbmVzIj4KICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvcmVkb25kby1taWVudGUtZGljZS1xdWUtdW4tcGlzby1zYWxpby1hLXN1YmFzdGEtcG9yLTkyMC0wMDAtZXVyb3MtcGVyby1vY3VsdGEtcXVlLXNlLWFjYWJvLXZlbmRpZW5kby1lbi0xLTUtbWlsbG9uZXMtMjAyNjEwMjEtMTExMzU1LTU3MDBhZC5qcGciIGFsdD0iUmVkb25kbyBtaWVudGU6IGRpY2UgcXVlIHVuIHBpc28gc2FsafMgYSBzdWJhc3RhIHBvciA5MjAuMDAwICYjODM2NDsgcGVybyBvY3VsdGEgcXVlIHNlIHZlbmRp8yBlbiAxLDUgbWlsbG9uZXMiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtb2Qtc3RhY2siPgogICAgICA8aDQgY2xhc3M9InN0YWNrLXRpdGxlIj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1kZXNrIj5SZWRvbmRvIG1pZW50ZTogZGljZSBxdWUgdW4gcGlzbyBzYWxp8yBhIHN1YmFzdGEgcG9yIDkyMC4wMDAgJiM4MzY0OyBwZXJvIG9jdWx0YSBxdWUgc2UgdmVuZGnzIGVuIDEsNSBtaWxsb25lczwvc3Bhbj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1tb2JpbGUiPlJlZG9uZG8gbWllbnRlOiBkaWNlIHF1ZSB1biBwaXNvIHNhbGnzIGEgc3ViYXN0YSBwb3IgOTIwLjAwMCAmIzgzNjQ7IHBlcm8gb2N1bHRhIHF1ZSBzZSB2ZW5kafMgZW4gMSw1IG1pbGxvbmVzPC9zcGFuPjwvaDQ+CiAgICAgIDxkaXYgY2xhc3M9InN0YWNrLWF1dGhvciI+SS4gVGFiZXJhIHwgRi4gR29ueuFsZXo8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9hPgoKICAgIDxhIGNsYXNzPSJjb2x1bW4taXRlbSBsYXlvdXQtcGhvdG8tbGVmdCIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL2Jsb3F1ZS1pdmFuLXJlZG9uZG8tYWxvam8tanVsaXRvLW1hcnRpbmV6LXBhZ2Fkb3ItemFwYXRlcm8tYWxsaS1ndWFyZG8tMjg2LTA3MC1lZmVjdGl2by0yMDU2MTM0MCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJFbCBibG9xdWUgZGUgSXbhbiBSZWRvbmRvIGFsb2rzIGEgJiMzOTtKdWxpdG8mIzM5OyBNYXJ07W5leiwgZWwgcGFnYWRvciBkZSBaYXBhdGVybywgeSBhbGztIGd1YXJk8yAyODYuMDcwICYjODM2NDsgZW4gZWZlY3Rpdm8iPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYiI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9lbC1ibG9xdWUtZGUtaXZhbi1yZWRvbmRvLWFsb2pvLWEtanVsaXRvLW1hcnRpbmV6LWVsLXBhZ2Fkb3ItZGUtemFwYXRlcm8teS1hbGxpLWd1YXJkby0yODYtMDcwLWVuLWVmZWN0aXZvLTIwMjYxMDIxLTExMTQwNC05ODlhMTQuanBnIiBhbHQ9IkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2byIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im1vZC1zdGFjayI+CiAgICAgIDxoNCBjbGFzcz0ic3RhY2stdGl0bGUiPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLWRlc2siPkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2bzwvc3Bhbj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1tb2JpbGUiPkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2bzwvc3Bhbj48L2g0PgogICAgICA8ZGl2IGNsYXNzPSJzdGFjay1hdXRob3IiPkZlcm7hbiBHb2564WxlejwvZGl2PgogICAgPC9kaXY+CiAgICA8L2E+CgogICAgPGEgY2xhc3M9ImNvbHVtbi1pdGVtIGxheW91dC10aXRsZS1vbmx5IHRpdGxlLW9ubHktbW9iaWxlLTE4IiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvcHAtaGFjZS1lY28tZXhjbHVzaXZhLW9rZGlhcmlvLXNvYnJlLXBpc28tcmVkb25kby1uby1mdWUtbG8tdW5pY28tcXVlLWdvYmllcm5vLXBhZ28tdHJhdmVzLXBpc2F6by0yMDU5NDUzOCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJFbCBQUCBzb2JyZSBlbCBwaXNvIGRlIEl24W4gUmVkb25kbyBkZXN0YXBhZG8gcG9yIE9LRElBUklPOiAmcXVvdDtMb3MgJiMzOTtzZXJ2aWNpb3MmIzM5OyBkZSBKZXNzaWNhIG5vIGZ1ZXJvbiBsb3Mg+m5pY29zIHF1ZSBwYWfzIGVsIEdvYmllcm5vJnF1b3Q7Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVmdC1ib2R5Ij4KICAgICAgPGg0IGNsYXNzPSJsZWZ0LXRpdGxlIiBzdHlsZT0iZm9udC1zaXplOjE4cHg7Ij48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1kZXNrIj5FbCBQUCBzb2JyZSBlbCBwaXNvIGRlIEl24W4gUmVkb25kbyBkZXN0YXBhZG8gcG9yIE9LRElBUklPOiAmcXVvdDtMb3MgJiMzOTtzZXJ2aWNpb3MmIzM5OyBkZSBKZXNzaWNhIG5vIGZ1ZXJvbiBsb3Mg+m5pY29zIHF1ZSBwYWfzIGVsIEdvYmllcm5vJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLW1vYmlsZSI+RWwgUFAgc29icmUgZWwgcGlzbyBkZSBJduFuIFJlZG9uZG8gZGVzdGFwYWRvIHBvciBPS0RJQVJJTzogJnF1b3Q7TG9zICYjMzk7c2VydmljaW9zJiMzOTsgZGUgSmVzc2ljYSBubyBmdWVyb24gbG9zIPpuaWNvcyBxdWUgcGFn8yBlbCBHb2JpZXJubyZxdW90Ozwvc3Bhbj48L2g0PgogICAgICA8ZGl2IGNsYXNzPSJzdGFjay1hdXRob3IiPk9LRElBUklPPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvYT4KICAgIDwvYXNpZGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvcmVkb25kby1qdXN0aWZpY2Etc3UtcGlzby1jaG9sbG8tZXNjdWRhbmRvc2UtZW4tcHJlY2lvcy1kZS1zdWJhc3Rhcy1lbi1lc2UtZWRpZmljaW8tZGUtaGFjZS0xMi1hbm9zLTIwMjYxMDIxLTExMTMxNC01YjJiNTguanBnIiBhbHQ9IlJlZG9uZG8ganVzdGlmaWNhIHN1ICYjMzk7cGlzbyBjaG9sbG8mIzM5OyBlc2N1ZOFuZG9zZSBlbiBwcmVjaW9zIGRlIHN1YmFzdGFzIGVuIGVzZSBlZGlmaWNpbyBkZSBoYWNlIDEyIGHxb3MiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5IiBzdHlsZT0iYmFja2dyb3VuZDojMDBBN0ZGOyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2NvbG9yOiMwMEE3RkYiPkVTUEHRQTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+UmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPlJlZG9uZG8ganVzdGlmaWNhIHN1ICYjMzk7cGlzbyBjaG9sbG8mIzM5OyBlc2N1ZOFuZG9zZSBlbiBwcmVjaW9zIGRlIHN1YmFzdGFzIGVuIGVzZSBlZGlmaWNpbyBkZSBoYWNlIDEyIGHxb3M8L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+RmVybuFuIEdvbnrhbGV6PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL3JlZG9uZG8tanVzdGlmaWNhLXBpc28tY2hvbGxvLWVzY3VkYW5kb3NlLXByZWNpb3Mtc2FsaWRhLXN1YmFzdGFzLWVzZS1lZGlmaWNpby1oYWNlLTEyLWFub3MtMjA1OTMzODUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iUmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvcyIgYXJpYS1sYWJlbD0iUmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvcyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstM3JqeHQgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLTFsYmRne21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7fQouYmxrLTFsYmRnIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0KLmJsay0xbGJkZyAucGFnZXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjMwMHB4IDFmcjtnYXA6MTVweH0KLmJsay0xbGJkZyAucGFnZSAuY29sdW1ue29yZGVyOjF9Ci5ibGstMWxiZGcgLnBhZ2UgLmxlYWR7b3JkZXI6Mn0KLyogODYwcHggeSBubyA0NzVweDogY29uIGxhIGNvbHVtbmEgZmlqYSAoMjIwcHggKyAyMHB4IGRlIGdhcCA9IDI0MHB4KSwKICAgY3VhbHF1aWVyIGFuY2hvIGRlIGlmcmFtZSBwb3IgZGViYWpvIGRlIH44NjBweCBkZWphIGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgICgxZnIpIGNhZGEgdmV6IGNvbiBtZW5vcyBlc3BhY2lvIGhhc3RhIGNvbGFwc2FyIGEgMHB4IGRlIGFuY2hvIGFudGVzIGRlCiAgIGxsZWdhciBhIHVuIGJyZWFrcG9pbnQgdGFuIGJham8gY29tbyA0NzVweCAmIzgyMTI7IGxhIG5vdGljaWEgcHJpbmNpcGFsCiAgIGRpcmVjdGFtZW50ZSBkZXNhcGFyZWNlIGVuIGVzYSBmcmFuamEgaW50ZXJtZWRpYSAobmkgImRlc2siIGNvbXBsZXRvIG5pCiAgICJt83ZpbCIgZXN0cmVjaG8pLiBDb24gODYwcHggc2UgcGFzYSBhIHVuYSBzb2xhIGNvbHVtbmEgYXBpbGFkYSBhbnRlcyBkZQogICBxdWUgZXNvIHB1ZWRhIG9jdXJyaXIuCiAgIEVzdGUgYnJlYWtwb2ludCBzZSBvbWl0ZSBwb3IgY29tcGxldG8gbWllbnRyYXMgbGEgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpCiAgIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpOiBwZW5zYWRvIHBhcmEgY3VhbmRvIGVsIG3zZHVsbyBsbGV2YSBzdQogICBjb2x1bW5hIGEgOTYwcHgsIGRlamEgZGUgdGVuZXIgc2VudGlkbyBlbiB1bmEgZXhwb3J0YWNp824gZGUgc29sbyBsYQogICBub3RpY2lhIHByaW5jaXBhbCBhIHVuIGFuY2hvIGZpam8gZWxlZ2lkbyBhIG1hbm8gJiM4MjEyOyBsb3MgYW5jaG9zIHNpbXVsYWRvcwogICAoNjEzLzQ2MC8zMDdweCkgZXN04W4gVE9ET1MgcG9yIGRlYmFqbyBkZSA4NjBweCwgYXPtIHF1ZSBzaW4gZXN0ZSBnYXRpbmcKICAgZWwgSFRNTCBleHBvcnRhZG8gY2Flcu1hIHNpZW1wcmUgYSBsYSB0aXBvZ3JhZu1hICJN83ZpbCIgKGNvbiAhaW1wb3J0YW50KQogICBzZWEgY3VhbCBzZWEgbGEgcXVlIGVsIHVzdWFyaW8gY29uZmlndXLzIGVuICJEZXNrIiBwYXJhIGVzYSBzaW11bGFjafNuLAogICBkYW5kbyBsYSBmYWxzYSBzZW5zYWNp824gZGUgcXVlIHVuYSBjb25maWd1cmFjafNuICJwaXNhIiBhIG90cmEuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0xbGJkZ3tiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowO30KICAuYmxrLTFsYmRnIC5wYWdle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9CiAgLmJsay0xbGJkZyAucGFnZSAuc3RhY2stdGl0bGUge2ZvbnQtc2l6ZToxOHB4OyBsaW5lLWhlaWdodDogMS4yZW07fQogIC5ibGstMWxiZGcgLnBhZ2UgLnN0YWNrLWF1dGhvciB7bWFyZ2luLXRvcDogMTBweDt9CiAgLmJsay0xbGJkZyAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YmxvY2stc2l6ZTo0MDBweCAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLW1lZGlhe2FzcGVjdC1yYXRpbzo0LzMgIWltcG9ydGFudDt9CiAgLmJsay0xbGJkZyAucGFnZSAubGVhZHtvcmRlcjoxfQogIC5ibGstMWxiZGcgLnBhZ2UgLmNvbHVtbntvcmRlcjoyfQogIC8qIFBvciBkZWJham8gZGVsIGJyZWFrcG9pbnQsIGVsIGxlYWQtYm9keSBzaWVtcHJlIHZ1ZWx2ZSBhIGlyIGRlYmFqbyBkZWwKICAgICBsZWFkLW1lZGlhIChubyBoYXkgc2l0aW8gcGFyYSBlbCBsYXlvdXQgbGFkbyBhIGxhZG8pLiAqLwogIC5ibGstMWxiZGcgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQsCiAgLmJsay0xbGJkZyAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FzcGVjdC1yYXRpbzphdXRvO30KICAuYmxrLTFsYmRnIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAogIC5ibGstMWxiZGcgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MSAxIGF1dG87fQogIC5ibGstMWxiZGcgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKICAuYmxrLTFsYmRnIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MSAxIGF1dG87aW5saW5lLXNpemU6OTAlO21hcmdpbjotMzBweCBhdXRvIDA7YmxvY2stc2l6ZTphdXRvO2FsaWduLXNlbGY6YXV0bztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHg7fQogIC5ibGstMWxiZGcgLnBhZ2UgLmNvbHVtbi1pdGVte2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQogIC5ibGstMWxiZGcgLnBhZ2UgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KICAuYmxrLTFsYmRnIC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0yMSAubGVmdC10aXRsZXtmb250LXNpemU6MjFweCAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0xOCAubGVmdC10aXRsZXtmb250LXNpemU6MThweCAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5wYWdlIC5sZWZ0LXBsYXl7CiAgICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogICAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogICAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7CiAgfQogIC5ibGstMWxiZGcgLnBhZ2UgLmxlZnQtcGxheTo6YmVmb3JlewogICAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogICAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4OwogIH0KfQovKiBUaXBvZ3JhZu1hICJN83ZpbCIgKGFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vdGl0dWxhcmVzIGFuaW1hZG9zKSBjb24gU1UKICAgUFJPUElPIGJyZWFrcG9pbnQgKDQ4MHB4KSwgc2VwYXJhZG8gZGVsIGRlIGFycmliYSAoODYwcHgsIHNvbG8gcGFyYSBhcGlsYXIKICAgbGEgcmVqaWxsYSBjb2x1bW5hK25vdGljaWEpOiB1biBjb250ZW5lZG9yIHJlYWwgZGUgbWVub3MgZGUgODYwcHggZXMgbXV5CiAgIGhhYml0dWFsIChwLmVqLiB1bmEgY29sdW1uYSBkZSBhcnTtY3VsbyBkZSB+NzAwcHgpIHkgTk8gZXMgdW4gbfN2aWwgJiM4MjEyOyBjb24KICAgdW4g+m5pY28gYnJlYWtwb2ludCBjb21wYXJ0aWRvLCBsYSB0aXBvZ3JhZu1hICJEZXNrIiBxdWUgY29uZmlndXJhIGVsCiAgIHVzdWFyaW8gbm8gbGxlZ2FiYSBhIHZlcnNlIG51bmNhIGVuIGVzZSBjYXNvLCBjYXllbmRvIHNpZW1wcmUgYSBsb3MgdmFsb3JlcwogICBwb3IgZGVmZWN0byBkZSAiTfN2aWwiIHNpbiBxdWUgbmFkaWUgbG8gaHViaWVyYSBwZWRpZG8uIDQ4MHB4IHPtIHNlCiAgIGNvcnJlc3BvbmRlIGNvbiB1biBhbmNobyBkZSBt83ZpbCByZWFsIChsYSB2aXN0YSAiTfN2aWwiIGRlbCBwcm9waW8gZ2VzdG9yCiAgIHNpbXVsYSAzNzVweCkuIElndWFsIHF1ZSBlbCBicmVha3BvaW50IGRlIGFycmliYSwgc2Ugb21pdGUgZHVyYW50ZSBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGRlIGxhIG5vdGljaWEgcHJpbmNpcGFsICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay0xbGJkZyAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiMwMEE3RkYgIWltcG9ydGFudDt9CiAgLmJsay0xbGJkZyAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLXRpdGxle2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgLmJsay0xbGJkZyAubGVhZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay0xbGJkZyAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay0xbGJkZyAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTFsYmRnIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLTFsYmRnIC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTFsYmRnIC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstMWxiZGcgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLTFsYmRnIC5sZWFkLW1lZGlhIGltZywKLmJsay0xbGJkZyAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay0xbGJkZyAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstMWxiZGcgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstMWxiZGcgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLTFsYmRnIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLTFsYmRnIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLTFsYmRnLWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLTFsYmRnIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay0xbGJkZy1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstMWxiZGcta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay0xbGJkZy1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstMWxiZGcgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLTFsYmRnLWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstMWxiZGcta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTFsYmRnIC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay0xbGJkZyAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay0xbGJkZyAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLTFsYmRnIC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstMWxiZGcgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstMWxiZGcgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLTFsYmRnIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLTFsYmRnIC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLTFsYmRnIC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay0xbGJkZyAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLTFsYmRnIC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTFsYmRnIC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTFsYmRnIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay0xbGJkZyAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLTFsYmRnIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstMWxiZGcgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstMWxiZGcgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTFsYmRnIC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstMWxiZGcgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstMWxiZGcgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLTFsYmRnIC5sZWFkLWtpY2tlciwgLmJsay0xbGJkZyAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLTFsYmRnIC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLTFsYmRnIC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay0xbGJkZyAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstMWxiZGcgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLTFsYmRnIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuMXJlbTtsaW5lLWhlaWdodDoxLjAyO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay0xbGJkZyAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay0xbGJkZyAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLTFsYmRnIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstMWxiZGcgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstMWxiZGcgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay0xbGJkZyAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay0xbGJkZyAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay0xbGJkZyAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstMWxiZGcgLnRodW1iIGltZywKLmJsay0xbGJkZyAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLTFsYmRnIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstMWxiZGcgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay0xbGJkZy1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLTFsYmRnIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay0xbGJkZyAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstMWxiZGcgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay0xbGJkZyAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay0xbGJkZyAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstMWxiZGcgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay0xbGJkZyAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstMWxiZGcgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay0xbGJkZyAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay0xbGJkZyAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstMWxiZGcgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay0xbGJkZyAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay0xbGJkZyAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLTFsYmRnIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay0xbGJkZyAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay0xbGJkZyAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstMWxiZGctYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay0xbGJkZyAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstMWxiZGcgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstMWxiZGcgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstMWxiZGcgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLTFsYmRnIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstMWxiZGcgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstMWxiZGcgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay0xbGJkZyAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLTFsYmRnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay0xbGJkZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLTFsYmRnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay0xbGJkZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstMWxiZGcgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay0xbGJkZyAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLTFsYmRnIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay0xbGJkZyAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay0xbGJkZyAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay0xbGJkZyAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay0xbGJkZyAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay0xbGJkZyAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLTFsYmRnIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstMWxiZGcgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLTFsYmRnIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay0xbGJkZy1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstMWxiZGcgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstMWxiZGcgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstMWxiZGcgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstMWxiZGcgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstMWxiZGcgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLTFsYmRnIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTFsYmRnIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay0xbGJkZyAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLTFsYmRnIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstMWxiZGcgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLTFsYmRnLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLTFsYmRnIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLTFsYmRnIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLTFsYmRnIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstMWxiZGcgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTFsYmRnIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstMWxiZGcgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay0xbGJkZyAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTFsYmRnIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstMWxiZGcgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstMWxiZGcgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTFsYmRnIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay0xbGJkZyAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstMWxiZGcgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay0xbGJkZyAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstMWxiZGcgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLTFsYmRnIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTFsYmRnIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstMWxiZGcgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstMWxiZGcgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay0xbGJkZyAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstMWxiZGcgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstMWxiZGcgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLTFsYmRnIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstMWxiZGcgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay0xbGJkZyAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLTFsYmRnIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTFsYmRnIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstMWxiZGcgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay0xbGJkZyAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay0xbGJkZyAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstMWxiZGcgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstMWxiZGcgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstMWxiZGcgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTFsYmRnIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLTFsYmRnIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstMWxiZGciPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIDxhc2lkZSBjbGFzcz0iY29sdW1uIj4KICAgICAgCiAgICA8YSBjbGFzcz0iY29sdW1uLWl0ZW0gbGF5b3V0LXRpdGxlLW9ubHkgdGl0bGUtb25seS1tb2JpbGUtMTgiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vdHUtcGxhbi1lcmEtcmVkb25kby1wZXJvLXRlLXBpbGxhbW9zLWxsYXZlcy1kZWwtY2hvbGxvLXBpc28tbWFub3MtMjA1OTMyNzYiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iVHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zIj4KICAgICAgPGRpdiBjbGFzcz0ibGVmdC1ib2R5Ij4KICAgICAgPGg0IGNsYXNzPSJsZWZ0LXRpdGxlIiBzdHlsZT0iZm9udC1zaXplOjE4cHg7Ij48c3BhbiBjbGFzcz0icmVsYXRlZC1lZGl0b3JpYWwtdGFnIj5FRElUT1JJQUw8L3NwYW4+PHNwYW4gY2xhc3M9InJlbGF0ZWQtdGl0bGUtZGVzayI+VHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLW1vYmlsZSI+VHUgcGxhbiBlcmEgUmVkb25kbywgcGVybyB0ZSBwaWxsYW1vcyBjb24gbGFzIGxsYXZlcyBkZWwgY2hvbGxvLXBpc28gZW4gbGFzIG1hbm9zPC9zcGFuPjwvaDQ+CiAgICAgIDxkaXYgY2xhc3M9InN0YWNrLWF1dGhvciI+T0tESUFSSU88L2Rpdj4KICAgIDwvZGl2PgogICAgPC9hPgoKICAgIDxhIGNsYXNzPSJjb2x1bW4taXRlbSBsYXlvdXQtcGhvdG8tbGVmdCIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW52ZXN0aWdhY2lvbi90cm9sYXMtcmVkb25kby1kaWNlLXF1ZS1waXNvLXNhbGlvLXN1YmFzdGEtOTIwLTAwMC1ldXJvcy1wZXJvLW9jdWx0YS1xdWUtYWNhYm8tdmVuZGllbmRvLTE1LW1pbGxvbmVzLTIwNTk0MzIzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IlJlZG9uZG8gbWllbnRlOiBkaWNlIHF1ZSB1biBwaXNvIHNhbGnzIGEgc3ViYXN0YSBwb3IgOTIwLjAwMCAmIzgzNjQ7IHBlcm8gb2N1bHRhIHF1ZSBzZSB2ZW5kafMgZW4gMSw1IG1pbGxvbmVzIj4KICAgICAgPGRpdiBjbGFzcz0idGh1bWIiPjxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvcmVkb25kby1taWVudGUtZGljZS1xdWUtdW4tcGlzby1zYWxpby1hLXN1YmFzdGEtcG9yLTkyMC0wMDAtZXVyb3MtcGVyby1vY3VsdGEtcXVlLXNlLWFjYWJvLXZlbmRpZW5kby1lbi0xLTUtbWlsbG9uZXMtMjAyNjEwMjEtMTExMzU1LTU3MDBhZC5qcGciIGFsdD0iUmVkb25kbyBtaWVudGU6IGRpY2UgcXVlIHVuIHBpc28gc2FsafMgYSBzdWJhc3RhIHBvciA5MjAuMDAwICYjODM2NDsgcGVybyBvY3VsdGEgcXVlIHNlIHZlbmRp8yBlbiAxLDUgbWlsbG9uZXMiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtb2Qtc3RhY2siPgogICAgICA8aDQgY2xhc3M9InN0YWNrLXRpdGxlIj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1kZXNrIj5SZWRvbmRvIG1pZW50ZTogZGljZSBxdWUgdW4gcGlzbyBzYWxp8yBhIHN1YmFzdGEgcG9yIDkyMC4wMDAgJiM4MzY0OyBwZXJvIG9jdWx0YSBxdWUgc2UgdmVuZGnzIGVuIDEsNSBtaWxsb25lczwvc3Bhbj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1tb2JpbGUiPlJlZG9uZG8gbWllbnRlOiBkaWNlIHF1ZSB1biBwaXNvIHNhbGnzIGEgc3ViYXN0YSBwb3IgOTIwLjAwMCAmIzgzNjQ7IHBlcm8gb2N1bHRhIHF1ZSBzZSB2ZW5kafMgZW4gMSw1IG1pbGxvbmVzPC9zcGFuPjwvaDQ+CiAgICAgIDxkaXYgY2xhc3M9InN0YWNrLWF1dGhvciI+SS4gVGFiZXJhIHwgRi4gR29ueuFsZXo8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9hPgoKICAgIDxhIGNsYXNzPSJjb2x1bW4taXRlbSBsYXlvdXQtcGhvdG8tbGVmdCIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL2Jsb3F1ZS1pdmFuLXJlZG9uZG8tYWxvam8tanVsaXRvLW1hcnRpbmV6LXBhZ2Fkb3ItemFwYXRlcm8tYWxsaS1ndWFyZG8tMjg2LTA3MC1lZmVjdGl2by0yMDU2MTM0MCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJFbCBibG9xdWUgZGUgSXbhbiBSZWRvbmRvIGFsb2rzIGEgJiMzOTtKdWxpdG8mIzM5OyBNYXJ07W5leiwgZWwgcGFnYWRvciBkZSBaYXBhdGVybywgeSBhbGztIGd1YXJk8yAyODYuMDcwICYjODM2NDsgZW4gZWZlY3Rpdm8iPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYiI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9lbC1ibG9xdWUtZGUtaXZhbi1yZWRvbmRvLWFsb2pvLWEtanVsaXRvLW1hcnRpbmV6LWVsLXBhZ2Fkb3ItZGUtemFwYXRlcm8teS1hbGxpLWd1YXJkby0yODYtMDcwLWVuLWVmZWN0aXZvLTIwMjYxMDIxLTExMTQwNC05ODlhMTQuanBnIiBhbHQ9IkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2byIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im1vZC1zdGFjayI+CiAgICAgIDxoNCBjbGFzcz0ic3RhY2stdGl0bGUiPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLWRlc2siPkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2bzwvc3Bhbj48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1tb2JpbGUiPkVsIGJsb3F1ZSBkZSBJduFuIFJlZG9uZG8gYWxvavMgYSAmIzM5O0p1bGl0byYjMzk7IE1hcnTtbmV6LCBlbCBwYWdhZG9yIGRlIFphcGF0ZXJvLCB5IGFsbO0gZ3VhcmTzIDI4Ni4wNzAgJiM4MzY0OyBlbiBlZmVjdGl2bzwvc3Bhbj48L2g0PgogICAgICA8ZGl2IGNsYXNzPSJzdGFjay1hdXRob3IiPkZlcm7hbiBHb2564WxlejwvZGl2PgogICAgPC9kaXY+CiAgICA8L2E+CgogICAgPGEgY2xhc3M9ImNvbHVtbi1pdGVtIGxheW91dC10aXRsZS1vbmx5IHRpdGxlLW9ubHktbW9iaWxlLTE4IiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvcHAtaGFjZS1lY28tZXhjbHVzaXZhLW9rZGlhcmlvLXNvYnJlLXBpc28tcmVkb25kby1uby1mdWUtbG8tdW5pY28tcXVlLWdvYmllcm5vLXBhZ28tdHJhdmVzLXBpc2F6by0yMDU5NDUzOCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJFbCBQUCBzb2JyZSBlbCBwaXNvIGRlIEl24W4gUmVkb25kbyBkZXN0YXBhZG8gcG9yIE9LRElBUklPOiAmcXVvdDtMb3MgJiMzOTtzZXJ2aWNpb3MmIzM5OyBkZSBKZXNzaWNhIG5vIGZ1ZXJvbiBsb3Mg+m5pY29zIHF1ZSBwYWfzIGVsIEdvYmllcm5vJnF1b3Q7Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVmdC1ib2R5Ij4KICAgICAgPGg0IGNsYXNzPSJsZWZ0LXRpdGxlIiBzdHlsZT0iZm9udC1zaXplOjE4cHg7Ij48c3BhbiBjbGFzcz0icmVsYXRlZC10aXRsZS1kZXNrIj5FbCBQUCBzb2JyZSBlbCBwaXNvIGRlIEl24W4gUmVkb25kbyBkZXN0YXBhZG8gcG9yIE9LRElBUklPOiAmcXVvdDtMb3MgJiMzOTtzZXJ2aWNpb3MmIzM5OyBkZSBKZXNzaWNhIG5vIGZ1ZXJvbiBsb3Mg+m5pY29zIHF1ZSBwYWfzIGVsIEdvYmllcm5vJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJyZWxhdGVkLXRpdGxlLW1vYmlsZSI+RWwgUFAgc29icmUgZWwgcGlzbyBkZSBJduFuIFJlZG9uZG8gZGVzdGFwYWRvIHBvciBPS0RJQVJJTzogJnF1b3Q7TG9zICYjMzk7c2VydmljaW9zJiMzOTsgZGUgSmVzc2ljYSBubyBmdWVyb24gbG9zIPpuaWNvcyBxdWUgcGFn8yBlbCBHb2JpZXJubyZxdW90Ozwvc3Bhbj48L2g0PgogICAgICA8ZGl2IGNsYXNzPSJzdGFjay1hdXRob3IiPk9LRElBUklPPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvYT4KICAgIDwvYXNpZGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvcmVkb25kby1qdXN0aWZpY2Etc3UtcGlzby1jaG9sbG8tZXNjdWRhbmRvc2UtZW4tcHJlY2lvcy1kZS1zdWJhc3Rhcy1lbi1lc2UtZWRpZmljaW8tZGUtaGFjZS0xMi1hbm9zLTIwMjYxMDIxLTExMTMxNC01YjJiNTguanBnIiBhbHQ9IlJlZG9uZG8ganVzdGlmaWNhIHN1ICYjMzk7cGlzbyBjaG9sbG8mIzM5OyBlc2N1ZOFuZG9zZSBlbiBwcmVjaW9zIGRlIHN1YmFzdGFzIGVuIGVzZSBlZGlmaWNpbyBkZSBoYWNlIDEyIGHxb3MiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5IiBzdHlsZT0iYmFja2dyb3VuZDojMDBBN0ZGOyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2NvbG9yOiMwMEE3RkYiPkVTUEHRQTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+UmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPlJlZG9uZG8ganVzdGlmaWNhIHN1ICYjMzk7cGlzbyBjaG9sbG8mIzM5OyBlc2N1ZOFuZG9zZSBlbiBwcmVjaW9zIGRlIHN1YmFzdGFzIGVuIGVzZSBlZGlmaWNpbyBkZSBoYWNlIDEyIGHxb3M8L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+RmVybuFuIEdvbnrhbGV6PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL3JlZG9uZG8tanVzdGlmaWNhLXBpc28tY2hvbGxvLWVzY3VkYW5kb3NlLXByZWNpb3Mtc2FsaWRhLXN1YmFzdGFzLWVzZS1lZGlmaWNpby1oYWNlLTEyLWFub3MtMjA1OTMzODUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iUmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvcyIgYXJpYS1sYWJlbD0iUmVkb25kbyBqdXN0aWZpY2Egc3UgJiMzOTtwaXNvIGNob2xsbyYjMzk7IGVzY3Vk4W5kb3NlIGVuIHByZWNpb3MgZGUgc3ViYXN0YXMgZW4gZXNlIGVkaWZpY2lvIGRlIGhhY2UgMTIgYfFvcyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstMWxiZGcgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
    • Ayuso recurre ante el Supremo el nuevo decreto de vivienda de Sánchez por dejar a Madrid sin un euro de los 180 millones
        • España
        • España

      Ayuso recurre ante el Supremo el decreto de vivienda por dejar a Madrid sin un euro de los 180 millones

      • Pablo Romero-Salazar
      • 2026-10-21 13:31
    • Feijóo anuncia la mayor ayuda de la historia para el acceso de los jóvenes a la vivienda: 25.000 € menos en impuestos
        • España
        • España

      Feijóo anuncia "la mayor ayuda de la historia" para el acceso de los jóvenes a la vivienda: 25.000 € menos en impuestos

      • Nacho Atanes
      • 2026-10-21 11:53
    • Eva Fernández, nueva presidenta de Dos Mil Palabras, sociedad editora de OKDIARIO
        • España
        • España

      Eva Fernández, nueva presidenta de Dos Mil Palabras, sociedad editora de OKDIARIO

      • OKDIARIO
      • 2026-10-21 09:00
    • Prohens recurre a una portada de OKBALEARES para desmontar a la izquierda: Armengol dijo que
        • OkBaleares
        • OkBaleares

      Prohens recurre a una portada de OKBALEARES para desmontar a la izquierda en el parlament balear

      • Tomas Ibarz
      • 2026-10-21 13:35
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLW5hbGF2e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1uYWxhdiBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstbmFsYXYgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstbmFsYXYgLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLW5hbGF2IC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstbmFsYXZ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1uYWxhdiAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstbmFsYXYgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLW5hbGF2IC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstbmFsYXYgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1uYWxhdiAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLW5hbGF2IC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1uYWxhdiAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1uYWxhdiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLW5hbGF2IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstbmFsYXYgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1uYWxhdiAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1uYWxhdiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstbmFsYXYgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1uYWxhdiAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1uYWxhdiAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstbmFsYXYgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1uYWxhdiAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW5hbGF2IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzFjOTU4NyAhaW1wb3J0YW50O30KICAuYmxrLW5hbGF2IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMWM5NTg3ICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLW5hbGF2IC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLW5hbGF2IC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLW5hbGF2IC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstbmFsYXYgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstbmFsYXYgLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstbmFsYXYgLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1uYWxhdiAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstbmFsYXYgLmxlYWQtbWVkaWEgaW1nLAouYmxrLW5hbGF2IC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLW5hbGF2IC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1uYWxhdiAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay1uYWxhdiAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstbmFsYXYgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstbmFsYXYgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstbmFsYXYta2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstbmFsYXYgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLW5hbGF2LWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay1uYWxhdi1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLW5hbGF2LWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay1uYWxhdiAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstbmFsYXYta2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay1uYWxhdi1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbmFsYXYgLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLW5hbGF2IC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLW5hbGF2IC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstbmFsYXYgLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay1uYWxhdiAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay1uYWxhdiAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstbmFsYXYgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstbmFsYXYgLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstbmFsYXYgLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW5hbGF2IC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstbmFsYXYgLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstbmFsYXYgLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstbmFsYXYgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLW5hbGF2IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstbmFsYXYgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstbmFsYXYgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstbmFsYXYgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstbmFsYXYgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstbmFsYXYgLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbmFsYXYgLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay1uYWxhdiAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay1uYWxhdiAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstbmFsYXYgLmxlYWQta2lja2VyLCAuYmxrLW5hbGF2IC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstbmFsYXYgLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstbmFsYXYgLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLW5hbGF2IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojMWM5NTg3O30KLmJsay1uYWxhdiAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojMWM5NTg3O30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstbmFsYXYgLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6Mi4xNXJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay1uYWxhdiAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay1uYWxhdiAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLW5hbGF2IC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstbmFsYXYgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstbmFsYXYgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay1uYWxhdiAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay1uYWxhdiAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1uYWxhdiAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstbmFsYXYgLnRodW1iIGltZywKLmJsay1uYWxhdiAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLW5hbGF2IC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstbmFsYXYgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay1uYWxhdi1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLW5hbGF2IC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay1uYWxhdiAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstbmFsYXYgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay1uYWxhdiAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay1uYWxhdiAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstbmFsYXYgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay1uYWxhdiAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstbmFsYXYgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay1uYWxhdiAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay1uYWxhdiAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstbmFsYXYgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay1uYWxhdiAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay1uYWxhdiAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLW5hbGF2IC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1uYWxhdiAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1uYWxhdiAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstbmFsYXYtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1uYWxhdiAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstbmFsYXYgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstbmFsYXYgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstbmFsYXYgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLW5hbGF2IC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstbmFsYXYgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstbmFsYXYgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay1uYWxhdiAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLW5hbGF2IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1uYWxhdiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLW5hbGF2IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay1uYWxhdiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstbmFsYXYgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1uYWxhdiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLW5hbGF2IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay1uYWxhdiAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay1uYWxhdiAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1uYWxhdiAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay1uYWxhdiAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1uYWxhdiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLW5hbGF2IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstbmFsYXYgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLW5hbGF2IC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay1uYWxhdi1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstbmFsYXYgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstbmFsYXYgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstbmFsYXYgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstbmFsYXYgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstbmFsYXYgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLW5hbGF2IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLW5hbGF2IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1uYWxhdiAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLW5hbGF2IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstbmFsYXYgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLW5hbGF2LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLW5hbGF2IC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLW5hbGF2IC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLW5hbGF2IC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstbmFsYXYgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW5hbGF2IC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbmFsYXYgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay1uYWxhdiAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW5hbGF2IC5oZWFkZXIyLWNhdC10YWcsCi5ibGstbmFsYXYgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstbmFsYXYgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW5hbGF2IC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay1uYWxhdiAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstbmFsYXYgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay1uYWxhdiAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstbmFsYXYgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLW5hbGF2IC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW5hbGF2IC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstbmFsYXYgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstbmFsYXYgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay1uYWxhdiAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstbmFsYXYgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstbmFsYXYgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLW5hbGF2IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstbmFsYXYgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay1uYWxhdiAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1uYWxhdiAuY29sdW1ue2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweDt9CiAgLmJsay1uYWxhdiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnQsCiAgLmJsay1uYWxhdiAuY29sdW1uLWl0ZW0ubW9iLWdyaWQtc3RhbmRhbG9uZXtncmlkLWNvbHVtbjoxIC8gLTE7fQogIC8qICFpbXBvcnRhbnQ6IGxhIHByb3BvcmNp824gcHJvcGlhIGRlIGNhZGEgbm90aWNpYSAodmVyIG1lZGlhQXNwZWN0UmF0aW8pCiAgICAgc2UgYXBsaWNhIGNvbW8gZXN0aWxvIGlubGluZSBzb2JyZSBlbCBwcm9waW8gLnRodW1iICYjODIxMjsgc2luICFpbXBvcnRhbnQKICAgICBlc3RlIHJlc2d1YXJkbyBkZWwgZ3JpZCBkZSAyIGNvbHVtbmFzIGRlamFy7WEgZGUgdGVuZXIgZWZlY3RvIGVuIGN1YW50bwogICAgIHVuYSBub3RpY2lhIHRyYWplcmEgdW5hIHByb3BvcmNp824gZGlzdGludGEgZGUgNDozICh2ZXIgbWlzbW8gY29tZW50YXJpbywKICAgICBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEpLiAqLwogIC5ibGstbmFsYXYgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3A6bm90KC5tb2ItZ3JpZC1zdGFuZGFsb25lKSAudGh1bWJ7YXNwZWN0LXJhdGlvOjQvMyAhaW1wb3J0YW50O30KICAuYmxrLW5hbGF2IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wOm5vdCgubW9iLWdyaWQtc3RhbmRhbG9uZSkgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC13ZWlnaHQ6NjAwO30KfQovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLW5hbGF2IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLW5hbGF2IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstbmFsYXYgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1uYWxhdiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1uYWxhdiAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstbmFsYXYgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstbmFsYXYgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstbmFsYXYgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW5hbGF2IC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLW5hbGF2IC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstbmFsYXYiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWxlZnQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VzdGUtZXMtbWFyaW8tZWwtcHJvZmVzb3ItZGUtbWF0ZW1hdGljYXMtZGUtMzctYW5vcy1hY3VzYWRvLWRlLXZpb2xhci1hLTEwLW1lbm9yZXMtZW4tdW4tY29sZWdpby1kZS1tYWRyaWQtMjAyNjEwMjEtMDUyOTA5LTYwNTQwZi5qcGciIGFsdD0iyXN0ZSBlcyBNYXJpbywgZWwgcHJvZmVzb3IgZGUgbWF0ZW3hdGljYXMgZGUgMzcgYfFvcyBhY3VzYWRvIGRlIHZpb2xhciBhIDEwIG1lbm9yZXMgZW4gdW4gY29sZWdpbyBkZSBNYWRyaWQiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiM5MTkxOTE7Y29sb3I6I2ZmZiI+U1VDRVNPUzwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+yXN0ZSBlcyBNYXJpbywgZWwgcHJvZmVzb3IgZGUgbWF0ZW3hdGljYXMgZGUgMzcgYfFvcyBhY3VzYWRvIGRlIHZpb2xhciBhIDEwIG1lbm9yZXMgZW4gdW4gY29sZWdpbyBkZSBNYWRyaWQ8L3NwYW4+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtbW9iaWxlIj7Jc3RlIGVzIE1hcmlvLCBlbCBwcm9mZXNvciBkZSBtYXRlbeF0aWNhcyBkZSAzNyBh8W9zIGFjdXNhZG8gZGUgdmlvbGFyIGEgMTAgbWVub3JlcyBlbiB1biBjb2xlZ2lvIGRlIE1hZHJpZDwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj7BTkdFTCBNT1lBIC8gRkVSTkFORE8gUVVJTlRFTEE8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9zdWNlc29zL2VzdGUtbWFyaW8tcHJvZmVzb3ItbWF0ZW1hdGljYXMtMzctYW5vcy1hY3VzYWRvLXZpb2xhci0xMC1tZW5vcmVzLWNvbGVnaW8tbWFkcmlkLTIwNTkyMzM2IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IslzdGUgZXMgTWFyaW8sIGVsIHByb2Zlc29yIGRlIG1hdGVt4XRpY2FzIGRlIDM3IGHxb3MgYWN1c2FkbyBkZSB2aW9sYXIgYSAxMCBtZW5vcmVzIGVuIHVuIGNvbGVnaW8gZGUgTWFkcmlkIiBhcmlhLWxhYmVsPSLJc3RlIGVzIE1hcmlvLCBlbCBwcm9mZXNvciBkZSBtYXRlbeF0aWNhcyBkZSAzNyBh8W9zIGFjdXNhZG8gZGUgdmlvbGFyIGEgMTAgbWVub3JlcyBlbiB1biBjb2xlZ2lvIGRlIE1hZHJpZCI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstbmFsYXYgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLTZ2a3pqe21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay02dmt6aiBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstNnZremogLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstNnZremogLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLTZ2a3pqIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstNnZremp7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay02dmt6aiAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstNnZremogLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLTZ2a3pqIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstNnZremogLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay02dmt6aiAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLTZ2a3pqIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay02dmt6aiAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay02dmt6aiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLTZ2a3pqIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstNnZremogLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay02dmt6aiAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay02dmt6aiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstNnZremogLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay02dmt6aiAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay02dmt6aiAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstNnZremogLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay02dmt6aiAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTZ2a3pqIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzFjOTU4NyAhaW1wb3J0YW50O30KICAuYmxrLTZ2a3pqIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMWM5NTg3ICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLTZ2a3pqIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTZ2a3pqIC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLTZ2a3pqIC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstNnZremogLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGstNnZremogLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstNnZremogLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay02dmt6aiAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGstNnZremogLmxlYWQtbWVkaWEgaW1nLAouYmxrLTZ2a3pqIC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLTZ2a3pqIC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay02dmt6aiAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay02dmt6aiAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGstNnZremogLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGstNnZremogLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGstNnZremota2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGstNnZremogLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLTZ2a3pqLWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay02dmt6ai1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLTZ2a3pqLWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay02dmt6aiAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGstNnZremota2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay02dmt6ai1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNnZremogLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLTZ2a3pqIC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLTZ2a3pqIC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGstNnZremogLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay02dmt6aiAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay02dmt6aiAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGstNnZremogLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGstNnZremogLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGstNnZremogLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTZ2a3pqIC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstNnZremogLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby9hdXRvciBjZW50cmFkb3MgZW4gdmVydGljYWwgZGVudHJvIGRlbCBhbHRvCiAgIHNvYnJhbnRlIGJham8gbGEgY2F0ZWdvcu1hICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstNnZremogLmxlYWQtYm9keS1tYWlue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aW5saW5lLXNpemU6MTAwJTtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDt9Ci8qIEFwYXJpZW5jaWEgbmVnYXRpdmEgKHBvciBkZWZlY3RvKSB2cy4gcG9zaXRpdmEgZGUgbGEgY2FqYSBkZSB0aXR1bGFyICYjODIxMjsgdmVyCiAgIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstNnZremogLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7fQouYmxrLTZ2a3pqIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtdGl0bGUsCi5ibGstNnZremogLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAuYXV0aG9yLWxhYmVse2NvbG9yOiMwRTExMUE7fQovKiBQb3NpY2nzbiBkZWwgbGVhZC1ib2R5IHJlc3BlY3RvIGFsIGxlYWQtbWVkaWEgKCdsZWZ0Jy8ncmlnaHQnKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpyb3c7YXNwZWN0LXJhdGlvOjIuOTYyOTYyOTYyOTYyOTYzO30KLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktbGVmdHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9Ci5ibGstNnZremogLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCi5ibGstNnZremogLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLW1lZGlhe2ZsZXg6MCAwIDYwJTt9Ci5ibGstNnZremogLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keSwKLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjAgMCBjYWxjKDQwJSArIDMwcHgpO2lubGluZS1zaXplOmF1dG87bWFyZ2luLXRvcDowO2Jsb2NrLXNpemU6Y2FsYygxMDAlIC0gNDJweCk7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fQouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstNnZremogLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNnZremogLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay02dmt6aiAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay02dmt6aiAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstNnZremogLmxlYWQta2lja2VyLCAuYmxrLTZ2a3pqIC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstNnZremogLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstNnZremogLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLTZ2a3pqIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojMWM5NTg3O30KLmJsay02dmt6aiAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojMWM5NTg3O30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstNnZremogLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6Mi4xNXJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay02dmt6aiAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay02dmt6aiAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLTZ2a3pqIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstNnZremogLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstNnZremogLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay02dmt6aiAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay02dmt6aiAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay02dmt6aiAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstNnZremogLnRodW1iIGltZywKLmJsay02dmt6aiAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLTZ2a3pqIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstNnZremogLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay02dmt6ai1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLTZ2a3pqIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay02dmt6aiAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstNnZremogLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay02dmt6aiAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay02dmt6aiAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstNnZremogLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay02dmt6aiAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstNnZremogLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay02dmt6aiAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay02dmt6aiAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstNnZremogLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay02dmt6aiAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay02dmt6aiAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLTZ2a3pqIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay02dmt6aiAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay02dmt6aiAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstNnZremotYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay02dmt6aiAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstNnZremogLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstNnZremogLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstNnZremogLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLTZ2a3pqIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstNnZremogLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstNnZremogLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay02dmt6aiAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLTZ2a3pqIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay02dmt6aiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLTZ2a3pqIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay02dmt6aiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstNnZremogLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay02dmt6aiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLTZ2a3pqIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay02dmt6aiAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay02dmt6aiAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay02dmt6aiAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstNnZremogLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay02dmt6aiAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay02dmt6aiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLTZ2a3pqIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstNnZremogLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLTZ2a3pqIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay02dmt6ai1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstNnZremogLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstNnZremogLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstNnZremogLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstNnZremogLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstNnZremogLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLTZ2a3pqIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTZ2a3pqIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay02dmt6aiAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLTZ2a3pqIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstNnZremogLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLTZ2a3pqLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLTZ2a3pqIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLTZ2a3pqIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLTZ2a3pqIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstNnZremogLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTZ2a3pqIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNnZremogLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay02dmt6aiAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTZ2a3pqIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstNnZremogLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstNnZremogLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTZ2a3pqIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay02dmt6aiAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNnZremogLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay02dmt6aiAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstNnZremogLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLTZ2a3pqIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTZ2a3pqIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstNnZremogLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstNnZremogLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay02dmt6aiAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstNnZremogLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstNnZremogLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLTZ2a3pqIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstNnZremogLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay02dmt6aiAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay02dmt6aiAuY29sdW1ue2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweDt9CiAgLmJsay02dmt6aiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnQsCiAgLmJsay02dmt6aiAuY29sdW1uLWl0ZW0ubW9iLWdyaWQtc3RhbmRhbG9uZXtncmlkLWNvbHVtbjoxIC8gLTE7fQogIC8qICFpbXBvcnRhbnQ6IGxhIHByb3BvcmNp824gcHJvcGlhIGRlIGNhZGEgbm90aWNpYSAodmVyIG1lZGlhQXNwZWN0UmF0aW8pCiAgICAgc2UgYXBsaWNhIGNvbW8gZXN0aWxvIGlubGluZSBzb2JyZSBlbCBwcm9waW8gLnRodW1iICYjODIxMjsgc2luICFpbXBvcnRhbnQKICAgICBlc3RlIHJlc2d1YXJkbyBkZWwgZ3JpZCBkZSAyIGNvbHVtbmFzIGRlamFy7WEgZGUgdGVuZXIgZWZlY3RvIGVuIGN1YW50bwogICAgIHVuYSBub3RpY2lhIHRyYWplcmEgdW5hIHByb3BvcmNp824gZGlzdGludGEgZGUgNDozICh2ZXIgbWlzbW8gY29tZW50YXJpbywKICAgICBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEpLiAqLwogIC5ibGstNnZremogLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3A6bm90KC5tb2ItZ3JpZC1zdGFuZGFsb25lKSAudGh1bWJ7YXNwZWN0LXJhdGlvOjQvMyAhaW1wb3J0YW50O30KICAuYmxrLTZ2a3pqIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wOm5vdCgubW9iLWdyaWQtc3RhbmRhbG9uZSkgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC13ZWlnaHQ6NjAwO30KfQovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLTZ2a3pqIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTZ2a3pqIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstNnZremogLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay02dmt6aiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay02dmt6aiAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstNnZremogLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstNnZremogLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstNnZremogLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTZ2a3pqIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLTZ2a3pqIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstNnZremoiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWxlZnQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VzdGUtZXMtbWFyaW8tZWwtcHJvZmVzb3ItZGUtbWF0ZW1hdGljYXMtZGUtMzctYW5vcy1hY3VzYWRvLWRlLXZpb2xhci1hLTEwLW1lbm9yZXMtZW4tdW4tY29sZWdpby1kZS1tYWRyaWQtMjAyNjEwMjEtMDUyOTA5LTYwNTQwZi5qcGciIGFsdD0iyXN0ZSBlcyBNYXJpbywgZWwgcHJvZmVzb3IgZGUgbWF0ZW3hdGljYXMgZGUgMzcgYfFvcyBhY3VzYWRvIGRlIHZpb2xhciBhIDEwIG1lbm9yZXMgZW4gdW4gY29sZWdpbyBkZSBNYWRyaWQiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiM5MTkxOTE7Y29sb3I6I2ZmZiI+U1VDRVNPUzwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHktbWFpbiI+CiAgICAgICAgICAKICAgICAgICAgIDxoMiBjbGFzcz0ibGVhZC10aXRsZSI+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtZGVzayI+yXN0ZSBlcyBNYXJpbywgZWwgcHJvZmVzb3IgZGUgbWF0ZW3hdGljYXMgZGUgMzcgYfFvcyBhY3VzYWRvIGRlIHZpb2xhciBhIDEwIG1lbm9yZXMgZW4gdW4gY29sZWdpbyBkZSBNYWRyaWQ8L3NwYW4+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtbW9iaWxlIj7Jc3RlIGVzIE1hcmlvLCBlbCBwcm9mZXNvciBkZSBtYXRlbeF0aWNhcyBkZSAzNyBh8W9zIGFjdXNhZG8gZGUgdmlvbGFyIGEgMTAgbWVub3JlcyBlbiB1biBjb2xlZ2lvIGRlIE1hZHJpZDwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj7BTkdFTCBNT1lBIC8gRkVSTkFORE8gUVVJTlRFTEE8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9zdWNlc29zL2VzdGUtbWFyaW8tcHJvZmVzb3ItbWF0ZW1hdGljYXMtMzctYW5vcy1hY3VzYWRvLXZpb2xhci0xMC1tZW5vcmVzLWNvbGVnaW8tbWFkcmlkLTIwNTkyMzM2IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IslzdGUgZXMgTWFyaW8sIGVsIHByb2Zlc29yIGRlIG1hdGVt4XRpY2FzIGRlIDM3IGHxb3MgYWN1c2FkbyBkZSB2aW9sYXIgYSAxMCBtZW5vcmVzIGVuIHVuIGNvbGVnaW8gZGUgTWFkcmlkIiBhcmlhLWxhYmVsPSLJc3RlIGVzIE1hcmlvLCBlbCBwcm9mZXNvciBkZSBtYXRlbeF0aWNhcyBkZSAzNyBh8W9zIGFjdXNhZG8gZGUgdmlvbGFyIGEgMTAgbWVub3JlcyBlbiB1biBjb2xlZ2lvIGRlIE1hZHJpZCI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstNnZremogLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
    • El profesor detenido por violar a 10 menores en Madrid se ofreció a dar clases a los hijos de sus vecinos
        • Sucesos
        • Sucesos

      El profesor detenido por violar a 10 menores se ofreció a dar clases a los hijos de sus vecinos

      • FERNANDO QUINTELA / ÁNGEL MOYA
      • 2026-10-21 05:48
    • La suegra y la cuñada del profesor detenido por violar niños se enfrentan a sus vecinos: A ver si van a violar a tus hijos
        • Sucesos
        • Sucesos

      La suegra y la cuñada del profesor detenido se enfrentan a sus vecinos: "A ver si van a violar a tus hijos"

      • FERNANDO QUINTELA / ÁNGEL MOYA
      • 2026-10-21 15:12
    • Éstas son las 24 circunscripciones donde PP y Vox deben entenderse para amarrar 33 senadores clave
        • España
        • España

      Éstas son las 24 circunscripciones donde PP y Vox deben entenderse para amarrar los 3/5 del senado

      La coalición del PSOE con los comunistas de Frente Amplio y otras fuerzas nacionalistas, denominada Senado de Progreso, para las generales del 29-N obliga a PP y Vox a entenderse para tener el control total de la Cámara Alta. Para ello, según un estudio elaborado por Data10 para OKDIARIO a partir de una encuesta realizada este lunes y martes, PP y Vox habrían de ir de la mano en al menos 24 circunscripciones del Senado, rozando los tres quintos que resultan clave para los nombramientos del Tribunal Constitucional y el Consejo General del Poder Judicial.
      • Segundo Sanz
      • 2026-10-21 05:49
    • Un pacto PP-Vox en el Senado abriría las puertas al fin de la mayoría sanchista en el TC
    • El equipo de campaña del PSOE fía su posible remontada al trasvase de votos del PP a Vox, que estima superior al 17%
        • España
        • España

      El equipo de campaña del PSOE fía su "posible remontada" al trasvase de votos del PP a Vox, que estima superior al 17%

      • Esther Jaén
      • 2026-10-21 05:49
    • PHN0eWxlPgogIEBpbXBvcnQgdXJsKCdodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcycpOwoKICAuYmlsZHMtdXVzc2Z1NTl7IGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsgfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzaywKICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWVjfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVza3sKICAgIHdpZHRoOjEwMCU7bWF4LXdpZHRoOjk2MHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NDYwcHggMWZyO2dhcDoxMHB4O3BhZGRpbmc6MTBweDttaW4td2lkdGg6OTYwcHg7CiB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5tZWRpYS13cmFwe3dpZHRoOjQ2MHB4fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzayAubWVkaWEsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLm1lZGlhewogICAgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpc29sYXRpb246aXNvbGF0ZTsKICB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5tZWRpYXt3aWR0aDo0NjBweDtoZWlnaHQ6MjYwcHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIGltZywgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIHZpZGVvLAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIGltZywgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgdmlkZW97d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfQogIC5iaWxkcy11dXNzZnU1OSAucGl4ZWxhdGVkLW1lZGlhe2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7aW1hZ2UtcmVuZGVyaW5nOmNyaXNwLWVkZ2VzfQogIC5iaWxkcy11dXNzZnU1OSAucGl4ZWwtcmlnaHQtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waXhlbC1yaWdodC1oYWxme3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpeGVsLXJpZ2h0LWhhbGYgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6MjAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpyaWdodCBjZW50ZXI7ZGlzcGxheTpibG9jaztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkO2ltYWdlLXJlbmRlcmluZzpjcmlzcC1lZGdlc30KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLnRleHQsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLnRleHR7bWluLWhlaWdodDoyNjBweDtwYWRkaW5nOjAgMTBweH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYnt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweDtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNvbnRlbnR7cGFkZGluZzoxNnB4IDEwcHggMTBweH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLmNhdGVnb3J5LAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5jYXRlZ29yeXsKICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2F0KTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjZweCAxMnB4IDVweDt3aWR0aDpmaXQtY29udGVudDt0cmFuc2Zvcm06c2tld1koLThkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNhdGVnb3J5IHsgbWFyZ2luLXRvcDotMzBweDsgfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzayAuaGVhZGxpbmUsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmhlYWRsaW5le21hcmdpbjoyMHB4IDAgMDtjb2xvcjojMEUxMTFBO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstd29yZH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLmhlYWRsaW5le2ZvbnQtc2l6ZTo0MnB4O2xpbmUtaGVpZ2h0OjQycHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmhlYWRsaW5le2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjM0cHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5kZXNjLAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5kZXNje21hcmdpbjoxNXB4IDAgMDtjb2xvcjojMzgzQjQyO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjdweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5hdXRob3IsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmF1dGhvcnttYXJnaW4tdG9wOjIwcHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiMzODNCNDI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjMwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmF1dGhvciB7bWFyZ2luLXRvcDogMjBweDt9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmJvdHRvbS1saW5le2Rpc3BsYXk6dXBwZXJjYXNlO30KICAuYmlsZHMtdXVzc2Z1NTkgLnBsYXktYnRue3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7YW5pbWF0aW9uOmJpbGRzLXV1c3NmdTU5LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO3otaW5kZXg6Mn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBsYXktYnRuIC5pY297d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnR9CiAgLmJpbGRzLXV1c3NmdTU5IC5wbGF5LWJ0biAudHh0e2ZvbnQtd2VpZ2h0OjcwMH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYiAucGxheS1idG57bGVmdDphdXRvO3JpZ2h0OjEwcHg7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5wbGF5LWJ0biAudHh0e2Rpc3BsYXk6bm9uZX0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmJsb2NrO29wYWNpdHk6MDt6LWluZGV4OjN9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNre29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzazpob3ZlcntvcGFjaXR5Oi45fQogIEBrZXlmcmFtZXMgYmlsZHMtdXVzc2Z1NTktYmxpbmt7MCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LC45KX19CiAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiA0NzlweCl7CiAgICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2t7ZGlzcGxheTpub25lfQogICAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2J7ZGlzcGxheTpibG9ja30KICB9CiAgQHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplKXsKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NzkuOThweCl7CiAgICAgIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVza3tkaXNwbGF5Om5vbmV9CiAgICAgIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9ie2Rpc3BsYXk6YmxvY2t9CiAgICB9CiAgfQogIDwvc3R5bGU+CjxzZWN0aW9uIGNsYXNzPSJiaWxkcy11dXNzZnU1OSIgc3R5bGU9Ii0tY2F0OiNGRkVBNEQ7IC0tY2F0LWJnOnJnYmEoMjU1LCAyMzQsIDc3LCAwLjIpIj4KICAgIDxhcnRpY2xlIGNsYXNzPSJwaWVjZS1kZXNrIiBpdGVtc2NvcGU9IiIgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9OZXdzQXJ0aWNsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtd3JhcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxpbWcgZGVjb2Rpbmc9ImFzeW5jIiBhbHQ9IkxhIGZ1ZXJ6YSBkZWwgYW1vciIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9pbWcvMjAyNi8xMC8yMC8yMS0xMC0yMDI2LXNhbmNoZXotYW1vci1jYW1wYW5hLmpwZWciIGxvYWRpbmc9ImxhenkiIHdpZHRoPSI0NjAiIGl0ZW1wcm9wPSJpbWFnZSI+CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnkiIGl0ZW1wcm9wPSJhcnRpY2xlU2VjdGlvbiIgc3R5bGU9ImNvbG9yOiByZ2IoMTQsIDE3LCAyNik7Ij5MQSBWSdFFVEEgREUgUFVFQkxBPC9zcGFuPgogICAgICAgICAgPGgyIGNsYXNzPSJoZWFkbGluZSIgaWQ9ImJpbGRzLXV1c3NmdTU5LWhlYWRsaW5lIiBpdGVtcHJvcD0iaGVhZGxpbmUiPkxBIEZVRVJaQSBERUwgQU1PUjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxhIGNsYXNzPSJwaWVjZS1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9vcGluaW9uL2Z1ZXJ6YS1kZWwtYW1vci0yMDU5MjY1MCIgaXRlbXByb3A9InVybCIgYXJpYS1sYWJlbGxlZGJ5PSJiaWxkcy11dXNzZnU1OS1oZWFkbGluZSI+PC9hPgogICAgICA8L2FydGljbGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0icGllY2UtbW9iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEiPgogICAgICAgICAgPGltZyBkZWNvZGluZz0iYXN5bmMiIGFsdD0iTGEgZnVlcnphIGRlbCBhbW9yIiBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzEwLzIwLzIxLTEwLTIwMjYtc2FuY2hlei1hbW9yLWNhbXBhbmEuanBlZyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjM3NSI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeSIgc3R5bGU9ImNvbG9yOiByZ2IoMTQsIDE3LCAyNik7Ij5MQSBWSdFFVEEgREUgUFVFQkxBPC9zcGFuPgogICAgICAgICAgPGgyIGNsYXNzPSJoZWFkbGluZSI+TEEgRlVFUlpBIERFTCBBTU9SPC9oMj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20tbGluZSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9InBpZWNlLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vZnVlcnphLWRlbC1hbW9yLTIwNTkyNjUwIiB0YWJpbmRleD0iLTEiPjwvYT4KICAgICAgPC9hcnRpY2xlPgogIDwvc2VjdGlvbj4=
      PHN0eWxlPgogIEBpbXBvcnQgdXJsKCdodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcycpOwoKICAuYmlsZHMtdXVzc2Z1NTl7IGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsgfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzaywKICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWVjfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVza3sKICAgIHdpZHRoOjEwMCU7bWF4LXdpZHRoOjk2MHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NDYwcHggMWZyO2dhcDoxMHB4O3BhZGRpbmc6MTBweDttaW4td2lkdGg6OTYwcHg7CiB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5tZWRpYS13cmFwe3dpZHRoOjQ2MHB4fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzayAubWVkaWEsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLm1lZGlhewogICAgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpc29sYXRpb246aXNvbGF0ZTsKICB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5tZWRpYXt3aWR0aDo0NjBweDtoZWlnaHQ6MjYwcHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIGltZywgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIHZpZGVvLAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIGltZywgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgdmlkZW97d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmluaGVyaXQ7ZGlzcGxheTpibG9ja30KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfQogIC5iaWxkcy11dXNzZnU1OSAucGl4ZWxhdGVkLW1lZGlhe2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7aW1hZ2UtcmVuZGVyaW5nOmNyaXNwLWVkZ2VzfQogIC5iaWxkcy11dXNzZnU1OSAucGl4ZWwtcmlnaHQtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waXhlbC1yaWdodC1oYWxme3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpeGVsLXJpZ2h0LWhhbGYgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6MjAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpyaWdodCBjZW50ZXI7ZGlzcGxheTpibG9jaztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkO2ltYWdlLXJlbmRlcmluZzpjcmlzcC1lZGdlc30KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLnRleHQsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLnRleHR7bWluLWhlaWdodDoyNjBweDtwYWRkaW5nOjAgMTBweH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYnt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweDtkaXNwbGF5Om5vbmV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNvbnRlbnR7cGFkZGluZzoxNnB4IDEwcHggMTBweH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLmNhdGVnb3J5LAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5jYXRlZ29yeXsKICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2F0KTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjZweCAxMnB4IDVweDt3aWR0aDpmaXQtY29udGVudDt0cmFuc2Zvcm06c2tld1koLThkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICB9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmNhdGVnb3J5IHsgbWFyZ2luLXRvcDotMzBweDsgfQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzayAuaGVhZGxpbmUsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmhlYWRsaW5le21hcmdpbjoyMHB4IDAgMDtjb2xvcjojMEUxMTFBO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstd29yZH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2sgLmhlYWRsaW5le2ZvbnQtc2l6ZTo0MnB4O2xpbmUtaGVpZ2h0OjQycHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmhlYWRsaW5le2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjM0cHh9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5kZXNjLAogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5kZXNje21hcmdpbjoxNXB4IDAgMDtjb2xvcjojMzgzQjQyO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjdweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNrIC5hdXRob3IsCiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmF1dGhvcnttYXJnaW4tdG9wOjIwcHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiMzODNCNDI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjMwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmF1dGhvciB7bWFyZ2luLXRvcDogMjBweDt9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2IgLmJvdHRvbS1saW5le2Rpc3BsYXk6dXBwZXJjYXNlO30KICAuYmlsZHMtdXVzc2Z1NTkgLnBsYXktYnRue3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7YW5pbWF0aW9uOmJpbGRzLXV1c3NmdTU5LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO3otaW5kZXg6Mn0KICAuYmlsZHMtdXVzc2Z1NTkgLnBsYXktYnRuIC5pY297d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnR9CiAgLmJpbGRzLXV1c3NmdTU5IC5wbGF5LWJ0biAudHh0e2ZvbnQtd2VpZ2h0OjcwMH0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLW1vYiAucGxheS1idG57bGVmdDphdXRvO3JpZ2h0OjEwcHg7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9iIC5wbGF5LWJ0biAudHh0e2Rpc3BsYXk6bm9uZX0KICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmJsb2NrO29wYWNpdHk6MDt6LWluZGV4OjN9CiAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1kZXNre29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0fQogIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVzazpob3ZlcntvcGFjaXR5Oi45fQogIEBrZXlmcmFtZXMgYmlsZHMtdXVzc2Z1NTktYmxpbmt7MCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LC45KX19CiAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiA0NzlweCl7CiAgICAuYmlsZHMtdXVzc2Z1NTkgLnBpZWNlLWRlc2t7ZGlzcGxheTpub25lfQogICAgLmJpbGRzLXV1c3NmdTU5IC5waWVjZS1tb2J7ZGlzcGxheTpibG9ja30KICB9CiAgQHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplKXsKICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NzkuOThweCl7CiAgICAgIC5iaWxkcy11dXNzZnU1OSAucGllY2UtZGVza3tkaXNwbGF5Om5vbmV9CiAgICAgIC5iaWxkcy11dXNzZnU1OSAucGllY2UtbW9ie2Rpc3BsYXk6YmxvY2t9CiAgICB9CiAgfQogIDwvc3R5bGU+CjxzZWN0aW9uIGNsYXNzPSJiaWxkcy11dXNzZnU1OSIgc3R5bGU9Ii0tY2F0OiNGRkVBNEQ7IC0tY2F0LWJnOnJnYmEoMjU1LCAyMzQsIDc3LCAwLjIpIj4KICAgIDxhcnRpY2xlIGNsYXNzPSJwaWVjZS1kZXNrIiBpdGVtc2NvcGU9IiIgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9OZXdzQXJ0aWNsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtd3JhcCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxpbWcgZGVjb2Rpbmc9ImFzeW5jIiBhbHQ9IkxhIGZ1ZXJ6YSBkZWwgYW1vciIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9pbWcvMjAyNi8xMC8yMC8yMS0xMC0yMDI2LXNhbmNoZXotYW1vci1jYW1wYW5hLmpwZWciIGxvYWRpbmc9ImxhenkiIHdpZHRoPSI0NjAiIGl0ZW1wcm9wPSJpbWFnZSI+CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnkiIGl0ZW1wcm9wPSJhcnRpY2xlU2VjdGlvbiIgc3R5bGU9ImNvbG9yOiByZ2IoMTQsIDE3LCAyNik7Ij5MQSBWSdFFVEEgREUgUFVFQkxBPC9zcGFuPgogICAgICAgICAgPGgyIGNsYXNzPSJoZWFkbGluZSIgaWQ9ImJpbGRzLXV1c3NmdTU5LWhlYWRsaW5lIiBpdGVtcHJvcD0iaGVhZGxpbmUiPkxBIEZVRVJaQSBERUwgQU1PUjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxhIGNsYXNzPSJwaWVjZS1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9vcGluaW9uL2Z1ZXJ6YS1kZWwtYW1vci0yMDU5MjY1MCIgaXRlbXByb3A9InVybCIgYXJpYS1sYWJlbGxlZGJ5PSJiaWxkcy11dXNzZnU1OS1oZWFkbGluZSI+PC9hPgogICAgICA8L2FydGljbGU+CiAgICA8YXJ0aWNsZSBjbGFzcz0icGllY2UtbW9iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEiPgogICAgICAgICAgPGltZyBkZWNvZGluZz0iYXN5bmMiIGFsdD0iTGEgZnVlcnphIGRlbCBhbW9yIiBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzEwLzIwLzIxLTEwLTIwMjYtc2FuY2hlei1hbW9yLWNhbXBhbmEuanBlZyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjM3NSI+CiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeSIgc3R5bGU9ImNvbG9yOiByZ2IoMTQsIDE3LCAyNik7Ij5MQSBWSdFFVEEgREUgUFVFQkxBPC9zcGFuPgogICAgICAgICAgPGgyIGNsYXNzPSJoZWFkbGluZSI+TEEgRlVFUlpBIERFTCBBTU9SPC9oMj4KICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20tbGluZSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9InBpZWNlLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL29waW5pb24vZnVlcnphLWRlbC1hbW9yLTIwNTkyNjUwIiB0YWJpbmRleD0iLTEiPjwvYT4KICAgICAgPC9hcnRpY2xlPgogIDwvc2VjdGlvbj4=
    • Ultras del Feyenoord generan altercados en la acampada de las Setas, en Sevilla: Somos de izquierdas y vinieron un poco más agresivos
        • Deportes
        • Deportes

      Ultras del Feyenoord generan altercados en la acampada de las Setas, en Sevilla: "Somos de izquierdas y vinieron un poco más agresivos"

      • Isaac Chavida
      • 2026-10-21 20:10
    • Así calienta la ultraizquierda las protestas en Madrid: Los policías son putos nazis al servicio de una puta nazi como Ayuso
        • España
        • España

      Así calienta la ultraizquierda las protestas: "Los policías son nazis al servicio de una puta nazi como Ayuso"

      • Sira Lobato
      • 2026-10-21 05:47
    • PGlmcmFtZSBoZWlnaHQ9JzM1MHB4JyB3aWR0aD0nMTAwJScgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvaHRtbC95N2hzcnYtY2FycnVzZWwtZGlyZWN0b3MucGhwP21vZGU9ZGVzayIgICBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bWF4LSI+PC9pZnJhbWU+
      PGlmcmFtZSBoZWlnaHQ9JzY1MHB4JyB3aWR0aD0nMTAwJScgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvaHRtbC95N2hzcnYtY2FycnVzZWwtZGlyZWN0b3MucGhwP21vZGU9bW9iaWxlIiAgIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iYm9yZGVyOjA7ZGlzcGxheTpibG9jazttYXgtIj48L2lmcmFtZT4=
    • El estallido viral de un joven de Milán harto de los asaltos: ¡Si vienes y destruyes mi país, patada en el culo!
        • Internacional
        • Internacional

      El estallido viral de un joven de Milán harto de los asaltos: "¡Si vienes y destruyes mi país, patada en el culo!"

      • María Ruiz
      • 2026-10-21 18:52
    • El Papa León XIV no necesitará más tratamiento tras su operación de cáncer de pulmón
        • Internacional
        • Internacional

      El Papa León XIV no necesitará más tratamiento tras su operación de cáncer de pulmón

      • Neila Gallego
      • 2026-10-21 21:36
    • Título
        • Categoria
        • navarra

      Los abertzales amenazan a Toquero (UPN) con pintadas a favor de ETA en Tudela

      • ignacio murillo
    • Colau denuncia que EEUU le ha prohibido la entrada a Puerto Rico por su participación en la flotilla de Gaza
        • Internacional
        • Internacional

      Colau denuncia que eeuu le ha prohibido entrar a Puerto Rico por participar en la flotilla 

      • Paula Benito
      • 2026-10-21 10:57
    • La nº 1 impuesta a dedo en Albacete se ganó a Sánchez con sus ataques a González: Más Zapateros, menos jarrones chinos
        • España
        • España

      La nº 1 impuesta a dedo en Albacete se ganó a Sánchez con sus ataques a González: "Más Zapateros, menos jarrones chinos"

      La senadora Amparo Torres fue impuesta por el PSOE como nº 1 de las listas al Congreso por Albacete. La decisión llegó después de que los militantes albaceteños escogieran como cabeza de lista a Emilio Sáez, ex alcalde de Albacete, con más del 90% de los votos de la militancia. Su perfil, alineado con Ferraz, queda plasmado en sus mensajes en redes. En una ocasión, Torres atacó al ex presidente socialista crítico Felipe González y, a la vez, alabó la figura del ahora imputado José Luis Rodríguez Zapatero. "Más Zapateros y menos jarrones chinos llenos de espinas apoderándose de la rosa", aseguró la política socialista.
      • Rafael Molina
      • 2026-10-21 05:48
    • Sánchez duplica la deuda de la Seguridad Social y aumenta el pasivo del Estado hasta el 93% del PIB
    • Meta recibe la mayor multa de su historia: 25.000 millones de dólares por engañar a los usuarios de Facebook
        • Economía
        • Economía

      Meta recibe la mayor multa de su historia: 25.000 millones de dólares por engañar a los usuarios de Facebook

      • Xavier Vilaltella
      • 2026-10-21 20:41
    • Elon Musk anuncia que SpaceX y Tesla estudian fusionarse para crear una corporación multibillonaria
        • Economía
        • Economía

      Musk anuncia que SpaceX y Tesla estudian fusionarse para crear una corporación multibillonaria

      • Julio de Manuel
      • 2026-10-21 11:00
    • Iberdrola dispara un 10% su beneficio con 5.816 millones y confía en batir récord de ganancias este 2026
        • Economía
        • Economía

      Iberdrola dispara un 10% su beneficio y confía en batir récord de ganancias este 2026

      • Alba Martín
      • 2026-10-21 09:10
    • El regalo de Jaime Lorente a David Broncano con recado incluido: Para que
        • Cool
        • Cool

      El regalo de Jaime Lorente a David Broncano con recado incluido: "Para que 'La Revuelta' no esté supeditada al Gobierno"

      Jaime Lorente aprovechó la tradición de La Revuelta, la de que cada invitado lleve un regalo a Broncano, para lanzar un mensaje con doble lectura. El actor, que ha debutado como director con El mal hijo, traspasó la barrera del humor para lanzar con inteligencia una reivindicación que de otra forma no se suele escuchar en la televisión pública, cuyo partidismo es cada vez más acentuado y descarado.
      • Paula M. Gonzálvez
      • 2026-10-21 13:01
    • El coste de la serie de
        • Cool
        • Cool

      El coste de la serie de 'Harry Potter' para HBO Max supera ya al de 5 de las películas

      • Paula M. Gonzálvez
      • 2026-10-21 18:24
    • Sandra Gago sobre la denuncia de Feliciano López contra Alba Carrillo: Le apoyo en absolutamente todo
        • Cool
        • Cool

      Sandra Gago sobre la denuncia de Feliciano López contra Alba Carrillo: "Le apoyo en absolutamente todo"

      • Marta Huertas
      • 2026-10-21 18:17
    • Supernanny
    • Las desgarradoras palabras de las hijas de Gustavo Oliva dos días después de la muerte del jugador de pádel a los 58 años: Siempre juntos
        • Cool
        • Cool

      Las desgarradoras palabras de las hijas de Gustavo Oliva dos días después de la muerte del jugador de pádel a los 58 años: "Siempre juntos"

      • Marta Menéndez
      • 2026-10-21 19:30
    • Xabi Alonso gana la batalla judicial por su casa en el monte Igueldo: así es la exclusiva vivienda valorada en 10 millones
        • Cool
        • Cool

      Xabi Alonso gana la batalla judicial por su casa en el monte Igueldo: así es la exclusiva vivienda valorada en 10 millones

      • Ana Márquez
      • 2026-10-21 18:55
    • Vuelven las Jornadas Jurídicas de OKDIARIO: Marbella reunirá a la élite del Derecho español el 12 y 13 de noviembre
    • García Lorca, desencadenado
    • OK AL DÍA

    • Encuentran una botella en el desierto de Egipto con una nota de 1977: tenía el nombre de un hombre y una dirección de Malta
        • Ciencia
        • Ciencia

      Encuentran una botella en el desierto de Egipto con una nota de 1977: tenía el nombre de un hombre y una dirección de Malta

      • Janire Manzanas
      • 2026-10-21 18:00
    • Es oficial y está confirmado por el BOE: se suprime el festivo más famoso de la Comunidad de Madrid para 2027
        • Economía
        • Economía

      Es oficial y está confirmado por el BOE: se suprime el festivo más famoso de la Comunidad de Madrid para 2027

      • Aitana Pascual
      • 2026-10-21 18:30
    • La psicología sugiere que los adultos nacidos entre 1956 y 1966 no son más callados por la edad, en realidad podrían esconder problemas físicos invisibles
        • Curiosidades
        • Curiosidades

      los adultos nacidos entre 1956 y 1966 no son más callados por la edad, en realidad podrían esconder problemas físicos invisibles

      Ocurre en muchas familias sin que nadie lo nombre del todo. La persona que antes animaba cualquier sobremesa, que tenía una opinión sobre todo y que nunca dejaba pasar una conversación sin intervenir, empieza a quedarse en silencio. Sigue estando ahí, sigue sonriendo en los momentos adecuados, pero las largas discusiones sobre política o los debates que se alargaban hasta la medianoche han desaparecido. La familia lo nota. Y casi siempre lo interpreta con depresión.
      • Elena García
      • 2026-10-21 20:10
    • Lolita Flores (68 años) recuerda el plato que le hacía su padre: El bocadillo de sardinas es un lujo, con pan tostado, tomate y el aceite de la lata
        • Cool
        • Cool

      Lolita Flores recuerda el plato que le hacía su padre: "El bocadillo de sardinas es un lujo"

      • Elena García
      • 2026-10-21 19:19
    • La reflexión de Paulo Coelho, escritor de 79 años, sobre la humildad: No podemos juzgar la vida de otros, ya que cada persona conoce su propio dolor y renuncia
        • Curiosidades
        • Curiosidades

      Paulo Coelho: "No podemos juzgar la vida de otros, ya que cada persona conoce su propio dolor y renuncia"

      • Elena García
      • 2026-10-21 18:35
    • Mario Benedetti, escritor uruguayo fallecido en 2009: Cinco minutos bastan para soñar toda una vida, así de relativo es el tiempo
        • Curiosidades
        • Curiosidades

      Mario Benedetti: "Cinco minutos bastan para soñar toda una vida, así de relativo es el tiempo"

      • Elena García
      • 2026-10-21 19:46
    • Ni ingenieros ni matemáticos: el CEO de Nvidia confirma que la IA hará que los trabajos mejor pagados del mundo serán electricistas, fontaneros y albañiles
        • Curiosidades
        • Curiosidades

      el CEO de Nvidia confirma gracias a la IA, los trabajos mejor pagados sean electricistas o fontaneros

      • Jorge Sánchez Rico
      • 2026-10-21 20:00
    • Las dos mujeres que recolectan algas en las gélidas islas Lofoten y las venden a los restaurantes más prestigiosos de Europa
        • Viajes
        • Viajes

      Las mujeres que recolectan algas en las islas Lofoten las venden a restaurantes prestigiosos

      • Laura Mesonero
      • 2026-10-21 20:27
    • Ni agua ni bombas: el microrreactor eVinci de Westinghouse alcanza la criticidad a 663 °C en Nevada y mide 1.011 °C, récord en las mediciones de reactividad del centro
        • Techy
        • Techy

      el microrreactor eVinci de Westinghouse alcanza la criticidad a 663 °C en Nevada

      • Adrián Villellas
      • 2026-10-21 20:44
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi13N3NneSAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi13N3NneSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXc3c2d5IC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtdzdzZ3kgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXc3c2d5IC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXc3c2d5IC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OjB9CiAgICAuY3YtdzdzZ3kgLnRyYWNrOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9CiAgICAuY3YtdzdzZ3kgLmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0bztzY3JvbGwtc25hcC1hbGlnbjpzdGFydDt3aWR0aDpjYWxjKCgxMDAlIC0gMip2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzMpO2FzcGVjdC1yYXRpbzo5LzE2O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlfQogICAgLmN2LXc3c2d5IC5jYXJkLmlzLWlue29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0KCiAgICAuY3YtdzdzZ3kgLnRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2U7dHJhbnNmb3JtOnNjYWxlKDEuMDEpfQogICAgLmN2LXc3c2d5IC5jYXJkOmhvdmVyIC50aHVtYiwuY3YtdzdzZ3kgLmNhcmQ6Zm9jdXMtdmlzaWJsZSAudGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDYpfQogICAgLyogU2luIG92ZXJsYXlzIHBlcnNvbmFsaXphZG9zOiBzZSB1c2FuIGNvbnRyb2xlcyBuYXRpdm9zIGRlbCBwbGF5ZXIgKi8KCiAgICAuY3YtdzdzZ3kgLmFye3Bvc2l0aW9uOnJlbGF0aXZlfQogICAgLmN2LXc3c2d5IC5hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpO2JveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO3RyYW5zaXRpb246LjNzfQogICAgLmN2LXc3c2d5IC5hcnJvdzpob3ZlcntiYWNrZ3JvdW5kOnJnYigwIDAgMCAvIDIwJSk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfQogICAgLmN2LXc3c2d5IC5hcnJvdzpmb2N1c3tiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSl9CiAgICAuY3YtdzdzZ3kgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LXc3c2d5IC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi13N3NneSAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC8qIEVuIG3zdmlsLCBlbCBjb250ZW5lZG9yIG9jdXBhIHRvZG8gZWwgYW5jaG8gKi8KICAgICAgLmN2LXc3c2d5IC5zZWN0aW9ue21heC13aWR0aDoxMDAlfQogICAgICAuY3YtdzdzZ3kgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKX0KICAgICAgLmN2LXc3c2d5IC5jYXJvdXNlbHstLXBlZWs6MTIlfQogICAgICAvKiAyIHRhcmpldGFzIGNvbXBsZXRhcyArIHVuIHBlZWsgZGUgbGEgM6ogKi8KICAgICAgLmN2LXc3c2d5IC5jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSA0KnZhcigtLWdhcCkgLSB2YXIoLS1wZWVrKSkvMSl9CiAgICAgIC5jdi13N3NneSAuYXJyb3d7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9CiAgICAgIC5jdi13N3NneSAudHJhY2t7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctcmlnaHQ6MH0KICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iY3YtdzdzZ3kiPgogICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgYXJpYS1sYWJlbD0iQ2FycnVzZWwgZGUgdu1kZW9zIChTaG9ydHMpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy1zZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TG9zICdzaG9ydHMnIGRlIE9LRElBUklPPC9oMj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbmQtbGluZWEiPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhciIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJMaXN0YWRvIGRlIHbtZGVvcyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyBsZWZ0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IkFudGVyaW9yIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTUgNmwtNiA2IDYgNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyByaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTaWd1aWVudGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDE4bDYtNi02LTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2Fyb3VzZWwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFjayIgcm9sZT0ibGlzdCI+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvWGsybDcyZnBBazgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJYazJsNzJmcEFrOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1hrMmw3MmZwQWs4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAxIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL3NBM3RLODg3c0NJIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0ic0EzdEs4ODdzQ0kiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9zQTN0Szg4N3NDSS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9XOGV5SkJDd2dTTSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Ilc4ZXlKQkN3Z1NNIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvVzhleUpCQ3dnU00vaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDMiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvNWM2QldpaGpZV1EiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSI1YzZCV2loallXUSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpLzVjNkJXaWhqWVdRL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA0IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLzJIQV9OcENadElBIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iMkhBX05wQ1p0SUEiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8ySEFfTnBDWnRJQS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNSIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy90WDF1eW1CWWFKcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9InRYMXV5bUJZYUpzIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvdFgxdXltQllhSnMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDYiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvOS1kRk5FT0pHQjgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSI5LWRGTkVPSkdCOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpLzktZEZORU9KR0I4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA3IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LXc3c2d5Jyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgLy8gRGVzazogYXZhbnphIGRlIHVuYSBlbiB1bmEgdGFyamV0YQogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiAxOwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi0yMWp5MyAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi0yMWp5MyAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LTIxankzIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtMjFqeTMgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LTIxankzIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LTIxankzIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OjB9CiAgICAuY3YtMjFqeTMgLnRyYWNrOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9CiAgICAuY3YtMjFqeTMgLmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0bztzY3JvbGwtc25hcC1hbGlnbjpzdGFydDt3aWR0aDpjYWxjKCgxMDAlIC0gMip2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzMpO2FzcGVjdC1yYXRpbzo5LzE2O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlfQogICAgLmN2LTIxankzIC5jYXJkLmlzLWlue29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0KCiAgICAuY3YtMjFqeTMgLnRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2U7dHJhbnNmb3JtOnNjYWxlKDEuMDEpfQogICAgLmN2LTIxankzIC5jYXJkOmhvdmVyIC50aHVtYiwuY3YtMjFqeTMgLmNhcmQ6Zm9jdXMtdmlzaWJsZSAudGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDYpfQogICAgLyogU2luIG92ZXJsYXlzIHBlcnNvbmFsaXphZG9zOiBzZSB1c2FuIGNvbnRyb2xlcyBuYXRpdm9zIGRlbCBwbGF5ZXIgKi8KCiAgICAuY3YtMjFqeTMgLmFye3Bvc2l0aW9uOnJlbGF0aXZlfQogICAgLmN2LTIxankzIC5hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpO2JveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO3RyYW5zaXRpb246LjNzfQogICAgLmN2LTIxankzIC5hcnJvdzpob3ZlcntiYWNrZ3JvdW5kOnJnYigwIDAgMCAvIDIwJSk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfQogICAgLmN2LTIxankzIC5hcnJvdzpmb2N1c3tiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSl9CiAgICAuY3YtMjFqeTMgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LTIxankzIC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi0yMWp5MyAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC8qIEVuIG3zdmlsLCBlbCBjb250ZW5lZG9yIG9jdXBhIHRvZG8gZWwgYW5jaG8gKi8KICAgICAgLmN2LTIxankzIC5zZWN0aW9ue21heC13aWR0aDoxMDAlfQogICAgICAuY3YtMjFqeTMgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKX0KICAgICAgLmN2LTIxankzIC5jYXJvdXNlbHstLXBlZWs6MTIlfQogICAgICAvKiAyIHRhcmpldGFzIGNvbXBsZXRhcyArIHVuIHBlZWsgZGUgbGEgM6ogKi8KICAgICAgLmN2LTIxankzIC5jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSA0KnZhcigtLWdhcCkgLSB2YXIoLS1wZWVrKSkvMSl9CiAgICAgIC5jdi0yMWp5MyAuYXJyb3d7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9CiAgICAgIC5jdi0yMWp5MyAudHJhY2t7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctcmlnaHQ6MH0KICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iY3YtMjFqeTMiPgogICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgYXJpYS1sYWJlbD0iQ2FycnVzZWwgZGUgdu1kZW9zIChTaG9ydHMpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy1zZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TG9zICdzaG9ydHMnIGRlIE9LRElBUklPPC9oMj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbmQtbGluZWEiPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhciIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJMaXN0YWRvIGRlIHbtZGVvcyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyBsZWZ0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IkFudGVyaW9yIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTUgNmwtNiA2IDYgNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyByaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTaWd1aWVudGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDE4bDYtNi02LTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2Fyb3VzZWwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFjayIgcm9sZT0ibGlzdCI+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvWGsybDcyZnBBazgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJYazJsNzJmcEFrOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1hrMmw3MmZwQWs4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAxIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL3NBM3RLODg3c0NJIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0ic0EzdEs4ODdzQ0kiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9zQTN0Szg4N3NDSS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9XOGV5SkJDd2dTTSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Ilc4ZXlKQkN3Z1NNIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvVzhleUpCQ3dnU00vaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDMiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvNWM2QldpaGpZV1EiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSI1YzZCV2loallXUSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpLzVjNkJXaWhqWVdRL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA0IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLzJIQV9OcENadElBIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iMkhBX05wQ1p0SUEiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8ySEFfTnBDWnRJQS9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNSIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy90WDF1eW1CWWFKcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9InRYMXV5bUJZYUpzIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvdFgxdXltQllhSnMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDYiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvOS1kRk5FT0pHQjgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSI5LWRGTkVPSkdCOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpLzktZEZORU9KR0I4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA3IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LTIxankzJyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgLy8gRGVzazogYXZhbnphIGRlIHVuYSBlbiB1bmEgdGFyamV0YQogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiAxOwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
    • ¿Por qué no debes cortar nunca la etiqueta de tu ropa? Un gesto que el planeta te agradecerá
        • OKGREEN
        • OKGREEN

      ¿Por qué no debes cortar nunca la etiqueta de tu ropa? Un gesto que el planeta te agradecerá

      Estrenas una camiseta, notas el roce en la nuca y, casi sin pensarlo, vas a por las tijeras. Cortar la etiqueta de la ropa es un gesto que parece inofensivo, pero sus consecuencias van mucho más allá del armario: condiciona su segunda vida.
      • Antonio Quilis
      • 2026-10-21 12:52
    • Si Francia arde en llamas, España ya está calentando
    • Ahorrar energía, una palanca esencial para avanzar hacia la descarbonización
    • PHN0eWxlPgogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KICBAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7IHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOyB9CiAgQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS13aWRlIjsgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBUYWIlMjBNZWRpdW0ub3RmIik7IH0KICBAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtYm9vayI7IHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsgfQoKICAvKiBSZWN1cGVyYSBlbCBjb21wb3J0YW1pZW50byBkZWwgcXVlIHPtIGZ1bmNpb25hICovCiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLmNvbnRlbmVkb3IgewogICAgd2lkdGg6IGF1dG87CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgICB6LWluZGV4OiAwOwogICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICBmbG9hdDogaW5saW5lLWVuZDsgLyogPC0gSU1QT1JUQU5URSBlbiAxLzIgeSAyLzMgKi8KICB9CgogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC52aWRlby1jb250ZW5lZG9yIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiBhdXRvOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFNEU0RTQ7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zaXRpb246IC4zczsKICB9CiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLmJhY2tncm91bmQtdmlkZW8geyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9CgogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5wbGF5LWJ1dHRvbiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMTBweDsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC40Mik7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHotaW5kZXg6IDI7CiAgICBhbmltYXRpb246IGJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogIH0KICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAucGxheS1pY29uewogICAgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjsgYm9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50OyBtYXJnaW4tcmlnaHQ6NXB4OwogIH0KICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAucGxheS10ZXh0eyBmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6Ym9sZCB9CiAgQGtleWZyYW1lcyBibGluayB7IDAlLDEwMCV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpIH0gNTAleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSkgfSB9CiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLnBsYXktYnV0dG9uOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC45KSB9CgogIC8qIEHxYWRpZG8gaWd1YWwgcXVlIGVuIGxhIHZlcnNp824gcXVlIGZ1bmNpb25hICovCiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLmRlc2NyaXBjaW9uIHsgcGFkZGluZzogMCA0MHB4IDAgMjBweDsgfQoKICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAuZGVzY3JpcGNpb24gLmV0aXF1ZXRhcyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsKICB9CiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLmRlc2NyaXBjaW9uIC5ldGlxdWV0YSB7CiAgICBmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS13aWRlIixzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxMnB4OwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQ6IzNlYTZkMTsgd2lkdGg6Zml0LWNvbnRlbnQ7IHBhZGRpbmc6NXB4IDEwcHg7IG1hcmdpbi1sZWZ0OjA7CiAgfQoKICAvKiBNaXNtYSBs82dpY2EgZGUgdmlzaWJpbGlkYWQgcXVlIGVsIGJ1ZW5vOiBzZSBvY3VsdGEgc2kgZXN04SB2YWPtbyAqLwogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5kZXNjcmlwY2lvbiAuYnJlYWtpbmcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6NnB4OyBjb2xvcjojZDAwMjFiOyBmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS13aWRlIixzYW5zLXNlcmlmOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAuZGVzY3JpcGNpb24gLmJyZWFraW5nOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfQogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5kZXNjcmlwY2lvbiAuYnJlYWtpbmcgLnJhZGFyIHsgd2lkdGg6MTBweDsgaGVpZ2h0OjEwcHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNkMDAyMWI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbGV4OjAgMCAxMHB4OyB9CiAgLmFwZXJ0dXJhLWhhbGYtM3dmeXV0N2sgLmRlc2NyaXBjaW9uIC5icmVha2luZyAucmFkYXI6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0Oi02cHg7IGJvcmRlcjoycHggc29saWQgcmdiYSgyMDgsMiwyNywuNDUpOyBib3JkZXItcmFkaXVzOjUwJTsgYW5pbWF0aW9uOnJhZGFyUHVsc2UgMS44cyBlYXNlLW91dCBpbmZpbml0ZTsgfQogIEBrZXlmcmFtZXMgcmFkYXJQdWxzZXsgMCV7IHRyYW5zZm9ybTpzY2FsZSguNyk7IG9wYWNpdHk6LjcgfSAxMDAleyB0cmFuc2Zvcm06c2NhbGUoMS42KTsgb3BhY2l0eTowIH0gfQoKICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAuZGVzY3JpcGNpb24gaDIgewogICAgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmOyBmb250LXNpemU6MS43cmVtICFpbXBvcnRhbnQ7CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiMzMzM7IG1hcmdpbjoxNXB4IDA7IHdoaXRlLXNwYWNlOnByZS1saW5lOyBmb250LXdlaWdodDo2MDA7CiAgfQogIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5kZXNjcmlwY2lvbiBwIHsKICAgIG1hcmdpbjowIDAgMjBweCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnk7IGZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjsgY29sb3I6IzMzMzsKICAgIGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zaXplOjEuMXJlbTsgbGluZS1oZWlnaHQ6MS4zZW07IHdoaXRlLXNwYWNlOnByZS1saW5lOwogIH0KICAuYXBlcnR1cmEtaGFsZi0zd2Z5dXQ3ayAuZGVzY3JpcGNpb24gLmF1dG9yIHsKICAgIGZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjsgY29sb3I6IzMzMzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6LjhlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgdGV4dC1hbGlnbjpyaWdodDsgZGlzcGxheTpibG9jazsKICB9CgogIEBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAgIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5kZXNjcmlwY2lvbnsgcGFkZGluZzowIDIwcHggMCAyMHB4ICFpbXBvcnRhbnQ7IH0KICAgIC5hcGVydHVyYS1oYWxmLTN3Znl1dDdrIC5wbGF5LWJ1dHRvbiB7IG1hcmdpbi10b3A6IDEwcHg7IH0KICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImFwZXJ0dXJhLWhhbGYtM3dmeXV0N2siPgo8ZGl2IGNsYXNzPSJjb250ZW5lZG9yIj4KICAgICAgICA8YSBpZD0id3JhcExpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2JhbGVhcmVzL2hpc3RvcmlhLXNpbHZpYS1lbW9jaW9uYS1tYWxsb3JjYS1lcXVpcG8tc2FuaXRhcmlvLWRlbC1zYW11LTA2MS1heXVkYS1jdW1wbGlyLWRlc2VvLXZvbHZlci1tYXItMjA1OTExMjkiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tY29udGVuZWRvciI+CiAgICAgICAgICAgIDx2aWRlbyBjbGFzcz0iYmFja2dyb3VuZC12aWRlbyIgYXV0b3BsYXk9IiIgbXV0ZWQ9IiIgcGxheXNpbmxpbmU9IiIgbG9vcD0iIj4KICAgICAgICAgICAgICA8c291cmNlIGlkPSJ2aWRlb1NvdXJjZSIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvdXBsb2FkcyUyRm1lZGlhL1NpX2x2aWFfdjJfbm9ybWFsLTIwMjYxMDIxLTA3Mjg1MS00NWU0OTUubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgogICAgICAgICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSB2aWRlbyB0YWcuCiAgICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBsYXktYnV0dG9uIiBzdHlsZT0icmlnaHQ6IDEwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWljb24iPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwbGF5LXRleHQiPlBsYXk8L3NwYW4+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwY2lvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV0aXF1ZXRhcyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV0aXF1ZXRhIiBpZD0iZXRpcXVldGFDaGlwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDYsIDc0LCAxMzcpOyI+QmFsZWFyZXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJyZWFraW5nIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGgyIGlkPSJoMlByZXZpZXciIHN0eWxlPSJmb250LXNpemU6IDEuN3JlbTsiPlVuIGVxdWlwbyBzYW5pdGFyaW8gYXl1ZGEgYSBT7Wx2aWEgYSBjdW1wbGlyIHN1IGRlc2VvIGRlIHZvbHZlciBhbCBtYXIgYW50ZXMgZGUgbW9yaXI8L2gyPgogICAgICAgICAgICA8cCBpZD0icFByZXZpZXciPjwvcD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dG9yIiBpZD0iYXV0b3JQcmV2aWV3Ij5KdWxpbyBCYXN0aWRhPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9hPgogICAgICA8L2Rpdj4KPC9kaXY+
      PHN0eWxlPgogIC5hcGVydHVyYS1tb2JpbGUtbHB3Z2RjM3UgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQogIEBmb250LWZhY2UgeyBmb250LWZhbWlseTogImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIjsgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBNZWRpdW0lMjBDbmQub3RmIik7IH0KICBAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLXdpZGUiOyBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMFRhYiUyME1lZGl1bS5vdGYiKTsgfQogIEBmb250LWZhY2UgeyBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBCb29rLm90ZiIpOyB9CgogIC8qIFJlY3VwZXJhIGVsIGNvbXBvcnRhbWllbnRvIGRlbCBxdWUgc+0gZnVuY2lvbmEgKi8KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5jb250ZW5lZG9yIHsKICAgIHdpZHRoOiBhdXRvOwogICAgbWFyZ2luOiAwIGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogICAgei1pbmRleDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OwogICAgZmxvYXQ6IGlubGluZS1lbmQ7IC8qIDwtIElNUE9SVEFOVEUgZW4gMS8yIHkgMi8zICovCiAgfQoKICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC52aWRlby1jb250ZW5lZG9yIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiBhdXRvOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFNEU0RTQ7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zaXRpb246IC4zczsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAuYmFja2dyb3VuZC12aWRlbyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH0KCiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAucGxheS1idXR0b24gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDEwcHg7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNyk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNDIpOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB6LWluZGV4OiAyOwogICAgYW5pbWF0aW9uOiBibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAucGxheS1pY29uewogICAgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjsgYm9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50OyBtYXJnaW4tcmlnaHQ6NXB4OwogIH0KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5wbGF5LXRleHR7IGZvbnQtc2l6ZToxNnB4OyBmb250LXdlaWdodDpib2xkIH0KICBAa2V5ZnJhbWVzIGJsaW5rIHsgMCUsMTAwJXsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNykgfSA1MCV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KSB9IH0KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5wbGF5LWJ1dHRvbjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOSkgfQoKICAvKiBB8WFkaWRvIGlndWFsIHF1ZSBlbiBsYSB2ZXJzafNuIHF1ZSBmdW5jaW9uYSAqLwogIC5hcGVydHVyYS1tb2JpbGUtbHB3Z2RjM3UgLmRlc2NyaXBjaW9uIHsgcGFkZGluZzogMCA0MHB4IDAgMjBweDsgfQoKICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5kZXNjcmlwY2lvbiAuZXRpcXVldGFzIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRpbmctbGVmdDogMHB4OwogIH0KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5kZXNjcmlwY2lvbiAuZXRpcXVldGEgewogICAgZm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0td2lkZSIsc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTJweDsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kOiMzZWE2ZDE7IHdpZHRoOmZpdC1jb250ZW50OyBwYWRkaW5nOjVweCAxMHB4OyBtYXJnaW4tbGVmdDowOwogIH0KCiAgLyogTWlzbWEgbPNnaWNhIGRlIHZpc2liaWxpZGFkIHF1ZSBlbCBidWVubzogc2Ugb2N1bHRhIHNpIGVzdOEgdmFj7W8gKi8KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5kZXNjcmlwY2lvbiAuYnJlYWtpbmcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6NnB4OyBjb2xvcjojZDAwMjFiOyBmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS13aWRlIixzYW5zLXNlcmlmOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5kZXNjcmlwY2lvbiAuYnJlYWtpbmc6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAuZGVzY3JpcGNpb24gLmJyZWFraW5nIC5yYWRhciB7IHdpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZDAwMjFiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxleDowIDAgMTBweDsgfQogIC5hcGVydHVyYS1tb2JpbGUtbHB3Z2RjM3UgLmRlc2NyaXBjaW9uIC5icmVha2luZyAucmFkYXI6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0Oi02cHg7IGJvcmRlcjoycHggc29saWQgcmdiYSgyMDgsMiwyNywuNDUpOyBib3JkZXItcmFkaXVzOjUwJTsgYW5pbWF0aW9uOnJhZGFyUHVsc2UgMS44cyBlYXNlLW91dCBpbmZpbml0ZTsgfQogIEBrZXlmcmFtZXMgcmFkYXJQdWxzZXsgMCV7IHRyYW5zZm9ybTpzY2FsZSguNyk7IG9wYWNpdHk6LjcgfSAxMDAleyB0cmFuc2Zvcm06c2NhbGUoMS42KTsgb3BhY2l0eTowIH0gfQoKICAuYXBlcnR1cmEtbW9iaWxlLWxwd2dkYzN1IC5kZXNjcmlwY2lvbiBoMiB7CiAgICBmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6IzMzMzsgbWFyZ2luOjE1cHggMDsgd2hpdGUtc3BhY2U6cHJlLWxpbmU7IGZvbnQtd2VpZ2h0OjYwMDsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAuZGVzY3JpcGNpb24gcCB7CiAgICBtYXJnaW46MCAwIDIwcHggIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7IGNvbG9yOiMzMzM7CiAgICBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZToxLjFyZW07IGxpbmUtaGVpZ2h0OjEuM2VtOyB3aGl0ZS1zcGFjZTpwcmUtbGluZTsKICB9CiAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAuZGVzY3JpcGNpb24gLmF1dG9yIHsKICAgIGZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjsgY29sb3I6IzMzMzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6LjhlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgdGV4dC1hbGlnbjpyaWdodDsgZGlzcGxheTpibG9jazsKICB9CgogIEBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAgIC5hcGVydHVyYS1tb2JpbGUtbHB3Z2RjM3UgLmRlc2NyaXBjaW9ueyBwYWRkaW5nOjAgMjBweCAwIDIwcHggIWltcG9ydGFudDsgfQogICAgLmFwZXJ0dXJhLW1vYmlsZS1scHdnZGMzdSAucGxheS1idXR0b24geyBtYXJnaW4tdG9wOiAxMHB4OyB9CiAgfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSJhcGVydHVyYS1tb2JpbGUtbHB3Z2RjM3UiPgo8ZGl2IGNsYXNzPSJjb250ZW5lZG9yIj4KICAgICAgICA8YSBpZD0id3JhcExpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2JhbGVhcmVzL2hpc3RvcmlhLXNpbHZpYS1lbW9jaW9uYS1tYWxsb3JjYS1lcXVpcG8tc2FuaXRhcmlvLWRlbC1zYW11LTA2MS1heXVkYS1jdW1wbGlyLWRlc2VvLXZvbHZlci1tYXItMjA1OTExMjkiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tY29udGVuZWRvciI+CiAgICAgICAgICAgIDx2aWRlbyBjbGFzcz0iYmFja2dyb3VuZC12aWRlbyIgYXV0b3BsYXk9IiIgbXV0ZWQ9IiIgcGxheXNpbmxpbmU9IiIgbG9vcD0iIj4KICAgICAgICAgICAgICA8c291cmNlIGlkPSJ2aWRlb1NvdXJjZSIgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvdXBsb2FkcyUyRm1lZGlhL1NpX2x2aWFfdjJfbm9ybWFsLTIwMjYxMDIxLTA3Mjg1MS00NWU0OTUubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgogICAgICAgICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSB2aWRlbyB0YWcuCiAgICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBsYXktYnV0dG9uIiBzdHlsZT0icmlnaHQ6IDEwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWljb24iPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwbGF5LXRleHQiPlBsYXk8L3NwYW4+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwY2lvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV0aXF1ZXRhcyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV0aXF1ZXRhIiBpZD0iZXRpcXVldGFDaGlwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDYsIDc0LCAxMzcpOyI+QmFsZWFyZXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJyZWFraW5nIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGgyIGlkPSJoMlByZXZpZXciIHN0eWxlPSJmb250LXNpemU6IDEuN3JlbTsiPlVuIGVxdWlwbyBzYW5pdGFyaW8gYXl1ZGEgYSBT7Wx2aWEgYSBjdW1wbGlyIHN1IGRlc2VvIGRlIHZvbHZlciBhbCBtYXIgYW50ZXMgZGUgbW9yaXI8L2gyPgogICAgICAgICAgICAKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dG9yIiBpZD0iYXV0b3JQcmV2aWV3Ij5KdWxpbyBCYXN0aWRhPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9hPgogICAgICA8L2Rpdj4KPC9kaXY+
    • Las cámaras grabaron al asesino de su pareja en Carabanchel (Madrid) escondido en un portal para matar a la víctima
        • Sucesos
        • Sucesos

      Las cámaras grabaron al asesino de su pareja en Carabanchel escondido en un portal para matar a la víctima

      • Ángel Moya
      • 2026-10-21 14:36
    • Martes sociales: Sánchez invita, España paga
    • Aparece un hombre sin vida en las aguas del puerto de Arenys de Mar (Barcelona)
        • Sucesos
        • Sucesos

      Aparece un hombre sin vida en las aguas del puerto de Arenys de Mar (Barcelona)

      • Alejandro Arias de Esteban
      • 2026-10-21 14:00
    • Ofertas flash Amazon, en directo hoy: última hora de descuentos y rebajas por tiempo limitado de hoy 21 de octubre
        • Sociedad
        • Sociedad
      • EN DIRECTO

      Ofertas flash Amazon, en directo: última hora de los descuentos

      • OKDIARIO
      • 2026-10-21 09:15
    • Mónica García fracasa en la ampliación del cribado de cáncer de mama: no habrá ampliación entre 45 y 74 años
        • OkSalud
        • OkSalud

      Mónica García fracasa en la ampliación del cribado de cáncer de mama: no habrá ampliación entre 45 y 74 años

      Sanidad reconoce que es «poco probable» que la medida llegue al BOE antes de las elecciones, pese a las más de 90.000 firmas reunidas por María Varela, paciente con cáncer de mama metastásico.
      • Diego Buenosvinos
      • 2026-10-21 12:02
    • OKDIARIO coloca a Alcobendas en el centro de la inversión empresarial con un gran evento en la ciudad
    • Japón, Polinesia y Ártico: tres rutas de PONANT EXPLORATIONS para llegar a lugares que los grandes cruceros no alcanzan
    • Jorge Campos vuelve a Baleares: no irá en las listas de Vox al Congreso
        • OkBaleares
        • OkBaleares

      Jorge Campos vuelve a Baleares: no irá en las listas de Vox al Congreso

      Jorge Campos puede dar por cerrado su paso por la política en el Congreso de los Diputados. Según ha podido saber OKBALEARES, el político mallorquín no figurará en las listas de Vox ni a Congreso ni al Senado para el 29-N. Fuentes de Vox aseguran que su futuro político seguirá ligado al partido de Santiago Abascal pero "con otras responsabilidades, ahora en las Islas".
      • Tomas Ibarz
      • 2026-10-21 13:39
    • David García, Ignacio Gil Lázaro y Alberto Asarta, cabezas de lista de Vox para las generales en la Comunidad Valenciana
        • España
        • España

      David García, Ignacio Gil Lázaro y Alberto Asarta, cabezas de lista de Vox para las generales en la Comunidad Valenciana

      • Ignacio Martínez
      • ALICANTE
      • 2026-10-21 16:46
    • Detenido con un soplete un hombre con antecedentes en el incendio de un edificio en Valencia
        • España
        • España

      Detenido con un soplete un hombre con antecedentes en el incendio de un edificio en Valencia

      • Ignacio Martínez
      • VALENCIA
      • 2026-10-21 17:51
    • Cámara y Ayuntamiento firman el convenio para la gestión del Bono Comercio 2026 en Alicante
        • España
        • España

      Cámara y Ayuntamiento firman el convenio para la gestión del Bono Comercio 2026 en Alicante

      • Ignacio Martínez
      • ALICANTE
      • 2026-10-21 19:10
    • Morreos electorales
    • Noche de furia en Playa de Palma: dos menores violentos asaltan a tres chicas para robarles el móvil y agreden a varios policías
        • OkBaleares
        • OkBaleares

      Noche de furia en Playa de Palma: dos menores violentos asaltan a tres chicas para robarles el móvil 

      • Pedro Serra
      • 2026-10-21 13:36
    • 'Okupan
        • España
        • España

      'Okupan' una vivienda adjudicada a una familia vulnerable del incendio de Alicante cuando iba a entrar en ella

      • Ignacio Martínez
      • ALICANTE
      • 2026-10-21 13:28
    • ‘Extremestiza’: cuando un pasado compartido se convierte en motor de futuro
    • Vox exige prohibir que okupas e inmigrantes ilegales en Palma puedan empadronarse en la vivienda que okupen
        • OkBaleares
        • OkBaleares

      Vox exige prohibir que okupas e inmigrantes ilegales en Palma puedan empadronarse en la vivienda que okupen

      • Indalecio Ribelles
      • 2026-10-21 13:16
    • Madrid suma 3 bancos más a su plan Mi Primera Vivienda para financiar hasta el 100% de la casa a los jóvenes
        • España
        • España

      Madrid suma 3 bancos más a su plan Mi Primera Vivienda para financiar hasta el 100% de la casa a los jóvenes

      • Pablo Romero-Salazar
      • 2026-10-21 06:00
    • Herida de gravedad una niña de 2 años tras precipitarse al vacío desde un primer piso en Lérida
        • Sucesos
        • Sucesos

      Herida de gravedad una niña de 2 años tras precipitarse al vacío desde un primer piso en Lérida

      • Mario Pérez Pérez
      • 2026-10-21 10:21
    • Más interés que conocimientos: el reto financiero de los jóvenes españoles
    • si te lo perdiste...

    • Según los psicólogos expertos, los adultos que pueden curvar la lengua podrían tener un cociente intelectual superior al de la media
        • Curiosidades
        • Curiosidades

      los adultos que pueden curvar la lengua podrían tener un cociente intelectual superior

      • Elena García
      • 2026-10-21 20:12
    • La Seguridad Social lo confirma y es oficial: se abonará una
        • Economía
        • Economía

      se abonará una 'paga extra' a los jubilados con más de 40 años cotizados para evitar recortes

      • Janire Manzanas
      • 2026-10-21 20:57
    • La rutina deportiva de Antonio Lobato para estar en forma a los 60: Desayuno una barrita con aguacate, aceite y tomate
        • Cool
        • Cool

      La rutina deportiva de Antonio Lobato para estar en forma a los 60: "Desayuno una barrita con aguacate, aceite y tomate"

      Antonio Lobato ha pasado buena parte de su vida profesional ligado a la Fórmula 1. Durante años, su voz acompañó a millones de espectadores en los domingos de carreras, relatando adelantamientos, estrategias, accidentes, victorias y derrotas con un estilo tan reconocible que terminó formando parte de la memoria deportiva de varias generaciones.
      • Daniel Marín
      • 2026-10-21 17:56
    • Los expertos en psicología lo confirman: las personas que colocan la silla al levantarse no son sólo educadas, en realidad están demostrando respeto por el espacio compartido
        • Curiosidades
        • Curiosidades

      las personas que colocan la silla al levantarse están demostrando respeto por el espacio compartido

      • Janire Manzanas
      • 2026-10-21 20:57
    • La lección de Sancho Panza en el Quijote que sigue de actualidad después de 410 años: Más vale una palabra a tiempo que cien a destiempo
        • Curiosidades
        • Curiosidades

      La lección de Sancho Panza que sigue de actualidad después de 410 años: "Más vale una palabra a tiempo que cien a destiempo"

      • Alejo Lucarás
      • 2026-10-21 18:00
    • Poner una hoja de laurel seca detrás de la puerta de entrada de casa: para qué sirve y por qué lo recomiendan
        • Curiosidades
        • Curiosidades

      Poner una hoja de laurel detrás de la puerta de entrada de casa: para qué sirve 

      • Álvaro Olivero
      • 2026-10-21 11:19
    • ¿Quién va hoy a
        • HappyFM
        • HappyFM

      ¿Quién va hoy a 'Pasapalabra'? Invitados del 21 al 23 de octubre

      • Nacho Molina
      • 2026-10-21 19:30
    • La psicología dice que cuando eres ignorado por una persona muy importante para ti, la reacción química que se produce es la misma que cuando te hacen una herida
        • Curiosidades
        • Curiosidades

      esto dice la psicología de lo que sientes cuando eres ignorado por una persona muy importante 

      • Janire Manzanas
      • 2026-10-21 13:00
    • El neurobiólogo John Cryan, sobre el café: Tenemos evidencias de que ya sea con cafeína o descafeinado, transforma la microbiota y mejora la salud mental y cognitiva”
        • OkSalud
        • OkSalud

      El neurobiólogo John Cryan, sobre el café: "transforma la microbiota y mejora la salud"

      • Javier Martínez
      • 2026-10-21 13:16
    • Los OK y KO del miércoles, 21 de octubre de 2026
    • La Autoridad Portuaria busca el dibujo que iluminará el puerto de Palma esta Navidad
    • Diario Madridista

    • Valverde, un capitán de derechas
    • Tebas provoca más al Real Madrid justificando su comparación con el nazismo: Hice lo mismo que los políticos españoles
        • Real Madrid
        • Real Madrid

      Tebas provoca más al Real Madrid justificando su comparación con el nazismo: "Hice lo mismo que los políticos españoles"

      Javier Tebas sigue provocando al Real Madrid. Si no fue poco su lamentable comparación de 'Real Madrid TV' con la Alemania nazi, el presidente de la Liga ha vuelto a la carga con otro discurso en el que prefirió justificarse antes que disculparse de un discurso impropio de un alto cargo que maneja la competición española. Es más, respondió al club blanco explicando que su expresión es algo típico en el mundo de la política y el periodismo, pese a que en Valdebebas considerasen que había traspasado todos los límites y que debía dimitir.
      • Pablo Villanueva
      • 2026-10-21 10:55
    • Courtois: Mbappé debe ganar el Balón de Oro porque nadie ha sido mejor que él
        • Real Madrid
        • Real Madrid

      Courtois: "Mbappé debe ganar el Balón de Oro porque nadie ha sido mejor que él"

      • Pablo Villanueva
      • 2026-10-21 12:10
    • El Real Madrid jugará ante el Celta de Vigo en el Bernabéu el sábado 21 de noviembre a las 21:00 horas
        • Real Madrid
        • Real Madrid

      El Real Madrid jugará ante el Celta de Vigo en el Bernabéu el sábado 21 de noviembre a las 21:00 horas

      • Daniel Calle
      • 2026-10-21 17:38
    • El Clásico: todos los futbolistas que han vestido las camisetas del Real Madrid y Barcelona
        • Real Madrid
        • Real Madrid

      El Clásico: todos los futbolistas que han vestido las camisetas del Real Madrid y Barcelona

      • Pedro Antolinos
      • 2026-10-21 10:20
    • Enzo Alves impulsa al Real Madrid al liderato de la Youth League
        • Real Madrid
        • Real Madrid

      Enzo Alves impulsa al Real Madrid al liderato de la Youth League

      • Iván Martín
      • 2026-10-21 18:03
    • A qué hora juegan el Real Madrid - RB Leipzig: horario y dónde ver el partido de la Champions League por TV gratis en directo y en streaming hoy
        • Real Madrid
        • Real Madrid

      A qué hora juegan el Real Madrid - RB Leipzig: horario y dónde ver el partido de la Champions 

      • Alberto Sarmiento
      • 2026-10-21 17:00
    • Palma recupera las instalaciones deportivas de s
    • Deportes

    • El Comité de Disciplina se ceba con Bernal y le mete cuatro partidos de sanción por su agresión a Lamine Yamal
        • Deportes
        • Deportes

      El Comité de Disciplina se ceba con Bernal y le mete cuatro partidos por su agresión a Lamine Yamal

      • Miguel Zorío
      • 2026-10-21 14:18
    • El Dortmund evitó ducharse en el estadio de Bakú tras su partido de Champions alegando un posible brote de legionela
        • Deportes
        • Deportes

      El Dortmund evitó ducharse en el estadio de Bakú tras su partido de Champions alegando un posible brote de legionela

      • Hugo Carrasco
      • 2026-10-21 19:47
    • Lucas Hernández vaciló a Lamine Yamal con collejas y burlas durante el PSG-Barcelona
        • Deportes
        • Deportes

      Lucas Hernández vaciló a Lamine Yamal con collejas y burlas durante el PSG-Barcelona

      Lamine Yamal no tuvo la noche heroica que soñaba en el Parque de los Príncipes. Aunque marcó el 2-2, el delantero no pudo evitar la goleada del PSG al Barcelona, que significó la primera derrota de la temporada. Un golpe de realidad en la que parecía que tendría sin Nuno Mendes, pero acabó neutralizado por Lucas Hernández. Una batalla en la que el lateral francés se aprovechó para burlarse de él durante todo el partido con collejas y celebraciones a escasos metros de él.
      • Pablo Villanueva
      • 2026-10-21 13:24
    • Dani Olmo dice adiós al Clásico: sufre una lesión en el aductor izquierdo y estará un mes de baja
        • Deportes
        • Deportes

      Dani Olmo dice adiós al Clásico: sufre una lesión en el aductor izquierdo y estará un mes de baja

      • Miguel Zorío
      • 2026-10-21 14:48
    • El desgarrador mensaje de Kvaratskhelia tras romperse el cruzado: ¿Por qué yo?
        • Deportes
        • Deportes

      El desgarrador mensaje de Kvaratskhelia tras romperse el cruzado: "¿Por qué yo?"

      • Miguel Zorío
      • 2026-10-21 17:38
    • Asensio pasa por el quirófano después de descartar una operación: estará tres meses de baja
        • Deportes
        • Deportes

      Asensio pasa por el quirófano después de descartar una operación: estará tres meses de baja

      • Alejandro Fernández
      • 2026-10-21 20:18
    • Sale a la luz la causa de la muerte de Hyron Andrews, jugador de rugby que murió en la ducha de su hotel
        • Deportes
        • Deportes

      Sale a la luz la causa de la muerte de Hyron Andrews, jugador de rugby que murió en la ducha de su hotel

      • Luis G. Díaz
      • 2026-10-21 19:03
    • El emotivo mensaje de Cristiano a Kvaratskhelia tras su lesión de ligamento cruzado ante el Barcelona
        • Deportes
        • Deportes

      El emotivo mensaje de Cristiano a Kvaratskhelia tras su lesión de ligamento cruzado ante el Barcelona

      • Alejandro Fernández
      • 2026-10-21 17:18
    • economía

    • Los fabricantes de coches europeos avisan sobre las ayudas de Sánchez a los chinos: No son muy equitativas”
    • ACS y Acciona se adjudican un proyecto ferroviario de 2.570 millones de euros en Australia
        • Economía
        • Economía

      ACS y Acciona se adjudican un proyecto ferroviario de 2.570 millones de euros en Australia

      Cimic, la filial australiana de ACS, se ha adjudicado junto a Acciona nuevos contratos en ese país para llevar a cabo obras en vías y estaciones de tren en el entorno de Melbourne, que permitirán conectar a través del ferrocarril la ciudad con el aeropuerto, según informó el Gobierno del Estado de Victoria.
      • Xavier Vilaltella
      • 2026-10-21 14:17
    • KPMG urge a las empresas a integrar la incertidumbre en sus planes estratégicos para no perder competitividad
        • Economía
        • Economía

      KPMG urge a las empresas a integrar la incertidumbre en sus planes estratégicos para no perder competitividad

      • Julio de Manuel
      • 2026-10-21 17:19
    • Un fallo en Broadcom amenaza la seguridad de los routers de Movistar, Orange y Jazztel en todo el mundo
        • Economía
        • Economía

      Un fallo en Broadcom amenaza la seguridad de los routers de Movistar, Orange y Jazztel en todo el mundo

      • Celia Amayuelas
      • 2026-10-21 11:50
    • El crecimiento de la deuda pública sigue imparable y asciende a 1,75 billones de euros en agosto
        • Economía
        • Economía

      El crecimiento de la deuda pública sigue imparable y asciende a 1,75 billones de euros en agosto

      • Julio de Manuel
      • 2026-10-21 12:13
    • Los sindicatos alertan a Bruselas del riesgo de otra crisis financiera por los bonus millonarios de la banca
        • Economía
        • Economía

      Los sindicatos alertan a Bruselas del riesgo de otra crisis financiera por los bonus millonarios de la banca

      • Celia Amayuelas
      • 2026-10-21 17:00
    • No fracasó el ahorro: lo saquearon
    • Garamendi (CEOE) da más poder a Sánchez Llibre y premia a Miguel Garrido y Lorenzo Amor
        • Economía
        • Economía

      Garamendi (CEOE) da más poder a Sánchez Llibre y premia a Miguel Garrido y Lorenzo Amor

      • Carlos Ribagorda
      • 2026-10-21 13:13
    • Turner (ACS) culmina una estructura de 1.700 millones de dólares para un laboratorio público en Nueva York
        • Economía
        • Economía

      Turner culmina una estructura de 1.700 millones de dólares para un laboratorio público en Ny

      • Xavier Vilaltella
      • 2026-10-21 17:35
    • El Ibex 35 sube un 1,2% y recupera los 19.300 puntos al calor de la banca y los resultados empresariales
        • Economía
        • Economía

      El Ibex 35 sube un 1,2% y recupera los 19.300 puntos al calor de la banca y los resultados empresariales

      • Celia Amayuelas
      • 2026-10-21 09:33
    • COOL

    • Ana Boyer sale en defensa de Julio Iglesias: Toda la familia da la cara por él
        • Cool
        • Cool

      Ana Boyer sale en defensa de Julio Iglesias: "Toda la familia da la cara por él"

      • Marta Huertas
      • 2026-10-21 17:40
    • Tana Rivera reaparece tras su ruptura con Roca Rey: Andrés y yo nos queremos muchísimo
        • Cool
        • Cool

      Tana Rivera reaparece tras su ruptura con Roca Rey: "Andrés y yo nos queremos muchísimo"

      • Marta Huertas
      • 2026-10-21 16:19
    • Ana Terradillos se moja sobre PP, Vox y PSOE y lanza un aviso antes del 29-N: Todavía quedan bombas
        • Cool
        • Cool

      Ana Terradillos se moja sobre PP, Vox y PSOE y lanza un aviso antes del 29-N: "Todavía quedan bombas"

      Ana Terradillos ha hablado con COOL durante la presentación en Madrid de 'El Marqués, 1985' sobre el panorama político de cara a las elecciones del próximo 29 de noviembre. La presentadora de 'La mirada crítica' considera que el PP y Vox irán de la mano y señala que uno de los retos del PSOE será quedar como primera fuerza política. Además, advierte de que la campaña electoral todavía puede deparar sorpresas: «Todavía pueden quedar bombas informativas». La periodista cree que la confrontación ya marca el clima político, aunque no concreta a qué posibles revelaciones se refiere. También ha desvelado su rutina antes de presentar el programa: se levanta a las 4:30 y dedica 20 minutos a hacer ejercicio.
      • Marta Menéndez
      • 2026-10-21 13:30
    • Patek Philippe presenta siete relojes exclusivos en Milán: ediciones limitadas y precios de más de 800.000 euros
        • Cool
        • Cool

      Patek Philippe presenta siete relojes exclusivos en Milán: ediciones limitadas y precios de más de 800.000 euros

      • Rocío Álvarez
      • 2026-10-21 18:00
    • Rania de Jordania luce el mismo anillo inteligente que el Rey Juan Carlos: la joya
        • Cool
        • Cool

      Rania de Jordania luce el mismo anillo inteligente que el Rey Juan Carlos: la joya 'tech' que conquista a la realeza

      • Marta Morales
      • 2026-10-21 16:09
    • Anna Ferrer, hija de Paz Padilla, acaba en comisaría tras volver de su luna de miel: Ha sido salir por la puerta de mi edificio…
        • Cool
        • Cool

      Anna Ferrer, hija de Paz Padilla, acaba en comisaría tras volver de su luna de miel: "Ha sido salir por la puerta de mi edificio…"

      • Marta Menéndez
      • 2026-10-21 15:53
    • Okmotor

    • Javier Sendín, mejor mecánico de España en 2023, sentencia: Si tuviera que comprar un coche nuevo, sería un híbrido enchufable japonés
        • Motor
        • Motor

      Javier Sendín, mejor mecánico de España en 2023: "Si tuviera que comprar un coche nuevo, sería un híbrido enchufable japonés"

      • Marta Burgués
      • 2026-10-20 16:25
    • La DGT lo confirma: multas de hasta 200 euros a los usuarios de bicicletas eléctricas por no llevar casco a partir de los 14 años
        • Motor
        • Motor

      La DGT lo confirma: multas de hasta 200 euros a los usuarios de bicicletas eléctricas por no llevar casco

      • Janire Manzanas
      • 2026-10-20 10:00
    • Alemania y Francia ningunean a Sánchez: pactan salvar el motor de combustión y dejan a España fuera de la negociación
        • Motor
        • Motor

      Alemania y Francia ningunean a Sánchez: pactan salvar el motor de combustión y dejan a España fuera de la negociación

      • Andrea Aguado
      • 2026-10-20 05:45
    • OKGreen

    • Transición sostenible, competitividad y agua: la V Jornada OKGREEN reúne en Madrid a empresas e instituciones
    • La Antártida acoge el primer santuario mundial que conserva testigos de glaciares en peligro
        • OKGREEN
        • OKGREEN

      La Antártida acoge el primer santuario mundial que conserva testigos de glaciares en peligro

      Los glaciares están desapareciendo a un ritmo sin precedentes y, con ellos, también podría perderse un recurso vital para la supervivencia del ser humano: más de 2.000 millones de personas dependen del deshielo de glaciares y nieves para obtener agua dulce, recuerda la ONU. Naciones Unidas también alerta de que un tercio de estos gigantes helados podrían desaparecer para 2050. Su colapso completo borraría siglos, e incluso milenios, de información científica para comprender cómo ha evolucionado el clima y anticipar su comportamiento futuro.
      • Daniel Jiménez
      • 2026-10-21 05:00
    • El milagro de la hidroplastificación: crean una madera sostenible seis veces más resistente que el plástico
        • OKGREEN
        • OKGREEN

      El milagro de la hidroplastificación: crean una madera sostenible seis veces más resistente que el plástico

      • Antonio Quilis
      • 2026-10-21 05:15
    • Los incendios forestales queman 275.209 hectáreas en España: 2,5 veces la media de la última década
        • OKGREEN
        • OKGREEN

      Los incendios forestales queman 275.209 hectáreas en España: 2,5 veces la media de la última década

      • Antonio Quilis
      • 2026-10-21 05:30
    • OKSalud

    • Atención integral y personalizada para mejorar la calidad de vida de las pacientes con cáncer de mama
    • ¿Por qué algunas personas siguen en riesgo de infarto pese a tener el colesterol bajo?
        • OkSalud
        • OkSalud

      ¿Por qué algunas personas siguen en riesgo de infarto pese a tener el colesterol bajo?

      • Diego Buenosvinos
      • 2026-10-21 05:40
    • Lo que respiran y absorben las embarazadas importa: así es el impacto de los químicos en la inteligencia infantil
        • OkSalud
        • OkSalud

      Lo que respiran y absorben las embarazadas importa: así es el impacto de los químicos en la inteligencia infantil

      • Diego Buenosvinos
      • 2026-10-21 05:40
    • Adiós a los suplementos: los cuatro grupos de alimentos asequibles que te protegen de la gripe
        • OkSalud
        • OkSalud

      Adiós a los suplementos: los cuatro grupos de alimentos asequibles que te protegen de la gripe

      Las infecciones respiratorias comienzan a ganar protagonismo con la llegada del otoño y la bajada de las temperaturas. En esta época muchas personas recurren a suplementos y productos que prometen reforzar las defensas. Sin embargo, algunos de los nutrientes necesarios para el funcionamiento del sistema inmune se encuentran en alimentos cotidianos, asequibles y fáciles de incorporar.
      • B. Muñoz
      • 2026-10-21 05:40
    • Happy FM

    • Qué fue de Luisber Santiago, actor de la mítica serie
        • HappyFM
        • HappyFM

      Qué fue de Luisber Santiago, actor de la mítica serie 'Cambio de clase'

      • María Peñafiel de Blas
      • 2026-10-21 20:18
    • Avance de
        • HappyFM
        • HappyFM

      Avance de 'Valle Salvaje' de hoy, 21 de octubre: Rafael recibe una noticia devastadora

      • Nacho Molina
      • 2026-10-21 17:00
    • 'La Mesa
        • HappyFM
        • HappyFM

      'La Mesa' confirma a sus ocho invitados de esta noche, con la mirada en Ceuta

      • Nacho Molina
      • 2026-10-21 13:13
    • Pablo Motos, en
        • HappyFM
        • HappyFM

      Pablo Motos, en 'El Hormiguero': "El otro día me puse los calzoncillos de Omar Montes"

      • Nacho Molina
      • 2026-10-21 12:12
    • 'Supervivientes All Stars 3
        • HappyFM
        • HappyFM

      'Supervivientes All Stars 3': ¿Quién fue el concursante salvado de ayer?

      • Idania Monzón
      • 2026-10-21 11:35
    • Cristian, que tuvo una cita con la camarera de
        • HappyFM
        • HappyFM

      Cristian, que tuvo una cita con la camarera de 'First Dates', habla: "Fue una cita remunerada"

      • María Peñafiel de Blas
      • 2026-10-21 11:24
    • 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
    • Fernán González: Redondo justifica su piso a precio de ganga confundiendo al personal
        • OKCLUB
        • OKCLUB

      Fernán González: "Redondo justifica su piso a precio de ganga confundiendo al personal"

      • OKDIARIO
      • 2026-10-21 05:45
    • navarra

    • Un prototipo para conocer el estado de las baterías sin detenerlas gana el concurso de energías renovables de la UPNA
        • Sociedad

      Un prototipo para conocer el estado de las baterías sin detenerlas gana el concurso de energías renovables de la UPNA

        • Sociedad

      "Cumplir años no cambia nuestros derechos": la exposición que recorrerá decenas de localidades de Navarra

    • Una empresa de Navarra lanza una app que ejercita memoria y atención con 900 ejercicios y seis niveles
        • Sociedad

      Una empresa de Navarra lanza una app que ejercita memoria y atención con 900 ejercicios y seis niveles

    • Frente Amplio pone en Navarra su futuro electoral manos de dos concejales para intentar irrumpir en el Congreso y Senado
        • Política

      Frente Amplio pone en Navarra su futuro electoral manos de dos concejales para intentar irrumpir en el Congreso y Senado

    • “Nuestro futuro no puede seguir esperando”: exigen soluciones en Navarra para que los jóvenes puedan emanciparse
        • Política

      “Nuestro futuro no puede seguir esperando”: exigen soluciones en Navarra para que los jóvenes puedan emanciparse

    • Nuevas Generaciones del PP responde al meme de Chivite sobre Ibarrola y Sayas y el troleo se hace viral
        • Política

      Nuevas Generaciones del PP responde al meme de Chivite sobre Ibarrola y Sayas y el troleo se hace viral

    • metabolic

    • María Luisa López (100 años), profesora: «Aunque bebo principalmente agua, el vino me ha ayudado a llegar a donde estoy hoy»
        • Alimentos

      María Luisa López (100 años), profesora: «Aunque bebo principalmente agua, el vino me ha ayudado a llegar a donde estoy hoy»

    • José Acosta, entrenador personal y experto en fitness: «A partir de los 50 años, muchas personas dicen que cuando paran les cuesta volver a arrancar»
        • Deporte

      José Acosta, entrenador personal y experto en fitness: «A partir de los 50 años, muchas personas dicen que cuando paran les cuesta volver a arrancar»

    • Un estudio revela que los bebés más pequeños tienen un rendimiento académico inferior durante la adolescencia
        • Cognición y Aprendizaje

      Un estudio revela que los bebés más pequeños tienen un rendimiento académico inferior durante la adolescencia

    • Dormir desnudo: por qué los expertos en sueño recomiendan irse a la cama sin pijama
        • Salud

      Dormir desnudo: por qué los expertos en sueño recomiendan irse a la cama sin pijama

    • Los entrenadores personales lo tienen claro: si una persona de 65 años hace solo 4 minutos de ejercicio de fuerza al día, ya puede ver beneficios
        • Deporte

      Los entrenadores personales lo tienen claro: si una persona de 65 años hace solo 4 minutos de ejercicio de fuerza al día, ya puede ver beneficios

    • Los expertos en cosmética coinciden: «La crema Nivea de bote azul mejora las rodillas cuando están secas o deshidratadas pero no frena las arrugas»
        • Cosmética

      Los expertos en cosmética coinciden: «La crema Nivea de bote azul mejora las rodillas cuando están secas o deshidratadas pero no frena las arrugas»

    • talent24h

    • Unicaja deberá pagar un 30 % más en las prestaciones de una trabajadora que resbaló por el suelo mojado
        • Empleo

      Unicaja deberá pagar un 30 % más en las prestaciones de una trabajadora que resbaló por el suelo mojado

    • Decathlon alerta de un riesgo de asfixia para los niños en un portabebés vendido durante más de cuatro años
        • Actualidad

      Decathlon alerta de un riesgo de asfixia para los niños en un portabebés vendido durante más de cuatro años

    • Santander ofrece un curso gratuito de Excel de 8 horas con certificado y sin necesidad de ser cliente
        • Formación

      Santander ofrece un curso gratuito de Excel de 8 horas con certificado y sin necesidad de ser cliente

    • Un pueblo de Cuenca busca albañiles, electricistas y cuidadores que quieran vivir allí
        • Empleo

      Un pueblo de Cuenca busca albañiles, electricistas y cuidadores que quieran vivir allí

    • Las becas infantiles de Madrid entran en una fase decisiva: cómo pueden las familias consultar el resultado y reclamar
        • Actualidad

      Las becas infantiles de Madrid entran en una fase decisiva: cómo pueden las familias consultar el resultado y reclamar

    • La AEPD multa con 2.000 euros al responsable de una web de falsas sanciones que publicó datos de otra persona
        • Actualidad

      La AEPD multa con 2.000 euros al responsable de una web de falsas sanciones que publicó datos de otra persona

    • Muy Interesante

    • ¿Sabrías resolver el enigma de la esfinge?
        • Curiosidades

      ¿Sabrías resolver el enigma de la esfinge?

    • De 29.450 a 85.185 euros: así es la gama Kia, con 10 eléctricos y una furgoneta que puede configurarse de 90 formas distintas
        • Actualidad

      De 29.450 a 85.185 euros: así es la gama Kia, con 10 eléctricos y una furgoneta que puede configurarse de 90 formas distintas

    • La Braun Series 7 baja de precio en MediaMarkt y gana protagonismo entre las afeitadoras eléctricas
        • Compras

      La Braun Series 7 baja de precio en MediaMarkt y gana protagonismo entre las afeitadoras eléctricas

    • ¿Cómo duermen los peces si no tienen párpados?
        • Naturaleza

      ¿Cómo duermen los peces si no tienen párpados?

    • ¿Sabrías distinguir un coral muerto de uno que solo lo parece?
        • Medio ambiente

      ¿Sabrías distinguir un coral muerto de uno que solo lo parece?

    • ¿Por qué parece que las estrellas parpadean?
        • Ciencia

      ¿Por qué parece que las estrellas parpadean?

    • okzinet

    • Cómo enseñar a tu hijo a elegir buenos amigos: 5 claves para reconocer una amistad sana
        • Ser Padres

      Cómo enseñar a tu hijo a elegir buenos amigos: 5 claves para reconocer una amistad sana

    • Cómo evitar que tu hijo se pierda entre las aglomeraciones del verano
        • Ser Padres

      Cómo evitar que tu hijo se pierda entre las aglomeraciones del verano

    • ¿Dejas el abrigo puesto a tu bebé en la silla del coche? 5 consejos de seguridad
        • Ser Padres

      ¿Dejas el abrigo puesto a tu bebé en la silla del coche? 5 consejos de seguridad

    • Cómo aplicar el colorete a partir de los 50 sin que quede demasiado marcado: el truco para conseguir un efecto natural
        • Mia Revista

      Cómo aplicar el colorete a partir de los 50 sin que quede demasiado marcado: el truco para conseguir un efecto natural

    • Sopa miso exprés con solo 4 ingredientes, la receta perfecta para entrar en calor
        • Mia Revista

      Sopa miso exprés con solo 4 ingredientes, la receta perfecta para entrar en calor

    • 3 trucos sencillos para mantener tu casa caliente sin encender la calefacción y ahorrar este otoño
        • Mia Revista

      3 trucos sencillos para mantener tu casa caliente sin encender la calefacción y ahorrar este otoño

    • Techy

    • Una grúa sostiene el contenedor del Proyecto Gasbuggy, la bomba nuclear para sacar gas que EEUU detonó en Nuevo México en 1967
        • Techy

      En 1967 EEUU hizo estallar una bomba nuclear para sacar gas a 1.288 metros bajo Nuevo México: 59 años después sigue prohibido perforar allí sin permiso del Gobierno

      • Adrián Villellas
    • Montaje de ensayo del microrreactor eVinci de Westinghouse en el NCERC de Nevada, donde alcanzó la criticidad a 663 °C
        • Techy

      Ni agua ni bombas: el microrreactor eVinci de Westinghouse alcanza la criticidad a 663 °C en Nevada y mide 1.011 °C, récord en las mediciones de reactividad del centro

      • Adrián Villellas
    • Recreación del nuevo Air Force One, el Boeing 747-8 VC-25B, con la librea roja, blanca, dorada y azul oscuro
        • Techy

      Iba a estar listo en 2024 y no llegará hasta 2028: Boeing suma 280 millones de pérdidas con el nuevo Air Force One, que se probará en 2027

      • Adrián Villellas
    • Fachada blanca del castillo Hallgreen con una torrecilla de piedra, tras un muro de piedra y un césped, en Aberdeenshire (Escocia)
        • Techy

      Buscan voluntarios para vivir gratis en un castillo de 650 años en Escocia a cambio de cuidarlo 25 horas semanales: cama, cocina y bicicletas, pero sin comidas

      • Adrián Villellas
    • Puente Forth Road: un tramo de uno de sus cables principales, separado con cuñas, deja a la vista los alambres de acero durante la inspección interna de 2025
        • Techy

      11.618 alambres por cable y corrosión por dentro: así salvaron con aire seco los cables del puente Forth Road, que habían perdido hasta un 10 % de su resistencia

      • Adrián Villellas
    • Escudo térmico de Orion fotografiado bajo el agua por buzos de la Armada de EEUU tras el amerizaje de Artemis II
        • Techy

      Del 103 al 9: la NASA confirma que el escudo térmico de Orion volvió de la Luna en Artemis II con diez veces menos grietas

      • Adrián Villellas
    • OkPlanes

    • boniato
        • OkPlanes

      Cinco restaurantes de Madrid donde saborear el boniato esta temporada

      • Sandra Quintana C
    • restaurantes por menos de 20 euros
        • OkPlanes

      Cinco locales de Madrid para comer estupendamente sin gastar más de 20 euros

      • Sandra Quintana C
    • Baile de Huesos teatro luchana
        • OkPlanes

      ‘Baile de Huesos’ apura sus últimas semanas en los Teatros Luchana

      • Sandra Quintana C
    • escapadas otoño
        • OkPlanes

      Siete pueblos de España con un patrimonio monumental único para escaparse en otoño

      • Sandra Quintana C
    • Alta Temporada, Girona, 2026
        • OkPlanes

      Temporada Alta 2026: las grandes obras de teatro que no te puedes perder en Girona

      • Sandra Quintana C
    • estrenos de cine
        • OkPlanes

      Las películas que llegan a la cartelera de cine el 16 de octubre

      • Sandra Quintana C
    • Curiosidades

    • Imagen generada con IA.
        • Curiosidades

      En 1997 Paul Newman donó 3 hectáreas de un terreno en Connecticut; 14 años después sus tierras forman parte de una reserva protegida que lleva su nombre

      • Aitana Pascual
    • La psicología sugiere que los adultos que bajan la mirada al hablar con otros no lo hacen por timidez; en realidad están concentrados pensando la respuesta adecuada
        • Curiosidades

      La psicología sugiere que los adultos que bajan la mirada al hablar con otros no lo hacen por timidez; más bien están concentrados pensando la respuesta adecuada

      • Pedro Antolinos
    • vivir en una casa rural aislada en las montañas asturianas
        • Curiosidades

      Julien, una joven belga de 29 años, busca voluntarios para vivir en una casa rural entre las montañas asturianas a cambio de ayudarle con las tareas de mantenimiento

      • Alejo Lucarás
    • Carlos V
        • Curiosidades

      La reflexión de Carlos I de España: «Hablo el español con Dios, el italiano con las mujeres, el francés con los hombres y el alemán con mi caballo»

      • Janire Manzanas
    • Antonio Machado, soledad, amistad, frase
        • Curiosidades

      La frase de Antonio Machado sobre las relaciones: «Tengo a mis amigos en mi soledad, cuando estoy con ellos, qué lejos están»

      • Ana López Vera
    • Los bomberos coinciden y advierten a la población: "Por la noche es recomendable cerrar la puerta del dormitorio antes de dormir"
        • Curiosidades

      Los bomberos coinciden y advierten: «Por la noche es recomendable cerrar la puerta del dormitorio antes de dormir»

      • Alejo Lucarás
    • Recetas de cocina

    • Calabaza asada
        • Recetas de cocina

      Postres con calabaza asada: 7 recetas fáciles

      • Francisco María
    • Postres con calabaza
        • Recetas de cocina

      Bizcocho de calabaza asada: receta fácil y jugosa

      • Francisco María
    • Los chefs expertos coinciden: para hacer la ensaladilla más rica, no necesitas atún sino "1 pata de pulpo, 1 huevo y pimentón ahumado"
        • Recetas de cocina

      Los chefs expertos coinciden: para hacer la ensaladilla más rica, no necesitas atún sino «1 pata de pulpo, 1 huevo y pimentón ahumado»

      • Marta Burgués
    • Imagen generada con IA
        • Recetas de cocina

      Los cocineros expertos coinciden: la mejor forma de asar castañas en casa es forrarlas con papel de aluminio para evitar que se quemen en el horno

      • Javier Martínez
    • Flan casero
        • Recetas de cocina

      Flan de calabaza de la abuela: receta casera

      • Francisco María
        • Recetas de cocina

      Bizcocho de calabaza sin azúcar: receta esponjosa

      • Francisco María
    • OkShopping

        • OkShopping

      Tu jardín lleva años pidiéndote esto: una caseta de 8 m² con 10 años de garantía contra el óxido

      • New Mall Media
    • Secador de pelo Dyson Supersonic Nural Liso+Ondulado
        • OkShopping

      Tiene sensores, cinco accesorios y un acabado rosa precioso: el secador Dyson Supersonic Nural te va a enamorar

      • New Mall Media
        • OkShopping

      Esta torre de LG lava y seca con bomba de calor, se maneja desde el móvil y no necesita hueco para ventilar

      • New Mall Media
    • Freidora de Aire Patbrela 5,5 L
        • OkShopping

      Esta freidora de aire hace 6 cosas en una, sustituye a media cocina y está de oferta

      • New Mall Media
        • OkShopping

      La mesita de noche de nogal con aire de los 50 que cambia por completo tu dormitorio

      • New Mall Media
        • OkShopping

      ¿Casas con mascotas o suciedad? La solución es este robot aspirador y mopa Shark Matrix Plus

      • New Mall Media
    • Mascotas

    • Imagen generada por IA.
        • Mascotas

      Los veterinarios expertos coinciden: si tu perro escarba en la tierra y hace agujeros en el jardín no lo hace sólo porque se aburra, en realidad es una señal de problemas de comportamiento

      • Carmen Ruiz
    • EuropaPress
        • Mascotas

      Los veterinarios expertos están de acuerdo: «Los perros no sienten culpa, sino miedo cuando sus dueños se enfadan»

      • Fernando Larruscain
    • Displasia, raza, perro, mascota
        • Mascotas

      Los expertos alertan sobre esta raza de perro: tiene un 19% de riesgo de sufrir displasia de cadera

      • Ana López Vera
    • Psicología personas alimentan animales calle
        • Mascotas

      La psicología dice que las personas que alimentan a los animales de la calle no lo hacen por simple bondad, detrás de este gesto puede haber una empatía incondicional

      • Janire Manzanas
    • Gatos maúllan por la noche
        • Mascotas

      Los veterinarios expertos coinciden: los gatos que maúllan por la noche no es por miedo ni tristeza, en realidad están aburridos y necesitan más actividad diaria

      • Janire Manzanas
    • Imagen generada por IA.
        • Mascotas

      Los veterinarios expertos coinciden: los mordisquitos suaves de los perros pueden ser una forma de comunicación

      • Carmen Ruiz
    • Ciencia

    • Botella en el desierto
        • Ciencia

      Encuentran una botella en el desierto de Egipto con una nota de 1977: tenía el nombre de un hombre y una dirección de Malta

      • Janire Manzanas
    • El punto álgido del Super El Niño ya tiene fecha confirmada para 2026, y el fenómeno será el más intenso de los últimos 150 años
        • Ciencia

      El punto álgido del Super El Niño ya tiene fecha confirmada para 2026, y el fenómeno será el más intenso de los últimos 150 años

      • Marta Burgués
    • Lluvias de estrellas
        • Ciencia

      Lluvia de estrellas Táuridas 2026: cuándo verlas y a qué hora

      • Francisco María
    • Dante Alighieri
        • Ciencia

      La ciencia no pudo explicar los impactos planetarios hasta el año 1833: un estudio afirma que Dante Alighieri se adelantó a todo el mundo 5 siglos antes

      • Alejo Lucarás
    • Aunque son pequeñas y a menudo pasan desapercibidas, las tarántulas que se encuentran en entornos naturales desempeñan un papel en el control de otros invertebrados muy importante
        • Ciencia

      Aunque son pequeñas y a menudo pasan desapercibidas, las tarántulas que se encuentran en entornos naturales desempeñan un papel en el control de otros invertebrados muy importante

      • Marta Burgués
    • Montañas de residuos en Francia
        • Ciencia

      En 1986 dejaron de explotar carbón y abandonaron dos montañas de residuos en Francia: hoy son un refugio para la fauna y la flora

      • Janire Manzanas
    • 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

    • Apple Music
        • Tecnología

      El nuevo logotipo de Apple Music se ha grabado con música, aceite y una cámara

      • Nacho Grosso
    • Blink 4K
        • Tecnología

      Blink se pasa al 4K con cinco cámaras nuevas, pero en España solo se reservan dos

      • Nacho Grosso
    • Football Manager 27
        • Tecnología

      Cinco días para jugar gratis al Football Manager 27 y conservar tu progreso si reservas

      • Nacho Grosso
    • Ingram Micro
        • Tecnología

      El precio de algunos PC se dispara un 75% mientras la inversión tecnológica pública cae un 47%

      • Nacho Grosso
    • Pro and Tell
        • Tecnología

      El MacBook Pro táctil que Apple se resistía a fabricar podría estrenarse el 28 de octubre

      • Nacho Grosso
    • bateria iPhone Duo
        • Tecnología

      Dos baterías y 4.883 mAh, así llega el iPhone Duo a las tiendas

      • Nacho Grosso
    Ir Arriba

    Noticias de última hora

    • Abascal culpa en Horizonte a Sánchez y Marlaska de la violencia contra Vox: «Esto no lo permitiría con el PSOE»
    • La ‘kale borroka’ vuelve a sembrar el pánico en las calles en La Coruña: barricadas, mobiliario urbano quemado y cargas policiales
    • En 1967 EEUU hizo estallar una bomba nuclear para sacar gas a 1.288 metros bajo Nuevo México: 59 años después sigue prohibido perforar allí sin permiso del Gobierno
    • Estos son los adoquines que han lanzado los antifascistas para reventar el mitin de Vox en La Coruña
    • Lleno absoluto de Cayetana Álvarez de Toledo en Sevilla: «El sanchismo va a recordarse como la etapa de la indecencia»
    • En 1997 Paul Newman donó 3 hectáreas de un terreno en Connecticut; 14 años después sus tierras forman parte de una reserva protegida que lleva su nombre
    • El Papa León XIV no necesitará más tratamiento tras su operación de cáncer de pulmón
    • La psicología sugiere que los adultos que bajan la mirada al hablar con otros no lo hacen por timidez; más bien están concentrados pensando la respuesta adecuada
    • Bernd Schuster, ex futbolista (66 años): «Yo hubiera sido un torero como Enrique Ponce, siempre jugaba del 70% al 90% de mi nivel»
    • Los universitarios de La Coruña desmontan el bulo estudiantil antifascista: «Aquí nunca les hemos visto»

    Noticias más vistas

    • Redondo miente: dice que un piso salió a subasta por 920.000 euros pero oculta que se acabó vendiendo en 1,5 millones
    • El Gobierno vendió por 400.000 euros más que el de Iván Redondo un piso 52 metros más pequeño en el mismo edificio
    • El Gobierno vendió a Iván Redondo un piso público en el barrio de Salamanca por casi 500.000 € menos de su valor en 2025
    • Katrin Ortega, la alcaldesa más votada de Sánchez en Málaga, pide la baja del PSOE junto a otros dos concejales
    • Colas kilométricas en Lidl para comprar las zapatillas de senderismo tipo Columbia o Salomon por menos de 20€
    • El padre de Lamine la vuelve a liar: se mete con Abascal y presume de no tener que trabajar porque tiene «millones»
    • El alcalde de Mairena del Aljarafe recibió en 2017 una denuncia de 62 vecinos por los ruidos del polideportivo
    • Resultado PSG – Barcelona: resumen, goles y cómo ha quedado el partido de Champions League hoy
    • El PSG pone en su sitio al Barcelona en Europa
    • El informe pericial del propio Ayuntamiento de Mairena del Aljarafe sobre el polideportivo que desmiente a su alcalde

    Noticias virales

    • Qué quiere decir el proverbio de la filosofía china: «Un árbol torcido vive su propia vida, pero un árbol recto se convierte en madera»
    • Una jubilada de 63 años busca voluntarios para vivir gratis en un pueblo de Sevilla a cambio de ayudarle con la jardinería, recoger aceitunas y cuidar de su gato
    • Los albañiles lo dejan claro: colocar una malla de fibra de vidrio sobre el cemento es el mejor truco para impermeabilizar una terraza y evitar goteras
    • La gran reflexión de ‘El Principito’ que debemos aplicar en nuestra vida: «Los hombres vanidosos siempre creen que todo el mundo los admira; en su soledad sólo oyen elogios»
    • La psicología confirma que los jóvenes que votan a la ultraderecha no son rebeldes, en realidad están buscando respuestas muy simples a preguntas complejas
    • Sócrates, filósofo griego, sobre las amistades: «El amigo debe ser como el dinero; antes de necesitarlo, hay que conocer su valor»
    • Expertos en climatización coinciden: la regla de los 19°C está desfasada, las nuevas recomendaciones de los expertos para el invierno
    • La sabia reflexión de Platón sobre la educación : «No se debe obligar a los niños a aprender, ni se debe forzar sus cabezas para asimilar conocimientos. Sólo se debe mostrar el camino»
    • Los expertos en fontanería lo tienen claro: «Para evitar fugas de agua en casa es recomendable cambiar la manguera de la lavadora, se tarda 5 minutos y las venden en cualquier ferretería»
    • Confirmado por el BOE: el festivo del 1 de noviembre se moverá al lunes 2 de noviembre y habrá puente laboral en 9 comunidades autónomas
    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