Die Infos & Tipps werden beim Klicken auf den untenstehenden Button von externen Quellen unserer Partner bereitgestellt.
Bitte beachten Sie die Datenschutzerklärung.
PGJyIC8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gcHJpbnREaXYodGl0ZWwsIGRpdk5hbWUpIHsKCXZhciBwcmludENvbnRlbnRzID0gIjxzdHlsZT4gKiB7Zm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6MTJweDsgbGluZS1oZWlnaHQ6MS40ZW07fSBib2R5IHttYXJnaW4tbGVmdDo1MHB4OyBtYXJnaW4tcmlnaHQ6NTBweDt9IGgxIHtmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1mYW1pbHk6YXJpYWw7IG1hcmdpbi1ib3R0b206MjBweDt9IC5ub19wcmludCB7ZGlzcGxheTogbm9uZTt9PC9zdHlsZT48aDE+Iit0aXRlbCsiPC9oMT4iK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdk5hbWUpLmlubmVySFRNTDsKCXZhciBvcmlnaW5hbENvbnRlbnRzID0gZG9jdW1lbnQuYm9keS5pbm5lckhUTUw7Cglkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHByaW50Q29udGVudHM7Cgl3aW5kb3cucHJpbnQoKTsKCWRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gb3JpZ2luYWxDb250ZW50czsKfQpmdW5jdGlvbiBGZW5zdGVyT2VmZm5lbiAoQWRyZXNzZSwgYnJlaXRlLCBob2VoZSkgewoJTWVpbkZlbnN0ZXIgPSB3aW5kb3cub3BlbihBZHJlc3NlLCAiWndlaXRmZW5zdGVyIiwgIndpZHRoPSIrYnJlaXRlKyIsaGVpZ2h0PSIraG9laGUrIixsZWZ0PTIwMCx0b3A9MjAwLHNjcm9sbGJhcnM9MSIpOwoJTWVpbkZlbnN0ZXIuZm9jdXMoKTsKfQo8L3NjcmlwdD4KCgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoKZnVuY3Rpb24gdG9nZ2xlRGl2KGVsZW1lbnQpewogaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudCkuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAvL3dpbmRvdy5sb2NhdGlvbiA9ICIjZW5kZSI7CiB9CiBlbHNlCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwp9CgpmdW5jdGlvbiB0b2dnbGVEb3VibGVEaXYoZWxlbWVudDEsZWxlbWVudDIpewppZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50MSkuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQxKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQyKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwp9IGVsc2UgewoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudDEpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50Mikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7Cn0KfQoKZnVuY3Rpb24gZ2V0Q2hlY2tib3hWYWx1ZXMoZm9ybSkgewogIHZhciB2YWx1ZXMgPSBbXTsKICB2YXIgY2JfaXRlbXMgPSBmb3JtLmNiX2l0ZW07CgogIGZvciAodmFyIGk9MCwgaUxlbj1jYl9pdGVtcy5sZW5ndGg7IGk8aUxlbjsgaSsrKSB7CiAgICBpZiAoY2JfaXRlbXNbaV0uY2hlY2tlZCkgewogICAgICB2YWx1ZXMucHVzaChjYl9pdGVtc1tpXS52YWx1ZSk7CiAgICB9CiAgfQogIHJldHVybiB2YWx1ZXMuam9pbignfCcpOwp9CgoKZnVuY3Rpb24gc2hvd1Jlc3VsdChzdWNoc3RyLCBtb25hdCwgamFociwgcnVicmlrZW4sIHppZWxncnVwcGVuLCBzZWl0ZSwgdGVhc2VybW9kdXMsIGFuemFobCwgZmFjaGdlYmlldCwgdmFyaWFudGUsIG90YSwgaW5pdGlhbCkgewoJeG1saHR0cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoJeG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKCQlpZiAoeG1saHR0cC5yZWFkeVN0YXRlID09IDQgJiYgeG1saHR0cC5zdGF0dXMgPT0gMjAwKSB7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eHRIaW50IikuaW5uZXJIVE1MID0geG1saHR0cC5yZXNwb25zZVRleHQ7CgkJfQoJfQoJeG1saHR0cC5vcGVuKCJHRVQiLCJodHRwczovL3d3dy5kZXVibmVyLW9ubGluZS5kZS9laW5iYXUvbWlvL2Jpbi9oaW50ZXJncnVuZGxhZGVuLnBocD9wYWdlPSIrc2VpdGUrIiZzPSIrZW5jb2RlVVJJQ29tcG9uZW50KHN1Y2hzdHIpKyImbT0iK21vbmF0KyImaj0iK2phaHIrIiZydWJyaWtlbj0iK2VuY29kZVVSSUNvbXBvbmVudChydWJyaWtlbikrIiZ6aWVsZ3J1cHBlbj0iK3ppZWxncnVwcGVuKyImdGVhc2VybW9kdXM9Iit0ZWFzZXJtb2R1cysiJmFuemFobD0iK2FuemFobCsiJmZhY2hnZWJpZXQ9IitmYWNoZ2ViaWV0KyImdmFyaWFudGU9Iit2YXJpYW50ZSsiJm90YT0iK290YSx0cnVlKTsKCXhtbGh0dHAuc2VuZCgpOwoJCglpZiAoaW5pdGlhbCA9PSAwKSB7IAoJCXdpbmRvdy5sb2NhdGlvbi5oYXNoID0gImVyZ2VibmlzbGlzdGUiOwoJfQkKfQoKZnVuY3Rpb24gc2hvd0FsbChrZG5yLCByZXNldFN0cikgewoJLy8gTGVlcmVuIGRlcyBGb3JtdWxhcnMKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNoYmVncmlmZicpLnZhbHVlPScnOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vbmF0JykudmFsdWU9J2FsbGUnOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2phaHInKS52YWx1ZT0nYWxsZSc7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS52YWx1ZT0nYWxsZSBaaWVsZ3J1cHBlbic7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS5zZWxlY3RlZEluZGV4ID0gMDsKCWNiX2l0ZW1zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ppZWxncnVwcGVuJykuY2JfaXRlbTsKCWZvciAodmFyIGk9MCwgaUxlbj1jYl9pdGVtcy5sZW5ndGg7IGk8aUxlbjsgaSsrKSB7CgkJY2JfaXRlbXNbaV0uY2hlY2tlZD1mYWxzZTsKCX0JCglzaG93UmVzdWx0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNoYmVncmlmZicpLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9uYXQnKS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2phaHInKS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3J1YnJpa2VuJykudmFsdWUsIGdldENoZWNrYm94VmFsdWVzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd6aWVsZ3J1cHBlbicpKSwgMSwgdGVhc2VybW9kdXMsIGFuemFobCwgZmFjaGdlYmlldCwgdmFyaWFudGUsIGtkbnIsIDApOwoJc3dpdGNoU2l6ZVJ1YnJpa2VuKCk7Cn0KCmZ1bmN0aW9uIHN3aXRjaFNpemVSdWJyaWtlbigpIHsKCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS52YWx1ZS5sZW5ndGggPCAyOCkgCgkJeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS5zdHlsZS53aWR0aCA9ICcxMjBweCc7IH0KCWVsc2UKCQl7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydWJyaWtlbicpLnN0eWxlLndpZHRoID0gJzMyMHB4JzsgfQp9IAoKPC9zY3JpcHQ+CgoKPHN0eWxlPgojRGl2UnVicmlrZW4sICNEaXZaaWVsZ3J1cHBlbiwgI0RpdlplaXRyYXVtIHsKZmxvYXQ6bGVmdDsKcGFkZGluZy1yaWdodDozMHB4OwpwYWRkaW5nLWJvdHRvbTozMHB4OwpiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Owp9CiNEaXZNb25hdFZvbiwgI0RpdkphaHJWb24gewpmbG9hdDpsZWZ0OwpwYWRkaW5nLXJpZ2h0OjEwcHg7Cn0KLm1pbyAjc3RldWVydGVybWluMSwgLm1pbyAjc3RldWVydGVybWluMiB7CmZsb2F0OmxlZnQ7CnBhZGRpbmc6MTBweDsKd2lkdGg6NDAwcHg7CmZvbnQtc2l6ZTowLjhlbTsKfQoubWlvICNzdGV1ZXJ0ZXJtaW4xIHAsIC5taW8gI3N0ZXVlcnRlcm1pbjIgcCB7CmxpbmUtaGVpZ2h0OjExMCU7Cn0JCgoubWlvX2hlYWQgI3N0ZXVlcnRlcm1pbjIgewpjbGVhcjpyaWdodDsKfQoKLm1pbyAubmV3c2RhdHVtIHsKZm9udC1zaXplOjAuOGVtOwp9CgoubWlvX2hlYWQgaW5wdXRbdHlwZT0icmFkaW8iXSwKLm1pb19oZWFkIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewptYXJnaW46MHB4IDhweCAzcHggMXB4Owp9CgoubWlvX2hlYWQgI3N1Y2hzdGV1ZXJ1bmcgewp0ZXh0LWFsaWduOnJpZ2h0OyAKZmxvYXQ6cmlnaHQ7CQp9CgoubWlvX2hlYWQgI2VpbmdhYmVfc3VjaGJlZ3JpZmYgewpkaXNwbGF5OmlubGluZTsKfQoKLm1pb19oZWFkIHNlbGVjdAp7CmJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7CmJvcmRlci10b3Atd2lkdGg6IDBweDsKYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7CmJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKYm9yZGVyLWxlZnQtd2lkdGg6IDBweDsKYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZTsKYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlIDEwMCUgMTAwJSAxMDAlOwpib3JkZXItaW1hZ2Utd2lkdGg6IDEgMSAxIDE7CmJvcmRlci1pbWFnZS1vdXRzZXQ6IDAgMCAwIDA7CmJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2ggc3RyZXRjaDsKYm9yZGVyLWNvbG9yOiAjY2NjOwpwYWRkaW5nLXRvcDogMHB4OwpwYWRkaW5nLXJpZ2h0OiAwcHg7CnBhZGRpbmctYm90dG9tOiAwcHg7CnBhZGRpbmctbGVmdDogNXB4OwptYXJnaW4tcmlnaHQ6IDEwcHg7CmhlaWdodDogMjZweDsKZm9udC1zaXplOjAuN2VtOwp9CgoubWlvX2hlYWQgaW5wdXQKewpwYWRkaW5nLWxlZnQ6IDEwcHg7CmhlaWdodDogMjZweDsKd2lkdGg6IDUwJTsKcGFkZGluZy1yaWdodDoxMHB4OwpiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsKYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7CmJhY2tncm91bmQtcG9zaXRpb246IDAlIDAlOwpiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7CmJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDsKYmFja2dyb3VuZC1zaXplOiBhdXRvIGF1dG87CmJvcmRlci10b3Atd2lkdGg6IDBweDsKYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7CmJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKYm9yZGVyLWxlZnQtd2lkdGg6IDBweDsKYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZTsKYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlIDEwMCUgMTAwJSAxMDAlOwpib3JkZXItaW1hZ2Utd2lkdGg6IDEgMSAxIDE7CmJvcmRlci1pbWFnZS1vdXRzZXQ6IDAgMCAwIDA7CmJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2ggc3RyZXRjaDsKfQoKLm1pb19oZWFkIGlucHV0LCAubWlvX2hlYWQgc2VsZWN0CnsKY29sb3I6ICMwMDA7Cm1hcmdpbi10b3A6IDBweDsKbWFyZ2luLWJvdHRvbTogNXB4Owp9CgoubWlvICNhdXN3YWhsU3RhbmRhcmQKewpwYWRkaW5nOjVweDsKYmFja2dyb3VuZC1jb2xvcjojZmZmOwpib3JkZXI6IDFweCBzb2xpZCAjZWVlOwptYXJnaW4tYm90dG9tOjIwcHg7Cn0KCi5taW8gLmRhdGVuc2NodXR6IHsKbWFyZ2luLXRvcDoyMHB4Owpmb250LXNpemU6MTBweDsKfQoKLm1pbyA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyAKICAgIGNvbG9yOiAgICAjYWFhOwp9Ci5taW8gOjotbW96LXBsYWNlaG9sZGVyIHsgCiAgIGNvbG9yOiAgICAjYWFhOwogICBvcGFjaXR5OiAgMTsKfQoubWlvIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAKICAgY29sb3I6ICAgICNhYWE7Cn0KLm1pbyA6OnBsYWNlaG9sZGVyIHsgCiAgY29sb3I6ICAgICNhYWE7Cn0KCi5taW8gaW5wdXQgewpib3JkZXItbGVmdC13aWR0aDogMHB4OwpmbG9hdDogY2xlYXI7Cn0KCi5taW8gI3N0ZXVlcnRlcm1pbjEsIC5taW8gI3N0ZXVlcnRlcm1pbjIgewp3aWR0aDo0NSU7Cn0KCi5uZXdzX29wZW4gewptYXJnaW4tdG9wOjE1cHg7Cm1hcmdpbi1ib3R0b206IDEwcHg7CmZvbnQtc2l6ZToxLjJlbTsKfQoKLnRpdGVsX2luX2FydGlrZWwgewpkaXNwbGF5Om5vbmU7Cn0KCi5laW50ZWlsdW5nX3NvbmRlcm1lbGR1bmdlbiB7CmZvbnQtc2l6ZTogMS4ycmVtOwkKbWFyZ2luLXRvcDogMjBweDsKbWFyZ2luLWJvdHRvbTogMTVweDsKYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7Cn0KCkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7CnNlbGVjdCNydWJyaWtlbiB7CmRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsKfQoKLm1pbyAjc3RldWVydGVybWluMSwgLm1pbyAjc3RldWVydGVybWluMiB7CndpZHRoOjEwMCU7Cn0KCmlucHV0I3N1Y2hiZWdyaWZmIHsKbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50Owp3aWR0aDo4MCUgIWltcG9ydGFudDsKfQp9Cjwvc3R5bGU+CjxzdHlsZT48L3N0eWxlPjwhLS1LMDAxYjAwMDAwMHNVeVU0T09UQS0yMDIwMTAxNjY4UFRBR0VTQUtUVUVMTC0tPgo8ZGl2IGNsYXNzPSJtaW8iPgo8ZGl2IGlkPSJzdGV1ZXJ0ZXJtaW5lIj48ZGl2IGlkPSJzdGV1ZXJ0ZXJtaW4xIj48aDQgY2xhc3M9InVlYl9zdGV1ZXJ0ZXJtaW5lIiBpZD0idWViX3N0dDEiPlN0ZXVlcnRlcm1pbmUgRGV6ZW1iZXIgMjAyMzwvaDQ+PGRpdiBjbGFzcz0iYmVpdHJhZ19zdGV1ZXJ0ZXJtaW5lIj48dGFibGU+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjUwIj4xMS4xMi48L3RkPjx0ZD5VbXNhdHpzdGV1ZXIqPGJyLz5Mb2huc3RldWVyKjxici8+U29saWRhcml0w6R0c3p1c2NobGFnKjxici8+S2lyY2hlbmxvaG5zdGV1ZXIgZXYuIHVuZCByLmthdGguKjxici8+RWlua29tbWVuLSBiencuIEvDtnJwZXJzY2hhZnRzdGV1ZXIqKjxici8+U29saWRhcml0w6R0c3p1c2NobGFnKio8YnIvPktpcmNoZW5zdGV1ZXIgZXYuIHVuZCByLmthdGguKio8L3RkPjwvdHI+PC90YWJsZT48cD5aYWhsdW5nc3NjaG9uZnJpc3Q6IGJpcyB6dW0gMTQuMTIuMjAyMy4gRGllc2UgU2Nob25mcmlzdCBnaWx0IG5pY2h0IGJlaSBCYXJ6YWhsdW5nZW4gdW5kIFphaGx1bmdlbiBwZXIgU2NoZWNrLiBbKiBiZWkgbW9uYXRsaWNoZXIgQWJmw7xocnVuZyBmw7xyIE5vdmVtYmVyIDIwMjM7ICoqIGbDvHIgZGFzIElWLiBRdWFydGFsIDIwMjNdPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InN0ZXVlcnRlcm1pbjIiPjxoNCBjbGFzcz0idWViX3N0ZXVlcnRlcm1pbmUiIGlkPSJ1ZWJfc3R0MiI+U3RldWVydGVybWluZSBKYW51YXIgMjAyNDwvaDQ+PGRpdiBjbGFzcz0iYmVpdHJhZ19zdGV1ZXJ0ZXJtaW5lIj48dGFibGU+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjUwIj4xMC4wMS48L3RkPjx0ZD5VbXNhdHpzdGV1ZXI8YnIvPkxvaG5zdGV1ZXIqPGJyLz5Tb2xpZGFyaXTDpHRzenVzY2hsYWcqPGJyLz5LaXJjaGVubG9obnN0ZXVlciBldi4gdW5kIHIua2F0aC4qPC90ZD48L3RyPjwvdGFibGU+PHA+WmFobHVuZ3NzY2hvbmZyaXN0OiBiaXMgenVtIDE1LjAxLjIwMjMuIERpZXNlIFNjaG9uZnJpc3QgZ2lsdCBuaWNodCBiZWkgQmFyemFobHVuZ2VuIHVuZCBaYWhsdW5nZW4gcGVyIFNjaGVjay4gWyogYmVpIG1vbmF0bGljaGVyIEFiZsO8aHJ1bmcgZsO8ciBEZXplbWJlciAyMDIzXTwvcD48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJjbGVhcjpsZWZ0OyI+PC9kaXY+PC9kaXY+PGhyIGNsYXNzPSJzdF90ZXJtaW5fdHJlbm5lciI+PGRpdiBzdHlsZT0iZGlzcGxheTpub25lOyIgaWQ9InN0X3Rlcm1pbl90cmVubmVyX2R1bW15Ij48L2Rpdj4KPGRpdiBjbGFzcz0ibWlvX2hlYWQiPgoJPGEgaWQ9ImVyZ2VibmlzbGlzdGUiPjwvYT4KCTxkaXYgaWQ9ImVyZ2VibmlzbGlzdGUiPjwvZGl2PgoJPGRpdiBpZD0iYXVzd2FobFN0YW5kYXJkIiBzdHlsZT0iIj48Zm9ybSBpZD0iZWluZ2FiZV9zdWNoYmVncmlmZiI+PHNlbGVjdCBvbkNsaWNrPSJzd2l0Y2hTaXplUnVicmlrZW4oKSIgc3R5bGU9IndpZHRoOjEyMHB4O292ZXJmbG93OmhpZGRlbiIgaWQ9InJ1YnJpa2VuIj48b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCI+YWxsZSBaaWVsZ3J1cHBlbjwvb3B0aW9uPjxvcHRpb24+SW5mb3JtYXRpb25lbiBmw7xyIGFsbGUgU3RldWVyemFobGVyPC9vcHRpb24+PG9wdGlvbj5JbmZvcm1hdGlvbmVuIGbDvHIgQXJiZWl0Z2ViZXIgdW5kIEFyYmVpdG5laG1lcjwvb3B0aW9uPjxvcHRpb24+SW5mb3JtYXRpb25lbiBmw7xyIEZyZWliZXJ1Zmxlcjwvb3B0aW9uPjxvcHRpb24+SW5mb3JtYXRpb25lbiBmw7xyIEdtYkgtR2VzZWxsc2NoYWZ0ZXIvLUdGPC9vcHRpb24+PG9wdGlvbj5JbmZvcm1hdGlvbmVuIGbDvHIgSGF1c2Jlc2l0emVyPC9vcHRpb24+PG9wdGlvbj5JbmZvcm1hdGlvbmVuIGbDvHIgS2FwaXRhbGFubGVnZXI8L29wdGlvbj48b3B0aW9uPkluZm9ybWF0aW9uZW4gZsO8ciBVbnRlcm5laG1lcjwvb3B0aW9uPjwvc2VsZWN0PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3VjaGJlZ3JpZmYiIHBsYWNlaG9sZGVyPSJTdWNoYmVncmlmZiIgc2l6ZT0iNDAiPjwvZm9ybT48IS0tJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9ImZpbHRlcmxpbmsiIGhyZWY9ImphdmFzY3JpcHQ6dG9nZ2xlRGl2KCdmaWx0ZXJib3gnKTsiPjxpbWcgc3JjPSJodHRwczovL3d3dy5kZXVibmVyLW9ubGluZS5kZS9laW5iYXUvbWlvL2Jpbi9pbWcvTHVwZS5wbmciPiZuYnNwO0Vyd2VpdGVydGUgT3B0aW9uZW4gZWluLS9hdXNibGVuZGVuPC9hPi0tPgoJCTxkaXYgaWQ9InN1Y2hzdGV1ZXJ1bmciPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9InNob3dSZXN1bHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Y2hiZWdyaWZmJykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb25hdCcpLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnamFocicpLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS52YWx1ZSwgJycsIDEsICcwJywgJzIwJywgJ1MnLCAnVEFHRVNBS1RVRUxMJywgJ09UQS0yMDIwMTAxNjY4JywgMSk7Ij48aW1nIGlkPSJsdXBlIiBhbHQ9Imx1cGUiIHNyYz0iaHR0cHM6Ly93d3cuZGV1Ym5lci1vbmxpbmUuZGUvZWluYmF1L21pby9iaW4vaW1nL0x1cGUucG5nIj48L2E+PC9kaXY+CQoJCQoJCQoJPC9kaXY+Cgk8ZGl2IGlkPSJmaWx0ZXJib3giIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KCTxicj48YnI+PGRpdiBpZD0iYXVzd2FobEVyd2VpdGVydCI+PGRpdiBpZD0iRGl2WmllbGdydXBwZW4iPgoJCQk8aDQ+WmllbGdydXBwZW48L2g0PgoJCQk8Zm9ybSBpZD0iemllbGdydXBwZW4iPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYl9pdGVtIiB2YWx1ZT0iSW5mb3JtYXRpb25lbiBmw7xyIFVudGVybmVobWVyIj5JbmZvcm1hdGlvbmVuIGbDvHIgVW50ZXJuZWhtZXI8L2xhYmVsPjxicj48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2JfaXRlbSIgdmFsdWU9IkluZm9ybWF0aW9uZW4gZsO8ciBLYXBpdGFsYW5sZWdlciI+SW5mb3JtYXRpb25lbiBmw7xyIEthcGl0YWxhbmxlZ2VyPC9sYWJlbD48YnI+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNiX2l0ZW0iIHZhbHVlPSJJbmZvcm1hdGlvbmVuIGbDvHIgR21iSC1HZXNlbGxzY2hhZnRlci8tR0YiPkluZm9ybWF0aW9uZW4gZsO8ciBHbWJILUdlc2VsbHNjaGFmdGVyLy1HRjwvbGFiZWw+PGJyPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYl9pdGVtIiB2YWx1ZT0iSW5mb3JtYXRpb25lbiBmw7xyIGFsbGUgU3RldWVyemFobGVyIj5JbmZvcm1hdGlvbmVuIGbDvHIgYWxsZSBTdGV1ZXJ6YWhsZXI8L2xhYmVsPjxicj48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2JfaXRlbSIgdmFsdWU9IkluZm9ybWF0aW9uZW4gZsO8ciBBcmJlaXRnZWJlciB1bmQgQXJiZWl0bmVobWVyIj5JbmZvcm1hdGlvbmVuIGbDvHIgQXJiZWl0Z2ViZXIgdW5kIEFyYmVpdG5laG1lcjwvbGFiZWw+PGJyPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYl9pdGVtIiB2YWx1ZT0iSW5mb3JtYXRpb25lbiBmw7xyIEZyZWliZXJ1ZmxlciI+SW5mb3JtYXRpb25lbiBmw7xyIEZyZWliZXJ1ZmxlcjwvbGFiZWw+PGJyPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYl9pdGVtIiB2YWx1ZT0iSW5mb3JtYXRpb25lbiBmw7xyIEhhdXNiZXNpdHplciI+SW5mb3JtYXRpb25lbiBmw7xyIEhhdXNiZXNpdHplcjwvbGFiZWw+PGJyPjwvZm9ybT4KCQkJPC9kaXY+CgkJPGRpdiBpZD0iRGl2WmVpdHJhdW0iPgoJCQk8aDQ+WmVpdHJhdW08L2g0PgoJCQk8ZGl2IGlkPSJEaXZNb25hdFZvbiI+CgkJCQk8aDU+TW9uYXQ8L2g1PgoJCQkJPGZvcm0+CgkJCQkJPHNlbGVjdCBpZD0ibW9uYXQiIHNpemU9IjEiPgoJCQkJCQk8b3B0aW9uPmFsbGU8L29wdGlvbj4KCQkJCQk8L3NlbGVjdD4KCQkJCTwvZm9ybT4KCQkJPC9kaXY+CQoJCQk8ZGl2IGlkPSJEaXZKYWhyVm9uIj4KCQkJCTxoNT5KYWhyPC9oNT4KCQkJCTxmb3JtIG1ldGhvZD0iUE9TVCI+CgkJCQkJPHNlbGVjdCBpZD0iamFociIgc2l6ZT0iMSI+CgkJCQkJPC9zZWxlY3Q+CgkJCQk8L2Zvcm0+CQkJCgkJCTwvZGl2PgkKCQk8L2Rpdj4JCgk8L2Rpdj4JCgkJPGRpdiBzdHlsZT0iY2xlYXI6IGxlZnQ7cGFkZGluZy10b3A6MjBweDsiPgoJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImZpbHRlciIgb25jbGljaz0ic2hvd1Jlc3VsdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjaGJlZ3JpZmYnKS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vbmF0JykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqYWhyJykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydWJyaWtlbicpLnZhbHVlLCBnZXRDaGVja2JveFZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnemllbGdydXBwZW4nKSksIDEsICcwJywgJzIwJywgJ1MnLCAnVEFHRVNBS1RVRUxMJywgJ09UQS0yMDIwMTAxNjY4JywgMSk7Ij5GaWx0ZXIgYW53ZW5kZW48L2J1dHRvbj4mbmJzcDsmbmJzcDsKCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJmaWx0ZXIiIG9uY2xpY2s9InNob3dBbGwoJ09UQS0yMDIwMTAxNjY4Jyk7IiBocmVmPSIjZXJnZWJuaXNsaXN0ZSI+QWxsZSBhbnplaWdlbjwvYnV0dG9uPgoJCTwvZGl2PgkKCTwvZGl2Pgo8L2Rpdj4JPGRpdiBjbGFzcz0ibWlvX3N0YW5kYXJkIG1pb19uZXdzIj4JCTxkaXYgaWQ9InR4dEhpbnQiPjwvZGl2PgoJCTxzY3JpcHQ+CgkJc2hvd1Jlc3VsdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjaGJlZ3JpZmYnKS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vbmF0JykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqYWhyJykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydWJyaWtlbicpLnZhbHVlLCAnJywgMSwgMCwgMjAsICdTJywgJ1RBR0VTQUtUVUVMTCcsICdPVEEtMjAyMDEwMTY2OCcsIDEpOyAvLyAxOiBrZWluIFNwcnVuZyB6dSAjZXJnZWJuaXNsaXN0ZQoKCQlkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbihldmVudCkgewoJCQlpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykgeyAvL0VpbmdhYmV0YXN0ZQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKSAvL0zDtnNjaGVuIGRlcyBFdmVudHMKCQkJCXNob3dSZXN1bHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Y2hiZWdyaWZmJykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb25hdCcpLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnamFocicpLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnVicmlrZW4nKS52YWx1ZSwgJycsIDEsIDAsIDIwLCAnUycsICdUQUdFU0FLVFVFTEwnLCAnT1RBLTIwMjAxMDE2NjgnLCAxKTsgLy8gMToga2VpbiBTcHJ1bmcgenUgI2VyZ2VibmlzbGlzdGUKCQkJfQoJCX0JCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3J1YnJpa2VuJykub25jaGFuZ2UgPSBmdW5jdGlvbigpIHsKCQkJc2hvd1Jlc3VsdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjaGJlZ3JpZmYnKS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vbmF0JykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqYWhyJykudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydWJyaWtlbicpLnZhbHVlLCAnJywgMSwgMCwgMjAsICdTJywgJ1RBR0VTQUtUVUVMTCcsICdPVEEtMjAyMDEwMTY2OCcsIDEpOyAvLyAxOiBrZWluIFNwcnVuZyB6dSAjZXJnZWJuaXNsaXN0ZQoJCX0KCQk8L3NjcmlwdD4KCTwvZGl2PgkKPC9kaXY+CSA=