Medau Therapy Services GmbH | Schloss Hohenfels| 96450 Coburg
Medau Therapy Services GmbH | Schloss Hohenfels| 96450 Coburg

LEITBILD MEDAU Therapy Services GmbH

Sich kontinuierlich weiter zu entwickeln und eine positive Unternehmenskultur mit Herz und großem Qualitätsbewusstsein zu wahren sind die Schlüsselfaktoren für den Erfolg von MEDAU. Hierbei schaffen wir ein attraktives Umfeld für Mitarbeiterinnen und Mitarbeiter. Das wirkt sich fördernd auf alle Bereiche aus und damit auch auf das Wohlbefinden der Beschäftigten sowie auf die Zufriedenheit unserer Patientinnen und Patienten.
Gemeinsam mit Vertretern aller Unternehmenszweige haben wir in einem Strategieprozess das MEDAU Leitbild entwickelt.

 

 

Ursprung, Werte und Qualität der Medau-Schule sind unser Fundament auf dem wir unser tägliches Handeln vollziehen

Wir sind aus der MEDAU-Schule entsprungen und nach wie vor eng mit unserem renommierten Ausbildungszentrum für Physiotherapie, Gymnastik, Logopädie und Ergotherapie verbunden. Auf diesem ganzheitlichen Ansatz beruht die Philosophie unseres täglichen Zusammenarbeitens mit unseren Mitmenschen sowie den Patientinnen und Patienten.
Unsere einzelnen Praxen in den Bereichen Physiotherapie, Logopädie und Ergotherapie sowie Prävention und Reha sind eng miteinander vernetzt und arbeiten zusammen. Unser ganzheitlicher Ansatz bietet die Möglichkeit, gezielt fokussiert Körperstrukturen und -funktionen unserer Patientinnen und Patienten zu verbessern, sie aber auch in ihrer Teilhabe am Alltags- und Berufsleben zu stärken.

 

 

Wir stärken regionale Gesundheitskompetenz durch den Einsatz innovativer Behandlungsmethoden

Unser Fokus ist auf unsere Mitmenschen ausgerichtet, welche wir behandeln. Wir wollen sie mit einer optimalen Behandlung gesundheitlich fördern, sie regelmäßig über ihren Gesundheitsstatus informieren und mit ihnen zusammen den weiteren Weg gesundheitsfördernder Maßnahmen festlegen. Hierfür stehen wir den neuen Herausforderungen, wie z.B. dem fortschreitenden demografischen Wandel oder sozio-kulturellen Umwälzungen, offen gegenüber und gestalten unsere Lösungen entsprechend.
Unser Ziel ist es, die Gesundheit unserer Mitmenschen sowie den Patientinnen und Patienten in der Region zu erhalten, zu fördern und durch innovative Ansätze zu verbessern. Unser Ziel erreichen wir durch mehr Flexibilität basierend auf unterschiedlichen Behandlungsmethoden. Unser umfangreiches Leistungsangebot setzt sich aus bewährten als auch innovativen Behandlungsmethoden, Anwendungen und Therapieverfahren zusammen.

 

 

Wir gestalten ein aktives Netzwerk zum Wohle der Patientinnen und Patienten.

Wir wollen mit unseren Ansätzen einer ganzheitlichen Betrachtung unserer Mitarbeitenden, Mitmenschen sowie den Patientinnen und Patienten, durch eine Betreuung in unterschiedlichen Situationen, sowie durch ein aktives Netzwerk mit Versorgern und Leistungserbringern der Region die Gesundheit weiter verbessern und fördern.
Neben der routinierten Umsetzung bewährter Behandlungsmethoden bieten wir neue, nach wissenschaftlichen Erkenntnissen wirksame Therapieverfahren an. Wir sind mit verschiedensten medizinischen Forschungseinrichtungen eng vernetzt, um innovative Behandlungsmethoden zusammen mit Kostenträgern unseren Mitmenschen zur Verfügung zu stellen.
Mit anderen Leistungserbringern in der Region wie Kliniken, ambulanten Praxen oder Gesundheitszentren arbeiten wir eng zusammen. 

 

Wir begegnen uns mit Wertschätzung und geben Raum zur Eigeninitiative

Unsere Mitarbeiterinnen und Mitarbeiter sorgen mit ihrer Leidenschaft und Ihrer Motivation für Ihr tägliches Tun für den Erfolg unserer Patientinnen und Patienten.
Wir stehen für ein kompetentes, motiviertes Team mit gemeinsamen Werten. Hohe soziale Kompetenz gepaart mit fundierter Ausbildung, Seriosität wie Professionalität zeichnen unsere Mitarbeiterinnen und Mitarbeiter in ihrer Tätigkeit aus. Unsere Unternehmenskultur fördert die Kreativität des gesamten Teams und dessen Identifikation mit der Arbeit.
Wir wissen, dass nur zufriedene Mitarbeiterinnen und Mitarbeiter optimal die Gesundheit unserer Mitmenschen fördern. Sie bilden sich regelmäßig fachbezogen sowie interdisziplinär weiter. Wir stehen für eine ausbildungsgerechte und faire Entlohnung. Unser größtes Kapital sind unsere Mitarbeiterinnen und Mitarbeiter, denn diese sind der Garant für eine Versorgung unserer Patientinnen und Patienten auf höchstem Niveau.
Wir bieten Raum für Innovationen und sorgen für eine offene Feedbackkultur. Wir gehen gemeinsam lösungsorientiert mit Fehlern und Konflikten um. Unsere Führungskräfte unterstützen die offene Gesprächs- und Feedbackkultur innerhalb von Teamsitzungen und durch regelmäßige Mitarbeitergespräche.

 

 

Die uns zur Verfügung stehenden Ressourcen setzten wir verantwortungsbewusst ein

Mit den verfügbaren Mitteln erzielen wir einen möglichst großen Nutzen sowohl  für unsere Patientinnen und Patienten also auch für das Team. Unsere laufend optimierte Aufbau- und Prozessorganisation spart Zeit und Geld. Wir arbeiten ständig an Verbesserungen unserer Abläufe, entwickeln neue Ideen und setzen diese um.
Wir gestalten eine nachhaltige Unternehmenspolitik durch einen effizienten und überlegten Ressourceneinsatz.

 

OpenStreetMap

Mit dem Laden der Karte akzeptieren Sie die Datenschutzerklärung von OpenStreetMap Foundation.
Mehr erfahren

Karte laden

PGRpdiBjbGFzcz0ibGVhZmxldC1tYXAgV1BMZWFmbGV0TWFwIiBzdHlsZT0iaGVpZ2h0OjUwMHB4OyB3aWR0aDoxMDAlOyI+PC9kaXY+PHNjcmlwdD4Kd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gfHwgW107CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ucHVzaChmdW5jdGlvbiBXUExlYWZsZXRNYXBTaG9ydGNvZGUoKSB7Lyo8c2NyaXB0PiovCnZhciBiYXNlVXJsID0gYXRvYignYUhSMGNITTZMeTk3YzMwdWRHbHNaUzV2Y0dWdWMzUnlaV1YwYldGd0xtOXlaeTk3ZW4wdmUzaDlMM3Q1ZlM1d2JtYz0nKTsKdmFyIGJhc2UgPSAoIWJhc2VVcmwgJiYgd2luZG93Lk1RKSA/CiAgICB3aW5kb3cuTVEubWFwTGF5ZXIoKSA6IEwudGlsZUxheWVyKGJhc2VVcmwsCiAgICAgICAgTC5VdGlsLmV4dGVuZCh7fSwgewogICAgICAgICAgICBkZXRlY3RSZXRpbmE6IDAsCiAgICAgICAgfSwKICAgICAgICB7InN1YmRvbWFpbnMiOiJhYmMiLCJub1dyYXAiOmZhbHNlLCJtYXhab29tIjoxOX0gICAgICAgICkKICAgICk7CiAgICB2YXIgb3B0aW9ucyA9IEwuVXRpbC5leHRlbmQoe30sIHsKICAgICAgICBsYXllcnM6IFtiYXNlXSwKICAgICAgICBhdHRyaWJ1dGlvbkNvbnRyb2w6IGZhbHNlCiAgICB9LAogICAgeyJ6b29tQ29udHJvbCI6dHJ1ZSwic2Nyb2xsV2hlZWxab29tIjpmYWxzZSwiZG91YmxlQ2xpY2tab29tIjpmYWxzZSwiZml0Qm91bmRzIjpmYWxzZSwibWluWm9vbSI6MCwibWF4Wm9vbSI6MTksIm1heEJvdW5kcyI6bnVsbCwiYXR0cmlidXRpb24iOiI8YSBocmVmPVwiaHR0cDpcL1wvbGVhZmxldGpzLmNvbVwiIHRpdGxlPVwiRWluZSBKYXZhc2NyaXB0LUJpYmxpb3RoZWsgZlx1MDBmY3IgaW50ZXJha3RpdmUgS2FydGVuXCI+TGVhZmxldDxcL2E+OyBcdTAwYTkgPGEgaHJlZj1cImh0dHA6XC9cL3d3dy5vcGVuc3RyZWV0bWFwLm9yZ1wvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDxcL2E+IE1pdHdpcmtlbmRlIn0sCiAgICB7fSk7CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uY3JlYXRlTWFwKG9wdGlvbnMpLnNldFZpZXcoWzQ5LjM0NDkzMiwxMC42NTE1MDVdLDcpO30pOzwvc2NyaXB0PjxzY3JpcHQ+CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luIHx8IFtdOwp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnB1c2goZnVuY3Rpb24gV1BMZWFmbGV0TWFya2VyU2hvcnRjb2RlKCkgey8qPHNjcmlwdD4qLwp2YXIgbWFwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50TWFwKCk7CnZhciBncm91cCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudEdyb3VwKCk7CnZhciBtYXJrZXJfb3B0aW9ucyA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0SWNvbk9wdGlvbnMoeyJpY29uVXJsIjoiXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE3XC8xMFwvbWFya2VyLWZtdy1waHlzaW8ucG5nIiwiaWNvblNpemUiOiI1MSw1MSIsImljb25BbmNob3IiOiIyNS41LDUxIn0pOwp2YXIgbWFya2VyID0gTC5tYXJrZXIoCiAgICBbNTAuMjU1MDE3LDEwLjk2MjIzNl0sCiAgICBtYXJrZXJfb3B0aW9ucwopOwp2YXIgaXNfaW1hZ2UgPSBtYXAuaXNfaW1hZ2VfbWFwOwppZiAobWFya2VyX29wdGlvbnMuZHJhZ2dhYmxlKSB7CiAgICBtYXJrZXIub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGxhdGxuZyA9IHRoaXMuZ2V0TGF0TG5nKCk7CiAgICAgICAgdmFyIGxhdCA9IGxhdGxuZy5sYXQ7CiAgICAgICAgdmFyIGxuZyA9IGxhdGxuZy5sbmc7CiAgICAgICAgaWYgKGlzX2ltYWdlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciB5PScgKyBsYXQgKyAnIHg9JyArIGxuZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIGxhdD0nICsgbGF0ICsgJyBsbmc9JyArIGxuZyk7CiAgICAgICAgfQogICAgfSk7Cn0KbWFya2VyLmFkZFRvKCBncm91cCApOwptYXJrZXIuYmluZFBvcHVwKHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4udW5lc2NhcGUoJ01FREFVcGh5c2lvJmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0Fob3JuZXIgU3RyYcOfZSA4Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0Ozk2NDUwIENvYnVyZyZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZm9uOiAwOTU2MS03NjU5NyZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZmF4OiAwOTU2MS01MTExNTk1Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0OyZsdDthIGhyZWY9XCZxdW90O21haWx0bzpwcmF4aXMtYW5nZXJAbWVkYXUtcGh5c2lvLmRlXCZxdW90OyZndDtwcmF4aXMtYW5nZXJAbWVkYXUtcGh5c2lvLmRlJmx0Oy9hJmd0OycpKTt3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLm1hcmtlcnMucHVzaCggbWFya2VyICk7CiAgICAgICAgfSk7PC9zY3JpcHQ+PHNjcmlwdD4Kd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gfHwgW107CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ucHVzaChmdW5jdGlvbiBXUExlYWZsZXRNYXJrZXJTaG9ydGNvZGUoKSB7Lyo8c2NyaXB0PiovCnZhciBtYXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRNYXAoKTsKdmFyIGdyb3VwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50R3JvdXAoKTsKdmFyIG1hcmtlcl9vcHRpb25zID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRJY29uT3B0aW9ucyh7Imljb25VcmwiOiJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTdcLzEwXC9tYXJrZXItZm13LXBoeXNpby5wbmciLCJpY29uU2l6ZSI6IjUxLDUxIiwiaWNvbkFuY2hvciI6IjI1LjUsNTEifSk7CnZhciBtYXJrZXIgPSBMLm1hcmtlcigKICAgIFs1MC4yNDY5MDgsMTAuOTcxMDkzXSwKICAgIG1hcmtlcl9vcHRpb25zCik7CnZhciBpc19pbWFnZSA9IG1hcC5pc19pbWFnZV9tYXA7CmlmIChtYXJrZXJfb3B0aW9ucy5kcmFnZ2FibGUpIHsKICAgIG1hcmtlci5vbignZHJhZ2VuZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgbGF0bG5nID0gdGhpcy5nZXRMYXRMbmcoKTsKICAgICAgICB2YXIgbGF0ID0gbGF0bG5nLmxhdDsKICAgICAgICB2YXIgbG5nID0gbGF0bG5nLmxuZzsKICAgICAgICBpZiAoaXNfaW1hZ2UpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIHk9JyArIGxhdCArICcgeD0nICsgbG5nKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbGVhZmxldC1tYXJrZXIgbGF0PScgKyBsYXQgKyAnIGxuZz0nICsgbG5nKTsKICAgICAgICB9CiAgICB9KTsKfQptYXJrZXIuYWRkVG8oIGdyb3VwICk7Cm1hcmtlci5iaW5kUG9wdXAod2luZG93LldQTGVhZmxldE1hcFBsdWdpbi51bmVzY2FwZSgnJmx0O3N0cm9uZyZndDtNRURBVXBoeXNpbyZsdDsvc3Ryb25nJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtLZXRzY2hlbmRvcmZlciBTdHJhw59lIDg2LTg4Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0Ozk2NDUwIENvYnVyZyZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZm9uOiAmbHQ7YSBocmVmPVwmcXVvdDt0ZWw6MDk1NjEyMzczNzNcJnF1b3Q7Jmd0OzA5NTYxIDg1MzcyMjImbHQ7L2EmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0ZheDogMDk1NjEgODUzNzIyMyZsdDticiAvJmd0OyZsdDticiZndDtFLU1haWw6ICZsdDthIGhyZWY9XCZxdW90O21haWx0bzpwcmF4aXMta2V0c2NoZW5kb3JmQG1lZGF1LXBoeXNpby5kZVwmcXVvdDsmZ3Q7cHJheGlzLWtldHNjaGVuZG9yZkBtZWRhdS1waHlzaW8uZGUmbHQ7L2EmZ3Q7JykpO3dpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ubWFya2Vycy5wdXNoKCBtYXJrZXIgKTsKICAgICAgICB9KTs8L3NjcmlwdD48c2NyaXB0Pgp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiB8fCBbXTsKd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5wdXNoKGZ1bmN0aW9uIFdQTGVhZmxldE1hcmtlclNob3J0Y29kZSgpIHsvKjxzY3JpcHQ+Ki8KdmFyIG1hcCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudE1hcCgpOwp2YXIgZ3JvdXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRHcm91cCgpOwp2YXIgbWFya2VyX29wdGlvbnMgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEljb25PcHRpb25zKHsiaWNvblVybCI6Ilwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxN1wvMTBcL21hcmtlci1mbXctcGh5c2lvLnBuZyIsImljb25TaXplIjoiNTEsNTEiLCJpY29uQW5jaG9yIjoiMjUuNSw1MSJ9KTsKdmFyIG1hcmtlciA9IEwubWFya2VyKAogICAgWzUwLjI2NjUxNTA1NDMxOSwxMC45NDkyNjM0NjY2NTZdLAogICAgbWFya2VyX29wdGlvbnMKKTsKdmFyIGlzX2ltYWdlID0gbWFwLmlzX2ltYWdlX21hcDsKaWYgKG1hcmtlcl9vcHRpb25zLmRyYWdnYWJsZSkgewogICAgbWFya2VyLm9uKCdkcmFnZW5kJywgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBsYXRsbmcgPSB0aGlzLmdldExhdExuZygpOwogICAgICAgIHZhciBsYXQgPSBsYXRsbmcubGF0OwogICAgICAgIHZhciBsbmcgPSBsYXRsbmcubG5nOwogICAgICAgIGlmIChpc19pbWFnZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbGVhZmxldC1tYXJrZXIgeT0nICsgbGF0ICsgJyB4PScgKyBsbmcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciBsYXQ9JyArIGxhdCArICcgbG5nPScgKyBsbmcpOwogICAgICAgIH0KICAgIH0pOwp9Cm1hcmtlci5hZGRUbyggZ3JvdXAgKTsKbWFya2VyLmJpbmRQb3B1cCh3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnVuZXNjYXBlKCdNRURBVXBoeXNpbyBTY2hsb3NzIEhvaGVuZmVscycpKTt3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLm1hcmtlcnMucHVzaCggbWFya2VyICk7CiAgICAgICAgfSk7PC9zY3JpcHQ+PHNjcmlwdD4Kd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gfHwgW107CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ucHVzaChmdW5jdGlvbiBXUExlYWZsZXRNYXJrZXJTaG9ydGNvZGUoKSB7Lyo8c2NyaXB0PiovCnZhciBtYXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRNYXAoKTsKdmFyIGdyb3VwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50R3JvdXAoKTsKdmFyIG1hcmtlcl9vcHRpb25zID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRJY29uT3B0aW9ucyh7Imljb25VcmwiOiJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTdcLzEwXC9tYXJrZXItZm13LXBoeXNpby5wbmciLCJpY29uU2l6ZSI6IjUxLDUxIiwiaWNvbkFuY2hvciI6IjI1LjUsNTEifSk7CnZhciBtYXJrZXIgPSBMLm1hcmtlcigKICAgIFs1MC4yNDc5NDkyLDEwLjk0NzYxNjldLAogICAgbWFya2VyX29wdGlvbnMKKTsKdmFyIGlzX2ltYWdlID0gbWFwLmlzX2ltYWdlX21hcDsKaWYgKG1hcmtlcl9vcHRpb25zLmRyYWdnYWJsZSkgewogICAgbWFya2VyLm9uKCdkcmFnZW5kJywgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBsYXRsbmcgPSB0aGlzLmdldExhdExuZygpOwogICAgICAgIHZhciBsYXQgPSBsYXRsbmcubGF0OwogICAgICAgIHZhciBsbmcgPSBsYXRsbmcubG5nOwogICAgICAgIGlmIChpc19pbWFnZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbGVhZmxldC1tYXJrZXIgeT0nICsgbGF0ICsgJyB4PScgKyBsbmcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciBsYXQ9JyArIGxhdCArICcgbG5nPScgKyBsbmcpOwogICAgICAgIH0KICAgIH0pOwp9Cm1hcmtlci5hZGRUbyggZ3JvdXAgKTsKbWFya2VyLmJpbmRQb3B1cCh3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnVuZXNjYXBlKCcmbHQ7c3Ryb25nJmd0O01FREFVcGh5c2lvJmx0Oy9zdHJvbmcmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O1dpcnRzZ3J1bmQgMTUmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7OTY0NTAgQ29idXJnJmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O1RlbGVmb246ICZsdDthIGhyZWY9XCZxdW90O3RlbDowOTU2MTIzNzM3M1wmcXVvdDsmZ3Q7MDk1NjEgMjM3MzczJmx0Oy9hJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtGYXg6IDA5NTYxIDIzNzM3NCZsdDticiAvJmd0OyZsdDticiZndDtFLU1haWw6ICZsdDthIGhyZWY9XCZxdW90O21haWx0bzppbmZvQG1lZGF1LXBoeXNpby5kZVwmcXVvdDsmZ3Q7aW5mb0BtZWRhdS1waHlzaW8uZGUmbHQ7L2EmZ3Q7JykpO3dpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ubWFya2Vycy5wdXNoKCBtYXJrZXIgKTsKICAgICAgICB9KTs8L3NjcmlwdD48c2NyaXB0Pgp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiB8fCBbXTsKd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5wdXNoKGZ1bmN0aW9uIFdQTGVhZmxldE1hcmtlclNob3J0Y29kZSgpIHsvKjxzY3JpcHQ+Ki8KdmFyIG1hcCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudE1hcCgpOwp2YXIgZ3JvdXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRHcm91cCgpOwp2YXIgbWFya2VyX29wdGlvbnMgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEljb25PcHRpb25zKHsiaWNvblVybCI6Ilwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxN1wvMTBcL21hcmtlci1tZWRhdS1maXQucG5nIiwiaWNvblNpemUiOiI1MSw1OCIsImljb25BbmNob3IiOiIyNS41LDU4In0pOwp2YXIgbWFya2VyID0gTC5tYXJrZXIoCiAgICBbNTAuMjY3MDkxMTI3NzMyLDEwLjk1Mzk4NDE1NDUyM10sCiAgICBtYXJrZXJfb3B0aW9ucwopOwp2YXIgaXNfaW1hZ2UgPSBtYXAuaXNfaW1hZ2VfbWFwOwppZiAobWFya2VyX29wdGlvbnMuZHJhZ2dhYmxlKSB7CiAgICBtYXJrZXIub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGxhdGxuZyA9IHRoaXMuZ2V0TGF0TG5nKCk7CiAgICAgICAgdmFyIGxhdCA9IGxhdGxuZy5sYXQ7CiAgICAgICAgdmFyIGxuZyA9IGxhdGxuZy5sbmc7CiAgICAgICAgaWYgKGlzX2ltYWdlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciB5PScgKyBsYXQgKyAnIHg9JyArIGxuZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIGxhdD0nICsgbGF0ICsgJyBsbmc9JyArIGxuZyk7CiAgICAgICAgfQogICAgfSk7Cn0KbWFya2VyLmFkZFRvKCBncm91cCApOwptYXJrZXIuYmluZFBvcHVwKHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4udW5lc2NhcGUoJyZsdDtzdHJvbmcmZ3Q7TUVEQVVmaXQgUHJheGlzIGbDvHIgUHLDpHZlbnRpb24gJmFtcDsjMDM4OyBSZWhhJmx0Oy9zdHJvbmcmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O1NjaGxvc3MgSG9oZW5mZWxzJmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0Ozk2NDUwIENvYnVyZyZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZm9uOiAmbHQ7YSBocmVmPVwmcXVvdDt0ZWw6MDk1NjEgODM1NzI3XCZxdW90OyZndDswOTU2MSA4MzU3MjcmbHQ7L2EmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O1RlbGVmYXg6IDA5NTYxIDM2NjU5Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0UtTWFpbDogJmx0O2EgaHJlZj1cJnF1b3Q7bWFpbHRvOmluZm9AbWVkYXVmaXQuZGVcJnF1b3Q7Jmd0O2luZm9AbWVkYXVmaXQuZGUmbHQ7L2EmZ3Q7JykpO3dpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ubWFya2Vycy5wdXNoKCBtYXJrZXIgKTsKICAgICAgICB9KTs8L3NjcmlwdD48c2NyaXB0Pgp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiB8fCBbXTsKd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5wdXNoKGZ1bmN0aW9uIFdQTGVhZmxldE1hcmtlclNob3J0Y29kZSgpIHsvKjxzY3JpcHQ+Ki8KdmFyIG1hcCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudE1hcCgpOwp2YXIgZ3JvdXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRHcm91cCgpOwp2YXIgbWFya2VyX29wdGlvbnMgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEljb25PcHRpb25zKHsiaWNvblVybCI6Ilwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxN1wvMDhcL21hcmtlci5wbmciLCJpY29uU2l6ZSI6IjUxLDU4IiwiaWNvbkFuY2hvciI6IjI1LjUsNTgifSk7CnZhciBtYXJrZXIgPSBMLm1hcmtlcigKICAgIFs1MC4yNjY5MzQ0LDEwLjk1MDc3MzVdLAogICAgbWFya2VyX29wdGlvbnMKKTsKdmFyIGlzX2ltYWdlID0gbWFwLmlzX2ltYWdlX21hcDsKaWYgKG1hcmtlcl9vcHRpb25zLmRyYWdnYWJsZSkgewogICAgbWFya2VyLm9uKCdkcmFnZW5kJywgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBsYXRsbmcgPSB0aGlzLmdldExhdExuZygpOwogICAgICAgIHZhciBsYXQgPSBsYXRsbmcubGF0OwogICAgICAgIHZhciBsbmcgPSBsYXRsbmcubG5nOwogICAgICAgIGlmIChpc19pbWFnZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbGVhZmxldC1tYXJrZXIgeT0nICsgbGF0ICsgJyB4PScgKyBsbmcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciBsYXQ9JyArIGxhdCArICcgbG5nPScgKyBsbmcpOwogICAgICAgIH0KICAgIH0pOwp9Cm1hcmtlci5hZGRUbyggZ3JvdXAgKTsKbWFya2VyLmJpbmRQb3B1cCh3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnVuZXNjYXBlKCcmbHQ7c3Ryb25nJmd0O01FREFVbG9nbyBTY2hsb3NzIEhvaGVuZmVscyZsdDsvc3Ryb25nJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtTY2hsb8OfIEhvaGVuZmVscyZsdDticiAvJmd0OyZsdDticiZndDs5NjQ1MCBDb2J1cmcmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7VGVsZWZvbjogJmx0O2EgaHJlZj1cJnF1b3Q7dGVsOjA5NTYxMjM1MTBcJnF1b3Q7Jmd0OzA5NTYxIDIzNTEwJmx0Oy9hJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtGYXg6ICs0OSAoMCk5NTYxIC8gMjM1MS0zNCZsdDticiAvJmd0OyZsdDticiZndDtFLU1haWw6ICZsdDthIGhyZWY9XCZxdW90O21haWx0bzpwcmF4aXMtaG9oZW5mZWxzQG1lZGF1LWxvZ28uZGVcJnF1b3Q7Jmd0O3ByYXhpcy1ob2hlbmZlbHNAbWVkYXUtbG9nby5kZSZsdDsvYSZndDsnKSk7d2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5tYXJrZXJzLnB1c2goIG1hcmtlciApOwogICAgICAgIH0pOzwvc2NyaXB0PjxzY3JpcHQ+CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luIHx8IFtdOwp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnB1c2goZnVuY3Rpb24gV1BMZWFmbGV0TWFya2VyU2hvcnRjb2RlKCkgey8qPHNjcmlwdD4qLwp2YXIgbWFwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50TWFwKCk7CnZhciBncm91cCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudEdyb3VwKCk7CnZhciBtYXJrZXJfb3B0aW9ucyA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0SWNvbk9wdGlvbnMoeyJpY29uVXJsIjoiXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE3XC8wOFwvbWFya2VyLnBuZyIsImljb25TaXplIjoiNTEsNTgiLCJpY29uQW5jaG9yIjoiMjUuNSw1OCJ9KTsKdmFyIG1hcmtlciA9IEwubWFya2VyKAogICAgWzUwLjEwMjQ3NzQsMTEuMDAyOTU3M10sCiAgICBtYXJrZXJfb3B0aW9ucwopOwp2YXIgaXNfaW1hZ2UgPSBtYXAuaXNfaW1hZ2VfbWFwOwppZiAobWFya2VyX29wdGlvbnMuZHJhZ2dhYmxlKSB7CiAgICBtYXJrZXIub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGxhdGxuZyA9IHRoaXMuZ2V0TGF0TG5nKCk7CiAgICAgICAgdmFyIGxhdCA9IGxhdGxuZy5sYXQ7CiAgICAgICAgdmFyIGxuZyA9IGxhdGxuZy5sbmc7CiAgICAgICAgaWYgKGlzX2ltYWdlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciB5PScgKyBsYXQgKyAnIHg9JyArIGxuZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIGxhdD0nICsgbGF0ICsgJyBsbmc9JyArIGxuZyk7CiAgICAgICAgfQogICAgfSk7Cn0KbWFya2VyLmFkZFRvKCBncm91cCApOwptYXJrZXIuYmluZFBvcHVwKHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4udW5lc2NhcGUoJyZsdDtzdHJvbmcmZ3Q7TUVEQVVsb2dvIExpY2h0ZW5mZWxzZXIgU3RyYcOfZSZsdDsvc3Ryb25nJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtMaWNodGVuZmVsc2VyIFN0cmHDn2UgMjYmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7OTYyMzEgQmFkIFN0YWZmZWxzdGVpbiZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZm9uOiAmbHQ7YSBocmVmPVwmcXVvdDt0ZWw6MDk1NzMyMzk5MjkyMVwmcXVvdDsmZ3Q7MDk1NzMgMjM5OTI5MjEmbHQ7L2EmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0UtTWFpbDogJmx0O2EgaHJlZj1cJnF1b3Q7bWFpbHRvOnByYXhpcy1zdGFmZmVsc3RlaW5AbWVkYXUtbG9nby5kZVwmcXVvdDsmZ3Q7cHJheGlzLXN0YWZmZWxzdGVpbkBtZWRhdS1sb2dvLmRlJmx0Oy9hJmd0OycpKTt3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLm1hcmtlcnMucHVzaCggbWFya2VyICk7CiAgICAgICAgfSk7PC9zY3JpcHQ+PHNjcmlwdD4Kd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gfHwgW107CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ucHVzaChmdW5jdGlvbiBXUExlYWZsZXRNYXJrZXJTaG9ydGNvZGUoKSB7Lyo8c2NyaXB0PiovCnZhciBtYXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRNYXAoKTsKdmFyIGdyb3VwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50R3JvdXAoKTsKdmFyIG1hcmtlcl9vcHRpb25zID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRJY29uT3B0aW9ucyh7Imljb25VcmwiOiJcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTdcLzA4XC9tYXJrZXIucG5nIiwiaWNvblNpemUiOiI1MSw1OCIsImljb25BbmNob3IiOiIyNS41LDU4In0pOwp2YXIgbWFya2VyID0gTC5tYXJrZXIoCiAgICBbNDguMTI2MzU0MiwxMS41NTE1NzU4XSwKICAgIG1hcmtlcl9vcHRpb25zCik7CnZhciBpc19pbWFnZSA9IG1hcC5pc19pbWFnZV9tYXA7CmlmIChtYXJrZXJfb3B0aW9ucy5kcmFnZ2FibGUpIHsKICAgIG1hcmtlci5vbignZHJhZ2VuZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgbGF0bG5nID0gdGhpcy5nZXRMYXRMbmcoKTsKICAgICAgICB2YXIgbGF0ID0gbGF0bG5nLmxhdDsKICAgICAgICB2YXIgbG5nID0gbGF0bG5nLmxuZzsKICAgICAgICBpZiAoaXNfaW1hZ2UpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIHk9JyArIGxhdCArICcgeD0nICsgbG5nKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbGVhZmxldC1tYXJrZXIgbGF0PScgKyBsYXQgKyAnIGxuZz0nICsgbG5nKTsKICAgICAgICB9CiAgICB9KTsKfQptYXJrZXIuYWRkVG8oIGdyb3VwICk7Cm1hcmtlci5iaW5kUG9wdXAod2luZG93LldQTGVhZmxldE1hcFBsdWdpbi51bmVzY2FwZSgnJmx0O3N0cm9uZyZndDtNRURBVWxvZ28gTGluZHd1cm1zdHJhw59lJmx0Oy9zdHJvbmcmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0xpbmR3dXJtc3RyLiAxMjkmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7ODAzMzcgTcO8bmNoZW4mbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7VGVsZWZvbjogJmx0O2EgaHJlZj1cJnF1b3Q7dGVsOjA4OTc0NjU0NDAyMFwmcXVvdDsmZ3Q7MDg5IDc0NjU0NDAyMCZsdDsvYSZndDsmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7RS1NYWlsOiAmbHQ7YSBocmVmPVwmcXVvdDttYWlsdG86cHJheGlzLWxpbmR3dXJtc3RyYXNzZUBtZWRhdS1sb2dvLmRlXCZxdW90OyZndDtwcmF4aXMtbGluZHd1cm1zdHJhc3NlQG1lZGF1LWxvZ28uZGUmbHQ7L2EmZ3Q7JykpO3dpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4ubWFya2Vycy5wdXNoKCBtYXJrZXIgKTsKICAgICAgICB9KTs8L3NjcmlwdD48c2NyaXB0Pgp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbiB8fCBbXTsKd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5wdXNoKGZ1bmN0aW9uIFdQTGVhZmxldE1hcmtlclNob3J0Y29kZSgpIHsvKjxzY3JpcHQ+Ki8KdmFyIG1hcCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudE1hcCgpOwp2YXIgZ3JvdXAgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEN1cnJlbnRHcm91cCgpOwp2YXIgbWFya2VyX29wdGlvbnMgPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLmdldEljb25PcHRpb25zKHsiaWNvblVybCI6Ilwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAxN1wvMDhcL21hcmtlci5wbmciLCJpY29uU2l6ZSI6IjUxLDU4IiwiaWNvbkFuY2hvciI6IjI1LjUsNTgifSk7CnZhciBtYXJrZXIgPSBMLm1hcmtlcigKICAgIFs0OS40Njg1NiwxMS4wODExMV0sCiAgICBtYXJrZXJfb3B0aW9ucwopOwp2YXIgaXNfaW1hZ2UgPSBtYXAuaXNfaW1hZ2VfbWFwOwppZiAobWFya2VyX29wdGlvbnMuZHJhZ2dhYmxlKSB7CiAgICBtYXJrZXIub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGxhdGxuZyA9IHRoaXMuZ2V0TGF0TG5nKCk7CiAgICAgICAgdmFyIGxhdCA9IGxhdGxuZy5sYXQ7CiAgICAgICAgdmFyIGxuZyA9IGxhdGxuZy5sbmc7CiAgICAgICAgaWYgKGlzX2ltYWdlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciB5PScgKyBsYXQgKyAnIHg9JyArIGxuZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIGxhdD0nICsgbGF0ICsgJyBsbmc9JyArIGxuZyk7CiAgICAgICAgfQogICAgfSk7Cn0KbWFya2VyLmFkZFRvKCBncm91cCApOwptYXJrZXIuYmluZFBvcHVwKHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4udW5lc2NhcGUoJyZsdDtzdHJvbmcmZ3Q7TUVEQVVsb2dvIFJvbGxuZXJzdHJhw59lJmx0Oy9zdHJvbmcmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O1JvbGxuZXJzdHIuIDExMSZsdDticiAvJmd0OyZsdDticiZndDs5MDQwOCBOw7xybmJlcmcmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7VGVsZWZvbjogJmx0O2EgaHJlZj1cJnF1b3Q7dGVsOjA5MTE5Mzc3MTk3NDZcJnF1b3Q7Jmd0OzA5MTEgOTM3NzE5NzQ2Jmx0Oy9hJmd0OyZsdDticiAvJmd0OyZsdDticiZndDtGYXg6IDA5MTEgOTM3NzE5NzUwJmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0UtTWFpbDogJmx0O2EgaHJlZj1cJnF1b3Q7bWFpbHRvOnByYXhpcy1yb2xsbmVyc3RyYXNzZUBtZWRhdS1sb2dvLmRlXCZxdW90OyZndDtwcmF4aXMtcm9sbG5lcnN0cmFzc2VAbWVkYXUtbG9nby5kZSZsdDsvYSZndDsnKSk7d2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5tYXJrZXJzLnB1c2goIG1hcmtlciApOwogICAgICAgIH0pOzwvc2NyaXB0PjxzY3JpcHQ+CndpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4gPSB3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luIHx8IFtdOwp3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLnB1c2goZnVuY3Rpb24gV1BMZWFmbGV0TWFya2VyU2hvcnRjb2RlKCkgey8qPHNjcmlwdD4qLwp2YXIgbWFwID0gd2luZG93LldQTGVhZmxldE1hcFBsdWdpbi5nZXRDdXJyZW50TWFwKCk7CnZhciBncm91cCA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0Q3VycmVudEdyb3VwKCk7CnZhciBtYXJrZXJfb3B0aW9ucyA9IHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4uZ2V0SWNvbk9wdGlvbnMoeyJpY29uVXJsIjoiXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDE3XC8wOFwvbWFya2VyLnBuZyIsImljb25TaXplIjoiNTEsNTgiLCJpY29uQW5jaG9yIjoiMjUuNSw1OCJ9KTsKdmFyIG1hcmtlciA9IEwubWFya2VyKAogICAgWzQ5Ljg5MDgwMTEsMTAuODkzMjA0NF0sCiAgICBtYXJrZXJfb3B0aW9ucwopOwp2YXIgaXNfaW1hZ2UgPSBtYXAuaXNfaW1hZ2VfbWFwOwppZiAobWFya2VyX29wdGlvbnMuZHJhZ2dhYmxlKSB7CiAgICBtYXJrZXIub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGxhdGxuZyA9IHRoaXMuZ2V0TGF0TG5nKCk7CiAgICAgICAgdmFyIGxhdCA9IGxhdGxuZy5sYXQ7CiAgICAgICAgdmFyIGxuZyA9IGxhdGxuZy5sbmc7CiAgICAgICAgaWYgKGlzX2ltYWdlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsZWFmbGV0LW1hcmtlciB5PScgKyBsYXQgKyAnIHg9JyArIGxuZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xlYWZsZXQtbWFya2VyIGxhdD0nICsgbGF0ICsgJyBsbmc9JyArIGxuZyk7CiAgICAgICAgfQogICAgfSk7Cn0KbWFya2VyLmFkZFRvKCBncm91cCApOwptYXJrZXIuYmluZFBvcHVwKHdpbmRvdy5XUExlYWZsZXRNYXBQbHVnaW4udW5lc2NhcGUoJyZsdDtzdHJvbmcmZ3Q7TUVEQVVsb2dvIEhhaW5zdHJhw59lJmx0Oy9zdHJvbmcmZ3Q7Jmx0O2JyIC8mZ3Q7Jmx0O2JyJmd0O0hhaW5zdHJhw59lIDEmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7OTYwNDcgQmFtYmVyZyZsdDticiAvJmd0OyZsdDticiZndDtUZWxlZm9uOgkmbHQ7YSBocmVmPVwmcXVvdDt0ZWw6MDk1MTIwODM0MTZcJnF1b3Q7Jmd0OzA5NTEgMjA4MzQxNiZsdDsvYSZndDsmbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7RmF4OgkwOTUxIDIwODM0NjImbHQ7YnIgLyZndDsmbHQ7YnImZ3Q7RS1NYWlsOiAmbHQ7YSBocmVmPVwmcXVvdDttYWlsdG86cHJheGlzLWhhaW5zdHJhc3NlQG1lZGF1LWxvZ28uZGVcJnF1b3Q7Jmd0O3ByYXhpcy1oYWluc3RyYXNzZUBtZWRhdS1sb2dvLmRlJmx0Oy9hJmd0OycpKTt3aW5kb3cuV1BMZWFmbGV0TWFwUGx1Z2luLm1hcmtlcnMucHVzaCggbWFya2VyICk7CiAgICAgICAgfSk7PC9zY3JpcHQ+