Performance Products

Performance Products

MENADIONA is a manufacturer of Special Chemicals used in a myriad of market segments. Our products allow our customers to develop differentiated and unique properties for their portfolio.
AZIRIDINES, CROSSLINKERS, AZIRIDINE DERIVATIVES, INTERMEDIATES, CMO

Aziridines

Ethyleneimine (EI), also known as aziridine, is a 3 member heterocyclic secondary amine that offers many possibilities to the active professionals in the field of organic synthesis. It is widely used in imination reactions as well as in the addition of reactive groups. MENADIONA is a leading player in manufacturing EI (ethylene imine) and PI (propylenen imine). The extensive expertise in handling such hazardous materials enables us to offer the most comprehensive service:

  • Special packaging for shipments to guarantee a professional and safe delivery, regardless of the location of your site and volume of your request.
  • Continuous production operation allows us to provide very short lead times, having also a safety stock in order to be able to react when demand reaches its peak.
  • Training your staff on the use and storage of these delicate products.
  • “One stop shop”. We toll convert under your specifications any intermediate or polymer where our EI or PI is going to be used. This vertical integration guarantees your product is manufactured up to the highest SHE standards at a very competitive cost.

View products   

Crosslinkers

Polyfunctional aziridines (PFAZ) crosslinkers are the most effective option for 2K water based systems.

Widely used in formulations for textile printing, leather finishing, PSA adhesives, wood varnishes and paper and film converters. Niche application like special inks and polarizing films take full advantage of the unique properties of this chemistry.

MENADIONA offers customized products with different functionalities and pot life. Recent developments include a new range of ultrapure (no free monomers) crosslinkers and 4,4'-Methylenedianiline (MDA) free, addressed to premium applications that need an improved SHE profile.

Customer orientation purposes are elemental here at MENADIONA, thus, maintaining an outstanding OTIF (On Time in Full) service performance is essential for us.

The R&D and Operations team will be more than pleased to receive your requests and enquiries and ready to approach and develop differentiated PFAZ crosslinkers to meet your unique specifications. We can play with several combinations of monomers and acrylates as well as producing hybrid materials.

View products   

Aziridine Derivatives

Its unique vertical integration permits MENADIONA to offer a very flexible approach to any requirement of aziridine’s or propylene imine’s derivatives. We are ready to sign NDAs and partnerships with customers to develop and produce differentiated materials requiring such functionality, as a CONTRACT MANUFACTURER.

View products   

Intermediates

Our comprehensive know-how in organic chemistry, specializing in the handling of hazardous materials and effluents, positions MENADIONA as an ideal partner for Chemical Intermediates used in a wide range of industrial applications. Our customers are active in fields such as Coatings, Inks, Resins, Water treatment, Flavour&Fragances, Plastic additives, Lubricants, Adhesives, Fibers, Catalysts, Personal Care, Propellants etc.

View products   

Contract Manufacturing

MENADIONA is a well-known European company offering CONTRACT DEVELOPMENT and CONTRACT MANUFACTURING services for the Industrial Chemicals market.

MENADIONA provides large experience and capabilities to work with hazardous raw materials and controlled substances, is an important differential factor to many other CMOs.

We are highly focused on innovative products that require special know how and technology, regardless the application sectors.

Know more   

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=