Sobre Nosotros

Sobre Nosotros

Nuestro compromiso y misión corporativa radican en la experiencia adquirida en procesos de síntesis química. Además, MENADIONA es un fabricante europeo con amplia experiencia en asuntos regulatorios.
QUIENES SOMOS, HISTORIA, PLANTAS DE FABRICACIÓN, RSC

QUIENES SOMOS

Desde su creación en 1970, MENADIONA es una compañía privada independiente.

Desde entonces, MENADIONA se ha dedicado a la fabricación de ingredientes activos (APIs) e intermedios fundamentalmente para las industrias farmacéutica, veterinaria, fitosanitaria y nutracéutica.

Por otra parte, destacar que la química de la Aziridina y sus derivados es una de las actividades mas reconocidas de MENADIONA. Igualmente, ofrecemos servicios de fabricación a medida y por encargo a través de nuestra unidad de Desarrollo de nuevos Negocios (Business Development).

Con un equipo altamente cualificado y dos plantas de fabricación en España, MENADIONA se caracteriza por su fuerte volumen de exportación a nivel mundial, que representa más del 85% de sus ventas.

“...nuestra experiencia en la mejora constante de los procesos de síntesis química.”

Nuestro compromiso corporativo radica en la amplia experiencia y la mejora constante de los procesos de síntesis química. Logramos nuestros objetivos al proporcionar:

  • Una lista abierta de productos activos y sustancias de química fina que cumplen completamente con las farmacopeas actuales y las normas industriales más exigentes.
  • Servicios personalizados de fabricación para clientes de productos exclusivos con requisitos especiales.

HISTORIA

  1. Comienzo de MENADIONA

    MENADIONA fue fundada por el Sr. Carlos Cosin Roviralta con el objetivo de fabricar Vitamina K3, la cual era reconocida como un producto muy innovador en el mercado de la Veterinaria.

  2. Productos Veterinarios: Las raíces de MENADIONA

    MENADIONA empezó su trayectoria en Barcelona. En ese momento, sólo disponía de un producto, un reactor y un cliente.
    El producto era llamado Vitamina K3, conocido comúnmente como MENADIONA.

  3. Incremento de capacidad de producción: Edificio de Producción NF-I

    MENADIONA se enfrentó a un gran crecimiento, para el cual la infraestructura inicial no era suficiente. Por lo que la empresa se trasladó a una nueva planta situada en Palafolls. Una vez allí, la nueva planta de producción fue completamente construída (NF-I) y equipada con 11 reactores, 3 centrífugas y 2 secadores.

    MENADIONA comenzó a ser un productor reconocido en el mundo de la Veterinaria, disfrutando de la expansión de su reputación año tras año.

  4. Incremento de capacidad de producción: Edificio de Producción NF-II

    Despues de un tiempo, un nuevo edificio de producción fue contruído. Esta vez incorporando 13 reactores, 6 centrífugas y 2 secadores, elevando la capacidad total de reacción de MENADIONA a mas de 150 m3.

  5. Adquisición de INVEMA en Málaga

    MENADIONA adquirió una segunda planta en el sur de España, Málaga. Esta planta producía en ese momento productos intermedios para Veterinaria y se convirtió en una buena solución para el crecimiento imparable de la demanda de MENADIONA. INVEMA, el nombre de esta planta, se mantiene hasta hoy. Hoy en día la planta se ha sometido a actualizaciones de optimación, lo que la convierte en una planta de producción clave para MENADIONA.

  6. Introducción de la Aziridina!

    Uno de los eventos más importantes en la historia de MENADIONA fue la introducción de la Química de la Aziridina en su área de experiencia y cartera de productos.

    Desde entonces, la Aziridina y sus derivados se han convertido en nuestro negocio principal.

  7. La era de la Aziridina y sus Crosslinkers

    MENADIONA ganó total control sobre la química y tecnología de la Aziridina, por lo que empezó a desarrollar y producir derivados de Aziridina que podían ser aplicados como Crosslinkers para recubrimientos, resinas, lubricantes, pieles, pinturas…

    MENADIONA adquirió 'market share' y se convirtió en un socio de confianza para algunas de las empresas más importantes del sector de resinas y recubrimientos.

    Hoy en día, MENADIONA está orgulloso de ser Líder Global en la Química de la Aziridina.

  8. Incremento de capacidad de Producción: Edificio de Producción NF-III

    El negocio seguía creciendo, por lo que la empresa decidió invetir en un nuevo edificio de producción. 2 reactores, 7 destiladores y 1 centrífuga fueron adquiridos. El 'Edificio de Producción NF-III' está completamente dedicado a Aziridina y Crosslinkers.

  9. Llegada de Intermedios para Farmacia

    A principios de los años 90, MENADIONA inició su camino hacia el negocio de los productos Intermedios de Farmacia. La empresa, con 3 edificios de producción, empezó a diferenciar cada área de trabajo dependiendo del tipo de producto. Los edificios 1 y 2 fueron dedicados a productos Intermedios de Veterinaria y Farmacia mientras que el edificio 3 fue dedicado a products industriales y derivados de Aziridina.

  10. La 2ª Generación llega a la empresa

    La segunda generación de los Cosin, quienes ya estaban involucrados en la empresa desde hacía años, empieza a dirigir la empresa con nuevas ideas y la ambición de conducirla a los resultados más altos desde su creación.

  11. Sanidad Vegetal: ACT-2

    Las raíces de MENADIONA pertenecen a la Vitamina K, de la cual MENADIONA, con su tecnología única, desarrolló un nuevo producto. Dicho producto, llamado ACT-2, fue enfocado al mercado de la agricultura.

  12. Incremento de capacidad de Producción: Edificio de Producción (ISO 8): APIs

    MENADIONA siempre tuvo ambición por crecer. Por esa razón una nueva área de producción clasificada ISO 8 fue construída.

    Esta área de producción equipada con 7 reactores, 2 centrífugas y 4 secadores, se dedica específicamente a la producción de APIs.

    MENADIONA dió un paso mas y empezó a producir APIs para Farmacia y Veterinaria. Esto, lejos de ser un pequeño cambio, trajo a la vez de varias dificultades, grandes ventajas para la organización de la empresa y la manera de entender la producción, calidad, temas regulatorios y de seguridad higiene y medio ambiente (SHE).

    MENADIONA fue certificada como planta GMP y aprobada por FDA, PDMA y KFDA, lo cual abrió una gran ventana de posibilidades para la empresa.

  13. Servicios de Contract Manufacturing

    Con 5 edificios de producción, más de 50 reactores y 400m3 de capacidad de reacción, MENADIONA comenzó a producir productos Intermedios y APIs para terceros.

    Con esta nueva oportunidad de negocio, MENADIONA creó fuertes uniones con muchos de sus clientes y empezó relaciones a largo plazo con muchos otros, convirtiéndose en uno de los "Contract Manufacturers" Europeos más relevantes de hoy en día.

  14. Comienzan acuerdos comerciales con empresas en Asia y otros lugares del mundo

    Siempre con la visión de avanzar, adaptándose a los cambios a nivel mundial, MENADIONA creó relaciones con dos empresas para distribuir sus productos desde otras partes del mundo. Una de ellas en China, concentrada el mercado Asiático y la otra comercializando alrededor del mundo.

  15. Posibilidades de Expansión

    MENADIONA tuvo la oportunidad de alargar su superficie adquiriendo la parcela adyacente a la fábrica. Lo que incrementó su superfice total a 60.000 m2. Hoy en día 15.600 m2 están construidos, pero MENADIONA asegura su posibilidad de expansión.

  16. Incremento de la Tecnología de Producción: Hydrogenation

    MENADIONA invierte en una nueva tecnología; Hidrogenación. Para ello, un nuevo edificio de produccíon fue construido y un nuevo hidrogenador fue adquirido.

PRODUCCIÓN

“La capacidad de reacción total es de más de 400,000 litros ...”

Las dos plantas de producción de MENADIONA se encuentran en España, la sede està situada en el norte del país en Palafolls, a unos 60Km de Barcelona y la segunda planta (INVEMA), està situada en Málaga, en el sur de España.

La planta en Málaga, dispone de los equipos y tecnologías necesarias para actuar de backup plant o planta de soporte en caso de emergencia.

La capacidad de reacción total es de más de 400,000 litros y ambas plantas de fabricación están equipadas con modernas instalaciones de producción.

Un diseño detallado y estudiado otorga a MENADIONA la posibilidad de combinación con los diferentes reactores, que tratan tanto productos líquidos como sólidos, con el objetivo principal de lograr la mayor garantía de calidad del producto, seguridad del personal y protección del medio ambiente.

Además, todas las operaciones de fabricación se llevan a cabo en acuerdo con las Good Manufacturing Practices (GMP) y las regulaciones medioambientales europeas.

Resposabilidad Social Corporativa (RSC)

Los Principios de Responsabilidad Social Corporativa de MENADIONA se centran en alinear nuestras acciones con nuestros valores para alcanzar un comportamiento profesional, ético y responsable para todos los beneficiarios de la empresa.

Derechos humanos

  • El personal de MENADIONA respeta y protege los derechos humanos y la libertad pública como se describe en el Pacto Mundial de las Naciones Unidas.
  • Los empleados de MENADIONA están en contra de la explotación infantil y la discriminación, respetando la igualdad de oportunidades.
  • El compromiso de MENADIONA es respetar la libre asociación, las negociaciones comerciales y los derechos de las minorías.

Estándares Laborales

  • MENADIONA está totalmente de acuerdo con la economía de mercado libre, por lo tanto, nos comprometemos con las leyes de libre competencia.
  • Los empleados de MENADIONA serán tratados con respeto, favoreciendo el trabajo en equipo y, por lo tanto, promoviendo la igualdad entre hombres y mujeres.
  • MENADIONA garantiza la adaptación de la empresa al marco regulatorio y las prácticas sociales, con el fin de lograr la mejora diaria.
  • Los empleados de MENADIONA deben cumplir con las responsabilidades profesionales establecidas por la compañía, actuar con lealtad y defender sus intereses.

Protección del medio ambiente

  • MENADIONA promueve el crecimiento sostenible y desarrolla negocios y productos respetando la salud humana.
  • MENADIONA lleva a cabo iniciativas para promover una mejor responsabilidad ambiental.

Lucha contra la corrupción

  • MENADIONA no acepta ni tolera ningún tipo de corrupción, incluidas extorsiones o sobornos, entre otros.
CgkJPGRpdiBjbGFzcz0iY29va2llcyIgZGF0YS1ub3NuaXBwZXQ+CgkJCTxkaXYgY2xhc3M9ImNjb29raWUiPgoJCQkJPGRpdiBjbGFzcz0iY2NvbnRlbnQgcHJlZmVyZW5jZXMgY2hpZGUiPgoJCQkJCTxkaXYgY2xhc3M9IiI+CgkJCQkJCTxoND5HZXN0aW9uYXIgbGFzIHByZWZlcmVuY2lhcyBkZSBjb25zZW50aW1pZW50bzwvaDQ+CgkJCQkJCTxkaXYgY2xhc3M9InByZWZjb24iPgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hrMSIgY2hlY2tlZD0iY2hlY2tlZCIgZGlzYWJsZWQ+PGxhYmVsIGZvcj0iY2hrMSI+Q29va2llcyB0w6ljbmljYXMgbmVjZXNhcmlhczwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGsxIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazEiPgoJCQkJCQkJCUxhcyBjb29raWVzIHTDqWNuaWNhcyBzb24gZXN0cmljdGFtZW50ZSBuZWNlc2FyaWFzIHBhcmEgcXVlIG51ZXN0cmEgcMOhZ2luYSB3ZWIgZnVuY2lvbmUgeSBwdWVkYXMgbmF2ZWdhciBwb3IgbGEgbWlzbWEuIEVzdGUgdGlwbyBkZSBjb29raWVzIHNvbiBsYXMgcXVlLCBwb3IgZWplbXBsbywgbm9zIHBlcm1pdGVuIGlkZW50aWZpY2FydGUsIGRhcnRlIGFjY2VzbyBhIGRldGVybWluYWRhcyBwYXJ0ZXMgcmVzdHJpbmdpZGFzIGRlIGxhIHDDoWdpbmEgc2kgZnVlc2UgbmVjZXNhcmlvLCBvIHJlY29yZGFyIGRpZmVyZW50ZXMgb3BjaW9uZXMgbyBzZXJ2aWNpb3MgeWEgc2VsZWNjaW9uYWRvcyBwb3IgdGksIGNvbW8gdHVzIHByZWZlcmVuY2lhcyBkZSBwcml2YWNpZGFkLiBQb3IgZWxsbywgZXN0w6FuIGFjdGl2YWRhcyBwb3IgZGVmZWN0bywgbm8gc2llbmRvIG5lY2VzYXJpYSB0dSBhdXRvcml6YWNpw7NuIGFsIHJlc3BlY3RvLgoJCQkJCQkJCUEgdHJhdsOpcyBkZSBsYSBjb25maWd1cmFjacOzbiBkZSB0dSBuYXZlZ2Fkb3IsIHB1ZWRlcyBibG9xdWVhciBvIGFsZXJ0YXIgZGUgbGEgcHJlc2VuY2lhIGRlIGVzdGUgdGlwbyBkZSBjb29raWVzLCBzaSBiaWVuIGRpY2hvIGJsb3F1ZW8gYWZlY3RhcsOhIGFsIGNvcnJlY3RvIGZ1bmNpb25hbWllbnRvIGRlIGxhcyBkaXN0aW50YXMgZnVuY2lvbmFsaWRhZGVzIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIuCgkJCQkJCQkJPGJyLz48YnIvPgoJCQkJCQkJPC9kaXY+CgkJCQkJCQkKCQkJCQkJCTxkaXYgY2xhc3M9ImNjbGVhciI+PC9kaXY+CgkJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQ9ImNoZWNrZWQiIGlkPSJjaGsyIj48bGFiZWwgZm9yPSJjaGsyIj5Db29raWVzIGRlIGFuw6FsaXNpczwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGsyIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazIiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIGFuw6FsaXNpcyBub3MgcGVybWl0ZW4gZXN0dWRpYXIgbGEgbmF2ZWdhY2nDs24gZGUgbG9zIHVzdWFyaW9zIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIgZW4gZ2VuZXJhbCAocG9yIGVqZW1wbG8sIHF1w6kgc2VjY2lvbmVzIGRlIGxhIHDDoWdpbmEgc29uIGxhcyBtw6FzIHZpc2l0YWRhcywgcXXDqSBzZXJ2aWNpb3Mgc2UgdXNhbiBtw6FzIHkgc2kgZnVuY2lvbmFuIGNvcnJlY3RhbWVudGUsIGV0Yy4pLiAKCQkJCQkJCQlBIHBhcnRpciBkZSBsYSBpbmZvcm1hY2nDs24gZXN0YWTDrXN0aWNhIHNvYnJlIGxhIG5hdmVnYWNpw7NuIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIsIHBvZGVtb3MgbWVqb3JhciB0YW50byBlbCBwcm9waW8gZnVuY2lvbmFtaWVudG8gZGUgbGEgcMOhZ2luYSBjb21vIGxvcyBkaXN0aW50b3Mgc2VydmljaW9zIHF1ZSBvZnJlY2UuIFBvciB0YW50bywgZXN0YXMgY29va2llcyBubyB0aWVuZW4gdW5hIGZpbmFsaWRhZCBwdWJsaWNpdGFyaWEsIHNpbm8gcXVlIMO6bmljYW1lbnRlIHNpcnZlbiBwYXJhIHF1ZSBudWVzdHJhIHDDoWdpbmEgd2ViIGZ1bmNpb25lIG1lam9yLCBhZGFwdMOhbmRvc2UgYSBudWVzdHJvcyB1c3VhcmlvcyBlbiBnZW5lcmFsLiBBY3RpdsOhbmRvbGFzIGNvbnRyaWJ1aXLDoXMgYSBkaWNoYSBtZWpvcmEgY29udGludWEuCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPSJjaGVja2VkIiBpZD0iY2hrMyI+PGxhYmVsIGZvcj0iY2hrMyI+Q29va2llcyBkZSBmdW5jaW9uYWxpZGFkIHkgcGVyc29uYWxpemFjacOzbjwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGszIj4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazMiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIGZ1bmNpb25hbGlkYWQgbm9zIHBlcm1pdGVuIHJlY29yZGFyIHR1cyBwcmVmZXJlbmNpYXMsIHBhcmEgcGVyc29uYWxpemFyIGEgdHUgbWVkaWRhIGRldGVybWluYWRhcyBjYXJhY3RlcsOtc3RpY2FzIHkgb3BjaW9uZXMgZ2VuZXJhbGVzIGRlIG51ZXN0cmEgcMOhZ2luYSB3ZWIsIGNhZGEgdmV6IHF1ZSBhY2NlZGFzIGEgbGEgbWlzbWEgKHBvciBlamVtcGxvLCBlbCBpZGlvbWEgZW4gcXVlIHNlIHRlIHByZXNlbnRhIGxhIGluZm9ybWFjacOzbiwgbGFzIHNlY2Npb25lcyBtYXJjYWRhcyBjb21vIGZhdm9yaXRhcywgdHUgdGlwbyBkZSBuYXZlZ2Fkb3IsIGV0Yy4pLgoJCQkJCQkJCVBvciB0YW50bywgZXN0ZSB0aXBvIGRlIGNvb2tpZXMgbm8gdGllbmVuIHVuYSBmaW5hbGlkYWQgcHVibGljaXRhcmlhLCBzaW5vIHF1ZSBhY3RpdsOhbmRvbGFzIG1lam9yYXLDoXMgbGEgZnVuY2lvbmFsaWRhZCBkZSBsYSBww6FnaW5hIHdlYiAocG9yIGVqZW1wbG8sIGFkYXB0w6FuZG9zZSBhIHR1IHRpcG8gZGUgbmF2ZWdhZG9yKSB5IGxhIHBlcnNvbmFsaXphY2nDs24gZGUgbGEgbWlzbWEgZW4gYmFzZSBhIHR1cyBwcmVmZXJlbmNpYXMgKHBvciBlamVtcGxvLCBwcmVzZW50YW5kbyBsYSBpbmZvcm1hY2nDs24gZW4gZWwgaWRpb21hIHF1ZSBoYXlhcyBlc2NvZ2lkbyBlbiBhbnRlcmlvcmVzIG9jYXNpb25lcyksIGxvIGN1YWwgY29udHJpYnVpcsOhIGEgbGEgZmFjaWxpZGFkLCB1c2FiaWxpZGFkIHkgY29tb2RpZGFkIGRlIG51ZXN0cmEgcMOhZ2luYSBkdXJhbnRlIHR1IG5hdmVnYWNpw7NuLgoJCQkJCQkJCVB1ZWRlcyBhY3RpdmFyIG8gZGVzYWN0aXZhciBlc3RhcyBjb29raWVzIG1hcmNhbmRvIGxhIGNhc2lsbGEgY29ycmVzcG9uZGllbnRlLCBlc3RhbmRvIGRlc2FjdGl2YWRhcyBwb3IgZGVmZWN0by4KCQkJCQkJCQk8YnIvPjxici8+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCQoJCQkJCQkJPGRpdiBjbGFzcz0iY2NsZWFyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9ImNoazQiPjxsYWJlbCBmb3I9ImNoazQiPkNvb2tpZXMgZGUgcHVibGljaWRhZDwvbGFiZWw+PHNwYW4gaHJlZj0iI05vbmUiIGNsYXNzPSJjcGx1c2ljb24iIGRhdGEtdGFiPSJjaGs0Ij4rPC9zcGFuPgoJCQkJCQkJPGRpdiBjbGFzcz0iIiBkYXRhLXRhYmM9ImNoazQiPgoJCQkJCQkJCUxhcyBjb29raWVzIGRlIHB1YmxpY2lkYWQgbm9zIHBlcm1pdGVuIGxhIGdlc3Rpw7NuIGRlIGxvcyBlc3BhY2lvcyBwdWJsaWNpdGFyaW9zIGluY2x1aWRvcyBlbiBudWVzdHJhIHDDoWdpbmEgd2ViIGVuIGJhc2UgYSBjcml0ZXJpb3MgY29tbyBlbCBjb250ZW5pZG8gbW9zdHJhZG8gbyBsYSBmcmVjdWVuY2lhIGVuIGxhIHF1ZSBzZSBtdWVzdHJhbiBsb3MgYW51bmNpb3MuCgkJCQkJCQkJQXPDrSBwb3IgZWplbXBsbywgc2kgc2UgdGUgaGEgbW9zdHJhZG8gdmFyaWFzIHZlY2VzIHVuIG1pc21vIGFudW5jaW8gZW4gbnVlc3RyYSBww6FnaW5hIHdlYiwgeSBubyBoYXMgbW9zdHJhZG8gdW4gaW50ZXLDqXMgcGVyc29uYWwgaGFjaWVuZG8gY2xpYyBzb2JyZSDDqWwsIGVzdGUgbm8gdm9sdmVyw6EgYSBhcGFyZWNlci4gRW4gcmVzdW1lbiwgYWN0aXZhbmRvIGVzdGUgdGlwbyBkZSBjb29raWVzLCBsYSBwdWJsaWNpZGFkIG1vc3RyYWRhIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIgc2Vyw6EgbcOhcyDDunRpbCB5IGRpdmVyc2EsIHkgbWVub3MgcmVwZXRpdGl2YS4gCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJCgkJCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPSJjaGVja2VkIiBpZD0iY2hrNSI+PGxhYmVsIGZvcj0iY2hrNSI+Q29va2llcyBkZSBwdWJsaWNpZGFkIGNvbXBvcnRhbWVudGFsPC9sYWJlbD48c3BhbiBocmVmPSIjTm9uZSIgY2xhc3M9ImNwbHVzaWNvbiIgZGF0YS10YWI9ImNoazUiPis8L3NwYW4+CgkJCQkJCQk8ZGl2IGNsYXNzPSIiIGRhdGEtdGFiYz0iY2hrNSI+CgkJCQkJCQkJTGFzIGNvb2tpZXMgZGUgcHVibGljaWRhZCBjb21wb3J0YW1lbnRhbCBub3MgcGVybWl0ZW4gb2J0ZW5lciBpbmZvcm1hY2nDs24gYmFzYWRhIGVuIGxhIG9ic2VydmFjacOzbiBkZSB0dXMgaMOhYml0b3MgeSBjb21wb3J0YW1pZW50b3MgZGUgbmF2ZWdhY2nDs24gZW4gbGEgd2ViLCBhIGZpbiBkZSBwb2RlciBtb3N0cmFydGUgY29udGVuaWRvcyBwdWJsaWNpdGFyaW9zIHF1ZSBzZSBhanVzdGVuIG1lam9yIGEgdHVzIGd1c3RvcyBlIGludGVyZXNlcyBwZXJzb25hbGVzLgoJCQkJCQkJCVBhcmEgcXVlIGxvIGVudGllbmRhcyBkZSBtYW5lcmEgbXV5IHNlbmNpbGxhLCB0ZSBwb25kcmVtb3MgdW4gZWplbXBsbyBmaWN0aWNpbzogc2kgdHVzIMO6bHRpbWFzIGLDunNxdWVkYXMgZW4gbGEgd2ViIGVzdHV2aWVzZW4gcmVsYWNpb25hZGFzIGNvbiBsaXRlcmF0dXJhIGRlIHN1c3BlbnNlLCB0ZSBtb3N0cmFyw61hbW9zIHB1YmxpY2lkYWQgc29icmUgbGlicm9zIGRlIHN1c3BlbnNlLiAKCQkJCQkJCQlQb3IgdGFudG8sIGFjdGl2YW5kbyBlc3RlIHRpcG8gZGUgY29va2llcywgbGEgcHVibGljaWRhZCBxdWUgdGUgbW9zdHJlbW9zIGVuIG51ZXN0cmEgcMOhZ2luYSB3ZWIgbm8gc2Vyw6EgZ2Vuw6lyaWNhLCBzaW5vIHF1ZSBlc3RhcsOhIG9yaWVudGFkYSBhIHR1cyBiw7pzcXVlZGFzLCBndXN0b3MgZSBpbnRlcmVzZXMsIGFqdXN0w6FuZG9zZSBwb3IgdGFudG8gZXhjbHVzaXZhbWVudGUgYSB0aS4KCQkJCQkJCQlQdWVkZXMgYWN0aXZhciBvIGRlc2FjdGl2YXIgZXN0YXMgY29va2llcyBtYXJjYW5kbyBsYSBjYXNpbGxhIGNvcnJlc3BvbmRpZW50ZSwgZXN0YW5kbyBkZXNhY3RpdmFkYXMgcG9yIGRlZmVjdG8uCgkJCQkJCQkJPGJyLz4KCQkJCQkJCQlQYXJhIHF1ZSBsbyBlbnRpZW5kYXMgZGUgbWFuZXJhIG11eSBzZW5jaWxsYSwgdGUgcG9uZHJlbW9zIHVuIGVqZW1wbG8gZmljdGljaW86IHNpIHR1cyDDumx0aW1hcyBiw7pzcXVlZGFzIGVuIGxhIHdlYiBlc3R1dmllc2VuIHJlbGFjaW9uYWRhcyBjb24gbGl0ZXJhdHVyYSBkZSBzdXNwZW5zZSwgdGUgbW9zdHJhcsOtYW1vcyBwdWJsaWNpZGFkIHNvYnJlIGxpYnJvcyBkZSBzdXNwZW5zZS4gCgkJCQkJCQkJUG9yIHRhbnRvLCBhY3RpdmFuZG8gZXN0ZSB0aXBvIGRlIGNvb2tpZXMsIGxhIHB1YmxpY2lkYWQgcXVlIHRlIG1vc3RyZW1vcyBlbiBudWVzdHJhIHDDoWdpbmEgd2ViIG5vIHNlcsOhIGdlbsOpcmljYSwgc2lubyBxdWUgZXN0YXLDoSBvcmllbnRhZGEgYSB0dXMgYsO6c3F1ZWRhcywgZ3VzdG9zIGUgaW50ZXJlc2VzLCBhanVzdMOhbmRvc2UgcG9yIHRhbnRvIGV4Y2x1c2l2YW1lbnRlIGEgdGkuCgkJCQkJCQkJUHVlZGVzIGFjdGl2YXIgbyBkZXNhY3RpdmFyIGVzdGFzIGNvb2tpZXMgbWFyY2FuZG8gbGEgY2FzaWxsYSBjb3JyZXNwb25kaWVudGUsIGVzdGFuZG8gZGVzYWN0aXZhZGFzIHBvciBkZWZlY3RvLgoJCQkJCQkJCTxici8+PGJyLz4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjbXQiPgoJCQkJCQk8YSBocmVmPSIjTm9uZSIgaWQ9IiIgY2xhc3M9ImNidXR0b24gY29va2llcy1hY2NlcHQiPkFDRVBUQVIgVE9EQVM8L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbiBjb29raWVzLXNhdmUiPkdVQVJEQVIgQ09ORklHVVJBQ0nDk048L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbi0yIGNvb2tpZXMtbmVlZGVkIGNvb2tpZXMtcmVqZWN0Ij5SRUNIQVpBUiBUT0RBUzwvYT4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJjY29udGVudCBmaXJzdHBhZ2UiPgoJCQkJCTxkaXYgY2xhc3M9IiI+CgkJCQkJCTxoND5Db25maWd1cmFjacOzbiBkZSBDb29raWVzPC9oND4KCQkJCQkJVXRpbGl6YW1vcyBjb29raWVzIHByb3BpYXMgeSBkZSB0ZXJjZXJvcyBwYXJhIGFuYWxpemFyIG51ZXN0cm9zIHNlcnZpY2lvcyB5IG1vc3RyYXJ0ZSBwdWJsaWNpZGFkIHJlbGFjaW9uYWRhIGNvbiB0dXMgcHJlZmVyZW5jaWFzIGVuIGJhc2UgYSB1biBwZXJmaWwgZWxhYm9yYWRvIGEgcGFydGlyIGRlIHR1cyBow6FiaXRvcyBkZSBuYXZlZ2FjacOzbiAocG9yIGVqZW1wbG8sIHDDoWdpbmFzIHZpc2l0YWRhcykuIFB1ZWRlcyBhY2VwdGFyIHRvZGFzIGVzdGFzIGNvb2tpZXMgcHVsc2FuZG8gZWwgYm90w7NuIEFDRVBUQVIgbyBjb25maWd1cmFybGFzIG8gcmVjaGF6YXIgc3UgdXNvIGNsaWNhbmRvIGVuIGVsIGFwYXJ0YWRvIDxhIGhyZWY9IiNOb25lIiBjbGFzcz0iY29va2llLXByZWYiPkNPTkZJR1VSQUNJw5NOIERFIENPT0tJRVM8L2E+LgoJCQkJCQk8YnIgLz48YnIgLz4KCQkJCQkJU2kgcXVpZXJlcyBtw6FzIGluZm9ybWFjacOzbiwgY29uc3VsdGEgbGEgPGEgaHJlZj0iL3BvbGl0aWNhLWRlLWNvb2tpZXMvIj5Qb2zDrXRpY2EgZGUgQ29va2llczwvYT4geSA8YSBocmVmPSIjTm9uZSIgY2xhc3M9ImNvb2tpZS1wcmVmIj5MaXN0YSBkZSBDb29raWVzPC9hPiBkZQoJCQkJCQludWVzdHJhIHDDoWdpbmEgd2ViLgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImNtdCI+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbiBjb29raWVzLWFjY2VwdCI+QUNFUFRBUiBUT0RBUzwvYT4KCQkJCQkJPGEgaHJlZj0iI05vbmUiIGlkPSIiIGNsYXNzPSJjb29raWUtcHJlZiBjYnV0dG9uIj5DT05GSUdVUkFSIENPT0tJRVM8L2E+CgkJCQkJCTxhIGhyZWY9IiNOb25lIiBpZD0iIiBjbGFzcz0iY2J1dHRvbi0yIGNvb2tpZXMtbmVlZGVkIGNvb2tpZXMtcmVqZWN0Ij5SRUNIQVpBUiBUT0RBUzwvYT4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJjY2xlYXIiPjwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2Pgo8c2NyaXB0Pgp2YXIgaGV4Y29va2llQmFzZSA9ICIvaENvb2tpZXMiOyAvKmpRdWVyeSBsb2FkZWQgb24gRE9NIGNoZWNrKi8KaWYgKHR5cGVvZiBqUXVlcnkgPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHZhciBUQUcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwogICAgdmFyIGpxVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBqcVRhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBqcVRhZy5zcmMgPSBoZXhjb29raWVCYXNlICsgJy9saWJzLmpxdWVyeS5jb29raWVzLmpzJzsKICAgIFRBRy5hcHBlbmRDaGlsZChqcVRhZyk7CiAgICBpZiAobmF2aWdhdG9yLmFwcE5hbWUuaW5kZXhPZigiSW50ZXJuZXQgRXhwbG9yZXIiKSAhPSAtMSkgewogICAgICAgIC8qSWYgSUUqLwogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEhleEluaXQoKTsKICAgICAgICB9LCAxMDAwKTsKICAgIH0gZWxzZSB7CiAgICAgICAganFUYWcub25sb2FkID0gSGV4SW5pdDsKICAgIH0KfSBlbHNlIHsKICAgIHZhciBUQUcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwogICAgdmFyIGpxVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBqcVRhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBqcVRhZy5zcmMgPSBoZXhjb29raWVCYXNlICsgJy9saWJzLmNvb2tpZS5qcyc7CiAgICBUQUcuYXBwZW5kQ2hpbGQoanFUYWcpOwogICAganFUYWcub25sb2FkID0gSGV4SW5pdDsKICAgIGlmIChuYXZpZ2F0b3IuYXBwTmFtZS5pbmRleE9mKCJJbnRlcm5ldCBFeHBsb3JlciIpICE9IC0xKSB7CiAgICAgICAgLypJZiBJRSovCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgSGV4SW5pdCgpOwogICAgICAgIH0sIDEwMDApOwogICAgfSBlbHNlIHsKICAgICAgICBqcVRhZy5vbmxvYWQgPSBIZXhJbml0OwogICAgfQp9CgpmdW5jdGlvbiBIZXhJbml0KCkgeyAKCWpRdWVyeS5leHRlbmQoewoJCWVtcHR5OiBmdW5jdGlvbiAobykgewoJCQlpZiAoIWpRdWVyeS5pc0Z1bmN0aW9uKG8pICYmIChvID09IG51bGwgfHwgbyA9PSB1bmRlZmluZWQgfHwgbyA9PSAiIiB8fCBvLmxlbmd0aCA9PSAwKSkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQkJcmV0dXJuIGZhbHNlCgkJfQoJfSk7CgkKCWlmIChqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIikgIT0gIjEiKSB7CgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuY3NzKHsKCQkJImRpc3BsYXkiOiAiZmxleCIKCQl9KTsKCX0KCQoJalF1ZXJ5KCIjY29va2llcy1jb25maWciKS5jbGljayhmdW5jdGlvbigpewoJCWpRdWVyeSgiYm9keSAuY29va2llcyIpLmNzcyh7CgkJCSJkaXNwbGF5IjogImZsZXgiCgkJfSk7Cgl9KTsJCgkKCS8qU2F2ZWQgb3B0aW9ucyovCglpZihqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTEiKSA9PSAiMSIpIHsKCQlqUXVlcnkoIiNjaGsxIikuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKTsKCX0KCWlmKGpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIpID09ICIxIikgewoJCWpRdWVyeSgiI2NoazIiKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpOwoJfQoJaWYoalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0zIikgPT0gIjEiKSB7CgkJalF1ZXJ5KCIjY2hrMyIpLmF0dHIoImNoZWNrZWQiLCJjaGVja2VkIik7Cgl9CglpZihqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTQiKSA9PSAiMSIpIHsKCQlqUXVlcnkoIiNjaGs0IikuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKTsKCX0KCWlmKGpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIpID09ICIxIikgewoJCWpRdWVyeSgiI2NoazUiKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpOwoJfQoJCgkvKkdvb2dsZSBBbmFseXRpY3MqLwoJaWYoalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0yIikgIT0gIjEiKSB7CgkJLypSZW1vdmUgdGFnKi8KCQlqUXVlcnkoInNjcmlwdDpjb250YWlucyhnb29nbGV0YWdtYW5hZ2VyKSIpLnJlbW92ZSgpOwoJfQoJCQoJalF1ZXJ5KCIuY29va2llLXByZWYsIGE6Y29udGFpbnMoJ0NvbmZpZ3VyYWRvciBkZSBDb29raWVzJykiKS5jbGljayhmdW5jdGlvbiAoKSB7CgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuc2hvdygpOwoJCWpRdWVyeSgiLnByZWZlcmVuY2VzIikucmVtb3ZlQ2xhc3MoImNoaWRlIik7CgkJalF1ZXJ5KCIuY29va2llcyIpLmFkZENsYXNzKCJwcmVmZXJlbmNlIik7CgkJalF1ZXJ5KCIuZmlyc3RwYWdlIikuYWRkQ2xhc3MoImNoaWRlIik7Cgl9KTsKCQoJLypDbG9zZSBidXR0b24qLwoJalF1ZXJ5KCIuY29va2llcy1zYXZlIikuY2xpY2soZnVuY3Rpb24oKXsKCQoJCS8qQ3VzdG9tIGNoZWNrcyovCgkJaWYoalF1ZXJ5KCIjY2hrMSIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrMiIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMiIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrMyIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrNCIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJaWYoalF1ZXJ5KCIjY2hrNSIpLmlzKCI6Y2hlY2tlZCIpICl7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJfWVsc2V7CgkJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNSIsIiIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQl9CgkJCgkJLypDb29raWVzIGFjY2VwdCBhbmQgc2F2ZWQqLwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQiLCIxIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCQoJCS8qSGlkZSBkaXNjbGFpbWVyKi8KCQlqUXVlcnkoImJvZHkgLmNvb2tpZXMiKS5oaWRlKCk7Cgl9KTsKCQoJalF1ZXJ5KCIuY29va2llcy1uZWVkZWQiKS5jbGljayhmdW5jdGlvbigpewoJCgkJLypORUVERUQgQ09PS0lFUyovCgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0xIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTIiLCIwIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMyIsIjAiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC00IiwiMCIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTUiLCIwIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCQoJCWpRdWVyeSgiI2NoazEiKS5wcm9wKCAiY2hlY2tlZCIsIHRydWUgKTsKCQlqUXVlcnkoIiNjaGsyIikucHJvcCggImNoZWNrZWQiLCBmYWxzZSApOwoJCWpRdWVyeSgiI2NoazMiKS5wcm9wKCAiY2hlY2tlZCIsIGZhbHNlICk7CgkJalF1ZXJ5KCIjY2hrNCIpLnByb3AoICJjaGVja2VkIiwgZmFsc2UgKTsKCQlqUXVlcnkoIiNjaGs1IikucHJvcCggImNoZWNrZWQiLCBmYWxzZSApOwoJCQoJCS8qQ29va2llcyBhY2NlcHQgYW5kIHNhdmVkKi8KCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQkvKkhpZGUgZGlzY2xhaW1lciovCgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuaGlkZSgpOwoJfSk7CgkKCWpRdWVyeSgiLmNvb2tpZXMtYWNjZXB0IikuY2xpY2soZnVuY3Rpb24oKXsKCQoJCS8qQUxMIENPT0tJRVMqLwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtMSIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC0yIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkLTMiLCIxIix7IGV4cGlyZXM6IDM2NSwgcGF0aDogJy8nIH0pOwoJCWpRdWVyeS5jb29raWUoIkhleENvb2tpZVNlZWQtNCIsIjEiLHsgZXhwaXJlczogMzY1LCBwYXRoOiAnLycgfSk7CgkJalF1ZXJ5LmNvb2tpZSgiSGV4Q29va2llU2VlZC01IiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQlqUXVlcnkoIiNjaGsxIikucHJvcCggImNoZWNrZWQiLCB0cnVlICk7CgkJalF1ZXJ5KCIjY2hrMiIpLnByb3AoICJjaGVja2VkIiwgdHJ1ZSApOwoJCWpRdWVyeSgiI2NoazMiKS5wcm9wKCAiY2hlY2tlZCIsIHRydWUgKTsKCQlqUXVlcnkoIiNjaGs0IikucHJvcCggImNoZWNrZWQiLCB0cnVlICk7CgkJalF1ZXJ5KCIjY2hrNSIpLnByb3AoICJjaGVja2VkIiwgdHJ1ZSApOwoJCQoJCS8qQ29va2llcyBhY2NlcHQgYW5kIHNhdmVkKi8KCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwiMSIseyBleHBpcmVzOiAzNjUsIHBhdGg6ICcvJyB9KTsKCQkKCQkvKkhpZGUgZGlzY2xhaW1lciovCgkJalF1ZXJ5KCJib2R5IC5jb29raWVzIikuaGlkZSgpOwoJfSk7CgkKCWpRdWVyeSgiLmNvb2tpZXMtcmVqZWN0IikuY2xpY2soZnVuY3Rpb24gKCkgeyAKCQlqUXVlcnkuY29va2llKCJIZXhDb29raWVTZWVkIiwgIjEiLCB7CgkJCWV4cGlyZXM6IDM2NSwKCQkJcGF0aDogJy8nCgkJfSk7IAoJCWpRdWVyeSgiYm9keSAuY29va2llcyIpLmhpZGUoKTsKCX0pOwoJCglqUXVlcnkoIi5jb29raWVwcmVmIikuY2xpY2soZnVuY3Rpb24oKXsKCQlqUXVlcnkoIiNjb29raWUtcHJlZiIpLnRyaWdnZXIoImNsaWNrIik7Cgl9KTsKCQoJLy/ilr0g4pazCglqUXVlcnkoIi5jb29raWVzIFtkYXRhLXRhYmNdIikuYWRkQ2xhc3MoImNoaWRlIik7CglqUXVlcnkoIi5jb29raWVzIC5jcGx1c2ljb24iKS5jbGljayhmdW5jdGlvbigpewoJCXZhciBvcmdTdGF0ZSA9IGpRdWVyeSh0aGlzKS5odG1sKCkrIiI7CgkJCgkJalF1ZXJ5KCIuY29va2llcyBbZGF0YS10YWJjXSIpLmFkZENsYXNzKCJjaGlkZSIpOwoJCWpRdWVyeSgiLmNvb2tpZXMgW2RhdGEtdGFiXSIpLmh0bWwoIisiKTsKCQlqUXVlcnkoIi5jb29raWVzIFtkYXRhLXRhYl0iKS5hdHRyKCJzdHlsZSIsIiIpOwoJCQoJCWlmKCBvcmdTdGF0ZS5pbmRleE9mKCIrIikgPj0gMCl7CgkJCXZhciB0YWJTZWwgPSBqUXVlcnkodGhpcykuYXR0cigiZGF0YS10YWIiKTsKCQkJalF1ZXJ5KHRoaXMpLmh0bWwoIi0iKTsKCQkJalF1ZXJ5KHRoaXMpLmF0dHIoInN0eWxlIiwicGFkZGluZy1sZWZ0OjdweDsiKTsKCQkJalF1ZXJ5KCIuY29va2llcyBbZGF0YS10YWJjPSciK3RhYlNlbCsiJ10iKS5yZW1vdmVDbGFzcygiY2hpZGUiKTsKCQl9Cgl9KTsKfQo8L3NjcmlwdD4KPHN0eWxlPgovKkNvbG9ycyBDU1MqLwouY29va2llcyAucHJlZmNvbnsKCW1heC1oZWlnaHQ6NTB2aDsKICAgIHBhZGRpbmc6IDAgMjBweCAwIDA7CglvdmVyZmxvdy15OnNjcm9sbDsKfQouY29va2llcyAuY2NsZWFyewoJY2xlYXI6Ym90aDsKfQoKCi5jb29raWVzIC5jcGx1c2ljb257CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogIzAwMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBwYWRkaW5nOiAwcHggMCAwIDBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHdpZHRoOiAxOHB4OwogICAgaGVpZ2h0OiAxOHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbWFyZ2luOiAycHggMCAwIDA7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Ci5jb29raWVzIC5jcGx1c2ljb246aG92ZXJ7CiAgICBjb2xvcjogIzY2NjsKfQogLmNvb2tpZXMgYXsKICAgICBjb2xvcjojMDAwOwp9CiAuY29va2llcyAuY210ewoJIG1hcmdpbi10b3A6MjBweDsKfQogLmNvb2tpZXMgLmNjb250ZW50IGEud2hpdGV7CiAgICAgY29sb3I6IzAwMDsKfQogLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uewogICAgIGJhY2tncm91bmQ6I2ZmZjsKCWJvcmRlci1jb2xvcjogIzAwMDsKCWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7Cglib3JkZXI6IDJweCBzb2xpZDsKfQouY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24tMnsKICAgIGJhY2tncm91bmQ6I2ZmZjsKCWJvcmRlci1jb2xvcjogIzAwMDsKCWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7Cglib3JkZXI6IDJweCBzb2xpZDsKfQovKkdlbmVyYWwgQ1NTKi8KCSNjb29raWVzLWNvbmZpZyB7CgkJY3Vyc29yOnBvaW50ZXI7Cgl9CiAuY29va2llcyAqewogICAgIGZvbnQtc2l6ZToxMnB4OwogICAgIGxpbmUtaGVpZ2h0OjIwcHg7CiAgICAgY29sb3I6IzAwMDsKfQouY29va2llcyBoNCB7Cglmb250LXNpemU6IDI0cHggIWltcG9ydGFudDsKCWxpbmUtaGVpZ2h0OiAyOHB4OwoJZm9udC13ZWlnaHQ6IDcwMDsKfQogLmNvb2tpZXMgYXsKICAgICBmb250LXNpemU6MTBweDsKfQogLmNvb2tpZXMgYTpob3ZlcnsKICAgICBmb250LXNpemU6MTBweCAhaW1wb3J0YW50Owp9CiAuY29va2llcyAud3JpZ2h0IGF7CiAgICAgZm9udC1zaXplOjE2cHggIWltcG9ydGFudDsKfQouY29va2llc3sgICAgIAogICAgIHBvc2l0aW9uOmZpeGVkOwkKCSBkaXNwbGF5Om5vbmU7CiAgICAgYm90dG9tOiA0MHB4OwogICAgIGxlZnQ6IDUwJTsKCSB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgei1pbmRleDo5OTk5OwoJIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgIGJvcmRlcjogMXB4IHNvbGlkICNGRjAwMDA7CgkgdmVydGljYWwtYWxpZ246Ym90dG9tOwoJIGJveC1zaGFkb3c6IDEwcHggMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKfQogLmNvb2tpZXMgLmNjb29raWV7CgkgYWxpZ24tc2VsZjogY2VudGVyOwogICAgIHdpZHRoOjY1MHB4OwogICAgIGhlaWdodDphdXRvOwoJIG1hcmdpbjogYXV0bzsKfQogLmNvb2tpZXMgLmNjb250ZW50ewogICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSk7CiAgICAgY29sb3I6IzMzMzsKICAgICBwYWRkaW5nOjQwcHg7CiAgICAgZm9udC1zaXplOjEwcHg7Cn0KIC5jb29raWVzIC5jY29udGVudC5wcmVmZXJlbmNlcyBpbnB1dHsKICAgICB3aWR0aDphdXRvOwogICAgIG1hcmdpbjogMCAxMHB4IDAgMDsKfQogLmNvb2tpZXMgLmNjb250ZW50LnByZWZlcmVuY2VzIGxhYmVsewogICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CiAgICAgY3Vyc29yOnBvaW50ZXI7Cn0KIC5jb29raWVzIC5jY29udGVudCBhewogICAgIG1hcmdpbjowcHg7CiAgICAgZm9udC13ZWlnaHQ6NDAwOwp9CiAuY29va2llcyAuY2NvbnRlbnQgYTpob3ZlcnsKICAgICBjb2xvcjojMDAwOwogICAgIGZvbnQtc2l6ZToxMnB4Owp9CiAuY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24sIC5jb29raWVzIC5jY29udGVudCAuY2J1dHRvbi0yewogICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwogICAgIGNvbG9yOiMzMzM7CiAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CgkgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICAgZm9udC13ZWlnaHQ6NjAwOwogICAgIGZvbnQtc2l6ZToxMXB4ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAxMHB4IDJweDsKICAgIG1hcmdpbjogMHB4IDAgMTBweCAwOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgd2lkdGg6IDMyJTsKfQogLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uOmhvdmVyLCAgLmNvb2tpZXMgLmNjb250ZW50IC5jYnV0dG9uLTI6aG92ZXJ7CiAgICAgYmFja2dyb3VuZDojMzMzOwogICAgIGNvbG9yOiNmZmYhaW1wb3J0YW50Owp9CiAuY29va2llcyAuY2NsZWFyewogICAgIGNsZWFyOmJvdGg7Cn0KIC5jb29raWVzIGxhYmVsIHsKCXZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICBtYXJnaW4tdG9wOiAtMnB4Owp9CkBtZWRpYSAobWF4LXdpZHRoOiA5NzZweCkgewoJLmNvb2tpZXMgLnByZWZjb24gewoJCW1heC1oZWlnaHQ6IDQwdmg7Cgl9CgkuY29va2llcyBoNCB7CgkJZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7CgkJbGluZS1oZWlnaHQ6IDI0cHg7Cgl9CiAuY29va2llc3sgICAgIAogICAgIHBvc2l0aW9uOmZpeGVkOwkKCSBkaXNwbGF5Om5vbmU7CiAgICAgYm90dG9tOiAwOwogICAgIGxlZnQ6IDA7CiAgICAgd2lkdGg6MTAwJTsKICAgICBtYXgtaGVpZ2h0OjEwMCU7CgkgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsKCSBvdmVyZmxvdy15OnNjcm9sbDsKfQogLmNvb2tpZXMgLmNjb29raWV7CiAgICAgd2lkdGg6MTAwJTsKICAgICBoZWlnaHQ6MTAwJTsKfQoJLmNvb2tpZXMgbGFiZWwgewoJCW1hcmdpbi1sZWZ0OiAzcHg7CgkJbWFyZ2luLXJpZ2h0OiA1cHg7Cgl9CgkuY29va2llcyAuY2NvbnRlbnQgewoJCXBhZGRpbmc6IDE1cHg7Cgl9CgkuY29va2llcyAuY2NvbnRlbnQgLmNidXR0b24sIC5jb29raWVzIC5jY29udGVudCAuY2J1dHRvbi0yewoJCXdpZHRoOiAxMDAlOwoJfQp9CiAuY2hpZGV7CiAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4=