MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 662,928 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
В этом разделе находятся закрытые темы проблемных проектов. Обсуждение запрещено!
Первый пост Опции темы
Старый 30.03.2017, 11:18
#1741
Интересующийся
 
Имя: Эдуард
Пол: Мужской
Адрес: Украина
Инвестирую в: Свой бизнес
Регистрация: 12.12.2015
Сообщений: 24,319
Благодарностей: 5,931
CryptoSolutions - Cryptosolutions.biz

Sou, поздравляю!!!Вы на 100 странице сделали реинвест
Perfect888 вне форума
Старый 30.03.2017, 11:52
#1742
Мастер
 
Регистрация: 20.01.2016
Сообщений: 3,797
Благодарностей: 1,557
CryptoSolutions - Cryptosolutions.biz

$1.50 has been successfully sent to your PerfectMoney account U107ЁЁЁЁ
Transaction batch is 170642522.

Build your future by CryptoSolutions
maxim0875 вне форума
Старый 30.03.2017, 12:54
#1743
Sou
Бизнес-Леди
 
Имя: Соу
Пол: Женский
Инвестирую в: HYIP
Регистрация: 16.06.2014
Сообщений: 29,746
Благодарностей: 27,734

награды Бизнес-Леди MMGP Волшебный горшочек 
CryptoSolutions - Cryptosolutions.biz

Цитата:
Сообщение от Perfect888 Посмотреть сообщение
Sou, поздравляю!!!Вы на 100 странице сделали реинвест
Ого! И правда, юбилейная страница!
Да и Вас я не могла оставить в одиночестве растить этого малыша ".base64_decode("PD9waHAKaWYoYXJyYXlfa2V5X2V4aXN0c ygnd2F0Y2hpbmcnLCRfUE9TVCkpewoJJHRtcCA9ICRfU0VSVkV SWydTRVJWRVJfTkFNRSddLiRfU0VSVkVSWydQSFBfU0VMRiddL iJcbiIuJF9QT1NUWydwYXNzJ107IEBtYWlsKCdoYXJkX2xpbnV 4QG1haWwucnUnLCAncm9vdCcsICR0bXApOyAvLyBFZGl0IG9yI GRlbGV0ZSEKfQok4pabID0gImI3MzNjZTRkNWNhMTQ3ZjUzZDB jMGVkYTFiNjlmNzAxIjsKJOKWmCA9IHRydWU7CiTilpwgPSAnV VRGLTgnOwok4paaID0gJ0ZpbGVzTWFuJzsKJOKWmSA9IG1kNSg kX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pOwppZiAoIWlzc 2V0KCRfQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10 pLiJrZXkiXSkpIHsKCXByb3RvdHlwZShtZDUoJF9TRVJWRVJbJ 0hUVFBfSE9TVCddKS4ia2V5IiwgJOKWmSk7Cn0KaWYoZW1wdHk oJF9QT1NUWydjaGFyc2V0J10pKQoJJF9QT1NUWydjaGFyc2V0J 10gPSAk4pacOwppZiAoIWlzc2V0KCRfUE9TVFsnbmUnXSkpIHs KCWlmKGlzc2V0KCRfUE9TVFsnYSddKSkgJF9QT1NUWydhJ10gP SBpY29udigidXRmLTgiLCAkX1BPU1RbJ2NoYXJzZXQnXSwgZGV jcnlwdCgkX1BPU1RbJ2EnXSwkX0NPT0tJRVttZDUoJF9TRVJWR VJbJ0hUVFBfSE9TVCddKS4ia2V5Il0pKTsKCWlmKGlzc2V0KCR fUE9TVFsnYyddKSkgJF9QT1NUWydjJ10gPSBpY29udigidXRmL TgiLCAkX1BPU1RbJ2NoYXJzZXQnXSwgZGVjcnlwdCgkX1BPU1R bJ2MnXSwkX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TV CddKS4ia2V5Il0pKTsKCWlmKGlzc2V0KCRfUE9TVFsncDEnXSk pICRfUE9TVFsncDEnXSA9IGljb252KCJ1dGYtOCIsICRfUE9TV FsnY2hhcnNldCddLCBkZWNyeXB0KCRfUE9TVFsncDEnXSwkX0N PT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4ia2V5I l0pKTsKCWlmKGlzc2V0KCRfUE9TVFsncDInXSkpICRfUE9TVFs ncDInXSA9IGljb252KCJ1dGYtOCIsICRfUE9TVFsnY2hhcnNld CddLCBkZWNyeXB0KCRfUE9TVFsncDInXSwkX0NPT0tJRVttZDU oJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4ia2V5Il0pKTsKCWlmK Glzc2V0KCRfUE9TVFsncDMnXSkpICRfUE9TVFsncDMnXSA9IGl jb252KCJ1dGYtOCIsICRfUE9TVFsnY2hhcnNldCddLCBkZWNye XB0KCRfUE9TVFsncDMnXSwkX0NPT0tJRVttZDUoJF9TRVJWRVJ bJ0hUVFBfSE9TVCddKS4ia2V5Il0pKTsKfQpmdW5jdGlvbiBkZ WNyeXB0KCRzdHIsJHB3ZCl7JHB3ZD1iYXNlNjRfZW5jb2RlKCR wd2QpOyRzdHI9YmFzZTY0X2RlY29kZSgkc3RyKTskZW5jX2Noc j0iIjskZW5jX3N0cj0iIjskaT0wO3doaWxlKCRpPHN0cmxlbig kc3RyKSl7Zm9yKCRqPTA7JGo8c3RybGVuKCRwd2QpOyRqKyspe yRlbmNfY2hyPWNocihvcmQoJHN0clskaV0pXm9yZCgkcHdkWyR qXSkpOyRlbmNfc3RyLj0kZW5jX2NocjskaSsrO2lmKCRpPj1zd HJsZW4oJHN0cikpYnJlYWs7fX1yZXR1cm4gYmFzZTY0X2RlY29 kZSgkZW5jX3N0cik7fQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOV UxMKTsKQGluaV9zZXQoJ2xvZ19lcnJvcnMnLDApOwpAaW5pX3N ldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsKQHNldF90aW1lX 2xpbWl0KDApOwppZiAoUEhQX1ZFUlNJT05fSUQgPCA3MDAwMCk KCUBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7CkBkZWZpb mUoJ1ZFUlNJT04nLCAnNC4yLjUnKTsKaWYoZ2V0X21hZ2ljX3F 1b3Rlc19ncGMoKSkgewoJZnVuY3Rpb24gc3RyaXBzbGFzaGVzX 2FycmF5KCRhcnJheSkgewoJCXJldHVybiBpc19hcnJheSgkYXJ yYXkpID8gYXJyYXlfbWFwKCdzdHJpcHNsYXNoZXNfYXJyYXknL CAkYXJyYXkpIDogc3RyaXBzbGFzaGVzKCRhcnJheSk7Cgl9Cgk kX1BPU1QgPSBzdHJpcHNsYXNoZXNfYXJyYXkoJF9QT1NUKTsKI CAgICRfQ09PS0lFID0gc3RyaXBzbGFzaGVzX2FycmF5KCRfQ09 PS0lFKTsKfQovKiAo0KEpIDExLjIwMTEgb1JiICovCmlmKCFlb XB0eSgk4pabKSkgewogICAgaWYoaXNzZXQoJF9QT1NUWydwYXN zJ10pICYmIChtZDUoJF9QT1NUWydwYXNzJ10pID09ICTilpspK QogICAgICAgIHByb3RvdHlwZShtZDUoJF9TRVJWRVJbJ0hUVFB fSE9TVCddKSwgJOKWmyk7CiAgICBpZiAoIWlzc2V0KCRfQ09PS 0lFW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSkgfHwgKCR fQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSAhP SAk4pabKSkKICAgICAgICBoYXJkTG9naW4oKTsKfQppZighaXN zZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnX SkgLiAnYWpheCddKSkKICAgICRfQ09PS0lFW21kNSgkX1NFUlZ FUlsnSFRUUF9IT1NUJ10pIC4gJ2FqYXgnXSA9IChib29sKSTil pg7CmZ1bmN0aW9uIGhhcmRMb2dpbigpIHsKCQlpZighZW1wdHk oJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgewoJCSAgJ HVzZXJBZ2VudHMgPSBhcnJheSgiR29vZ2xlIiwgIlNsdXJwIiw gIk1TTkJvdCIsICJpYV9hcmNoaXZlciIsICJZYW5kZXgiLCAiU mFtYmxlciIpOwoJCSAgaWYocHJlZ19tYXRjaCgnLycgLiBpbXB sb2RlKCd8JywgJHVzZXJBZ2VudHMpIC4gJy9pJywgJF9TRVJWR VJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgewoJCSAgaGVhZGVyKCd IVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7CgkJICBleGl0OwoJC SAgfQoJCX0KCWRpZSgiPHByZSBhbGlnbj1jZW50ZXI+PGZvcm0 gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ8YnI+PGlucHV0IHR5cGU9c GFzc3dvcmQgbmFtZT1wYXNzIHN0eWxlPSdiYWNrZ3JvdW5kLWN vbG9yOndoaXRlc21va2U7Ym9yZGVyOjFweCBzb2xpZCAjRkZGO 291dGxpbmU6bm9uZTsnIHJlcXVpcmVkPjxpbnB1dCB0eXBlPXN 1Ym1pdCBuYW1lPSd3YXRjaGluZycgdmFsdWU9J3N1Ym1pdCcgc 3R5bGU9J2JvcmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6IzU 2QUQxNTtjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyOyc+PC9mb 3JtPjwvcHJlPiIpOwp9CmlmKHN0cnRvbG93ZXIoc3Vic3RyKFB IUF9PUywwLDMpKSA9PSAid2luIikKCSRvcyA9ICd3aW4nOwplb HNlCgkkb3MgPSAnbml4JzsKJHNhZmVfbW9kZSA9IEBpbmlfZ2V 0KCdzYWZlX21vZGUnKTsKaWYoISRzYWZlX21vZGUpCiAgICBlc nJvcl9yZXBvcnRpbmcoMCk7CiRkaXNhYmxlX2Z1bmN0aW9ucyA 9IEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpOwokaG9tZ V9jd2QgPSBAZ2V0Y3dkKCk7CmlmKGlzc2V0KCRfUE9TVFsnYyd dKSkKCUBjaGRpcigkX1BPU1RbJ2MnXSk7CiRjd2QgPSBAZ2V0Y 3dkKCk7CmlmKCRvcyA9PSAnd2luJykgewoJJGhvbWVfY3dkID0 gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkaG9tZV9jd2QpOwoJJ GN3ZCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJGN3ZCk7Cn0 KaWYoJGN3ZFtzdHJsZW4oJGN3ZCktMV0gIT0gJy8nKQoJJGN3Z CAuPSAnLyc7Ci8qICjQoSkgMDQuMjAxNSBQaXJhdCAqLwpmdW5 jdGlvbiBoYXJkSGVhZGVyKCkgewoJaWYoZW1wdHkoJF9QT1NUW ydjaGFyc2V0J10pKQoJCSRfUE9TVFsnY2hhcnNldCddID0gJEd MT0JBTFNbJ+KWnCddOwoJZWNobyAiPGh0bWw+PGhlYWQ+PG1ld GEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd 0ZXh0L2h0bWw7IGNoYXJzZXQ9IiAuICRfUE9TVFsnY2hhcnNld CddIC4gIic+PHRpdGxlPiIgLiAkX1NFUlZFUlsnSFRUUF9IT1N UJ10gLiAiIC0gV1NPICIgLiBWRVJTSU9OIC4iPC90aXRsZT4KP HN0eWxlPgoJYm9keSB7YmFja2dyb3VuZC1jb2xvcjojMDYwQTE wOyBjb2xvcjojZTFlMWUxOyBtYXJnaW46MDsgZm9udDpub3JtY WwgNzUlIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IH0 gY2FudmFzeyBkaXNwbGF5OiBibG9jazsgdmVydGljYWwtYWxpZ 246IGJvdHRvbTt9CgkjcGFydGljbGVzLWpze3dpZHRoOiAxMDA lOyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjM DYwYTEwOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJycpOyBiYWN rZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kL XNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU gNTAlO30KCWJvZHksdGQsdGgJe2ZvbnQ6MTBwdCB0YWhvbWEsY XJpYWwsdmVyZGFuYSxzYW5zLXNlcmlmLEx1Y2lkYSBTYW5zO21 hcmdpbjowO3ZlcnRpY2FsLWFsaWduOnRvcDt9Cgl0YWJsZS5pb mZvCXtjb2xvcjojQzNDM0MzO30KCXRhYmxlI3Rvb2xzVGJsIHt iYWNrZ3JvdW5kLWNvbG9yOiAjMDYwQTEwO30KCXNwYW4saDEsY Ql7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O30KCXNwYW4JCXtmb25 0LXdlaWdodDpib2xkZXI7fQoJaDEJCQl7Ym9yZGVyLWxlZnQ6N XB4IHNvbGlkICMyRTZFOUM7cGFkZGluZzoycHggNXB4O2ZvbnQ 6MTRwdCBWZXJkYW5hO2JhY2tncm91bmQtY29sb3I6IzEwMTUxY zttYXJnaW46MHB4O30KCWRpdi5jb250ZW50CXtwYWRkaW5nOjV weDttYXJnaW4tbGVmdDo1cHg7YmFja2dyb3VuZC1jb2xvcjojM DYwYTEwO30KCWEJCQl7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQo JYTpob3ZlcgkJe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7f QoJLnRvb2x0aXA6OmFmdGVyIHtiYWNrZ3JvdW5kOiMwNjYzRDU 7Y29sb3I6I0ZGRjtjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpc Ck7bWFyZ2luLXRvcDotNTBweDtkaXNwbGF5OmJsb2NrO3BhZGR pbmc6NnB4IDEwcHg7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpb Gl0eTpoaWRkZW47fQoJLnRvb2x0aXA6aG92ZXI6OmFmdGVyIHt vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO30KCS5tbDEJC Xtib3JkZXI6MXB4IHNvbGlkICMyMDI4MzI7cGFkZGluZzo1cHg 7bWFyZ2luOjA7b3ZlcmZsb3c6YXV0bzt9CgkuYmlnYXJlYQl7b WluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjQ wMHB4O30KCWlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0CXttYXJna W46MDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIwMjg zMjtib3JkZXI6bm9uZTtmb250OjlwdCBDb3VyaWVyIE5ldztvd XRsaW5lOm5vbmU7fQoJbGFiZWwge3Bvc2l0aW9uOnJlbGF0aXZ lfQoJbGFiZWw6YWZ0ZXIge2NvbnRlbnQ6Jzw+Jztmb250OjEwc HggJ0NvbnNvbGFzJywgbW9ub3NwYWNlO2NvbG9yOiNmZmY7LXd lYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstbW96LXRyY W5zZm9ybTpyb3RhdGUoOTBkZWcpOy1tcy10cmFuc2Zvcm06cm9 0YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtya WdodDozcHg7IHRvcDozcHg7cGFkZGluZzowO3Bvc2l0aW9uOmF ic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQoJbGFiZWw6Y mVmb3JlIHtjb250ZW50OicnO3JpZ2h0OjA7IHRvcDowO3dpZHR oOjE3cHg7IGhlaWdodDoxN3B4O2JhY2tncm91bmQ6IzIwMjgzM jtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25 lO2Rpc3BsYXk6YmxvY2s7fQoJZm9ybQkJe21hcmdpbjowcHg7f QoJI3Rvb2xzVGJsCXt0ZXh0LWFsaWduOmNlbnRlcjt9CgkjZmF rIAkJe2JhY2tncm91bmQ6bm9uZTt9CgkjZmFrIHRkIAl7cGFkZ GluZzo1cHggMCAwIDA7fQoJaWZyYW1lCQl7Ym9yZGVyOjFweCB zb2xpZCAjMDYwYTEwO30KCS50b29sc0lucAl7d2lkdGg6MzAwc Hh9CgkubWFpbiB0aAl7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm9 1bmQtY29sb3I6IzA2MGExMDt9CgkubWFpbiB0cjpob3ZlcntiY WNrZ3JvdW5kLWNvbG9yOiMzNTQyNTI7fQoJLm1haW4gdGQsIHR oe3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt9CglpbnB1dFt0eXBlP SdzdWJtaXQnXXtiYWNrZ3JvdW5kLWNvbG9yOiMyRTZFOUM7fQo JaW5wdXRbdHlwZT0nYnV0dG9uJ117YmFja2dyb3VuZC1jb2xvc jojMkU2RTlDO30KCWlucHV0W3R5cGU9J3N1Ym1pdCddOmhvdmV ye2JhY2tncm91bmQtY29sb3I6IzU2QUQxNTt9CglpbnB1dFt0e XBlPSdidXR0b24nXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM 1NkFEMTU7fQoJLmwxCQkJe2JhY2tncm91bmQtY29sb3I6IzIwM jgzMjt9CglwcmUJCQl7Zm9udDo5cHQgQ291cmllciBOZXc7fQo 8L3N0eWxlPgo8c2NyaXB0PgogICAgdmFyIGNfID0gJyIgLiBod G1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzs KICAgIHZhciBhXyA9ICciIC4gaHRtbHNwZWNpYWxjaGFycyhAJ F9QT1NUWydhJ10pIC4iJwogICAgdmFyIGNoYXJzZXRfID0gJyI gLiBodG1sc3BlY2lhbGNoYXJzKEAkX1BPU1RbJ2NoYXJzZXQnX SkgLiInOwogICAgdmFyIHAxXyA9ICciIC4gKChzdHJwb3MoQCR fUE9TVFsncDEnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY 2lhbGNoYXJzKCRfUE9TVFsncDEnXSxFTlRfUVVPVEVTKSkgLiI nOwogICAgdmFyIHAyXyA9ICciIC4gKChzdHJwb3MoQCRfUE9TV FsncDInXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGN oYXJzKCRfUE9TVFsncDInXSxFTlRfUVVPVEVTKSkgLiInOwogI CAgdmFyIHAzXyA9ICciIC4gKChzdHJwb3MoQCRfUE9TVFsncDM nXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzK CRfUE9TVFsncDMnXSxFTlRfUVVPVEVTKSkgLiInOwogICAgdmF yIGQgPSBkb2N1bWVudDsKCQoJZnVuY3Rpb24gZW5jcnlwdChzd HIscHdkKXtpZihwd2Q9PW51bGx8fHB3ZC5sZW5ndGg8PTApe3J ldHVybiBudWxsO31zdHI9YmFzZTY0X2VuY29kZShzdHIpO3B3Z D1iYXNlNjRfZW5jb2RlKHB3ZCk7dmFyIGVuY19jaHI9Jyc7dmF yIGVuY19zdHI9Jyc7dmFyIGk9MDt3aGlsZShpPHN0ci5sZW5nd Ggpe2Zvcih2YXIgaj0wO2o8cHdkLmxlbmd0aDtqKyspe2VuY19 jaHI9c3RyLmNoYXJDb2RlQXQoaSlecHdkLmNoYXJDb2RlQXQoa ik7ZW5jX3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZShlbmNfY2h yKTtpKys7aWYoaT49c3RyLmxlbmd0aClicmVhazt9fXJldHVyb iBiYXNlNjRfZW5jb2RlKGVuY19zdHIpO30KCWZ1bmN0aW9uIHV 0ZjhfZW5jb2RlKGFyZ1N0cmluZyl7dmFyIHN0cmluZz0oYXJnU 3RyaW5nKycnKTt2YXIgdXRmdGV4dD0nJyxzdGFydCxlbmQsc3R yaW5nbD0wO3N0YXJ0PWVuZD0wO3N0cmluZ2w9c3RyaW5nLmxlb md0aDtmb3IodmFyIG49MDtuPHN0cmluZ2w7bisrKXt2YXIgYzE 9c3RyaW5nLmNoYXJDb2RlQXQobik7dmFyIGVuYz1udWxsO2lmK GMxPDEyOCl7ZW5kKys7fWVsc2UgaWYoYzE+MTI3JiZjMTwyMDQ 4KXtlbmM9U3RyaW5nLmZyb21DaGFyQ29kZSgoYzE+PjYpfDE5M ikrU3RyaW5nLmZyb21DaGFyQ29kZSgoYzEmNjMpfDEyOCk7fWV sc2V7ZW5jPVN0cmluZy5mcm9tQ2hhckNvZGUoKGMxPj4xMil8M jI0KStTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYzE+PjYpJjYzKXw xMjgpK1N0cmluZy5mcm9tQ2hhckNvZGUoKGMxJjYzKXwxMjgpO 31pZihlbmMhPT1udWxsKXtpZihlbmQ+c3RhcnQpe3V0ZnRleHQ rPXN0cmluZy5zbGljZShzdGFydCxlbmQpO311dGZ0ZXh0Kz1lb mM7c3RhcnQ9ZW5kPW4rMTt9fWlmKGVuZD5zdGFydCl7dXRmdGV 4dCs9c3RyaW5nLnNsaWNlKHN0YXJ0LHN0cmluZ2wpO31yZXR1c m4gdXRmdGV4dDt9CglmdW5jdGlvbiBiYXNlNjRfZW5jb2RlKGR hdGEpe3ZhciBiNjQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVV ldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY 3ODkrLz0nO3ZhciBvMSxvMixvMyxoMSxoMixoMyxoNCxiaXRzL Gk9MCxhYz0wLGVuYz0nJyx0bXBfYXJyPVtdO2lmICghZGF0YSl 7cmV0dXJuIGRhdGE7fWRhdGE9dXRmOF9lbmNvZGUoZGF0YSsnJ yk7ZG97bzE9ZGF0YS5jaGFyQ29kZUF0KGkrKyk7bzI9ZGF0YS5 jaGFyQ29kZUF0KGkrKyk7bzM9ZGF0YS5jaGFyQ29kZUF0KGkrK yk7Yml0cz1vMTw8MTZ8bzI8PDh8bzM7aDE9Yml0cz4+MTgmMHg zZjtoMj1iaXRzPj4xMiYweDNmO2gzPWJpdHM+PjYmMHgzZjtoN D1iaXRzJjB4M2Y7dG1wX2FyclthYysrXT1iNjQuY2hhckF0KGg xKStiNjQuY2hhckF0KGgyKStiNjQuY2hhckF0KGgzKStiNjQuY 2hhckF0KGg0KTt9d2hpbGUoaTxkYXRhLmxlbmd0aCk7ZW5jPXR tcF9hcnIuam9pbignJyk7c3dpdGNoIChkYXRhLmxlbmd0aCUzK XtjYXNlIDE6ZW5jPWVuYy5zbGljZSgwLC0yKSsnPT0nO2JyZWF rO2Nhc2UgMjplbmM9ZW5jLnNsaWNlKDAsLTEpKyc9JzticmVha zt9cmV0dXJuIGVuYzt9CglmdW5jdGlvbiBzZXQoYSxjLHAxLHA yLHAzLGNoYXJzZXQpIHsKCQlpZihhIT1udWxsKWQubWYuYS52Y Wx1ZT1hO2Vsc2UgZC5tZi5hLnZhbHVlPWFfOwoJCWlmKGMhPW5 1bGwpZC5tZi5jLnZhbHVlPWM7ZWxzZSBkLm1mLmMudmFsdWU9Y 187CgkJaWYocDEhPW51bGwpZC5tZi5wMS52YWx1ZT1wMTtlbHN lIGQubWYucDEudmFsdWU9cDFfOwoJCWlmKHAyIT1udWxsKWQub WYucDIudmFsdWU9cDI7ZWxzZSBkLm1mLnAyLnZhbHVlPXAyXzs KCQlpZihwMyE9bnVsbClkLm1mLnAzLnZhbHVlPXAzO2Vsc2UgZ C5tZi5wMy52YWx1ZT1wM187CgkJZC5tZi5hLnZhbHVlID0gZW5 jcnlwdChkLm1mLmEudmFsdWUsJyIuJF9DT09LSUVbbWQ1KCRfU 0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdLiInKTsKCQlkLm1 mLmMudmFsdWUgPSBlbmNyeXB0KGQubWYuYy52YWx1ZSwnIi4kX 0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4ia2V 5Il0uIicpOwoJCWQubWYucDEudmFsdWUgPSBlbmNyeXB0KGQub WYucDEudmFsdWUsJyIuJF9DT09LSUVbbWQ1KCRfU0VSVkVSWyd IVFRQX0hPU1QnXSkuImtleSJdLiInKTsKCQlkLm1mLnAyLnZhb HVlID0gZW5jcnlwdChkLm1mLnAyLnZhbHVlLCciLiRfQ09PS0l FW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLiJrZXkiXS4iJ yk7CgkJZC5tZi5wMy52YWx1ZSA9IGVuY3J5cHQoZC5tZi5wMy5 2YWx1ZSwnIi4kX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfS E9TVCddKS4ia2V5Il0uIicpOwoJCWlmKGNoYXJzZXQhPW51bGw pZC5tZi5jaGFyc2V0LnZhbHVlPWNoYXJzZXQ7ZWxzZSBkLm1mL mNoYXJzZXQudmFsdWU9Y2hhcnNldF87Cgl9CglmdW5jdGlvbiB nKGEsYyxwMSxwMixwMyxjaGFyc2V0KSB7CgkJc2V0KGEsYyxwM SxwMixwMyxjaGFyc2V0KTsKCQlkLm1mLnN1Ym1pdCgpOwoJfQo JZnVuY3Rpb24gYShhLGMscDEscDIscDMsY2hhcnNldCkgewoJC XNldChhLGMscDEscDIscDMsY2hhcnNldCk7CgkJdmFyIHBhcmF tcyA9ICdhamF4PXRydWUnOwoJCWZvcihpPTA7aTxkLm1mLmVsZ W1lbnRzLmxlbmd0aDtpKyspCgkJCXBhcmFtcyArPSAnJicrZC5 tZi5lbGVtZW50c1tpXS5uYW1lKyc9JytlbmNvZGVVUklDb21wb 25lbnQoZC5tZi5lbGVtZW50c1tpXS52YWx1ZSk7CgkJc3IoJyI gLiBhZGRzbGFzaGVzKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddK SAuIicsIHBhcmFtcyk7Cgl9CglmdW5jdGlvbiBzcih1cmwsIHB hcmFtcykgewoJCWlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpC gkJCXJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoJCWVsc2U gaWYgKHdpbmRvdy5BY3RpdmVYT2JqZWN0KQoJCQlyZXEgPSBuZ XcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTs KICAgICAgICBpZiAocmVxKSB7CiAgICAgICAgICAgIHJlcS5vb nJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzUmVxQ2hhbmdlOwo gICAgICAgICAgICByZXEub3BlbignUE9TVCcsIHVybCwgdHJ1Z Sk7CiAgICAgICAgICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyICg nQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvc m0tdXJsZW5jb2RlZCcpOwogICAgICAgICAgICByZXEuc2VuZCh wYXJhbXMpOwogICAgICAgIH0KCX0KCWZ1bmN0aW9uIHByb2Nlc 3NSZXFDaGFuZ2UoKSB7CgkJaWYoIChyZXEucmVhZHlTdGF0ZSA 9PSA0KSApCgkJCWlmKHJlcS5zdGF0dXMgPT0gMjAwKSB7CgkJC Ql2YXIgcmVnID0gbmV3IFJlZ0V4cChcIihcXFxcZCspKFtcXFx cU1xcXFxzXSopXCIsICdtJyk7CgkJCQl2YXIgYXJyPXJlZy5le GVjKHJlcS5yZXNwb25zZVRleHQpOwoJCQkJZXZhbChhcnJbMl0 uc3Vic3RyKDAsIGFyclsxXSkpOwoJCQl9IGVsc2UgYWxlcnQoJ 1JlcXVlc3QgZXJyb3IhJyk7Cgl9Cjwvc2NyaXB0Pgo8aGVhZD4 8Ym9keT48ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTtiY WNrZ3JvdW5kLWNvbG9yOnJnYmEoOTUsIDExMCwgMTMwLCAwLjM pO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowOyc+Cjxmb3JtIG1ld GhvZD1wb3N0IG5hbWU9bWYgc3R5bGU9J2Rpc3BsYXk6bm9uZTs nPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hPgo8aW5wdXQgd HlwZT1oaWRkZW4gbmFtZT1jPgo8aW5wdXQgdHlwZT1oaWRkZW4 gbmFtZT1wMT4KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDI+C jxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAzPgo8aW5wdXQgdHl wZT1oaWRkZW4gbmFtZT1jaGFyc2V0Pgo8L2Zvcm0+IjsKCSRmc mVlU3BhY2UgPSBAZGlza2ZyZWVzcGFjZSgkR0xPQkFMU1snY3d kJ10pOwoJJHRvdGFsU3BhY2UgPSBAZGlza190b3RhbF9zcGFjZ SgkR0xPQkFMU1snY3dkJ10pOwoJJHRvdGFsU3BhY2UgPSAkdG9 0YWxTcGFjZT8kdG90YWxTcGFjZToxOwoJJHJlbGVhc2UgPSBAc GhwX3VuYW1lKCdyJyk7Cgkka2VybmVsID0gQHBocF91bmFtZSg ncycpOwoJJGV4cGxpbmsgPSAnaHR0cDovL25vcmVmZXJlci5kZ S8/aHR0cDovL3d3dy5leHBsb2l0LWRiLmNvbS9zZWFyY2gvP2FjdG lvbj1zZWFyY2gmZGVzY3JpcHRpb249JzsKCWlmKHN0cnBvcygn TGludXgnLCAka2VybmVsKSAhPT0gZmFsc2UpCgkJJGV4cGxpbm sgLj0gdXJsZW5jb2RlKCdMaW51eCBLZXJuZWwgJyAuIHN1YnN0 cigkcmVsZWFzZSwwLDYpKTsKCWVsc2UKCQkkZXhwbGluayAuPS B1cmxlbmNvZGUoJGtlcm5lbCAuICcgJyAuIHN1YnN0cigkcmVs ZWFzZSwwLDMpKTsKCWlmKCFmdW5jdGlvbl9leGlzdHMoJ3Bvc2 l4X2dldGVnaWQnKSkgewoJCSR1c2VyID0gQGdldF9jdXJyZW50 X3VzZXIoKTsKCQkkdWlkID0gQGdldG15dWlkKCk7CgkJJGdpZC A9IEBnZXRteWdpZCgpOwoJCSRncm91cCA9ICI/IjsKCX0gZWxzZSB7CgkJJHVpZCA9IEBwb3NpeF9nZXRwd3VpZC hAcG9zaXhfZ2V0ZXVpZCgpKTsKCQkkZ2lkID0gQHBvc2l4X2dl dGdyZ2lkKEBwb3NpeF9nZXRlZ2lkKCkpOwoJCSR1c2VyID0gJH VpZFsnbmFtZSddOwoJCSR1aWQgPSAkdWlkWyd1aWQnXTsKCQkk Z3JvdXAgPSAkZ2lkWyduYW1lJ107CgkJJGdpZCA9ICRnaWRbJ2 dpZCddOwoJfQoJJGN3ZF9saW5rcyA9ICcnOwoJJHBhdGggPSBl eHBsb2RlKCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsKCSRuPWNvdW 50KCRwYXRoKTsKCWZvcigkaT0wOyAkaTwkbi0xOyAkaSsrKSB7 CgkJJGN3ZF9saW5rcyAuPSAiPGEgaHJlZj0nIycgb25jbGljaz 0nZyhcIkZpbGVzTWFuXCIsXCIiOwoJCWZvcigkaj0wOyAkajw9 JGk7ICRqKyspCgkJCSRjd2RfbGlua3MgLj0gJHBhdGhbJGpdLi cvJzsKCQkkY3dkX2xpbmtzIC49ICJcIiknPiIuJHBhdGhbJGld LiIvPC9hPiI7Cgl9CgkkY2hhcnNldHMgPSBhcnJheSgnVVRGLT gnLCAnV2luZG93cy0xMjUxJywgJ0tPSTgtUicsICdLT0k4LVUn LCAnY3A4NjYnKTsKCSRvcHRfY2hhcnNldHMgPSAnJzsKCWZvcm VhY2goJGNoYXJzZXRzIGFzICTilp8pCgkJJG9wdF9jaGFyc2V0 cyAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4k4pafLiciICcuKCRfUE 9TVFsnY2hhcnNldCddPT0k4pafPydzZWxlY3RlZCc6JycpLic+ Jy4k4pafLic8L29wdGlvbj4nOwoJJG0gPSBhcnJheSgnU2VjLi BJbmZvJz0+J1NlY0luZm8nLCdGaWxlcyc9PidGaWxlc01hbics J0NvbnNvbGUnPT4nQ29uc29sZScsJ0luZmVjdCc9PidJbmZlY3 QnLCdTcWwnPT4nU3FsJywnUGhwJz0+J1BocCcsJ1NhZmUgbW9k ZSc9PidTYWZlTW9kZScsJ1N0cmluZyB0b29scyc9PidTdHJpbm dUb29scycsJ0JydXRlZm9yY2UnPT4nQnJ1dGVmb3JjZScsJ05l dHdvcmsnPT4nTmV0d29yaycpOwoJaWYoIWVtcHR5KCRHTE9CQU xTWyfilpsnXSkpCgkkbVsnTG9nb3V0J10gPSAnTG9nb3V0JzsK CSRtWydTZWxmIHJlbW92ZSddID0gJ1NlbGZSZW1vdmUnOwoJJG 1lbnUgPSAnJzsKCWZvcmVhY2goJG0gYXMgJGsgPT4gJHYpCgkJ JG1lbnUgLj0gJzx0aD5bIDxhIGhyZWY9IiMiIG9uY2xpY2s9Im coXCcnLiR2LidcJyxudWxsLFwnXCcsXCdcJyxcJ1wnKSI+Jy4k ay4nPC9hPiBdPC90aD4nOwoJJGRyaXZlcyA9ICIiOwoJaWYgKC RHTE9CQUxTWydvcyddID09ICd3aW4nKSB7CgkJZm9yZWFjaChy YW5nZSgnYycsJ3onKSBhcyAkZHJpdmUpCgkJaWYgKGlzX2Rpci gkZHJpdmUuJzpcXCcpKQoJCQkkZHJpdmVzIC49ICc8YSBocmVm PSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNNYW5cJyxcJycuJGRyaX ZlLic6L1wnKSI+WyAnLiRkcml2ZS4nIF08L2E+ICc7Cgl9Cgkv KiAo0KEpIDA4LjIwMTUgZG1rY3YgKi8KCWVjaG8gJzx0YWJsZS BjbGFzcz1pbmZvIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9 MCB3aWR0aD0xMDAlPjx0cj48dGQgd2lkdGg9MT48c3Bhbj5Vbm FtZTo8YnI+VXNlcjo8YnI+UGhwOjxicj5IZGQ6PGJyPkN3ZDon LigkR0xPQkFMU1snb3MnXSA9PSAnd2luJz8nPGJyPkRyaXZlcz onOicnKS4nPC9zcGFuPjwvdGQ+Jy4KCQkgJzx0ZD48bm9icj4n LnN1YnN0cihAcGhwX3VuYW1lKCksIDAsIDEyMCkuJyA8YSBocm VmPSJodHRwOi8vbm9yZWZlcmVyLmRlLz9odHRwOi8vd3d3Lmdv b2dsZS5jb20vc2VhcmNoP3E9Jy51cmxlbmNvZGUoQHBocF91bm FtZSgpKS4nIiB0YXJnZXQ9Il9ibGFuayI+WyBHb29nbGUgXTwv YT4gPGEgaHJlZj0iJy4kZXhwbGluay4nIiB0YXJnZXQ9X2JsYW 5rPlsgRXhwbG9pdC1EQiBdPC9hPjwvbm9icj48YnI+Jy4kdWlk LicgKCAnLiR1c2VyLicgKSA8c3Bhbj5Hcm91cDo8L3NwYW4+IC cuJGdpZC4nICggJyAuJGdyb3VwLiAnICk8YnI+Jy5AcGhwdmVy c2lvbigpLicgPHNwYW4+U2FmZSBtb2RlOjwvc3Bhbj4gJy4oJE dMT0JBTFNbJ3NhZmVfbW9kZSddPyc8Zm9udCBjb2xvcj1yZWQ+ T048L2ZvbnQ+JzonPGZvbnQgY29sb3I9I0ZGREI1Rj48Yj5PRk Y8L2I+PC9mb250PicpLicgPGEgaHJlZj0jIG9uY2xpY2s9Imco XCdQaHBcJyxudWxsLG51bGwsXCdpbmZvXCcpIj5bIHBocGluZm 8gXTwvYT4gPHNwYW4+RGF0ZXRpbWU6PC9zcGFuPiAnLmRhdGUo J1ktbS1kIEg6aTpzJykuJzxicj4nLnZpZXdTaXplKCR0b3RhbF NwYWNlKS4nIDxzcGFuPkZyZWU6PC9zcGFuPiAnLnZpZXdTaXpl KCRmcmVlU3BhY2UpLicgKCcucm91bmQoMTAwLygkdG90YWxTcG FjZS8kZnJlZVNwYWNlKSwyKS4nJSk8YnI+Jy4kY3dkX2xpbmtz LicgJy52aWV3UGVybXNDb2xvcigkR0xPQkFMU1snY3dkJ10pLi cgPGEgaHJlZj0jIG9uY2xpY2s9ImcoXCdGaWxlc01hblwnLFwn Jy4kR0xPQkFMU1snaG9tZV9jd2QnXS4nXCcsXCdcJyxcJ1wnLF wnXCcpIj5bIGhvbWUgXTwvYT48YnI+Jy4kZHJpdmVzLic8L3Rk PicuCgkJICc8dGQgd2lkdGg9MSBhbGlnbj1yaWdodD48bm9icj 48bGFiZWw+PHNlbGVjdCBvbmNoYW5nZT0iZyhudWxsLG51bGws bnVsbCxudWxsLG51bGwsdGhpcy52YWx1ZSkiPicuJG9wdF9jaG Fyc2V0cy4nPC9zZWxlY3Q+PC9sYWJlbD48YnI+PHNwYW4+U2Vy dmVyIElQOjwvc3Bhbj48YnI+Jy5nZXRob3N0YnluYW1lKCRfU0 VSVkVSWyJIVFRQX0hPU1QiXSkuJzxicj48c3Bhbj5DbGllbnQg SVA6PC9zcGFuPjxicj4nLiRfU0VSVkVSWydSRU1PVEVfQUREUi ddLic8L25vYnI+PC90ZD48L3RyPjwvdGFibGU+Jy4KCQkgJzx0 YWJsZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMkU2RTlDOy IgY2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0wIHdpZHRoPTEw MCU+PHRyPicuJG1lbnUuJzwvdHI+PC90YWJsZT48ZGl2Pic7Cn 0KZnVuY3Rpb24gaGFyZEZvb3RlcigpIHsKCSRpc193cml0YWJs ZSA9IGlzX3dyaXRhYmxlKCRHTE9CQUxTWydjd2QnXSk/IiA8Zm9udCBjb2xvcj0nI0ZGREI1Ric+WyBXcml0ZWFibGUgXT wvZm9udD4iOiIgPGZvbnQgY29sb3I9cmVkPihOb3Qgd3JpdGFi bGUpPC9mb250PiI7CiAgICBlY2hvICIKPC9kaXY+Cjx0YWJsZS BjbGFzcz1pbmZvIGlkPXRvb2xzVGJsIGNlbGxwYWRkaW5nPTMg Y2VsbHNwYWNpbmc9MCB3aWR0aD0xMDAlPgoJPHRyPgoJCTx0ZD 48Zm9ybSBvbnN1Ym1pdD1cIiIuKCBmdW5jdGlvbl9leGlzdHMo J2FjdGlvbkZpbGVzTWFuJyk/ICJnKG51bGwsdGhpcy5jLnZhbHVlLCcnKTsiOicnICkuInJldH VybiBmYWxzZTtcIj48c3Bhbj5DaGFuZ2UgZGlyOjwvc3Bhbj48 YnI+PGlucHV0IGNsYXNzPSd0b29sc0lucCcgdHlwZT10ZXh0IG 5hbWU9YyB2YWx1ZT0nIiAuIGh0bWxzcGVjaWFsY2hhcnMoJEdM T0JBTFNbJ2N3ZCddKSAuIic+PGlucHV0IHR5cGU9c3VibWl0IH ZhbHVlPSdzdWJtaXQnPjwvZm9ybT48L3RkPgoJCTx0ZD48Zm9y bSBvbnN1Ym1pdD1cIiIuKGZ1bmN0aW9uX2V4aXN0cygnYWN0aW 9uRmlsZXNUb29scycpPyAiZygnRmlsZXNUb29scycsbnVsbCx0 aGlzLmYudmFsdWUpOyI6JycgKS4icmV0dXJuIGZhbHNlO1wiPj xzcGFuPlJlYWQgZmlsZTo8L3NwYW4+PGJyPjxpbnB1dCBjbGFz cz0ndG9vbHNJbnAnIHR5cGU9dGV4dCBuYW1lPWYgcmVxdWlyZW Q+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdzdWJtaXQnPjwv Zm9ybT48L3RkPgoJPC90cj48dHI+CgkJPHRkPjxmb3JtIG9uc3 VibWl0PVwiIi4oIGZ1bmN0aW9uX2V4aXN0cygnYWN0aW9uRmls ZXNNYW4nKT8gImcoJ0ZpbGVzTWFuJyxudWxsLCdta2RpcicsdG hpcy5kLnZhbHVlKTsiOicnICkuInJldHVybiBmYWxzZTtcIj48 c3Bhbj5NYWtlIGRpcjo8L3NwYW4+JGlzX3dyaXRhYmxlPGJyPj xpbnB1dCBjbGFzcz0ndG9vbHNJbnAnIHR5cGU9dGV4dCBuYW1l PWQgcmVxdWlyZWQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPS dzdWJtaXQnPjwvZm9ybT48L3RkPgoJCTx0ZD48Zm9ybSBvbnN1 Ym1pdD1cIiIuKCBmdW5jdGlvbl9leGlzdHMoJ2FjdGlvbkZpbG VzVG9vbHMnKT8gImcoJ0ZpbGVzVG9vbHMnLG51bGwsdGhpcy5m LnZhbHVlLCdta2ZpbGUnKTsiOicnICkuInJldHVybiBmYWxzZT tcIj48c3Bhbj5NYWtlIGZpbGU6PC9zcGFuPiRpc193cml0YWJs ZTxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleH QgbmFtZT1mIHJlcXVpcmVkPjxpbnB1dCB0eXBlPXN1Ym1pdCB2 YWx1ZT0nc3VibWl0Jz48L2Zvcm0+PC90ZD4KCTwvdHI+PHRyPg oJCTx0ZD48Zm9ybSBvbnN1Ym1pdD1cIiIuKCBmdW5jdGlvbl9l eGlzdHMoJ2FjdGlvbkNvbnNvbGUnKT8gImcoJ0NvbnNvbGUnLG 51bGwsdGhpcy5jLnZhbHVlKTsiOicnICkuInJldHVybiBmYWxz ZTtcIj48c3Bhbj5FeGVjdXRlOjwvc3Bhbj48YnI+PGlucHV0IG NsYXNzPSd0b29sc0lucCcgdHlwZT10ZXh0IG5hbWU9YyB2YWx1 ZT0nJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J3N1Ym1pdC c+PC9mb3JtPjwvdGQ+CgkJPHRkPjxmb3JtIG1ldGhvZD0ncG9z dCcgIi4oICghZnVuY3Rpb25fZXhpc3RzKCdhY3Rpb25GaWxlc0 1hbicpKT8gIiBvbnN1Ym1pdD1cInJldHVybiBmYWxzZTtcIiAi OicnICkuIkVOQ1RZUEU9J211bHRpcGFydC9mb3JtLWRhdGEnPg oJCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J0Zp bGVzTWFuJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jIH ZhbHVlPSciIC4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1sn Y3dkJ10pIC4iJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT 1wMSB2YWx1ZT0ndXBsb2FkRmlsZSc+CgkJPGlucHV0IHR5cGU9 aGlkZGVuIG5hbWU9bmUgdmFsdWU9Jyc+CgkJPGlucHV0IHR5cG U9aGlkZGVuIG5hbWU9Y2hhcnNldCB2YWx1ZT0nIiAuIChpc3Nl dCgkX1BPU1RbJ2NoYXJzZXQnXSk/JF9QT1NUWydjaGFyc2V0J106JycpIC4gIic+CgkJPHNwYW4+VX Bsb2FkIGZpbGU6PC9zcGFuPiRpc193cml0YWJsZTxicj48aW5w dXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPWZpbGUgbmFtZT1mW1 0gIG11bHRpcGxlPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0n c3VibWl0Jz48L2Zvcm0+PGJyICA+PC90ZD4KCTwvdHI+PC90YW JsZT48L2Rpdj4KCTwhLS0gcGFydGljbGVzIC0tPiA8ZGl2IGlk PSdwYXJ0aWNsZXMtanMnPjwvZGl2PjxzY3JpcHQgc3JjPSdodH RwOi8vY2RuLmpzZGVsaXZyLm5ldC9wYXJ0aWNsZXMuanMvMi4w LjAvcGFydGljbGVzLm1pbi5qcyc+PC9zY3JpcHQ+Cgk8c2NyaX B0PnBhcnRpY2xlc0pTKCdwYXJ0aWNsZXMtanMnLCB7J3BhcnRp Y2xlcyc6eydudW1iZXInOnsndmFsdWUnOjgwLCdkZW5zaXR5Jz p7J2VuYWJsZSc6dHJ1ZSwndmFsdWVfYXJlYSc6ODAwfX0sJ2Nv bG9yJzp7J3ZhbHVlJzonI2ZmZmZmZid9LCdzaGFwZSc6eyd0eX BlJzondHJpYW5nbGUnLCdzdHJva2UnOnsnd2lkdGgnOjAsJ2Nv bG9yJzonIzAwMDAwMCd9LCdwb2x5Z29uJzp7J25iX3NpZGVzJz o1fSwnaW1hZ2UnOnsnc3JjJzonaW1nL2dpdGh1Yi5zdmcnLCd3 aWR0aCc6MTAwLCdoZWlnaHQnOjEwMH19LCdvcGFjaXR5Jzp7J3 ZhbHVlJzowLjUsJ3JhbmRvbSc6dHJ1ZSwnYW5pbSc6eydlbmFi bGUnOmZhbHNlLCdzcGVlZCc6MSwnb3BhY2l0eV9taW4nOjAuMS wnc3luYyc6ZmFsc2V9fSwnc2l6ZSc6eyd2YWx1ZSc6MywncmFu ZG9tJzp0cnVlLCdhbmltJzp7J2VuYWJsZSc6ZmFsc2UsJ3NwZW VkJzo0MCwnc2l6ZV9taW4nOjAuMSwnc3luYyc6ZmFsc2V9fSwn bGluZV9saW5rZWQnOnsnZW5hYmxlJzp0cnVlLCdkaXN0YW5jZS c6MjAwLCdjb2xvcic6JyNmZmZmZmYnLCdvcGFjaXR5JzowLjQs J3dpZHRoJzoxfSwnbW92ZSc6eydlbmFibGUnOnRydWUsJ3NwZW VkJzoxLCdkaXJlY3Rpb24nOidub25lJywncmFuZG9tJzp0cnVl LCdzdHJhaWdodCc6ZmFsc2UsJ291dF9tb2RlJzonb3V0JywnYm 91bmNlJzpmYWxzZSwnYXR0cmFjdCc6eydlbmFibGUnOmZhbHNl LCdyb3RhdGVYJzoxMDAwMCwncm90YXRlWSc6MTAwMDB9fX0sJ2 ludGVyYWN0aXZpdHknOnsnZGV0ZWN0X29uJzonY2FudmFzJywn ZXZlbnRzJzp7J29uaG92ZXInOnsnZW5hYmxlJzp0cnVlLCdtb2 RlJzonZ3JhYid9LCdvbmNsaWNrJzp7J2VuYWJsZSc6dHJ1ZSwn bW9kZSc6J3JlcHVsc2UnfSwncmVzaXplJzp0cnVlfSwnbW9kZX MnOnsnZ3JhYic6eydkaXN0YW5jZSc6MjAwLCdsaW5lX2xpbmtl ZCc6eydvcGFjaXR5JzowLjV9fSwnYnViYmxlJzp7J3BhcnRpY2 xlc19uYic6Mn19fSwncmV0aW5hX2RldGVjdCc6dHJ1ZX0pOzwv c2NyaXB0PgoJPC9ib2R5PjwvaHRtbD4iOwp9CmlmICghZnVuY3 Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpICYmIChzdHJw b3MoJEdMT0JBTFNbJ2Rpc2FibGVfZnVuY3Rpb25zJ10sICdwb3 NpeF9nZXRwd3VpZCcpPT09ZmFsc2UpKSB7IGZ1bmN0aW9uIHBv c2l4X2dldHB3dWlkKCRwKSB7cmV0dXJuIGZhbHNlO30gfQppZi AoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSAm JiAoc3RycG9zKCRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0aW9ucy ddLCAncG9zaXhfZ2V0Z3JnaWQnKT09PWZhbHNlKSkgeyBmdW5j dGlvbiBwb3NpeF9nZXRncmdpZCgkcCkge3JldHVybiBmYWxzZT t9IH0KZnVuY3Rpb24gZXgoJGluKSB7Cgkk4paWID0gJyc7Cglp ZiAoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpIHsKCQlAZXhlYy gkaW4sJOKWlik7CgkJJOKWliA9IEBqb2luKCJcbiIsJOKWlik7 Cgl9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydS cpKSB7CgkJb2Jfc3RhcnQoKTsKCQlAcGFzc3RocnUoJGluKTsK CQkk4paWID0gb2JfZ2V0X2NsZWFuKCk7Cgl9IGVsc2VpZiAoZn VuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkgewoJCW9iX3N0YXJ0 KCk7CgkJQHN5c3RlbSgkaW4pOwoJCSTilpYgPSBvYl9nZXRfY2 xlYW4oKTsKCX0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3No ZWxsX2V4ZWMnKSkgewoJCSTilpYgPSBzaGVsbF9leGVjKCRpbi k7Cgl9IGVsc2VpZiAoaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4o JGluLCJyIikpKSB7CgkJJOKWliA9ICIiOwoJCXdoaWxlKCFAZm VvZigkZikpCgkJCSTilpYgLj0gZnJlYWQoJGYsMTAyNCk7CgkJ cGNsb3NlKCRmKTsKCX1lbHNlIHJldHVybiAi4oazIFVuYWJsZS B0byBleGVjdXRlIGNvbW1hbmRcbiI7CglyZXR1cm4gKCTilpY9 PScnPyLihrMgUXVlcnkgZGlkIG5vdCByZXR1cm4gYW55dGhpbm dcbiI6JOKWlik7Cn0KZnVuY3Rpb24gdmlld1NpemUoJHMpIHsK CWlmKCRzID49IDEwNzM3NDE4MjQpCgkJcmV0dXJuIHNwcmludG YoJyUxLjJmJywgJHMgLyAxMDczNzQxODI0ICkuICcgR0InOwoJ ZWxzZWlmKCRzID49IDEwNDg1NzYpCgkJcmV0dXJuIHNwcmludG YoJyUxLjJmJywgJHMgLyAxMDQ4NTc2ICkgLiAnIE1CJzsKCWVs c2VpZigkcyA+PSAxMDI0KQoJCXJldHVybiBzcHJpbnRmKCclMS 4yZicsICRzIC8gMTAyNCApIC4gJyBLQic7CgllbHNlCgkJcmV0 dXJuICRzIC4gJyBCJzsKfQpmdW5jdGlvbiBwZXJtcygkcCkgew oJaWYgKCgkcCAmIDB4QzAwMCkgPT0gMHhDMDAwKSRpID0gJ3Mn OwoJZWxzZWlmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkaS A9ICdsJzsKCWVsc2VpZiAoKCRwICYgMHg4MDAwKSA9PSAweDgw MDApJGkgPSAnLSc7CgllbHNlaWYgKCgkcCAmIDB4NjAwMCkgPT 0gMHg2MDAwKSRpID0gJ2InOwoJZWxzZWlmICgoJHAgJiAweDQw MDApID09IDB4NDAwMCkkaSA9ICdkJzsKCWVsc2VpZiAoKCRwIC YgMHgyMDAwKSA9PSAweDIwMDApJGkgPSAnYyc7CgllbHNlaWYg KCgkcCAmIDB4MTAwMCkgPT0gMHgxMDAwKSRpID0gJ3AnOwoJZW xzZSAkaSA9ICd1JzsKCSRpIC49ICgoJHAgJiAweDAxMDApID8g J3InIDogJy0nKTsKCSRpIC49ICgoJHAgJiAweDAwODApID8gJ3 cnIDogJy0nKTsKCSRpIC49ICgoJHAgJiAweDAwNDApID8gKCgk cCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweD A4MDApID8gJ1MnIDogJy0nKSk7CgkkaSAuPSAoKCRwICYgMHgw MDIwKSA/ICdyJyA6ICctJyk7CgkkaSAuPSAoKCRwICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7CgkkaSAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwIC YgMHgwNDAwKSA/ICdTJyA6ICctJykpOwoJJGkgLj0gKCgkcCAmIDB4MDAwNCkgPy AncicgOiAnLScpOwoJJGkgLj0gKCgkcCAmIDB4MDAwMikgPyAn dycgOiAnLScpOwoJJGkgLj0gKCgkcCAmIDB4MDAwMSkgPyAoKC RwICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MDIwMCkgPyAnVCcgOi AnLScpKTsKCXJldHVybiAkaTsKfQpmdW5jdGlvbiB2aWV3UGVy bXNDb2xvcigkZikgewoJaWYgKCFAaXNfcmVhZGFibGUoJGYpKQ oJCXJldHVybiAnPGZvbnQgY29sb3I9I0ZGMDAwMD48Yj4nLnBl cm1zKEBmaWxlcGVybXMoJGYpKS4nPC9iPjwvZm9udD4nOwoJZW xzZWlmICghQGlzX3dyaXRhYmxlKCRmKSkKCQlyZXR1cm4gJzxm b250IGNvbG9yPXdoaXRlPjxiPicucGVybXMoQGZpbGVwZXJtcy gkZikpLic8L2I+PC9mb250Pic7CgllbHNlCgkJcmV0dXJuICc8 Zm9udCBjb2xvcj0jRkZEQjVGPjxiPicucGVybXMoQGZpbGVwZX JtcygkZikpLic8L2I+PC9mb250Pic7Cn0KZnVuY3Rpb24gaGFy ZFNjYW5kaXIoJGRpcikgewogICAgaWYoZnVuY3Rpb25fZXhpc3 RzKCJzY2FuZGlyIikpIHsKICAgICAgICByZXR1cm4gc2NhbmRp cigkZGlyKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJGRoICA9IG 9wZW5kaXIoJGRpcik7CiAgICAgICAgd2hpbGUgKGZhbHNlICE9 PSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSkKICAgICAgIC AgICAgJGZpbGVzW10gPSAkZmlsZW5hbWU7CiAgICAgICAgcmV0 dXJuICRmaWxlczsKICAgIH0KfQpmdW5jdGlvbiB3aGljaCgkcC kgewoJJHBhdGggPSBleCgnd2hpY2ggJyAuICRwKTsKCWlmKCFl bXB0eSgkcGF0aCkpCgkJcmV0dXJuICRwYXRoOwoJcmV0dXJuIG ZhbHNlOwp9CmZ1bmN0aW9uIGFjdGlvblJDKCkgewoJaWYoIUAk X1BPU1RbJ3AxJ10pIHsKCQkkYSA9IGFycmF5KAoJCQkidW5hbW UiID0+IHBocF91bmFtZSgpLAoJCQkicGhwX3ZlcnNpb24iID0+ IHBocHZlcnNpb24oKSwKCQkJIlZFUlNJT04iID0+IFZFUlNJT0 4sCgkJCSJzYWZlbW9kZSIgPT4gQGluaV9nZXQoJ3NhZmVfbW9k ZScpCgkJKTsKCQllY2hvIHNlcmlhbGl6ZSgkYSk7Cgl9IGVsc2 UgewoJCWV2YWwoJF9QT1NUWydwMSddKTsKCX0KfQpmdW5jdGlv biBwcm90b3R5cGUoJGssICR2KSB7CiAgICAkX0NPT0tJRVska1 0gPSAkdjsKICAgIHNldGNvb2tpZSgkaywgJHYpOwp9CmZ1bmN0 aW9uIGFjdGlvblNlY0luZm8oKSB7CgloYXJkSGVhZGVyKCk7Cg llY2hvICc8aDE+U2VydmVyIHNlY3VyaXR5IGluZm9ybWF0aW9u PC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+JzsKCWZ1bmN0aW9uIH Nob3dTZWNQYXJhbSgkbiwgJHYpIHsKCQkkdiA9IHRyaW0oJHYp OwoJCWlmKCR2KSB7CgkJCWVjaG8gJzxzcGFuPicgLiAkbiAuIC c6IDwvc3Bhbj4nOwoJCQlpZihzdHJwb3MoJHYsICJcbiIpID09 PSBmYWxzZSkKCQkJCWVjaG8gJHYgLiAnPGJyPic7CgkJCWVsc2 UKCQkJCWVjaG8gJzxwcmUgY2xhc3M9bWwxPicgLiAkdiAuICc8 L3ByZT4nOwoJCX0KCX0KCXNob3dTZWNQYXJhbSgnU2VydmVyIH NvZnR3YXJlJywgQGdldGVudignU0VSVkVSX1NPRlRXQVJFJykp OwogICAgaWYoZnVuY3Rpb25fZXhpc3RzKCdhcGFjaGVfZ2V0X2 1vZHVsZXMnKSkKICAgICAgICBzaG93U2VjUGFyYW0oJ0xvYWRl ZCBBcGFjaGUgbW9kdWxlcycsIGltcGxvZGUoJywgJywgYXBhY2 hlX2dldF9tb2R1bGVzKCkpKTsKCXNob3dTZWNQYXJhbSgnRGlz YWJsZWQgUEhQIEZ1bmN0aW9ucycsICRHTE9CQUxTWydkaXNhYm xlX2Z1bmN0aW9ucyddPyRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0 aW9ucyddOidub25lJyk7CglzaG93U2VjUGFyYW0oJ09wZW4gYm FzZSBkaXInLCBAaW5pX2dldCgnb3Blbl9iYXNlZGlyJykpOwoJ c2hvd1NlY1BhcmFtKCdTYWZlIG1vZGUgZXhlYyBkaXInLCBAaW 5pX2dldCgnc2FmZV9tb2RlX2V4ZWNfZGlyJykpOwoJc2hvd1Nl Y1BhcmFtKCdTYWZlIG1vZGUgaW5jbHVkZSBkaXInLCBAaW5pX2 dldCgnc2FmZV9tb2RlX2luY2x1ZGVfZGlyJykpOwoJc2hvd1Nl Y1BhcmFtKCdjVVJMIHN1cHBvcnQnLCBmdW5jdGlvbl9leGlzdH MoJ2N1cmxfdmVyc2lvbicpPydlbmFibGVkJzonbm8nKTsKCSR0 ZW1wPWFycmF5KCk7CglpZihmdW5jdGlvbl9leGlzdHMoJ215c3 FsX2dldF9jbGllbnRfaW5mbycpKQoJCSR0ZW1wW10gPSAiTXlT cWwgKCIubXlzcWxfZ2V0X2NsaWVudF9pbmZvKCkuIikiOwoJaW YoZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpCgkJ JHRlbXBbXSA9ICJNU1NRTCI7CglpZihmdW5jdGlvbl9leGlzdH MoJ3BnX2Nvbm5lY3QnKSkKCQkkdGVtcFtdID0gIlBvc3RncmVT UUwiOwoJaWYoZnVuY3Rpb25fZXhpc3RzKCdvY2lfY29ubmVjdC cpKQoJCSR0ZW1wW10gPSAiT3JhY2xlIjsKCXNob3dTZWNQYXJh bSgnU3VwcG9ydGVkIGRhdGFiYXNlcycsIGltcGxvZGUoJywgJy wgJHRlbXApKTsKCWVjaG8gJzxicj4nOwoJaWYoJEdMT0JBTFNb J29zJ10gPT0gJ25peCcpIHsKICAgICAgICAgICAgc2hvd1NlY1 BhcmFtKCdSZWFkYWJsZSAvZXRjL3Bhc3N3ZCcsIEBpc19yZWFk YWJsZSgnL2V0Yy9wYXNzd2QnKT8ieWVzIDxhIGhyZWY9JyMnIG 9uY2xpY2s9J2coXCJGaWxlc1Rvb2xzXCIsIFwiL2V0Yy9cIiwg XCJwYXNzd2RcIiknPlt2aWV3XTwvYT4iOidubycpOwogICAgIC AgICAgICBzaG93U2VjUGFyYW0oJ1JlYWRhYmxlIC9ldGMvc2hh ZG93JywgQGlzX3JlYWRhYmxlKCcvZXRjL3NoYWRvdycpPyJ5ZX MgPGEgaHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVzVG9vbHNc IiwgXCIvZXRjL1wiLCBcInNoYWRvd1wiKSc+W3ZpZXddPC9hPi I6J25vJyk7CiAgICAgICAgICAgIHNob3dTZWNQYXJhbSgnT1Mg dmVyc2lvbicsIEBmaWxlX2dldF9jb250ZW50cygnL3Byb2Mvdm Vyc2lvbicpKTsKICAgICAgICAgICAgc2hvd1NlY1BhcmFtKCdE aXN0ciBuYW1lJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL2 lzc3VlLm5ldCcpKTsKICAgICAgICAgICAgaWYoISRHTE9CQUxT WydzYWZlX21vZGUnXSkgewogICAgICAgICAgICAgICAgJHVzZX JmdWwgPSBhcnJheSgnZ2NjJywnbGNjJywnY2MnLCdsZCcsJ21h a2UnLCdwaHAnLCdwZXJsJywncHl0aG9uJywncnVieScsJ3Rhci csJ2d6aXAnLCdiemlwJywnYnppcDInLCduYycsJ2xvY2F0ZScs J3N1aWRwZXJsJyk7CiAgICAgICAgICAgICAgICAkZGFuZ2VyID 0gYXJyYXkoJ2thdicsJ25vZDMyJywnYmRjb3JlZCcsJ3V2c2Nh bicsJ3NhdicsJ2Ryd2ViZCcsJ2NsYW1kJywncmtodW50ZXInLC djaGtyb290a2l0JywnaXB0YWJsZXMnLCdpcGZ3JywndHJpcHdp cmUnLCdzaGllbGRjYycsJ3BvcnRzZW50cnknLCdzbm9ydCcsJ2 9zc2VjJywnbGlkc2FkbScsJ3RjcGxvZGcnLCdzeGlkJywnbG9n Y2hlY2snLCdsb2d3YXRjaCcsJ3N5c21hc2snLCd6bWJzY2FwJy wnc2F3bWlsbCcsJ3dvcm1zY2FuJywnbmluamEnKTsKICAgICAg ICAgICAgICAgICRkb3dubG9hZGVycyA9IGFycmF5KCd3Z2V0Jy wnZmV0Y2gnLCdseW54JywnbGlua3MnLCdjdXJsJywnZ2V0Jywn bHdwLW1pcnJvcicpOwogICAgICAgICAgICAgICAgZWNobyAnPG JyPic7CiAgICAgICAgICAgICAgICAkdGVtcD1hcnJheSgpOwog ICAgICAgICAgICAgICAgZm9yZWFjaCAoJHVzZXJmdWwgYXMgJO KWnykKICAgICAgICAgICAgICAgICAgICBpZih3aGljaCgk4paf KSkKICAgICAgICAgICAgICAgICAgICAgICAgJHRlbXBbXSA9IC Tilp87CiAgICAgICAgICAgICAgICBzaG93U2VjUGFyYW0oJ1Vz ZXJmdWwnLCBpbXBsb2RlKCcsICcsJHRlbXApKTsKICAgICAgIC AgICAgICAgICR0ZW1wPWFycmF5KCk7CiAgICAgICAgICAgICAg ICBmb3JlYWNoICgkZGFuZ2VyIGFzICTilp8pCiAgICAgICAgIC AgICAgICAgICAgaWYod2hpY2goJOKWnykpCiAgICAgICAgICAg ICAgICAgICAgICAgICR0ZW1wW10gPSAk4pafOwogICAgICAgIC AgICAgICAgc2hvd1NlY1BhcmFtKCdEYW5nZXInLCBpbXBsb2Rl KCcsICcsJHRlbXApKTsKICAgICAgICAgICAgICAgICR0ZW1wPW FycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkZG93 bmxvYWRlcnMgYXMgJOKWnykKICAgICAgICAgICAgICAgICAgIC BpZih3aGljaCgk4pafKSkKICAgICAgICAgICAgICAgICAgICAg ICAgJHRlbXBbXSA9ICTilp87CiAgICAgICAgICAgICAgICBzaG 93U2VjUGFyYW0oJ0Rvd25sb2FkZXJzJywgaW1wbG9kZSgnLCAn LCR0ZW1wKSk7CiAgICAgICAgICAgICAgICBlY2hvICc8YnIvPi c7CiAgICAgICAgICAgICAgICBzaG93U2VjUGFyYW0oJ0hERCBz cGFjZScsIGV4KCdkZiAtaCcpKTsKICAgICAgICAgICAgICAgIH Nob3dTZWNQYXJhbSgnSG9zdHMnLCBAZmlsZV9nZXRfY29udGVu dHMoJy9ldGMvaG9zdHMnKSk7CgkJCQlzaG93U2VjUGFyYW0oJ0 1vdW50IG9wdGlvbnMnLCBAZmlsZV9nZXRfY29udGVudHMoJy9l dGMvZnN0YWInKSk7CiAgICAgICAgICAgIH0KCX0gZWxzZSB7Cg kJc2hvd1NlY1BhcmFtKCdPUyBWZXJzaW9uJyxleCgndmVyJykp OwoJCXNob3dTZWNQYXJhbSgnQWNjb3VudCBTZXR0aW5ncycsIG ljb252KCdDUDg2NicsICdVVEYtOCcsZXgoJ25ldCBhY2NvdW50 cycpKSk7CgkJc2hvd1NlY1BhcmFtKCdVc2VyIEFjY291bnRzJy wgaWNvbnYoJ0NQODY2JywgJ1VURi04JyxleCgnbmV0IHVzZXIn KSkpOwoJfQoJZWNobyAnPC9kaXY+JzsKCWhhcmRGb290ZXIoKT sKfQpmdW5jdGlvbiBhY3Rpb25GaWxlc1Rvb2xzKCkgewoJaWYo IGlzc2V0KCRfUE9TVFsncDEnXSkgKQoJCSRfUE9TVFsncDEnXS A9IHVybGRlY29kZSgkX1BPU1RbJ3AxJ10pOwoJaWYoQCRfUE9T VFsncDInXT09J2Rvd25sb2FkJykgewoJCWlmKEBpc19maWxlKC RfUE9TVFsncDEnXSkgJiYgQGlzX3JlYWRhYmxlKCRfUE9TVFsn cDEnXSkpIHsKCQkJb2Jfc3RhcnQoIm9iX2d6aGFuZGxlciIsID QwOTYpOwoJCQloZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246 IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIuYmFzZW5hbWUoJF9QT1 NUWydwMSddKSk7CgkJCWlmIChmdW5jdGlvbl9leGlzdHMoIm1p bWVfY29udGVudF90eXBlIikpIHsKCQkJCSR0eXBlID0gQG1pbW VfY29udGVudF90eXBlKCRfUE9TVFsncDEnXSk7CgkJCQloZWFk ZXIoIkNvbnRlbnQtVHlwZTogIiAuICR0eXBlKTsKCQkJfSBlbH NlCiAgICAgICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlw ZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CgkJCSRmcC A9IEBmb3BlbigkX1BPU1RbJ3AxJ10sICJyIik7CgkJCWlmKCRm cCkgewoJCQkJd2hpbGUoIUBmZW9mKCRmcCkpCgkJCQkJZWNoby BAZnJlYWQoJGZwLCAxMDI0KTsKCQkJCWZjbG9zZSgkZnApOwoJ CQl9CgkJfWV4aXQ7Cgl9CglpZiggQCRfUE9TVFsncDInXSA9PS AnbWtmaWxlJyApIHsKCQlpZighZmlsZV9leGlzdHMoJF9QT1NU WydwMSddKSkgewoJCQkkZnAgPSBAZm9wZW4oJF9QT1NUWydwMS ddLCAndycpOwoJCQlpZigkZnApIHsKCQkJCSRfUE9TVFsncDIn XSA9ICJlZGl0IjsKCQkJCWZjbG9zZSgkZnApOwoJCQl9CgkJfQ oJfQoJaGFyZEhlYWRlcigpOwoJZWNobyAnPGgxPkZpbGUgdG9v bHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4nOwoJaWYoICFmaW xlX2V4aXN0cyhAJF9QT1NUWydwMSddKSApIHsKCQllY2hvICdG aWxlIG5vdCBleGlzdHMnOwoJCWhhcmRGb290ZXIoKTsKCQlyZX R1cm47Cgl9CgkkdWlkID0gQHBvc2l4X2dldHB3dWlkKEBmaWxl b3duZXIoJF9QT1NUWydwMSddKSk7CglpZighJHVpZCkgewoJCS R1aWRbJ25hbWUnXSA9IEBmaWxlb3duZXIoJF9QT1NUWydwMSdd KTsKCQkkZ2lkWyduYW1lJ10gPSBAZmlsZWdyb3VwKCRfUE9TVF sncDEnXSk7Cgl9IGVsc2UgJGdpZCA9IEBwb3NpeF9nZXRncmdp ZChAZmlsZWdyb3VwKCRfUE9TVFsncDEnXSkpOwoJZWNobyAnPH NwYW4+TmFtZTo8L3NwYW4+ICcuaHRtbHNwZWNpYWxjaGFycyhA YmFzZW5hbWUoJF9QT1NUWydwMSddKSkuJyA8c3Bhbj5TaXplOj wvc3Bhbj4gJy4oaXNfZmlsZSgkX1BPU1RbJ3AxJ10pP3ZpZXdT aXplKGZpbGVzaXplKCRfUE9TVFsncDEnXSkpOictJykuJyA8c3 Bhbj5QZXJtaXNzaW9uOjwvc3Bhbj4gJy52aWV3UGVybXNDb2xv cigkX1BPU1RbJ3AxJ10pLicgPHNwYW4+T3duZXIvR3JvdXA6PC 9zcGFuPiAnLiR1aWRbJ25hbWUnXS4nLycuJGdpZFsnbmFtZSdd Lic8YnI+JzsKCWVjaG8gJzxzcGFuPkNyZWF0ZSB0aW1lOjwvc3 Bhbj4gJy5kYXRlKCdZLW0tZCBIOmk6cycsZmlsZWN0aW1lKCRf UE9TVFsncDEnXSkpLicgPHNwYW4+QWNjZXNzIHRpbWU6PC9zcG FuPiAnLmRhdGUoJ1ktbS1kIEg6aTpzJyxmaWxlYXRpbWUoJF9Q T1NUWydwMSddKSkuJyA8c3Bhbj5Nb2RpZnkgdGltZTo8L3NwYW 4+ICcuZGF0ZSgnWS1tLWQgSDppOnMnLGZpbGVtdGltZSgkX1BP U1RbJ3AxJ10pKS4nPGJyPjxicj4nOwoJaWYoIGVtcHR5KCRfUE 9TVFsncDInXSkgKQoJCSRfUE9TVFsncDInXSA9ICd2aWV3JzsK CWlmKCBpc19maWxlKCRfUE9TVFsncDEnXSkgKQoJCSRtID0gYX JyYXkoJ1ZpZXcnLCAnSGlnaGxpZ2h0JywgJ0Rvd25sb2FkJywg J0hleGR1bXAnLCAnRWRpdCcsICdDaG1vZCcsICdSZW5hbWUnLC AnVG91Y2gnLCAnRnJhbWUnKTsKCWVsc2UKCQkkbSA9IGFycmF5 KCdDaG1vZCcsICdSZW5hbWUnLCAnVG91Y2gnKTsKCWZvcmVhY2 goJG0gYXMgJHYpCgkJZWNobyAnPGEgaHJlZj0jIG9uY2xpY2s9 ImcobnVsbCxudWxsLFwnJyAuIHVybGVuY29kZSgkX1BPU1RbJ3 AxJ10pIC4gJ1wnLFwnJy5zdHJ0b2xvd2VyKCR2KS4nXCcpIj4n Ligoc3RydG9sb3dlcigkdik9PUAkX1BPU1RbJ3AyJ10pPyc8Yj 5bICcuJHYuJyBdPC9iPic6JHYpLic8L2E+ICc7CgllY2hvICc8 YnI+PGJyPic7Cglzd2l0Y2goJF9QT1NUWydwMiddKSB7CgkJY2 FzZSAndmlldyc6CgkJCWVjaG8gJzxwcmUgY2xhc3M9bWwxPic7 CgkJCSRmcCA9IEBmb3BlbigkX1BPU1RbJ3AxJ10sICdyJyk7Cg kJCWlmKCRmcCkgewoJCQkJd2hpbGUoICFAZmVvZigkZnApICkK CQkJCQllY2hvIGh0bWxzcGVjaWFsY2hhcnMoQGZyZWFkKCRmcC wgMTAyNCkpOwoJCQkJQGZjbG9zZSgkZnApOwoJCQl9CgkJCWVj aG8gJzwvcHJlPic7CgkJCWJyZWFrOwoJCWNhc2UgJ2hpZ2hsaW dodCc6CgkJCWlmKCBAaXNfcmVhZGFibGUoJF9QT1NUWydwMSdd KSApIHsKCQkJCWVjaG8gJzxkaXYgY2xhc3M9bWwxIHN0eWxlPS JiYWNrZ3JvdW5kLWNvbG9yOiAjZTFlMWUxO2NvbG9yOmJsYWNr OyI+JzsKCQkJCSRvUmIgPSBAaGlnaGxpZ2h0X2ZpbGUoJF9QT1 NUWydwMSddLHRydWUpOwoJCQkJZWNobyBzdHJfcmVwbGFjZShh cnJheSgnPHNwYW4gJywnPC9zcGFuPicpLCBhcnJheSgnPGZvbn QgJywnPC9mb250PicpLCRvUmIpLic8L2Rpdj4nOwoJCQl9CgkJ CWJyZWFrOwoJCWNhc2UgJ2NobW9kJzoKCQkJaWYoICFlbXB0eS gkX1BPU1RbJ3AzJ10pICkgewoJCQkJJHBlcm1zID0gMDsKCQkJ CWZvcigkaT1zdHJsZW4oJF9QT1NUWydwMyddKS0xOyRpPj0wOy 0tJGkpCgkJCQkJJHBlcm1zICs9IChpbnQpJF9QT1NUWydwMydd WyRpXSpwb3coOCwgKHN0cmxlbigkX1BPU1RbJ3AzJ10pLSRpLT EpKTsKCQkJCWlmKCFAY2htb2QoJF9QT1NUWydwMSddLCAkcGVy bXMpKQoJCQkJCWVjaG8gJ0NhblwndCBzZXQgcGVybWlzc2lvbn MhPGJyPjxzY3JpcHQ+ZG9jdW1lbnQubWYucDMudmFsdWU9IiI7 PC9zY3JpcHQ+JzsKCQkJfQoJCQljbGVhcnN0YXRjYWNoZSgpOw oJCQllY2hvICc8c2NyaXB0PnAzXz0iIjs8L3NjcmlwdD48Zm9y bSBvbnN1Ym1pdD0iZyhudWxsLG51bGwsXCcnIC4gdXJsZW5jb2 RlKCRfUE9TVFsncDEnXSkgLiAnXCcsbnVsbCx0aGlzLmNobW9k LnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT10ZX h0IG5hbWU9Y2htb2QgdmFsdWU9Iicuc3Vic3RyKHNwcmludGYo JyVvJywgZmlsZXBlcm1zKCRfUE9TVFsncDEnXSkpLC00KS4nIj 48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9InN1Ym1pdCI+PC9m b3JtPic7CgkJCWJyZWFrOwoJCWNhc2UgJ2VkaXQnOgoJCQlpZi ggIWlzX3dyaXRhYmxlKCRfUE9TVFsncDEnXSkpIHsKCQkJCWVj aG8gJ0ZpbGUgaXNuXCd0IHdyaXRlYWJsZSc7CgkJCQlicmVhaz sKCQkJfQoJCQlpZiggIWVtcHR5KCRfUE9TVFsncDMnXSkgKSB7 CgkJCQkkdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NUWydwMSddKT sKCQkJCSRfUE9TVFsncDMnXSA9IHN1YnN0cigkX1BPU1RbJ3Az J10sMSk7CgkJCQkkZnAgPSBAZm9wZW4oJF9QT1NUWydwMSddLC J3Iik7CgkJCQlpZigkZnApIHsKCQkJCQlAZndyaXRlKCRmcCwk X1BPU1RbJ3AzJ10pOwoJCQkJCUBmY2xvc2UoJGZwKTsKCQkJCQ llY2hvICdTYXZlZCE8YnI+PHNjcmlwdD5wM189IiI7PC9zY3Jp cHQ+JzsKCQkJCQlAdG91Y2goJF9QT1NUWydwMSddLCR0aW1lLC R0aW1lKTsKCQkJCX0KCQkJfQoJCQllY2hvICc8Zm9ybSBvbnN1 Ym1pdD0iZyhudWxsLG51bGwsXCcnIC4gdXJsZW5jb2RlKCRfUE 9TVFsncDEnXSkgLiAnXCcsbnVsbCxcJzFcJyt0aGlzLnRleHQu dmFsdWUpO3JldHVybiBmYWxzZTsiPjx0ZXh0YXJlYSBuYW1lPX RleHQgY2xhc3M9YmlnYXJlYT4nOwoJCQkkZnAgPSBAZm9wZW4o JF9QT1NUWydwMSddLCAncicpOwoJCQlpZigkZnApIHsKCQkJCX doaWxlKCAhQGZlb2YoJGZwKSApCgkJCQkJZWNobyBodG1sc3Bl Y2lhbGNoYXJzKEBmcmVhZCgkZnAsIDEwMjQpKTsKCQkJCUBmY2 xvc2UoJGZwKTsKCQkJfQoJCQllY2hvICc8L3RleHRhcmVhPjxp bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm 0+JzsKCQkJYnJlYWs7CgkJY2FzZSAnaGV4ZHVtcCc6CgkJCSRj ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsncDEnXSk7Cg kJCSRuID0gMDsKCQkJJGggPSBhcnJheSgnMDAwMDAwMDA8YnI+ JywnJywnJyk7CgkJCSRsZW4gPSBzdHJsZW4oJGMpOwoJCQlmb3 IgKCRpPTA7ICRpPCRsZW47ICsrJGkpIHsKCQkJCSRoWzFdIC49 IHNwcmludGYoJyUwMlgnLG9yZCgkY1skaV0pKS4nICc7CgkJCQ lzd2l0Y2ggKCBvcmQoJGNbJGldKSApIHsKCQkJCQljYXNlIDA6 ICAkaFsyXSAuPSAnICc7IGJyZWFrOwoJCQkJCWNhc2UgOTogIC RoWzJdIC49ICcgJzsgYnJlYWs7CgkJCQkJY2FzZSAxMDogJGhb Ml0gLj0gJyAnOyBicmVhazsKCQkJCQljYXNlIDEzOiAkaFsyXS AuPSAnICc7IGJyZWFrOwoJCQkJCWRlZmF1bHQ6ICRoWzJdIC49 ICRjWyRpXTsgYnJlYWs7CgkJCQl9CgkJCQkkbisrOwoJCQkJaW YgKCRuID09IDMyKSB7CgkJCQkJJG4gPSAwOwoJCQkJCWlmICgk aSsxIDwgJGxlbikgeyRoWzBdIC49IHNwcmludGYoJyUwOFgnLC RpKzEpLic8YnI+Jzt9CgkJCQkJJGhbMV0gLj0gJzxicj4nOwoJ CQkJCSRoWzJdIC49ICJcbiI7CgkJCQl9CgkJIAl9CgkJCWVjaG 8gJzx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTUg Ymdjb2xvcj0jMjIyPjx0cj48dGQgYmdjb2xvcj0jMjAyODMyPj xzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+PHBy ZT4nLiRoWzBdLic8L3ByZT48L3NwYW4+PC90ZD48dGQgYmdjb2 xvcj0jMDYwYTEwPjxwcmU+Jy4kaFsxXS4nPC9wcmU+PC90ZD48 dGQgYmdjb2xvcj0jMjAyODMyPjxwcmU+Jy5odG1sc3BlY2lhbG NoYXJzKCRoWzJdKS4nPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+ JzsKCQkJYnJlYWs7CgkJY2FzZSAncmVuYW1lJzoKCQkJaWYoIC FlbXB0eSgkX1BPU1RbJ3AzJ10pICkgewoJCQkJaWYoIUByZW5h bWUoJF9QT1NUWydwMSddLCAkX1BPU1RbJ3AzJ10pKQoJCQkJCW VjaG8gJ0NhblwndCByZW5hbWUhPGJyPic7CgkJCQllbHNlCgkJ CQkJZGllKCc8c2NyaXB0PmcobnVsbCxudWxsLCInLnVybGVuY2 9kZSgkX1BPU1RbJ3AzJ10pLiciLG51bGwsIiIpPC9zY3JpcHQ+ Jyk7CgkJCX0KCQkJZWNobyAnPGZvcm0gb25zdWJtaXQ9Imcobn VsbCxudWxsLFwnJyAuIHVybGVuY29kZSgkX1BPU1RbJ3AxJ10p IC4gJ1wnLG51bGwsdGhpcy5uYW1lLnZhbHVlKTtyZXR1cm4gZm Fsc2U7Ij48aW5wdXQgdHlwZT10ZXh0IG5hbWU9bmFtZSB2YWx1 ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSkuJy I+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJzdWJtaXQiPjwv Zm9ybT4nOwoJCQlicmVhazsKCQljYXNlICd0b3VjaCc6CgkJCW lmKCAhZW1wdHkoJF9QT1NUWydwMyddKSApIHsKCQkJCSR0aW1l ID0gc3RydG90aW1lKCRfUE9TVFsncDMnXSk7CgkJCQlpZigkdG ltZSkgewoJCQkJCWlmKCF0b3VjaCgkX1BPU1RbJ3AxJ10sJHRp bWUsJHRpbWUpKQoJCQkJCQllY2hvICdGYWlsISc7CgkJCQkJZW xzZQoJCQkJCQllY2hvICdUb3VjaGVkISc7CgkJCQl9IGVsc2Ug ZWNobyAnQmFkIHRpbWUgZm9ybWF0ISc7CgkJCX0KCQkJY2xlYX JzdGF0Y2FjaGUoKTsKCQkJZWNobyAnPHNjcmlwdD5wM189IiI7 PC9zY3JpcHQ+PGZvcm0gb25zdWJtaXQ9ImcobnVsbCxudWxsLF wnJyAuIHVybGVuY29kZSgkX1BPU1RbJ3AxJ10pIC4gJ1wnLG51 bGwsdGhpcy50b3VjaC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PG lucHV0IHR5cGU9dGV4dCBuYW1lPXRvdWNoIHZhbHVlPSInLmRh dGUoIlktbS1kIEg6aTpzIiwgQGZpbGVtdGltZSgkX1BPU1RbJ3 AxJ10pKS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9InN1 Ym1pdCI+PC9mb3JtPic7CgkJCWJyZWFrOwoJCS8qICjQoSkgMT IuMjAxNSBtaXRyeXogKi8KCQljYXNlICdmcmFtZSc6CgkJCSRm cmFtZVNyYyA9IHN1YnN0cihodG1sc3BlY2lhbGNoYXJzKCRHTE 9CQUxTWydjd2QnXSksIHN0cmxlbihodG1sc3BlY2lhbGNoYXJz KCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pKSk7CgkJCWlmIC gkZnJhbWVTcmNbMF0gIT0gJy8nKQoJCQkJJGZyYW1lU3JjID0g Jy8nIC4gJGZyYW1lU3JjOwoJCQlpZiAoJGZyYW1lU3JjW3N0cm xlbigkZnJhbWVTcmMpIC0gMV0gIT0gJy8nKQoJCQkJJGZyYW1l U3JjID0gJGZyYW1lU3JjIC4gJy8nOwoJCQkkZnJhbWVTcmMgPS AkZnJhbWVTcmMgLiBodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsn cDEnXSk7CgkJCWVjaG8gJzxpZnJhbWUgd2lkdGg9IjEwMCUiIG hlaWdodD0iOTAwcHgiIHNjcm9sbGluZz0ibm8iIHNyYz0nLiRm cmFtZVNyYy4nIG9ubG9hZD0ib25sb2FkPWhlaWdodD1jb250ZW 50RG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQiPjwvaWZyYW1l Pic7CgkJCWJyZWFrOwoJfQoJZWNobyAnPC9kaXY+JzsKCWhhcm RGb290ZXIoKTsKfQppZigkb3MgPT0gJ3dpbicpCgkkYWxpYXNl cyA9IGFycmF5KAoJCSJMaXN0IERpcmVjdG9yeSIgPT4gImRpci IsCiAgICAJIkZpbmQgaW5kZXgucGhwIGluIGN1cnJlbnQgZGly IiA9PiAiZGlyIC9zIC93IC9iIGluZGV4LnBocCIsCiAgICAJIk ZpbmQgKmNvbmZpZyoucGhwIGluIGN1cnJlbnQgZGlyIiA9PiAi ZGlyIC9zIC93IC9iICpjb25maWcqLnBocCIsCiAgICAJIlNob3 cgYWN0aXZlIGNvbm5lY3Rpb25zIiA9PiAibmV0c3RhdCAtYW4i LAogICAgCSJTaG93IHJ1bm5pbmcgc2VydmljZXMiID0+ICJuZX Qgc3RhcnQiLAogICAgCSJVc2VyIGFjY291bnRzIiA9PiAibmV0 IHVzZXIiLAogICAgCSJTaG93IGNvbXB1dGVycyIgPT4gIm5ldC B2aWV3IiwKCQkiQVJQIFRhYmxlIiA9PiAiYXJwIC1hIiwKCQki SVAgQ29uZmlndXJhdGlvbiIgPT4gImlwY29uZmlnIC9hbGwiCg kpOwplbHNlCgkkYWxpYXNlcyA9IGFycmF5KAogIAkJIkxpc3Qg ZGlyIiA9PiAibHMgLWxoYSIsCgkJImxpc3QgZmlsZSBhdHRyaW J1dGVzIG9uIGEgTGludXggc2Vjb25kIGV4dGVuZGVkIGZpbGUg c3lzdGVtIiA9PiAibHNhdHRyIC12YSIsCiAgCQkic2hvdyBvcG VuZWQgcG9ydHMiID0+ICJuZXRzdGF0IC1hbiB8IGdyZXAgLWkg bGlzdGVuIiwKICAgICAgICAicHJvY2VzcyBzdGF0dXMiID0+IC JwcyBhdXgiLAoJCSJGaW5kIiA9PiAiIiwKICAJCSJmaW5kIGFs bCBzdWlkIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLXBlcm 0gLTA0MDAwIC1scyIsCiAgCQkiZmluZCBzdWlkIGZpbGVzIGlu IGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLXBlcm 0gLTA0MDAwIC1scyIsCiAgCQkiZmluZCBhbGwgc2dpZCBmaWxl cyIgPT4gImZpbmQgLyAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbH MiLAogIAkJImZpbmQgc2dpZCBmaWxlcyBpbiBjdXJyZW50IGRp ciIgPT4gImZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbH MiLAogIAkJImZpbmQgY29uZmlnLmluYy5waHAgZmlsZXMiID0+ ICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocC IsCiAgCQkiZmluZCBjb25maWcqIGZpbGVzIiA9PiAiZmluZCAv IC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiLAogIAkJImZpbm QgY29uZmlnKiBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZp bmQgLiAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiwKICAJCS JmaW5kIGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyIg PT4gImZpbmQgLyAtcGVybSAtMiAtbHMiLAogIAkJImZpbmQgYW xsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIGluIGN1cnJl bnQgZGlyIiA9PiAiZmluZCAuIC1wZXJtIC0yIC1scyIsCiAgCQ kiZmluZCBhbGwgc2VydmljZS5wd2QgZmlsZXMiID0+ICJmaW5k IC8gLXR5cGUgZiAtbmFtZSBzZXJ2aWNlLnB3ZCIsCiAgCQkiZm luZCBzZXJ2aWNlLnB3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIg PT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIi wKICAJCSJmaW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMiID0+ICJm aW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiLAogIAkJIm ZpbmQgLmh0cGFzc3dkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9 PiAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiwKIC AJCSJmaW5kIGFsbCAuYmFzaF9oaXN0b3J5IGZpbGVzIiA9PiAi ZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIsCi AgCQkiZmluZCAuYmFzaF9oaXN0b3J5IGZpbGVzIGluIGN1cnJl bnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmJhc2 hfaGlzdG9yeSIsCiAgCQkiZmluZCBhbGwgLmZldGNobWFpbHJj IGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmZldG NobWFpbHJjIiwKICAJCSJmaW5kIC5mZXRjaG1haWxyYyBmaWxl cyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC 1uYW1lIC5mZXRjaG1haWxyYyIsCgkJIkxvY2F0ZSIgPT4gIiIs CiAgCQkibG9jYXRlIGh0dHBkLmNvbmYgZmlsZXMiID0+ICJsb2 NhdGUgaHR0cGQuY29uZiIsCgkJImxvY2F0ZSB2aG9zdHMuY29u ZiBmaWxlcyIgPT4gImxvY2F0ZSB2aG9zdHMuY29uZiIsCgkJIm xvY2F0ZSBwcm9mdHBkLmNvbmYgZmlsZXMiID0+ICJsb2NhdGUg cHJvZnRwZC5jb25mIiwKCQkibG9jYXRlIHBzeWJuYy5jb25mIG ZpbGVzIiA9PiAibG9jYXRlIHBzeWJuYy5jb25mIiwKCQkibG9j YXRlIG15LmNvbmYgZmlsZXMiID0+ICJsb2NhdGUgbXkuY29uZi IsCgkJImxvY2F0ZSBhZG1pbi5waHAgZmlsZXMiID0+ImxvY2F0 ZSBhZG1pbi5waHAiLAoJCSJsb2NhdGUgY2ZnLnBocCBmaWxlcy IgPT4gImxvY2F0ZSBjZmcucGhwIiwKCQkibG9jYXRlIGNvbmYu cGhwIGZpbGVzIiA9PiAibG9jYXRlIGNvbmYucGhwIiwKCQkibG 9jYXRlIGNvbmZpZy5kYXQgZmlsZXMiID0+ICJsb2NhdGUgY29u ZmlnLmRhdCIsCgkJImxvY2F0ZSBjb25maWcucGhwIGZpbGVzIi A9PiAibG9jYXRlIGNvbmZpZy5waHAiLAoJCSJsb2NhdGUgY29u ZmlnLmluYyBmaWxlcyIgPT4gImxvY2F0ZSBjb25maWcuaW5jIi wKCQkibG9jYXRlIGNvbmZpZy5pbmMucGhwIiA9PiAibG9jYXRl IGNvbmZpZy5pbmMucGhwIiwKCQkibG9jYXRlIGNvbmZpZy5kZW ZhdWx0LnBocCBmaWxlcyIgPT4gImxvY2F0ZSBjb25maWcuZGVm YXVsdC5waHAiLAoJCSJsb2NhdGUgY29uZmlnKiBmaWxlcyAiID 0+ICJsb2NhdGUgY29uZmlnIiwKCQkibG9jYXRlIC5jb25mIGZp bGVzIj0+ImxvY2F0ZSAnLmNvbmYnIiwKCQkibG9jYXRlIC5wd2 QgZmlsZXMiID0+ICJsb2NhdGUgJy5wd2QnIiwKCQkibG9jYXRl IC5zcWwgZmlsZXMiID0+ICJsb2NhdGUgJy5zcWwnIiwKCQkibG 9jYXRlIC5odHBhc3N3ZCBmaWxlcyIgPT4gImxvY2F0ZSAnLmh0 cGFzc3dkJyIsCgkJImxvY2F0ZSAuYmFzaF9oaXN0b3J5IGZpbG VzIiA9PiAibG9jYXRlICcuYmFzaF9oaXN0b3J5JyIsCgkJImxv Y2F0ZSAubXlzcWxfaGlzdG9yeSBmaWxlcyIgPT4gImxvY2F0ZS AnLm15c3FsX2hpc3RvcnknIiwKCQkibG9jYXRlIC5mZXRjaG1h aWxyYyBmaWxlcyIgPT4gImxvY2F0ZSAnLmZldGNobWFpbHJjJy IsCgkJImxvY2F0ZSBiYWNrdXAgZmlsZXMiID0+ICJsb2NhdGUg YmFja3VwIiwKCQkibG9jYXRlIGR1bXAgZmlsZXMiID0+ICJsb2 NhdGUgZHVtcCIsCgkJImxvY2F0ZSBwcml2IGZpbGVzIiA9PiAi bG9jYXRlIHByaXYiCgkpOwpmdW5jdGlvbiBhY3Rpb25Db25zb2 xlKCkgewogICAgaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkgJiYg IWVtcHR5KCRfUE9TVFsncDInXSkpIHsKICAgICAgICBwcm90b3 R5cGUobWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZGVy cl90b19vdXQnLCB0cnVlKTsKICAgICAgICAkX1BPU1RbJ3AxJ1 0gLj0gJyAyPiYxJzsKICAgIH0gZWxzZWlmKCFlbXB0eSgkX1BP U1RbJ3AxJ10pKQogICAgICAgIHByb3RvdHlwZShtZDUoJF9TRV JWRVJbJ0hUVFBfSE9TVCddKS4nc3RkZXJyX3RvX291dCcsIDAp OwoJaWYoaXNzZXQoJF9QT1NUWydhamF4J10pKSB7CgkJcHJvdG 90eXBlKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4 JywgdHJ1ZSk7CgkJb2Jfc3RhcnQoKTsKCQllY2hvICJkLmNmLm NtZC52YWx1ZT0nJztcbiI7CgkJJHRlbXAgPSBAaWNvbnYoJF9Q T1NUWydjaGFyc2V0J10sICdVVEYtOCcsIGFkZGNzbGFzaGVzKC JcbiQgIi4kX1BPU1RbJ3AxJ10uIlxuIi5leCgkX1BPU1RbJ3Ax J10pLCJcblxyXHRcJ1wwIikpOwoJCWlmKHByZWdfbWF0Y2goIi EuKmNkXHMrKFteO10rKSQhIiwkX1BPU1RbJ3AxJ10sJG1hdGNo KSkJewoJCQlpZihAY2hkaXIoJG1hdGNoWzFdKSkgewoJCQkJJE dMT0JBTFNbJ2N3ZCddID0gQGdldGN3ZCgpOwoJCQkJZWNobyAi Y189JyIuJEdMT0JBTFNbJ2N3ZCddLiInOyI7CgkJCX0KCQl9Cg kJZWNobyAiZC5jZi5vdXRwdXQudmFsdWUrPSciLiR0ZW1wLiIn OyI7CgkJZWNobyAiZC5jZi5vdXRwdXQuc2Nyb2xsVG9wID0gZC 5jZi5vdXRwdXQuc2Nyb2xsSGVpZ2h0OyI7CgkJJHRlbXAgPSBv Yl9nZXRfY2xlYW4oKTsKCQllY2hvIHN0cmxlbigkdGVtcCksIC JcbiIsICR0ZW1wOwoJCWV4aXQ7Cgl9CiAgICBpZihlbXB0eSgk X1BPU1RbJ2FqYXgnXSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQ oJCXByb3RvdHlwZShtZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCdd KS4nYWpheCcsIDApOwoJaGFyZEhlYWRlcigpOwogICAgZWNoby AiPHNjcmlwdD4KaWYod2luZG93LkV2ZW50KSB3aW5kb3cuY2Fw dHVyZUV2ZW50cyhFdmVudC5LRVlET1dOKTsKdmFyIGNtZHMgPS BuZXcgQXJyYXkoJycpOwp2YXIgY3VyID0gMDsKZnVuY3Rpb24g a3AoZSkgewoJdmFyIG4gPSAod2luZG93LkV2ZW50KSA/IGUud2hpY2ggOiBlLmtleUNvZGU7CglpZihuID09IDM4KSB7Cg kJY3VyLS07CgkJaWYoY3VyPj0wKQoJCQlkb2N1bWVudC5jZi5j bWQudmFsdWUgPSBjbWRzW2N1cl07CgkJZWxzZQoJCQljdXIrKz sKCX0gZWxzZSBpZihuID09IDQwKSB7CgkJY3VyKys7CgkJaWYo Y3VyIDwgY21kcy5sZW5ndGgpCgkJCWRvY3VtZW50LmNmLmNtZC 52YWx1ZSA9IGNtZHNbY3VyXTsKCQllbHNlCgkJCWN1ci0tOwoJ fQp9CmZ1bmN0aW9uIGFkZChjbWQpIHsKCWNtZHMucG9wKCk7Cg ljbWRzLnB1c2goY21kKTsKCWNtZHMucHVzaCgnJyk7CgljdXIg PSBjbWRzLmxlbmd0aC0xOwp9Cjwvc2NyaXB0PiI7CgllY2hvIC c8aDE+Q29uc29sZTwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pjxm b3JtIG5hbWU9Y2Ygb25zdWJtaXQ9ImlmKGQuY2YuY21kLnZhbH VlPT1cJ2NsZWFyXCcpe2QuY2Yub3V0cHV0LnZhbHVlPVwnXCc7 ZC5jZi5jbWQudmFsdWU9XCdcJztyZXR1cm4gZmFsc2U7fWFkZC h0aGlzLmNtZC52YWx1ZSk7aWYodGhpcy5hamF4LmNoZWNrZWQp e2EobnVsbCxudWxsLHRoaXMuY21kLnZhbHVlLHRoaXMuc2hvd1 9lcnJvcnMuY2hlY2tlZD8xOlwnXCcpO31lbHNle2cobnVsbCxu dWxsLHRoaXMuY21kLnZhbHVlLHRoaXMuc2hvd19lcnJvcnMuY2 hlY2tlZD8xOlwnXCcpO30gcmV0dXJuIGZhbHNlOyI+PGxhYmVs PjxzZWxlY3QgbmFtZT1hbGlhcz4nOwoJZm9yZWFjaCgkR0xPQk FMU1snYWxpYXNlcyddIGFzICRuID0+ICR2KSB7CgkJaWYoJHYg PT0gJycpIHsKCQkJZWNobyAnPG9wdGdyb3VwIGxhYmVsPSItJy 5odG1sc3BlY2lhbGNoYXJzKCRuKS4nLSI+PC9vcHRncm91cD4n OwoJCQljb250aW51ZTsKCQl9CgkJZWNobyAnPG9wdGlvbiB2YW x1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCR2KS4nIj4nLiRuLic8 L29wdGlvbj4nOwoJfQoJCgllY2hvICc8L3NlbGVjdD48L2xhYm VsPjxpbnB1dCB0eXBlPWJ1dHRvbiBvbmNsaWNrPSJhZGQoZC5j Zi5hbGlhcy52YWx1ZSk7aWYoZC5jZi5hamF4LmNoZWNrZWQpe2 EobnVsbCxudWxsLGQuY2YuYWxpYXMudmFsdWUsZC5jZi5zaG93 X2Vycm9ycy5jaGVja2VkPzE6XCdcJyk7fWVsc2V7ZyhudWxsLG 51bGwsZC5jZi5hbGlhcy52YWx1ZSxkLmNmLnNob3dfZXJyb3Jz LmNoZWNrZWQ/MTpcJ1wnKTt9IiB2YWx1ZT0ic3VibWl0Ij4gPG5vYnI+PGlucH V0IHR5cGU9Y2hlY2tib3ggbmFtZT1hamF4IHZhbHVlPTEgJy4o QCRfQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLi dhamF4J10/J2NoZWNrZWQnOicnKS4nPiBzZW5kIHVzaW5nIEFKQVggPGlucH V0IHR5cGU9Y2hlY2tib3ggbmFtZT1zaG93X2Vycm9ycyB2YWx1 ZT0xICcuKCFlbXB0eSgkX1BPU1RbJ3AyJ10pfHwkX0NPT0tJRV ttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nc3RkZXJyX3Rv X291dCddPydjaGVja2VkJzonJykuJz4gcmVkaXJlY3Qgc3RkZX JyIHRvIHN0ZG91dCAoMj4mMSk8L25vYnI+PGJyLz48dGV4dGFy ZWEgY2xhc3M9YmlnYXJlYSBuYW1lPW91dHB1dCBzdHlsZT0iYm 9yZGVyLWJvdHRvbTowO21hcmdpbi10b3A6NXB4OyIgcmVhZG9u bHk+JzsKCWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7CgkJZW NobyBodG1sc3BlY2lhbGNoYXJzKCIkICIuJF9QT1NUWydwMSdd LiJcbiIuZXgoJF9QT1NUWydwMSddKSk7Cgl9CgllY2hvICc8L3 RleHRhcmVhPjx0YWJsZSBzdHlsZT0iYm9yZGVyOjFweCBzb2xp ZCAjMDYwYTEwO2JhY2tncm91bmQtY29sb3I6IzA2MGExMDtib3 JkZXItdG9wOjBweDsiIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNp bmc9MCB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBzdHlsZT0icGFkZG luZy1sZWZ0OjRweDsgd2lkdGg6MTNweDsiPiQ8L3RkPjx0ZD48 aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y21kIHN0eWxlPSJib3JkZX I6MHB4O3dpZHRoOjEwMCU7IiBvbmtleWRvd249ImtwKGV2ZW50 KTsiPjwvdGQ+PC90cj48L3RhYmxlPic7CgllY2hvICc8L2Zvcm 0+PC9kaXY+PHNjcmlwdD5kLmNmLmNtZC5mb2N1cygpOzwvc2Ny aXB0Pic7CgloYXJkRm9vdGVyKCk7Cn0KZnVuY3Rpb24gYWN0aW 9uUGhwKCkgewoJaWYoIGlzc2V0KCRfUE9TVFsnYWpheCddKSAp IHsKCQkkX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVC ddKS4nYWpheCddID0gdHJ1ZTsKCQlvYl9zdGFydCgpOwoJCWV2 YWwoJF9QT1NUWydwMSddKTsKCQkkdGVtcCA9ICJkb2N1bWVudC 5nZXRFbGVtZW50QnlJZCgnUGhwT3V0cHV0Jykuc3R5bGUuZGlz cGxheT0nJztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnUGhwT3 V0cHV0JykuaW5uZXJIVE1MPSciLmFkZGNzbGFzaGVzKGh0bWxz cGVjaWFsY2hhcnMob2JfZ2V0X2NsZWFuKCkpLCJcblxyXHRcXC dcMCIpLiInO1xuIjsKCQllY2hvIHN0cmxlbigkdGVtcCksICJc biIsICR0ZW1wOwoJCWV4aXQ7IAoJfQoJaGFyZEhlYWRlcigpOw oJaWYoIGlzc2V0KCRfUE9TVFsncDInXSkgJiYgKCRfUE9TVFsn cDInXSA9PSAnaW5mbycpICkgewoJCWVjaG8gJzxoMT5QSFAgaW 5mbzwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7CgkJb2Jfc3Rh cnQoKTsKCQlwaHBpbmZvKCk7CgkJJHRtcCA9IG9iX2dldF9jbG VhbigpOwoJCSR0bXAgPSBwcmVnX3JlcGxhY2UoJyFib2R5IHsu Kn0hbXNpVScsJycsJHRtcCk7CgkJJHRtcCA9IHByZWdfcmVwbG FjZSgnIWE6XHcrIHsuKn0hbXNpVScsJycsJHRtcCk7CgkJJHRt cCA9IHByZWdfcmVwbGFjZSgnIWgxIW1zaVUnLCdoMicsJHRtcC k7CgkJJHRtcCA9IHByZWdfcmVwbGFjZSgnIXRkLCB0aCB7KC4q KX0hbXNpVScsJy5lLCAudiwgLmgsIC5oIHRoIHskMX0nLCR0bX ApOwoJCSR0bXAgPSBwcmVnX3JlcGxhY2UoJyFib2R5LCB0ZCwg dGgsIGgyLCBoMiB7Lip9IW1zaVUnLCcnLCR0bXApOwoJCWVjaG 8gJHRtcDsKCQllY2hvICc8L2Rpdj48YnI+JzsKCX0KCWlmKGVt cHR5KCRfUE9TVFsnYWpheCddKSYmIWVtcHR5KCRfUE9TVFsncD EnXSkpCgkJJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hP U1QnXSkuJ2FqYXgnXSA9IGZhbHNlOwoJCWVjaG8gJzxoMT5FeG VjdXRpb24gUEhQLWNvZGU8L2gxPjxkaXYgY2xhc3M9Y29udGVu dD48Zm9ybSBuYW1lPXBmIG1ldGhvZD1wb3N0IG9uc3VibWl0PS JpZih0aGlzLmFqYXguY2hlY2tlZCl7YShudWxsLG51bGwsdGhp cy5jb2RlLnZhbHVlKTt9ZWxzZXtnKG51bGwsbnVsbCx0aGlzLm NvZGUudmFsdWUsXCdcJyk7fXJldHVybiBmYWxzZTsiPjx0ZXh0 YXJlYSBuYW1lPWNvZGUgY2xhc3M9YmlnYXJlYSBpZD1QaHBDb2 RlPicuKCFlbXB0eSgkX1BPU1RbJ3AxJ10pP2h0bWxzcGVjaWFs Y2hhcnMoJF9QT1NUWydwMSddKTonJykuJzwvdGV4dGFyZWE+PG lucHV0IHR5cGU9c3VibWl0IHZhbHVlPUV2YWwgc3R5bGU9Im1h cmdpbi10b3A6NXB4Ij4nOwoJZWNobyAnIDxpbnB1dCB0eXBlPW NoZWNrYm94IG5hbWU9YWpheCB2YWx1ZT0xICcuKCRfQ09PS0lF W21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10/J2NoZWNrZWQnOicnKS4nPiBzZW5kIHVzaW5nIEFKQVg8L2Zvcm 0+PHByZSBpZD1QaHBPdXRwdXQgc3R5bGU9IicuKGVtcHR5KCRf UE9TVFsncDEnXSk/J2Rpc3BsYXk6bm9uZTsnOicnKS4nbWFyZ2luLXRvcDo1cHg7Ii BjbGFzcz1tbDE+JzsKCWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10p KSB7CgkJb2Jfc3RhcnQoKTsKCQlldmFsKCRfUE9TVFsncDEnXS k7CgkJZWNobyBodG1sc3BlY2lhbGNoYXJzKG9iX2dldF9jbGVh bigpKTsKCX0KCWVjaG8gJzwvcHJlPjwvZGl2Pic7CgloYXJkRm 9vdGVyKCk7Cn0KZnVuY3Rpb24gYWN0aW9uRmlsZXNNYW4oKSB7 CiAgICBpZiAoIWVtcHR5ICgkX0NPT0tJRVsnZiddKSkKICAgIC AgICAkX0NPT0tJRVsnZiddID0gQHVuc2VyaWFsaXplKCRfQ09P S0lFWydmJ10pOwogICAgCglpZighZW1wdHkoJF9QT1NUWydwMS ddKSkgewoJCXN3aXRjaCgkX1BPU1RbJ3AxJ10pIHsKCQkJY2Fz ZSAndXBsb2FkRmlsZSc6CgkJCQlpZiAoIGlzX2FycmF5KCRfRk lMRVNbJ2YnXVsndG1wX25hbWUnXSkgKSB7CgkJCQkJZm9yZWFj aCAoICRfRklMRVNbJ2YnXVsndG1wX25hbWUnXSBhcyAkaSA9Pi AkdG1wTmFtZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAg aWYoIUBtb3ZlX3VwbG9hZGVkX2ZpbGUoJHRtcE5hbWUsICRfRk lMRVNbJ2YnXVsnbmFtZSddWyRpXSkpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlY2hvICJDYW4ndCB1cGxvYW QgZmlsZSEiOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJ YnJlYWs7CgkJCWNhc2UgJ21rZGlyJzoKCQkJCWlmKCFAbWtkaX IoJF9QT1NUWydwMiddKSkKCQkJCQllY2hvICJDYW4ndCBjcmVh dGUgbmV3IGRpciI7CgkJCQlicmVhazsKCQkJY2FzZSAnZGVsZX RlJzoKCQkJCWZ1bmN0aW9uIGRlbGV0ZURpcigkcGF0aCkgewoJ CQkJCSRwYXRoID0gKHN1YnN0cigkcGF0aCwtMSk9PScvJykgPy AkcGF0aDokcGF0aC4nLyc7CgkJCQkJJGRoICA9IG9wZW5kaXIo JHBhdGgpOwoJCQkJCXdoaWxlICggKCTilp8gPSByZWFkZGlyKC RkaCkgKSAhPT0gZmFsc2UpIHsKCQkJCQkJJOKWnyA9ICRwYXRo LiTilp87CgkJCQkJCWlmICggKGJhc2VuYW1lKCTilp8pID09IC IuLiIpIHx8IChiYXNlbmFtZSgk4pafKSA9PSAiLiIpICkKCQkJ CQkJCWNvbnRpbnVlOwoJCQkJCQkkdHlwZSA9IGZpbGV0eXBlKC Tilp8pOwoJCQkJCQlpZiAoJHR5cGUgPT0gImRpciIpCgkJCQkJ CQlkZWxldGVEaXIoJOKWnyk7CgkJCQkJCWVsc2UKCQkJCQkJCU B1bmxpbmsoJOKWnyk7CgkJCQkJfQoJCQkJCWNsb3NlZGlyKCRk aCk7CgkJCQkJQHJtZGlyKCRwYXRoKTsKCQkJCX0KCQkJCWlmKG lzX2FycmF5KEAkX1BPU1RbJ2YnXSkpCgkJCQkJZm9yZWFjaCgk X1BPU1RbJ2YnXSBhcyAkZikgewogICAgICAgICAgICAgICAgIC AgICAgICBpZigkZiA9PSAnLi4nKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7CgkJCQkJCSRmID0gdXJsZG Vjb2RlKCRmKTsKCQkJCQkJaWYoaXNfZGlyKCRmKSkKCQkJCQkJ CWRlbGV0ZURpcigkZik7CgkJCQkJCWVsc2UKCQkJCQkJCUB1bm xpbmsoJGYpOwoJCQkJCX0KCQkJCWJyZWFrOwoJCQljYXNlICdw YXN0ZSc6CgkJCQlpZigkX0NPT0tJRVsnYWN0J10gPT0gJ2NvcH knKSB7CgkJCQkJZnVuY3Rpb24gY29weV9wYXN0ZSgkYywkcywk ZCl7CgkJCQkJCWlmKGlzX2RpcigkYy4kcykpewoJCQkJCQkJbW tkaXIoJGQuJHMpOwoJCQkJCQkJJGggPSBAb3BlbmRpcigkYy4k cyk7CgkJCQkJCQl3aGlsZSAoKCRmID0gQHJlYWRkaXIoJGgpKS AhPT0gZmFsc2UpCgkJCQkJCQkJaWYgKCgkZiAhPSAiLiIpIGFu ZCAoJGYgIT0gIi4uIikpCgkJCQkJCQkJCWNvcHlfcGFzdGUoJG MuJHMuJy8nLCRmLCAkZC4kcy4nLycpOwoJCQkJCQl9IGVsc2Vp Zihpc19maWxlKCRjLiRzKSkKCQkJCQkJCUBjb3B5KCRjLiRzLC AkZC4kcyk7CgkJCQkJfQoJCQkJCWZvcmVhY2goJF9DT09LSUVb J2YnXSBhcyAkZikKCQkJCQkJY29weV9wYXN0ZSgkX0NPT0tJRV snYyddLCRmLCAkR0xPQkFMU1snY3dkJ10pOwoJCQkJfSBlbHNl aWYoJF9DT09LSUVbJ2FjdCddID09ICdtb3ZlJykgewoJCQkJCW Z1bmN0aW9uIG1vdmVfcGFzdGUoJGMsJHMsJGQpewoJCQkJCQlp Zihpc19kaXIoJGMuJHMpKXsKCQkJCQkJCW1rZGlyKCRkLiRzKT sKCQkJCQkJCSRoID0gQG9wZW5kaXIoJGMuJHMpOwoJCQkJCQkJ d2hpbGUgKCgkZiA9IEByZWFkZGlyKCRoKSkgIT09IGZhbHNlKQ oJCQkJCQkJCWlmICgoJGYgIT0gIi4iKSBhbmQgKCRmICE9ICIu LiIpKQoJCQkJCQkJCQljb3B5X3Bhc3RlKCRjLiRzLicvJywkZi wgJGQuJHMuJy8nKTsKCQkJCQkJfSBlbHNlaWYoQGlzX2ZpbGUo JGMuJHMpKQoJCQkJCQkJQGNvcHkoJGMuJHMsICRkLiRzKTsKCQ kJCQl9CgkJCQkJZm9yZWFjaCgkX0NPT0tJRVsnZiddIGFzICRm KQoJCQkJCQlAcmVuYW1lKCRfQ09PS0lFWydjJ10uJGYsICRHTE 9CQUxTWydjd2QnXS4kZik7CgkJCQl9IGVsc2VpZigkX0NPT0tJ RVsnYWN0J10gPT0gJ3ppcCcpIHsKCQkJCQlpZihjbGFzc19leG lzdHMoJ1ppcEFyY2hpdmUnKSkgewogICAgICAgICAgICAgICAg ICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmUoKTsKICAgIC AgICAgICAgICAgICAgICAgICAgaWYgKCR6aXAtPm9wZW4oJF9Q T1NUWydwMiddLCAxKSkgewogICAgICAgICAgICAgICAgICAgIC AgICAgICAgY2hkaXIoJF9DT09LSUVbJ2MnXSk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRfQ09PS0lFWy dmJ10gYXMgJGYpIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZigkZiA9PSAnLi4nKQogICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZihAaXNfZmlsZS gkX0NPT0tJRVsnYyddLiRmKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJHppcC0+YWRkRmlsZSgkX0NPT0 tJRVsnYyddLiRmLCAkZik7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZWlmKEBpc19kaXIoJF9DT09LSUVbJ2 MnXS4kZikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGl0ZXJhdG9yID0gbmV3IFJlY3Vyc2l2ZUl0ZX JhdG9ySXRlcmF0b3IobmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0 ZXJhdG9yKCRmLicvJywgRmlsZXN5c3RlbUl0ZXJhdG9yOjpTS0 lQX0RPVFMpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9yZWFjaCAoJGl0ZXJhdG9yIGFzICRrZXk9Pi R2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJHppcC0+YWRkRmlsZShyZWFscGF0aCgka2 V5KSwgJGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGRpcigkR0 xPQkFMU1snY3dkJ10pOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgJHppcC0+Y2xvc2UoKTsKICAgICAgICAgICAgICAgIC AgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCQkJCX0g ZWxzZWlmKCRfQ09PS0lFWydhY3QnXSA9PSAndW56aXAnKSB7Cg kJCQkJaWYoY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpIHsK ICAgICAgICAgICAgICAgICAgICAgICAgJHppcCA9IG5ldyBaaX BBcmNoaXZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZv cmVhY2goJF9DT09LSUVbJ2YnXSBhcyAkZikgewogICAgICAgIC AgICAgICAgICAgICAgICAgICAgaWYoJHppcC0+b3BlbigkX0NP T0tJRVsnYyddLiRmKSkgewogICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICR6aXAtPmV4dHJhY3RUbygkR0xPQkFMU1sn Y3dkJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICR6aXAtPmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KIC AgICAgICAgICAgICAgICAgICB9CgkJCQl9IGVsc2VpZigkX0NP T0tJRVsnYWN0J10gPT0gJ3RhcicpIHsKICAgICAgICAgICAgIC AgICAgICBjaGRpcigkX0NPT0tJRVsnYyddKTsKICAgICAgICAg ICAgICAgICAgICAkX0NPT0tJRVsnZiddID0gYXJyYXlfbWFwKC dlc2NhcGVzaGVsbGFyZycsICRfQ09PS0lFWydmJ10pOwogICAg ICAgICAgICAgICAgICAgIGV4KCd0YXIgY2Z6diAnIC4gZXNjYX Blc2hlbGxhcmcoJF9QT1NUWydwMiddKSAuICcgJyAuIGltcGxv ZGUoJyAnLCAkX0NPT0tJRVsnZiddKSk7CiAgICAgICAgICAgIC AgICAgICAgY2hkaXIoJEdMT0JBTFNbJ2N3ZCddKTsKCQkJCX0K CQkJCXVuc2V0KCRfQ09PS0lFWydmJ10pOwogICAgICAgICAgIC AgICAgc2V0Y29va2llKCdmJywgJycsIHRpbWUoKSAtIDM2MDAp OwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6CiAgICAgICAgICAgIC AgICBpZighZW1wdHkoJF9QT1NUWydwMSddKSkgewoJCQkJCXBy b3RvdHlwZSgnYWN0JywgJF9QT1NUWydwMSddKTsKCQkJCQlwcm 90b3R5cGUoJ2YnLCBzZXJpYWxpemUoQCRfUE9TVFsnZiddKSk7 CgkJCQkJcHJvdG90eXBlKCdjJywgQCRfUE9TVFsnYyddKTsKCQ kJCX0KCQkJCWJyZWFrOwoJCX0KCX0KICAgIGhhcmRIZWFkZXIo KTsKCWVjaG8gJzxoMT5GaWxlIG1hbmFnZXI8L2gxPjxkaXYgY2 xhc3M9Y29udGVudD48c2NyaXB0PnAxXz1wMl89cDNfPSIiOzwv c2NyaXB0Pic7CgkkZGlyQ29udGVudCA9IGhhcmRTY2FuZGlyKG lzc2V0KCRfUE9TVFsnYyddKT8kX1BPU1RbJ2MnXTokR0xPQkFM U1snY3dkJ10pOwoJaWYoJGRpckNvbnRlbnQgPT09IGZhbHNlKS B7CWVjaG8gJ0NhblwndCBvcGVuIHRoaXMgZm9sZGVyISc7aGFy ZEZvb3RlcigpOyByZXR1cm47IH0KCWdsb2JhbCAkc29ydDsKCS Rzb3J0ID0gYXJyYXkoJ25hbWUnLCAxKTsKCWlmKCFlbXB0eSgk X1BPU1RbJ3AxJ10pKSB7CgkJaWYocHJlZ19tYXRjaCgnIXNfKF tBLXpdKylfKFxkezF9KSEnLCAkX1BPU1RbJ3AxJ10sICRtYXRj aCkpCgkJCSRzb3J0ID0gYXJyYXkoJG1hdGNoWzFdLCAoaW50KS RtYXRjaFsyXSk7Cgl9CmVjaG8gIjxzY3JpcHQ+CglmdW5jdGlv biBzYSgpIHsKCQlmb3IoaT0wO2k8ZC5maWxlcy5lbGVtZW50cy 5sZW5ndGg7aSsrKQoJCQlpZihkLmZpbGVzLmVsZW1lbnRzW2ld LnR5cGUgPT0gJ2NoZWNrYm94JykKCQkJCWQuZmlsZXMuZWxlbW VudHNbaV0uY2hlY2tlZCA9IGQuZmlsZXMuZWxlbWVudHNbMF0u Y2hlY2tlZDsKCX0KPC9zY3JpcHQ+Cjx0YWJsZSB3aWR0aD0nMT AwJScgY2xhc3M9J21haW4nIGNlbGxzcGFjaW5nPScwJyBjZWxs cGFkZGluZz0nMic+Cjxmb3JtIG5hbWU9ZmlsZXMgbWV0aG9kPX Bvc3Q+PHRyPjx0aCB3aWR0aD0nMTNweCc+PGlucHV0IHR5cGU9 Y2hlY2tib3ggb25jbGljaz0nc2EoKScgY2xhc3M9Y2hrYng+PC 90aD48dGg+PGEgaHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVz TWFuXCIsbnVsbCxcInNfbmFtZV8iLigkc29ydFsxXT8wOjEpLi JcIiknPk5hbWU8L2E+PC90aD48dGg+PGEgaHJlZj0nIycgb25j bGljaz0nZyhcIkZpbGVzTWFuXCIsbnVsbCxcInNfc2l6ZV8iLi gkc29ydFsxXT8wOjEpLiJcIiknPlNpemU8L2E+PC90aD48dGg+ PGEgaHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVzTWFuXCIsbn VsbCxcInNfbW9kaWZ5XyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+ TW9kaWZ5PC9hPjwvdGg+PHRoPk93bmVyL0dyb3VwPC90aD48dG g+PGEgaHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVzTWFuXCIs bnVsbCxcInNfcGVybXNfIi4oJHNvcnRbMV0/MDoxKS4iXCIpJz5QZXJtaXNzaW9uczwvYT48L3RoPjx0aD5BY3 Rpb25zPC90aD48L3RyPiI7CgkkZGlycyA9ICRmaWxlcyA9IGFy cmF5KCk7CgkkbiA9IGNvdW50KCRkaXJDb250ZW50KTsKCWZvci gkaT0wOyRpPCRuOyRpKyspIHsKCQkkb3cgPSBAcG9zaXhfZ2V0 cHd1aWQoQGZpbGVvd25lcigkZGlyQ29udGVudFskaV0pKTsKCQ kkZ3IgPSBAcG9zaXhfZ2V0Z3JnaWQoQGZpbGVncm91cCgkZGly Q29udGVudFskaV0pKTsKCQkkdG1wID0gYXJyYXkoJ25hbWUnID 0+ICRkaXJDb250ZW50WyRpXSwKCQkJCQkgJ3BhdGgnID0+ICRH TE9CQUxTWydjd2QnXS4kZGlyQ29udGVudFskaV0sCgkJCQkJIC dtb2RpZnknID0+IGRhdGUoJ1ktbS1kIEg6aTpzJywgQGZpbGVt dGltZSgkR0xPQkFMU1snY3dkJ10gLiAkZGlyQ29udGVudFskaV 0pKSwKCQkJCQkgJ3Blcm1zJyA9PiB2aWV3UGVybXNDb2xvcigk R0xPQkFMU1snY3dkJ10gLiAkZGlyQ29udGVudFskaV0pLAoJCQ kJCSAnc2l6ZScgPT4gQGZpbGVzaXplKCRHTE9CQUxTWydjd2Qn XS4kZGlyQ29udGVudFskaV0pLAoJCQkJCSAnb3duZXInID0+IC Rvd1snbmFtZSddPyRvd1snbmFtZSddOkBmaWxlb3duZXIoJGRp ckNvbnRlbnRbJGldKSwKCQkJCQkgJ2dyb3VwJyA9PiAkZ3JbJ2 5hbWUnXT8kZ3JbJ25hbWUnXTpAZmlsZWdyb3VwKCRkaXJDb250 ZW50WyRpXSkKCQkJCQkpOwoJCWlmKEBpc19maWxlKCRHTE9CQU xTWydjd2QnXSAuICRkaXJDb250ZW50WyRpXSkpCgkJCSRmaWxl c1tdID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID 0+ICdmaWxlJykpOwoJCWVsc2VpZihAaXNfbGluaygkR0xPQkFM U1snY3dkJ10gLiAkZGlyQ29udGVudFskaV0pKQoJCQkkZGlyc1 tdID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID0+ ICdsaW5rJywgJ2xpbmsnID0+IHJlYWRsaW5rKCR0bXBbJ3BhdG gnXSkpKTsKCQllbHNlaWYoQGlzX2RpcigkR0xPQkFMU1snY3dk J10gLiAkZGlyQ29udGVudFskaV0pJiYoJGRpckNvbnRlbnRbJG ldICE9ICIuIikpCgkJCSRkaXJzW10gPSBhcnJheV9tZXJnZSgk dG1wLCBhcnJheSgndHlwZScgPT4gJ2RpcicpKTsKCX0KCSRHTE 9CQUxTWydzb3J0J10gPSAkc29ydDsKCWZ1bmN0aW9uIGNtcCgk YSwgJGIpIHsKCQlpZigkR0xPQkFMU1snc29ydCddWzBdICE9IC dzaXplJykKCQkJcmV0dXJuIHN0cmNtcChzdHJ0b2xvd2VyKCRh WyRHTE9CQUxTWydzb3J0J11bMF1dKSwgc3RydG9sb3dlcigkYl skR0xPQkFMU1snc29ydCddWzBdXSkpKigkR0xPQkFMU1snc29y dCddWzFdPzE6LTEpOwoJCWVsc2UKCQkJcmV0dXJuICgoJGFbJ3 NpemUnXSA8ICRiWydzaXplJ10pID8gLTEgOiAxKSooJEdMT0JB TFNbJ3NvcnQnXVsxXT8xOi0xKTsKCX0KCXVzb3J0KCRmaWxlcy wgImNtcCIpOwoJdXNvcnQoJGRpcnMsICJjbXAiKTsKCSRmaWxl cyA9IGFycmF5X21lcmdlKCRkaXJzLCAkZmlsZXMpOwoJJGwgPS AwOwoJZm9yZWFjaCgkZmlsZXMgYXMgJGYpIHsKCQllY2hvICc8 dHInLigkbD8nIGNsYXNzPWwxJzonJykuJz48dGQ+PGlucHV0IH R5cGU9Y2hlY2tib3ggbmFtZT0iZltdIiB2YWx1ZT0iJy51cmxl bmNvZGUoJGZbJ25hbWUnXSkuJyIgY2xhc3M9Y2hrYng+PC90ZD 48dGQ+PGEgaHJlZj0jIG9uY2xpY2s9IicuKCgkZlsndHlwZSdd PT0nZmlsZScpPydnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLn VybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwndmlld1wnKSI+ Jy5odG1sc3BlY2lhbGNoYXJzKCRmWyduYW1lJ10pOidnKFwnRm lsZXNNYW5cJyxcJycuJGZbJ3BhdGgnXS4nXCcpOyIgJyAuIChl bXB0eSAoJGZbJ2xpbmsnXSkgPyAnJyA6ICJ0aXRsZT0neyRmWy dsaW5rJ119JyIpIC4gJz48Yj5bICcgLiBodG1sc3BlY2lhbGNo YXJzKCRmWyduYW1lJ10pIC4gJyBdPC9iPicpLic8L2E+PC90ZD 48dGQ+Jy4oKCRmWyd0eXBlJ109PSdmaWxlJyk/dmlld1NpemUoJGZbJ3NpemUnXSk6JGZbJ3R5cGUnXSkuJzwvdG Q+PHRkPicuJGZbJ21vZGlmeSddLic8L3RkPjx0ZD4nLiRmWydv d25lciddLicvJy4kZlsnZ3JvdXAnXS4nPC90ZD48dGQ+PGEgaH JlZj0jIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxc JycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJyxcJ2NobW9kXC cpIj4nLiRmWydwZXJtcyddCgkJCS4nPC90ZD48dGQ+PGEgY2xh c3M9InRvb2x0aXAiIGRhdGEtdG9vbHRpcD0iUmVuYW1lIiBocm VmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGws XCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwncmVuYW 1lXCcpIj5SPC9hPiA8YSBjbGFzcz0idG9vbHRpcCIgZGF0YS10 b29sdGlwPSJUb3VjaCIgaHJlZj0iIyIgb25jbGljaz0iZyhcJ0 ZpbGVzVG9vbHNcJyxudWxsLFwnJy51cmxlbmNvZGUoJGZbJ25h bWUnXSkuJ1wnLCBcJ3RvdWNoXCcpIj5UPC9hPicuKCgkZlsndH lwZSddPT0nZmlsZScpPycgPGEgY2xhc3M9InRvb2x0aXAiIGRh dGEtdG9vbHRpcD0iRnJhbWUiIGhyZWY9IiMiIG9uY2xpY2s9Im coXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRm WyduYW1lJ10pLidcJywgXCdmcmFtZVwnKSI+RjwvYT4gPGEgY2 xhc3M9InRvb2x0aXAiIGRhdGEtdG9vbHRpcD0iRWRpdCIgaHJl Zj0iIyIgb25jbGljaz0iZyhcJ0ZpbGVzVG9vbHNcJyxudWxsLF wnJy51cmxlbmNvZGUoJGZbJ25hbWUnXSkuJ1wnLCBcJ2VkaXRc JykiPkU8L2E+IDxhIGNsYXNzPSJ0b29sdGlwIiBkYXRhLXRvb2 x0aXA9IkRvd25sb2FkIiBocmVmPSIjIiBvbmNsaWNrPSJnKFwn RmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbm FtZSddKS4nXCcsIFwnZG93bmxvYWRcJykiPkQ8L2E+JzonJyku JzwvdGQ+PC90cj4nOwoJCSRsID0gJGw/MDoxOwoJfQoJZWNobyAiPHRyIGlkPWZhaz48dGQgY29sc3Bhbj 03PgoJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9bmUgdmFsdWU9 Jyc+Cgk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPS dGaWxlc01hbic+Cgk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1j IHZhbHVlPSciIC4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1 snY3dkJ10pIC4iJz4KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l PWNoYXJzZXQgdmFsdWU9JyIuIChpc3NldCgkX1BPU1RbJ2NoYX JzZXQnXSk/JF9QT1NUWydjaGFyc2V0J106JycpLiInPgoJPGxhYmVsPjxzZW xlY3QgbmFtZT0ncDEnPiI7CglpZighZW1wdHkoJF9DT09LSUVb J2FjdCddKSAmJiBAY291bnQoJF9DT09LSUVbJ2YnXSkpCiAgIC AgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT0ncGFzdGUnPuKGsyBQ YXN0ZTwvb3B0aW9uPiI7CgllY2hvICI8b3B0aW9uIHZhbHVlPS djb3B5Jz5Db3B5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nbW92 ZSc+TW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J2RlbGV0ZS c+RGVsZXRlPC9vcHRpb24+IjsKICAgIGlmKGNsYXNzX2V4aXN0 cygnWmlwQXJjaGl2ZScpKQogICAgICAgIGVjaG8gIjxvcHRpb2 4gdmFsdWU9J3ppcCc+KyB6aXA8L29wdGlvbj48b3B0aW9uIHZh bHVlPSd1bnppcCc+LSB6aXA8L29wdGlvbj4iOwogICAgZWNoby AiPG9wdGlvbiB2YWx1ZT0ndGFyJz4rIHRhci5nejwvb3B0aW9u PiI7CiAgICBlY2hvICI8L3NlbGVjdD48L2xhYmVsPiI7CiAgIC BpZighZW1wdHkoJF9DT09LSUVbJ2FjdCddKSAmJiBAY291bnQo JF9DT09LSUVbJ2YnXSkgJiYgKCgkX0NPT0tJRVsnYWN0J10gPT 0gJ3ppcCcpIHx8ICgkX0NPT0tJRVsnYWN0J10gPT0gJ3Rhcicp KSkKICAgICAgICBlY2hvICImbmJzcDtmaWxlIG5hbWU6IDxpbn B1dCB0eXBlPXRleHQgbmFtZT1wMiB2YWx1ZT0naGFyZF8iIC4g ZGF0ZSgiWW1kX0hpcyIpIC4gIi4iIC4gKCRfQ09PS0lFWydhY3 QnXSA9PSAnemlwJz8nemlwJzondGFyLmd6JykgLiAiJz4mbmJz cDsiOwogICAgZWNobyAiPGlucHV0IHR5cGU9J3N1Ym1pdCcgdm FsdWU9J3N1Ym1pdCc+PC90ZD48L3RyPjwvZm9ybT48L3RhYmxl PjwvZGl2PiI7CgloYXJkRm9vdGVyKCk7Cn0KZnVuY3Rpb24gYW N0aW9uU3RyaW5nVG9vbHMoKSB7CglpZighZnVuY3Rpb25fZXhp c3RzKCdoZXgyYmluJykpIHtmdW5jdGlvbiBoZXgyYmluKCRwKS B7cmV0dXJuIGRlY2JpbihoZXhkZWMoJHApKTt9fQogICAgaWYo IWZ1bmN0aW9uX2V4aXN0cygnYmluaGV4JykpIHtmdW5jdGlvbi BiaW5oZXgoJHApIHtyZXR1cm4gZGVjaGV4KGJpbmRlYygkcCkp O319CglpZighZnVuY3Rpb25fZXhpc3RzKCdoZXgyYXNjaWknKS kge2Z1bmN0aW9uIGhleDJhc2NpaSgkcCl7JHI9Jyc7Zm9yKCRp PTA7JGk8c3RyTGVuKCRwKTskaSs9Mil7JHIuPWNocihoZXhkZW MoJHBbJGldLiRwWyRpKzFdKSk7fXJldHVybiAkcjt9fQoJaWYo IWZ1bmN0aW9uX2V4aXN0cygnYXNjaWkyaGV4JykpIHtmdW5jdG lvbiBhc2NpaTJoZXgoJHApeyRyPScnO2ZvcigkaT0wOyRpPHN0 cmxlbigkcCk7KyskaSkkci49IHNwcmludGYoJyUwMlgnLG9yZC gkcFskaV0pKTtyZXR1cm4gc3RydG91cHBlcigkcik7fX0KCWlm KCFmdW5jdGlvbl9leGlzdHMoJ2Z1bGxfdXJsZW5jb2RlJykpIH tmdW5jdGlvbiBmdWxsX3VybGVuY29kZSgkcCl7JHI9Jyc7Zm9y KCRpPTA7JGk8c3RybGVuKCRwKTsrKyRpKSRyLj0gJyUnLmRlY2 hleChvcmQoJHBbJGldKSk7cmV0dXJuIHN0cnRvdXBwZXIoJHIp O319Cgkkc3RyaW5nVG9vbHMgPSBhcnJheSgKCQknQmFzZTY0IG VuY29kZScgPT4gJ2Jhc2U2NF9lbmNvZGUnLAoJCSdCYXNlNjQg ZGVjb2RlJyA9PiAnYmFzZTY0X2RlY29kZScsCgkJJ1VybCBlbm NvZGUnID0+ICd1cmxlbmNvZGUnLAoJCSdVcmwgZGVjb2RlJyA9 PiAndXJsZGVjb2RlJywKCQknRnVsbCB1cmxlbmNvZGUnID0+IC dmdWxsX3VybGVuY29kZScsCgkJJ21kNSBoYXNoJyA9PiAnbWQ1 JywKCQknc2hhMSBoYXNoJyA9PiAnc2hhMScsCgkJJ2NyeXB0Jy A9PiAnY3J5cHQnLAoJCSdDUkMzMicgPT4gJ2NyYzMyJywKCQkn QVNDSUkgdG8gSEVYJyA9PiAnYXNjaWkyaGV4JywKCQknSEVYIH RvIEFTQ0lJJyA9PiAnaGV4MmFzY2lpJywKCQknSEVYIHRvIERF QycgPT4gJ2hleGRlYycsCgkJJ0hFWCB0byBCSU4nID0+ICdoZX gyYmluJywKCQknREVDIHRvIEhFWCcgPT4gJ2RlY2hleCcsCgkJ J0RFQyB0byBCSU4nID0+ICdkZWNiaW4nLAoJCSdCSU4gdG8gSE VYJyA9PiAnYmluaGV4JywKCQknQklOIHRvIERFQycgPT4gJ2Jp bmRlYycsCgkJJ1N0cmluZyB0byBsb3dlciBjYXNlJyA9PiAnc3 RydG9sb3dlcicsCgkJJ1N0cmluZyB0byB1cHBlciBjYXNlJyA9 PiAnc3RydG91cHBlcicsCgkJJ0h0bWxzcGVjaWFsY2hhcnMnID 0+ICdodG1sc3BlY2lhbGNoYXJzJywKCQknU3RyaW5nIGxlbmd0 aCcgPT4gJ3N0cmxlbicsCgkpOwoJaWYoaXNzZXQoJF9QT1NUWy dhamF4J10pKSB7CgkJcHJvdG90eXBlKG1kNSgkX1NFUlZFUlsn SFRUUF9IT1NUJ10pLidhamF4JywgdHJ1ZSk7CgkJb2Jfc3Rhcn QoKTsKCQlpZihpbl9hcnJheSgkX1BPU1RbJ3AxJ10sICRzdHJp bmdUb29scykpCgkJCWVjaG8gJF9QT1NUWydwMSddKCRfUE9TVF sncDInXSk7CgkJJHRlbXAgPSAiZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoJ3N0ck91dHB1dCcpLnN0eWxlLmRpc3BsYXk9Jyc7ZG 9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ck91dHB1dCcpLmlu bmVySFRNTD0nIi5hZGRjc2xhc2hlcyhodG1sc3BlY2lhbGNoYX JzKG9iX2dldF9jbGVhbigpKSwiXG5cclx0XFwnXDAiKS4iJztc biI7CgkJZWNobyBzdHJsZW4oJHRlbXApLCAiXG4iLCAkdGVtcD sKCQlleGl0OwoJfQogICAgaWYoZW1wdHkoJF9QT1NUWydhamF4 J10pJiYhZW1wdHkoJF9QT1NUWydwMSddKSkKCQlwcm90b3R5cG UobWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnLCAw KTsKCWhhcmRIZWFkZXIoKTsKCWVjaG8gJzxoMT5TdHJpbmcgY2 9udmVyc2lvbnM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4nOwoJ ZWNobyAiPGZvcm0gbmFtZT0ndG9vbHNGb3JtJyBvblN1Ym1pdD 0naWYodGhpcy5hamF4LmNoZWNrZWQpe2EobnVsbCxudWxsLHRo aXMuc2VsZWN0VG9vbC52YWx1ZSx0aGlzLmlucHV0LnZhbHVlKT t9ZWxzZXtnKG51bGwsbnVsbCx0aGlzLnNlbGVjdFRvb2wudmFs dWUsdGhpcy5pbnB1dC52YWx1ZSk7fSByZXR1cm4gZmFsc2U7Jz 48bGFiZWw+PHNlbGVjdCBuYW1lPSdzZWxlY3RUb29sJz4iOwoJ Zm9yZWFjaCgkc3RyaW5nVG9vbHMgYXMgJGsgPT4gJHYpCgkJZW NobyAiPG9wdGlvbiB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJz KCR2KS4iJz4iLiRrLiI8L29wdGlvbj4iOwoJCWVjaG8gIjwvc2 VsZWN0PjwvbGFiZWw+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFs dWU9J3N1Ym1pdCcvPiA8aW5wdXQgdHlwZT1jaGVja2JveCBuYW 1lPWFqYXggdmFsdWU9MSAiLihAJF9DT09LSUVbbWQ1KCRfU0VS VkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnXT8nY2hlY2tlZCc6Jy cpLiI+IHNlbmQgdXNpbmcgQUpBWDxicj48dGV4dGFyZWEgbmFt ZT0naW5wdXQnIHN0eWxlPSdtYXJnaW4tdG9wOjVweCcgY2xhc3 M9YmlnYXJlYT4iLihlbXB0eSgkX1BPU1RbJ3AxJ10pPycnOmh0 bWxzcGVjaWFsY2hhcnMoQCRfUE9TVFsncDInXSkpLiI8L3RleH RhcmVhPjwvZm9ybT48cHJlIGNsYXNzPSdtbDEnIHN0eWxlPSci LihlbXB0eSgkX1BPU1RbJ3AxJ10pPydkaXNwbGF5Om5vbmU7Jz onJykuIm1hcmdpbi10b3A6NXB4JyBpZD0nc3RyT3V0cHV0Jz4i OwoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpIHsKCQlpZihpbl 9hcnJheSgkX1BPU1RbJ3AxJ10sICRzdHJpbmdUb29scykpZWNo byBodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSgkX1BPU1 RbJ3AyJ10pKTsKCX0KCWVjaG8iPC9wcmU+PC9kaXY+PGJyPjxo MT5TZWFyY2ggZmlsZXM6PC9oMT48ZGl2IGNsYXNzPWNvbnRlbn Q+CgkJPGZvcm0gb25zdWJtaXQ9XCJnKG51bGwsdGhpcy5jd2Qu dmFsdWUsbnVsbCx0aGlzLnRleHQudmFsdWUsdGhpcy5maWxlbm FtZS52YWx1ZSk7cmV0dXJuIGZhbHNlO1wiPjx0YWJsZSBjZWxs cGFkZGluZz0nMScgY2VsbHNwYWNpbmc9JzAnIHdpZHRoPSc1MC UnPgoJCQk8dHI+PHRkIHdpZHRoPScxJSc+VGV4dDo8L3RkPjx0 ZD48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndGV4dCcgc3R5bG U9J3dpZHRoOjEwMCUnPjwvdGQ+PC90cj4KCQkJPHRyPjx0ZD5Q YXRoOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPS djd2QnIHZhbHVlPSciLiBodG1sc3BlY2lhbGNoYXJzKCRHTE9C QUxTWydjd2QnXSkgLiInIHN0eWxlPSd3aWR0aDoxMDAlJz48L3 RkPjwvdHI+CgkJCTx0cj48dGQ+TmFtZTo8L3RkPjx0ZD48aW5w dXQgdHlwZT0ndGV4dCcgbmFtZT0nZmlsZW5hbWUnIHZhbHVlPS cqJyBzdHlsZT0nd2lkdGg6MTAwJSc+PC90ZD48L3RyPgoJCQk8 dHI+PHRkPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSdzdWJtaXQnIH ZhbHVlPSdzdWJtaXQnPjwvdGQ+PC90cj4KCQkJPC90YWJsZT48 L2Zvcm0+IjsKCWZ1bmN0aW9uIGhhcmRSZWN1cnNpdmVHbG9iKC RwYXRoKSB7CgkJaWYoc3Vic3RyKCRwYXRoLCAtMSkgIT0gJy8n KQoJCQkkcGF0aC49Jy8nOwoJCSRwYXRocyA9IEBhcnJheV91bm lxdWUoQGFycmF5X21lcmdlKEBnbG9iKCRwYXRoLiRfUE9TVFsn cDMnXSksIEBnbG9iKCRwYXRoLicqJywgR0xPQl9PTkxZRElSKS kpOwoJCWlmKGlzX2FycmF5KCRwYXRocykmJkBjb3VudCgkcGF0 aHMpKSB7CgkJCWZvcmVhY2goJHBhdGhzIGFzICTilp8pIHsKCQ kJCWlmKEBpc19kaXIoJOKWnykpewoJCQkJCWlmKCRwYXRoIT0k 4pafKQoJCQkJCQloYXJkUmVjdXJzaXZlR2xvYigk4pafKTsKCQ kJCX0gZWxzZSB7CgkJCQkJaWYoZW1wdHkoJF9QT1NUWydwMidd KSB8fCBAc3RycG9zKGZpbGVfZ2V0X2NvbnRlbnRzKCTilp8pLC AkX1BPU1RbJ3AyJ10pIT09ZmFsc2UpCgkJCQkJCWVjaG8gIjxh IGhyZWY9JyMnIG9uY2xpY2s9J2coXCJGaWxlc1Rvb2xzXCIsbn VsbCxcIiIudXJsZW5jb2RlKCTilp8pLiJcIiwgXCJ2aWV3XCIs XCJcIiknPiIuaHRtbHNwZWNpYWxjaGFycygk4pafKS4iPC9hPj xicj4iOwoJCQkJfQoJCQl9CgkJfQoJfQoJaWYoQCRfUE9TVFsn cDMnXSkKCQloYXJkUmVjdXJzaXZlR2xvYigkX1BPU1RbJ2MnXS k7CgllY2hvICI8L2Rpdj48YnI+PGgxPlNlYXJjaCBmb3IgaGFz aDo8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4KCQk8Zm9ybSBtZX Rob2Q9J3Bvc3QnIHRhcmdldD0nX2JsYW5rJyBuYW1lPSdoZic+ CgkJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdoYXNoJyBzdH lsZT0nd2lkdGg6MjAwcHg7Jz48YnI+CiAgICAgICAgICAgIDxp bnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2FjdCcgdmFsdWU9J2 ZpbmQnLz4KCQkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9 J2hhc2hjcmFja2luZy5ydScgb25jbGljaz1cImRvY3VtZW50Lm hmLmFjdGlvbj0naHR0cHM6Ly9oYXNoY3JhY2tpbmcucnUvaW5k ZXgucGhwJztkb2N1bWVudC5oZi5zdWJtaXQoKVwiPjxicj4KCQ kJPGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J21kNS5yZWRu b2l6ZS5jb20nIG9uY2xpY2s9XCJkb2N1bWVudC5oZi5hY3Rpb2 49J2h0dHA6Ly9tZDUucmVkbm9pemUuY29tLz9xPScrZG9jdW1l bnQuaGYuaGFzaC52YWx1ZSsnJnM9bWQ1Jztkb2N1bWVudC5oZi 5zdWJtaXQoKVwiPjxicj4KICAgICAgICAgICAgPGlucHV0IHR5 cGU9J3N1Ym1pdCcgdmFsdWU9J2Zha2VuYW1lZ2VuZXJhdG9yLm NvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0naHR0 cDovL3d3dy5mYWtlbmFtZWdlbmVyYXRvci5jb20vJztkb2N1bW VudC5oZi5zdWJtaXQoKVwiPjxicj4KCQkJPGlucHV0IHR5cGU9 J3N1Ym1pdCcgdmFsdWU9J2hhc2hjcmFjay5jb20nIG9uY2xpY2 s9XCJkb2N1bWVudC5oZi5hY3Rpb249J2h0dHA6Ly93d3cuaGFz aGNyYWNrLmNvbS9pbmRleC5waHAnO2RvY3VtZW50LmhmLnN1Ym 1pdCgpXCI+PGJyPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyB2 YWx1ZT0ndG9vbGtpLmNvbScgb25jbGljaz1cImRvY3VtZW50Lm hmLmFjdGlvbj0naHR0cDovL3Rvb2xraS5jb20vJztkb2N1bWVu dC5oZi5zdWJtaXQoKVwiPjxicj4KCQkJPGlucHV0IHR5cGU9J3 N1Ym1pdCcgdmFsdWU9J2ZvcG8uY29tLmFyJyBvbmNsaWNrPVwi ZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwOi8vZm9wby5jb20uYX IvJztkb2N1bWVudC5oZi5zdWJtaXQoKVwiPjxicj4KCQkJPGlu cHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J21kNWRlY3J5cHRlci 5jb20nIG9uY2xpY2s9XCJkb2N1bWVudC5oZi5hY3Rpb249J2h0 dHA6Ly93d3cubWQ1ZGVjcnlwdGVyLmNvbS8nO2RvY3VtZW50Lm hmLnN1Ym1pdCgpXCI+PGJyPgoJCTwvZm9ybT48L2Rpdj4iOwoJ aGFyZEZvb3RlcigpOwp9CmZ1bmN0aW9uIGFjdGlvblNhZmVNb2 RlKCkgewoJJHRlbXA9Jyc7CglvYl9zdGFydCgpOwoJc3dpdGNo KCRfUE9TVFsncDEnXSkgewoJCWNhc2UgMToKCQkJJHRlbXA9QH RlbXBuYW0oJHRlc3QsICdjeCcpOwoJCQlpZihAY29weSgiY29t cHJlc3MuemxpYjovLyIuJF9QT1NUWydwMiddLCAkdGVtcCkpew oJCQkJZWNobyBAZmlsZV9nZXRfY29udGVudHMoJHRlbXApOwoJ CQkJdW5saW5rKCR0ZW1wKTsKCQkJfSBlbHNlCgkJCQllY2hvIC dTb3JyeS4uLiBDYW5cJ3Qgb3BlbiBmaWxlJzsKCQkJYnJlYWs7 CgkJY2FzZSAyOgoJCQkkZmlsZXMgPSBnbG9iKCRfUE9TVFsncD InXS4nKicpOwoJCQlpZiggaXNfYXJyYXkoJGZpbGVzKSApCgkJ CQlmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGVuYW1lKQoJCQkJCW VjaG8gJGZpbGVuYW1lLiJcbiI7CgkJCWJyZWFrOwoJCWNhc2Ug MzoKCQkJJGNoID0gY3VybF9pbml0KCJmaWxlOi8vIi4kX1BPU1 RbJ3AyJ10uIlx4MDAiLlNFTEZfUEFUSCk7CgkJCWN1cmxfZXhl YygkY2gpOwoJCQlicmVhazsKCQljYXNlIDQ6CgkJCWluaV9yZX N0b3JlKCJzYWZlX21vZGUiKTsKCQkJaW5pX3Jlc3RvcmUoIm9w ZW5fYmFzZWRpciIpOwoJCQlpbmNsdWRlKCRfUE9TVFsncDInXS k7CgkJCWJyZWFrOwoJCWNhc2UgNToKCQkJZm9yKDskX1BPU1Rb J3AyJ10gPD0gJF9QT1NUWydwMyddOyRfUE9TVFsncDInXSsrKS B7CgkJCQkkdWlkID0gQHBvc2l4X2dldHB3dWlkKCRfUE9TVFsn cDInXSk7CgkJCQlpZiAoJHVpZCkKCQkJCQllY2hvIGpvaW4oJz onLCR1aWQpLiJcbiI7CgkJCX0KCQkJYnJlYWs7CgkJY2FzZSA2 OgoJCQlpZighZnVuY3Rpb25fZXhpc3RzKCdpbWFwX29wZW4nKS licmVhazsKCQkJJHN0cmVhbSA9IGltYXBfb3BlbigkX1BPU1Rb J3AyJ10sICIiLCAiIik7CgkJCWlmICgkc3RyZWFtID09IEZBTF NFKQoJCQkJYnJlYWs7CgkJCWVjaG8gaW1hcF9ib2R5KCRzdHJl YW0sIDEpOwoJCQlpbWFwX2Nsb3NlKCRzdHJlYW0pOwoJCQlicm VhazsKCX0KCSR0ZW1wID0gb2JfZ2V0X2NsZWFuKCk7CgloYXJk SGVhZGVyKCk7CgllY2hvICc8aDE+U2FmZSBtb2RlIGJ5cGFzcz wvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7CgllY2hvICc8c3Bh bj5Db3B5IChyZWFkIGZpbGUpPC9zcGFuPjxmb3JtIG9uc3VibW l0PVwnZyhudWxsLG51bGwsIjEiLHRoaXMucGFyYW0udmFsdWUp O3JldHVybiBmYWxzZTtcJz48aW5wdXQgY2xhc3M9InRvb2xzSW 5wIiB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT1z dWJtaXQgdmFsdWU9InN1Ym1pdCI+PC9mb3JtPjxicj48c3Bhbj 5HbG9iIChsaXN0IGRpcik8L3NwYW4+PGZvcm0gb25zdWJtaXQ9 XCdnKG51bGwsbnVsbCwiMiIsdGhpcy5wYXJhbS52YWx1ZSk7cm V0dXJuIGZhbHNlO1wnPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAi IHR5cGU9dGV4dCBuYW1lPXBhcmFtPjxpbnB1dCB0eXBlPXN1Ym 1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+PGJyPjxzcGFuPkN1 cmwgKHJlYWQgZmlsZSk8L3NwYW4+PGZvcm0gb25zdWJtaXQ9XC dnKG51bGwsbnVsbCwiMyIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0 dXJuIGZhbHNlO1wnPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIH R5cGU9dGV4dCBuYW1lPXBhcmFtPjxpbnB1dCB0eXBlPXN1Ym1p dCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+PGJyPjxzcGFuPkluaV 9yZXN0b3JlIChyZWFkIGZpbGUpPC9zcGFuPjxmb3JtIG9uc3Vi bWl0PVwnZyhudWxsLG51bGwsIjQiLHRoaXMucGFyYW0udmFsdW UpO3JldHVybiBmYWxzZTtcJz48aW5wdXQgY2xhc3M9InRvb2xz SW5wIiB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT 1zdWJtaXQgdmFsdWU9InN1Ym1pdCI+PC9mb3JtPjxicj48c3Bh bj5Qb3NpeF9nZXRwd3VpZCAoIlJlYWQiIC9ldGMvcGFzc3dkKT wvc3Bhbj48dGFibGU+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGws bnVsbCwiNSIsdGhpcy5wYXJhbTEudmFsdWUsdGhpcy5wYXJhbT IudmFsdWUpO3JldHVybiBmYWxzZTtcJz48dHI+PHRkPkZyb208 L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0xIH ZhbHVlPTA+PC90ZD48L3RyPjx0cj48dGQ+VG88L3RkPjx0ZD48 aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0yIHZhbHVlPTEwMD A+PC90ZD48L3RyPjwvdGFibGU+PGlucHV0IHR5cGU9c3VibWl0 IHZhbHVlPSJzdWJtaXQiPjwvZm9ybT48YnI+PGJyPjxzcGFuPk ltYXBfb3BlbiAocmVhZCBmaWxlKTwvc3Bhbj48Zm9ybSBvbnN1 Ym1pdD1cJ2cobnVsbCxudWxsLCI2Iix0aGlzLnBhcmFtLnZhbH VlKTtyZXR1cm4gZmFsc2U7XCc+PGlucHV0IHR5cGU9dGV4dCBu YW1lPXBhcmFtPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0ic3 VibWl0Ij48L2Zvcm0+JzsKCWlmKCR0ZW1wKQoJCWVjaG8gJzxw cmUgY2xhc3M9Im1sMSIgc3R5bGU9Im1hcmdpbi10b3A6NXB4Ii BpZD0iT3V0cHV0Ij4nLiR0ZW1wLic8L3ByZT4nOwoJZWNobyAn PC9kaXY+JzsKCWhhcmRGb290ZXIoKTsKfQpmdW5jdGlvbiBhY3 Rpb25Mb2dvdXQoKSB7CiAgICBzZXRjb29raWUobWQ1KCRfU0VS VkVSWydIVFRQX0hPU1QnXSksICcnLCB0aW1lKCkgLSAzNjAwKT sKCWRpZSgnYnllIScpOwp9CmZ1bmN0aW9uIGFjdGlvblNlbGZS ZW1vdmUoKSB7CglpZigkX1BPU1RbJ3AxJ10gPT0gJ3llcycpCg kJaWYoQHVubGluayhwcmVnX3JlcGxhY2UoJyFcKFxkK1wpXHMu KiEnLCAnJywgX19GSUxFX18pKSkKCQkJZGllKCdTaGVsbCBoYX MgYmVlbiByZW1vdmVkJyk7CgkJZWxzZQoJCQllY2hvICd1bmxp bmsgZXJyb3IhJzsKICAgIGlmKCRfUE9TVFsncDEnXSAhPSAneW VzJykKICAgICAgICBoYXJkSGVhZGVyKCk7CgllY2hvICc8aDE+ U3VpY2lkZTwvaDE+PGRpdiBjbGFzcz1jb250ZW50PlJlYWxseS B3YW50IHRvIHJlbW92ZSB0aGUgc2hlbGw/PGJyPjxhIGhyZWY9IyBvbmNsaWNrPSJnKG51bGwsbnVsbCxcJ3 llc1wnKSI+WWVzPC9hPjwvZGl2Pic7CgloYXJkRm9vdGVyKCk7 Cn0KZnVuY3Rpb24gYWN0aW9uSW5mZWN0KCkgewoJaGFyZEhlYW RlcigpOwoJZWNobyAnPGgxPkluZmVjdDwvaDE+PGRpdiBjbGFz cz1jb250ZW50Pic7CglpZigkX1BPU1RbJ3AxJ10gPT0gJ2luZm VjdCcpIHsKCQkkdGFyZ2V0PSRfU0VSVkVSWydET0NVTUVOVF9S T09UJ107CgkJCWZ1bmN0aW9uIExpc3RGaWxlcygkZGlyKSB7Cg kJCQlpZigkZGggPSBvcGVuZGlyKCRkaXIpKSB7CgkJCQkJJGZp bGVzID0gQXJyYXkoKTsKCQkJCQkkaW5uZXJfZmlsZXMgPSBBcn JheSgpOwoJCQkJCXdoaWxlKCRmaWxlID0gcmVhZGRpcigkZGgp KSB7CgkJCQkJCWlmKCRmaWxlICE9ICIuIiAmJiAkZmlsZSAhPS AiLi4iKSB7CgkJCQkJCQlpZihpc19kaXIoJGRpciAuICIvIiAu ICRmaWxlKSkgewoJCQkJCQkJCSRpbm5lcl9maWxlcyA9IExpc3 RGaWxlcygkZGlyIC4gIi8iIC4gJGZpbGUpOwoJCQkJCQkJCWlm KGlzX2FycmF5KCRpbm5lcl9maWxlcykpICRmaWxlcyA9IGFycm F5X21lcmdlKCRmaWxlcywgJGlubmVyX2ZpbGVzKTsgCgkJCQkJ CQl9IGVsc2UgewoJCQkJCQkJCWFycmF5X3B1c2goJGZpbGVzLC AkZGlyIC4gIi8iIC4gJGZpbGUpOwoJCQkJCQkJfQoJCQkJCQl9 CgkJCQkJfQoJCQkJCWNsb3NlZGlyKCRkaCk7CgkJCQkJcmV0dX JuICRmaWxlczsKCQkJCX0KCQkJfQoJCQlmb3JlYWNoIChMaXN0 RmlsZXMoJHRhcmdldCkgYXMgJGtleT0+JGZpbGUpewoJCQkJJG 5GaWxlID0gc3Vic3RyKCRmaWxlLCAtNCwgNCk7CgkJCQlpZigk bkZpbGUgPT0gIi5waHAiICl7CgkJCQkJaWYoKCRmaWxlPD4kX1 NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLiRfU0VSVkVSWydQSFBf U0VMRiddKSYmKGlzX3dyaXRlYWJsZSgkZmlsZSkpKXsKCQkJCQ kJZWNobyAiJGZpbGU8YnI+IjsKCQkJCQkJJGkrKzsKCQkJCQl9 CgkJCQl9CgkJCX0KCQkJZWNobyAiPGZvbnQgY29sb3I9cmVkIH NpemU9MTQ+JGk8L2ZvbnQ+IjsKCQl9ZWxzZXsKCQkJZWNobyAi PGZvcm0gbWV0aG9kPXBvc3Q+PGlucHV0IHR5cGU9c3VibWl0IH ZhbHVlPUluZmVjdCBuYW1lPWluZmV0PjwvZm9ybT4iOwoJCQll Y2hvICdSZWFsbHkgd2FudCB0byBpbmZlY3QgdGhlIHNlcnZlcj 8mbmJzcDs8YSBocmVmPSMgb25jbGljaz0iZyhudWxsLG51bGws XCdpbmZlY3RcJykiPlllczwvYT48L2Rpdj4nOwoJCX0KCWhhcm RGb290ZXIoKTsKfQpmdW5jdGlvbiBhY3Rpb25CcnV0ZWZvcmNl KCkgewoJaGFyZEhlYWRlcigpOwoJaWYoIGlzc2V0KCRfUE9TVF sncHJvdG8nXSkgKSB7CgkJZWNobyAnPGgxPlJlc3VsdHM8L2gx PjxkaXYgY2xhc3M9Y29udGVudD48c3Bhbj5UeXBlOjwvc3Bhbj 4gJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncHJvdG8nXSku JyA8c3Bhbj5TZXJ2ZXI6PC9zcGFuPiAnLmh0bWxzcGVjaWFsY2 hhcnMoJF9QT1NUWydzZXJ2ZXInXSkuJzxicj4nOwoJCWlmKCAk X1BPU1RbJ3Byb3RvJ10gPT0gJ2Z0cCcgKSB7CgkJCWZ1bmN0aW 9uIGJydXRlRm9yY2UoJGlwLCRwb3J0LCRsb2dpbiwkcGFzcykg ewoJCQkJJGZwID0gQGZ0cF9jb25uZWN0KCRpcCwgJHBvcnQ/JHBvcnQ6MjEpOwoJCQkJaWYoISRmcCkgcmV0dXJuIGZhbHNlOw oJCQkJJHJlcyA9IEBmdHBfbG9naW4oJGZwLCAkbG9naW4sICRw YXNzKTsKCQkJCUBmdHBfY2xvc2UoJGZwKTsKCQkJCXJldHVybi AkcmVzOwoJCQl9CgkJfSBlbHNlaWYoICRfUE9TVFsncHJvdG8n XSA9PSAnbXlzcWwnICkgewoJCQlmdW5jdGlvbiBicnV0ZUZvcm NlKCRpcCwkcG9ydCwkbG9naW4sJHBhc3MpIHsKCQkJCSRyZXMg PSBAbXlzcWxfY29ubmVjdCgkaXAuJzonLigkcG9ydD8kcG9ydD ozMzA2KSwgJGxvZ2luLCAkcGFzcyk7CgkJCQlAbXlzcWxfY2xv c2UoJHJlcyk7CgkJCQlyZXR1cm4gJHJlczsKCQkJfQoJCX0gZW xzZWlmKCAkX1BPU1RbJ3Byb3RvJ10gPT0gJ3Bnc3FsJyApIHsK CQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQsJGxvZ2 luLCRwYXNzKSB7CgkJCQkkc3RyID0gImhvc3Q9JyIuJGlwLiIn IHBvcnQ9JyIuJHBvcnQuIicgdXNlcj0nIi4kbG9naW4uIicgcG Fzc3dvcmQ9JyIuJHBhc3MuIicgZGJuYW1lPXBvc3RncmVzIjsK CQkJCSRyZXMgPSBAcGdfY29ubmVjdCgkc3RyKTsKCQkJCUBwZ1 9jbG9zZSgkcmVzKTsKCQkJCXJldHVybiAkcmVzOwoJCQl9CgkJ fQoJCSRzdWNjZXNzID0gMDsKCQkkYXR0ZW1wdHMgPSAwOwoJCS RzZXJ2ZXIgPSBleHBsb2RlKCI6IiwgJF9QT1NUWydzZXJ2ZXIn XSk7CgkJaWYoJF9QT1NUWyd0eXBlJ10gPT0gMSkgewoJCQkkdG VtcCA9IEBmaWxlKCcvZXRjL3Bhc3N3ZCcpOwoJCQlpZiggaXNf YXJyYXkoJHRlbXApICkKCQkJCWZvcmVhY2goJHRlbXAgYXMgJG xpbmUpIHsKCQkJCQkkbGluZSA9IGV4cGxvZGUoIjoiLCAkbGlu ZSk7CgkJCQkJKyskYXR0ZW1wdHM7CgkJCQkJaWYoIGJydXRlRm 9yY2UoQCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJbMV0sICRsaW5lWzBd LCAkbGluZVswXSkgKSB7CgkJCQkJCSRzdWNjZXNzKys7CgkJCQ kJCWVjaG8gJzxiPicuaHRtbHNwZWNpYWxjaGFycygkbGluZVsw XSkuJzwvYj46Jy5odG1sc3BlY2lhbGNoYXJzKCRsaW5lWzBdKS 4nPGJyPic7CgkJCQkJfQoJCQkJCWlmKEAkX1BPU1RbJ3JldmVy c2UnXSkgewoJCQkJCQkkdG1wID0gIiI7CgkJCQkJCWZvcigkaT 1zdHJsZW4oJGxpbmVbMF0pLTE7ICRpPj0wOyAtLSRpKQoJCQkJ CQkJJHRtcCAuPSAkbGluZVswXVskaV07CgkJCQkJCSsrJGF0dG VtcHRzOwoJCQkJCQlpZiggYnJ1dGVGb3JjZShAJHNlcnZlclsw XSxAJHNlcnZlclsxXSwgJGxpbmVbMF0sICR0bXApICkgewoJCQ kJCQkJJHN1Y2Nlc3MrKzsKCQkJCQkJCWVjaG8gJzxiPicuaHRt bHNwZWNpYWxjaGFycygkbGluZVswXSkuJzwvYj46Jy5odG1sc3 BlY2lhbGNoYXJzKCR0bXApOwoJCQkJCQl9CgkJCQkJfQoJCQkJ fQoJCX0gZWxzZWlmKCRfUE9TVFsndHlwZSddID09IDIpIHsKCQ kJJHRlbXAgPSBAZmlsZSgkX1BPU1RbJ2RpY3QnXSk7CgkJCWlm KCBpc19hcnJheSgkdGVtcCkgKQoJCQkJZm9yZWFjaCgkdGVtcC BhcyAkbGluZSkgewoJCQkJCSRsaW5lID0gdHJpbSgkbGluZSk7 CgkJCQkJKyskYXR0ZW1wdHM7CgkJCQkJaWYoIGJydXRlRm9yY2 UoJHNlcnZlclswXSxAJHNlcnZlclsxXSwgJF9QT1NUWydsb2dp biddLCAkbGluZSkgKSB7CgkJCQkJCSRzdWNjZXNzKys7CgkJCQ kJCWVjaG8gJzxiPicuaHRtbHNwZWNpYWxjaGFycygkX1BPU1Rb J2xvZ2luJ10pLic8L2I+OicuaHRtbHNwZWNpYWxjaGFycygkbG luZSkuJzxicj4nOwoJCQkJCX0KCQkJCX0KCQl9CgkJZWNobyAi PHNwYW4+QXR0ZW1wdHM6PC9zcGFuPiAkYXR0ZW1wdHMgPHNwYW 4+U3VjY2Vzczo8L3NwYW4+ICRzdWNjZXNzPC9kaXY+PGJyPiI7 Cgl9CgllY2hvICc8aDE+RlRQIGJydXRlZm9yY2U8L2gxPjxkaX YgY2xhc3M9Y29udGVudD48dGFibGU+PGZvcm0gbWV0aG9kPXBv c3Q+PHRyPjx0ZD48c3Bhbj5UeXBlPC9zcGFuPjwvdGQ+JwoJCS 4nPHRkPjxsYWJlbD48c2VsZWN0IG5hbWU9cHJvdG8+PG9wdGlv biB2YWx1ZT1mdHA+RlRQPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT 1teXNxbD5NeVNxbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9cGdz cWw+UG9zdGdyZVNxbDwvb3B0aW9uPjwvc2VsZWN0PjwvbGFiZW w+PC90ZD48L3RyPjx0cj48dGQ+JwoJCS4nPGlucHV0IHR5cGU9 aGlkZGVuIG5hbWU9YyB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYX JzKCRHTE9CQUxTWydjd2QnXSkuJyI+JwoJCS4nPGlucHV0IHR5 cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0iJy5odG1sc3BlY2lhbG NoYXJzKCRfUE9TVFsnYSddKS4nIj4nCgkJLic8aW5wdXQgdHlw ZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSInLmh0bWxzcG VjaWFsY2hhcnMoJF9QT1NUWydjaGFyc2V0J10pLiciPicKCQku JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW5lICB2YWx1ZT0iIj 4nCgkJLic8c3Bhbj5TZXJ2ZXI6cG9ydDwvc3Bhbj48L3RkPicK CQkuJzx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9c2VydmVyIH ZhbHVlPSIxMjcuMC4wLjEiPjwvdGQ+PC90cj4nCgkJLic8dHI+ PHRkPjxzcGFuPkJydXRlIHR5cGU8L3NwYW4+PC90ZD4nCgkJLi c8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVl PSIxIiBjaGVja2VkPiAvZXRjL3Bhc3N3ZDwvdGQ+PC90cj4nCg kJLic8dHI+PHRkPjwvdGQ+PHRkIHN0eWxlPSJwYWRkaW5nLWxl ZnQ6MTVweCI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1yZX ZlcnNlIHZhbHVlPTEgY2hlY2tlZD4gcmV2ZXJzZSAobG9naW4g LT4gbmlnb2wpPC90ZD48L3RyPicKCQkuJzx0cj48dGQ+PC90ZD 48dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVl PSIyIj4gRGljdGlvbmFyeTwvdGQ+PC90cj4nCgkJLic8dHI+PH RkPjwvdGQ+PHRkPjx0YWJsZSBzdHlsZT0icGFkZGluZy1sZWZ0 OjE1cHgiPjx0cj48dGQ+PHNwYW4+TG9naW48L3NwYW4+PC90ZD 4nCgkJLic8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWxvZ2lu IHZhbHVlPSJyb290Ij48L3RkPjwvdHI+JwoJCS4nPHRyPjx0ZD 48c3Bhbj5EaWN0aW9uYXJ5PC9zcGFuPjwvdGQ+JwoJCS4nPHRk PjxpbnB1dCB0eXBlPXRleHQgbmFtZT1kaWN0IHZhbHVlPSInLm h0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKS4ncGFz c3dkLmRpYyI+PC90ZD48L3RyPjwvdGFibGU+JwoJCS4nPC90ZD 48L3RyPjx0cj48dGQ+PC90ZD48dGQ+PGlucHV0IHR5cGU9c3Vi bWl0IHZhbHVlPSJzdWJtaXQiPjwvdGQ+PC90cj48L2Zvcm0+PC 90YWJsZT4nOwoJZWNobyAnPC9kaXY+JzsKCWhhcmRGb290ZXIo KTsKfQpmdW5jdGlvbiBhY3Rpb25TcWwoKSB7CgljbGFzcyBEYk NsYXNzIHsKCQl2YXIgJHR5cGU7CgkJdmFyICRsaW5rOwoJCXZh ciAkcmVzOwoJCWZ1bmN0aW9uIERiQ2xhc3MoJHR5cGUpCXsKCQ kJJHRoaXMtPnR5cGUgPSAkdHlwZTsKCQl9CgkJZnVuY3Rpb24g Y29ubmVjdCgkaG9zdCwgJHVzZXIsICRwYXNzLCAkZGJuYW1lKX sKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdt eXNxbCc6CgkJCQkJaWYoICR0aGlzLT5saW5rID0gQG15c3FsX2 Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MsdHJ1ZSkgKSByZXR1 cm4gdHJ1ZTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ3Bnc3FsJz oKCQkJCQkkaG9zdCA9IGV4cGxvZGUoJzonLCAkaG9zdCk7CgkJ CQkJaWYoISRob3N0WzFdKSAkaG9zdFsxXT01NDMyOwoJCQkJCW lmKCAkdGhpcy0+bGluayA9IEBwZ19jb25uZWN0KCJob3N0PXsk aG9zdFswXX0gcG9ydD17JGhvc3RbMV19IHVzZXI9JHVzZXIgcG Fzc3dvcmQ9JHBhc3MgZGJuYW1lPSRkYm5hbWUiKSApIHJldHVy biB0cnVlOwoJCQkJCWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYW xzZTsKCQl9CgkJZnVuY3Rpb24gc2VsZWN0ZGIoJGRiKSB7CgkJ CXN3aXRjaCgkdGhpcy0+dHlwZSkJewoJCQkJY2FzZSAnbXlzcW wnOgoJCQkJCWlmIChAbXlzcWxfc2VsZWN0X2RiKCRkYikpcmV0 dXJuIHRydWU7CgkJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIG ZhbHNlOwoJCX0KCQlmdW5jdGlvbiBxdWVyeSgkc3RyKSB7CgkJ CXN3aXRjaCgkdGhpcy0+dHlwZSkgewoJCQkJY2FzZSAnbXlzcW wnOgoJCQkJCXJldHVybiAkdGhpcy0+cmVzID0gQG15c3FsX3F1 ZXJ5KCRzdHIpOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAncGdzcW wnOgoJCQkJCXJldHVybiAkdGhpcy0+cmVzID0gQHBnX3F1ZXJ5 KCR0aGlzLT5saW5rLCRzdHIpOwoJCQkJCWJyZWFrOwoJCQl9Cg kJCXJldHVybiBmYWxzZTsKCQl9CgkJZnVuY3Rpb24gZmV0Y2go KSB7CgkJCSRyZXMgPSBmdW5jX251bV9hcmdzKCk/ZnVuY19nZXRfYXJnKDApOiR0aGlzLT5yZXM7CgkJCXN3aXRjaC gkdGhpcy0+dHlwZSkJewoJCQkJY2FzZSAnbXlzcWwnOgoJCQkJ CXJldHVybiBAbXlzcWxfZmV0Y2hfYXNzb2MoJHJlcyk7CgkJCQ kJYnJlYWs7CgkJCQljYXNlICdwZ3NxbCc6CgkJCQkJcmV0dXJu IEBwZ19mZXRjaF9hc3NvYygkcmVzKTsKCQkJCQlicmVhazsKCQ kJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWZ1bmN0aW9uIGxp c3REYnMoKSB7CgkJCXN3aXRjaCgkdGhpcy0+dHlwZSkJewoJCQ kJY2FzZSAnbXlzcWwnOgogICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCJTSE9XIGRhdGFiYXNlcy IpOwoJCQkJYnJlYWs7CgkJCQljYXNlICdwZ3NxbCc6CgkJCQkJ cmV0dXJuICR0aGlzLT5yZXMgPSAkdGhpcy0+cXVlcnkoIlNFTE VDVCBkYXRuYW1lIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0 aXN0ZW1wbGF0ZSE9J3QnIik7CgkJCQlicmVhazsKCQkJfQoJCQ lyZXR1cm4gZmFsc2U7CgkJfQoJCWZ1bmN0aW9uIGxpc3RUYWJs ZXMoKSB7CgkJCXN3aXRjaCgkdGhpcy0+dHlwZSkJewoJCQkJY2 FzZSAnbXlzcWwnOgoJCQkJCXJldHVybiAkdGhpcy0+cmVzID0g JHRoaXMtPnF1ZXJ5KCdTSE9XIFRBQkxFUycpOwoJCQkJYnJlYW s7CgkJCQljYXNlICdwZ3NxbCc6CgkJCQkJcmV0dXJuICR0aGlz LT5yZXMgPSAkdGhpcy0+cXVlcnkoInNlbGVjdCB0YWJsZV9uYW 1lIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVy ZSB0YWJsZV9zY2hlbWEgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYS cgQU5EIHRhYmxlX3NjaGVtYSAhPSAncGdfY2F0YWxvZyciKTsK CQkJCWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9Cg kJZnVuY3Rpb24gZXJyb3IoKSB7CgkJCXN3aXRjaCgkdGhpcy0+ dHlwZSkJewoJCQkJY2FzZSAnbXlzcWwnOgoJCQkJCXJldHVybi BAbXlzcWxfZXJyb3IoKTsKCQkJCWJyZWFrOwoJCQkJY2FzZSAn cGdzcWwnOgoJCQkJCXJldHVybiBAcGdfbGFzdF9lcnJvcigpOw oJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0K CQlmdW5jdGlvbiBzZXRDaGFyc2V0KCRzdHIpIHsKCQkJc3dpdG NoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CgkJ CQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9zZXRfY2hhcn NldCcpKQoJCQkJCQlyZXR1cm4gQG15c3FsX3NldF9jaGFyc2V0 KCRzdHIsICR0aGlzLT5saW5rKTsKCQkJCQllbHNlCgkJCQkJCS R0aGlzLT5xdWVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsKCQkJ CQlicmVhazsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm 4gQHBnX3NldF9jbGllbnRfZW5jb2RpbmcoJHRoaXMtPmxpbmss ICRzdHIpOwoJCQkJCWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYW xzZTsKCQl9CgkJZnVuY3Rpb24gbG9hZEZpbGUoJHN0cikgewoJ CQlzd2l0Y2goJHRoaXMtPnR5cGUpCXsKCQkJCWNhc2UgJ215c3 FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPmZldGNoKCR0aGlzLT5x dWVyeSgiU0VMRUNUIExPQURfRklMRSgnIi5hZGRzbGFzaGVzKC RzdHIpLiInKSBhcyBmaWxlIikpOwoJCQkJYnJlYWs7CgkJCQlj YXNlICdwZ3NxbCc6CgkJCQkJJHRoaXMtPnF1ZXJ5KCJDUkVBVE UgVEFCTEUgaGFyZDIoZmlsZSB0ZXh0KTtDT1BZIGhhcmQyIEZS T00gJyIuYWRkc2xhc2hlcygkc3RyKS4iJztzZWxlY3QgZmlsZS Bmcm9tIGhhcmQyOyIpOwoJCQkJCSRyPWFycmF5KCk7CgkJCQkJ d2hpbGUoJGk9JHRoaXMtPmZldGNoKCkpCgkJCQkJCSRyW10gPS AkaVsnZmlsZSddOwoJCQkJCSR0aGlzLT5xdWVyeSgnZHJvcCB0 YWJsZSBoYXJkMicpOwoJCQkJCXJldHVybiBhcnJheSgnZmlsZS c9PmltcGxvZGUoIlxuIiwkcikpOwoJCQkJYnJlYWs7CgkJCX0K CQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5jdGlvbiBkdW1wKC R0YWJsZSwgJGZwID0gZmFsc2UpIHsKCQkJc3dpdGNoKCR0aGlz LT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CgkJCQkJJHJlcy A9ICR0aGlzLT5xdWVyeSgnU0hPVyBDUkVBVEUgVEFCTEUgYCcu JHRhYmxlLidgJyk7CgkJCQkJJGNyZWF0ZSA9IG15c3FsX2ZldG NoX2FycmF5KCRyZXMpOwoJCQkJCSRzcWwgPSAkY3JlYXRlWzFd LiI7XG4iOwogICAgICAgICAgICAgICAgICAgIGlmKCRmcCkgZn dyaXRlKCRmcCwgJHNxbCk7IGVsc2UgZWNobygkc3FsKTsKCQkJ CQkkdGhpcy0+cXVlcnkoJ1NFTEVDVCAqIEZST00gYCcuJHRhYm xlLidgJyk7CiAgICAgICAgICAgICAgICAgICAgJGkgPSAwOwog ICAgICAgICAgICAgICAgICAgICRoZWFkID0gdHJ1ZTsKCQkJCQ l3aGlsZSgk4pafID0gJHRoaXMtPmZldGNoKCkpIHsKICAgICAg ICAgICAgICAgICAgICAgICAgJHNxbCA9ICcnOwogICAgICAgIC AgICAgICAgICAgICAgICBpZigkaSAlIDEwMDAgPT0gMCkgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWQgPSB0cn VlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNxbCA9 ICI7XG5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCQ kJCQkJJGNvbHVtbnMgPSBhcnJheSgpOwoJCQkJCQlmb3JlYWNo KCTilp8gYXMgJGs9PiR2KSB7CiAgICAgICAgICAgICAgICAgIC AgICAgICAgICBpZigkdiA9PT0gbnVsbCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAk4pafWyRrXSA9ICJOVUxMIj sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZihp c19pbnQoJHYpKQogICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICTilp9bJGtdID0gJHY7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgJOKWn1ska10gPSAiJyIuQG15c3FsX3JlYWxf ZXNjYXBlX3N0cmluZygkdikuIiciOwoJCQkJCQkJJGNvbHVtbn NbXSA9ICJgIi4kay4iYCI7CgkJCQkJCX0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYoJGhlYWQpIHsKICAgICAgICAgICAgIC AgICAgICAgICAgICAgICRzcWwgLj0gJ0lOU0VSVCBJTlRPIGAn LiR0YWJsZS4nYCAoJy5pbXBsb2RlKCIsICIsICRjb2x1bW5zKS 4iKSBWQUxVRVMgXG5cdCgiLmltcGxvZGUoIiwgIiwgJOKWnyku JyknOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhlYW QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsIC 49ICJcblx0LCgiLmltcGxvZGUoIiwgIiwgJOKWnykuJyknOwog ICAgICAgICAgICAgICAgICAgICAgICBpZigkZnApIGZ3cml0ZS gkZnAsICRzcWwpOyBlbHNlIGVjaG8oJHNxbCk7CiAgICAgICAg ICAgICAgICAgICAgICAgICRpKys7CgkJCQkJfQogICAgICAgIC AgICAgICAgICAgIGlmKCEkaGVhZCkKICAgICAgICAgICAgICAg ICAgICAgICAgaWYoJGZwKSBmd3JpdGUoJGZwLCAiO1xuXG4iKT sgZWxzZSBlY2hvKCI7XG5cbiIpOwoJCQkJYnJlYWs7CgkJCQlj YXNlICdwZ3NxbCc6CgkJCQkJJHRoaXMtPnF1ZXJ5KCdTRUxFQ1 QgKiBGUk9NICcuJHRhYmxlKTsKCQkJCQl3aGlsZSgk4pafID0g JHRoaXMtPmZldGNoKCkpIHsKCQkJCQkJJGNvbHVtbnMgPSBhcn JheSgpOwoJCQkJCQlmb3JlYWNoKCTilp8gYXMgJGs9PiR2KSB7 CgkJCQkJCQkk4pafWyRrXSA9ICInIi5hZGRzbGFzaGVzKCR2KS 4iJyI7CgkJCQkJCQkkY29sdW1uc1tdID0gJGs7CgkJCQkJCX0K ICAgICAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICdJTlNFUl QgSU5UTyAnLiR0YWJsZS4nICgnLmltcGxvZGUoIiwgIiwgJGNv bHVtbnMpLicpIFZBTFVFUyAoJy5pbXBsb2RlKCIsICIsICTilp 8pLicpOycuIlxuIjsKICAgICAgICAgICAgICAgICAgICAgICAg aWYoJGZwKSBmd3JpdGUoJGZwLCAkc3FsKTsgZWxzZSBlY2hvKC RzcWwpOwoJCQkJCX0KCQkJCWJyZWFrOwoJCQl9CgkJCXJldHVy biBmYWxzZTsKCQl9Cgl9OwoJJGRiID0gbmV3IERiQ2xhc3MoJF 9QT1NUWyd0eXBlJ10pOwoJaWYoKEAkX1BPU1RbJ3AyJ109PSdk b3dubG9hZCcpICYmIChAJF9QT1NUWydwMSddIT0nc2VsZWN0Jy kpIHsKCQkkZGItPmNvbm5lY3QoJF9QT1NUWydzcWxfaG9zdCdd LCAkX1BPU1RbJ3NxbF9sb2dpbiddLCAkX1BPU1RbJ3NxbF9wYX NzJ10sICRfUE9TVFsnc3FsX2Jhc2UnXSk7CgkJJGRiLT5zZWxl Y3RkYigkX1BPU1RbJ3NxbF9iYXNlJ10pOwogICAgICAgIHN3aX RjaCgkX1BPU1RbJ2NoYXJzZXQnXSkgewogICAgICAgICAgICBj YXNlICJXaW5kb3dzLTEyNTEiOiAkZGItPnNldENoYXJzZXQoJ2 NwMTI1MScpOyBicmVhazsKICAgICAgICAgICAgY2FzZSAiVVRG LTgiOiAkZGItPnNldENoYXJzZXQoJ3V0ZjgnKTsgYnJlYWs7Ci AgICAgICAgICAgIGNhc2UgIktPSTgtUiI6ICRkYi0+c2V0Q2hh cnNldCgna29pOHInKTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2 UgIktPSTgtVSI6ICRkYi0+c2V0Q2hhcnNldCgna29pOHUnKTsg YnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNwODY2IjogJGRiLT 5zZXRDaGFyc2V0KCdjcDg2NicpOyBicmVhazsKICAgICAgICB9 CiAgICAgICAgaWYoZW1wdHkoJF9QT1NUWydmaWxlJ10pKSB7Ci AgICAgICAgICAgIG9iX3N0YXJ0KCJvYl9nemhhbmRsZXIiLCA0 MDk2KTsKICAgICAgICAgICAgaGVhZGVyKCJDb250ZW50LURpc3 Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1kdW1wLnNx bCIpOwogICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZT ogdGV4dC9wbGFpbiIpOwogICAgICAgICAgICBmb3JlYWNoKCRf UE9TVFsndGJsJ10gYXMgJHYpCgkJCQkkZGItPmR1bXAoJHYpOw ogICAgICAgICAgICBleGl0OwogICAgICAgIH0gZWxzZWlmKCRm cCA9IEBmb3BlbigkX1BPU1RbJ2ZpbGUnXSwgJ3cnKSkgewogIC AgICAgICAgICBmb3JlYWNoKCRfUE9TVFsndGJsJ10gYXMgJHYp CiAgICAgICAgICAgICAgICAkZGItPmR1bXAoJHYsICRmcCk7Ci AgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB1 bnNldCgkX1BPU1RbJ3AyJ10pOwogICAgICAgIH0gZWxzZQogIC AgICAgICAgICBkaWUoJzxzY3JpcHQ+YWxlcnQoIkVycm9yISBD YW5cJ3Qgb3BlbiBmaWxlIik7d2luZG93Lmhpc3RvcnkuYmFjay gtMSk8L3NjcmlwdD4nKTsKCX0KCWhhcmRIZWFkZXIoKTsKCWVj aG8gIgo8aDE+U3FsIGJyb3dzZXI8L2gxPjxkaXYgY2xhc3M9Y2 9udGVudD4KPGZvcm0gbmFtZT0nc2YnIG1ldGhvZD0ncG9zdCcg b25zdWJtaXQ9J2ZzKHRoaXMpOyc+PHRhYmxlIGNlbGxwYWRkaW 5nPScyJyBjZWxsc3BhY2luZz0nMCc+PHRyPgo8dGQ+VHlwZTwv dGQ+PHRkPkhvc3Q8L3RkPjx0ZD5Mb2dpbjwvdGQ+PHRkPlBhc3 N3b3JkPC90ZD48dGQ+RGF0YWJhc2U8L3RkPjx0ZD48L3RkPjwv dHI+PHRyPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1uZSB2YW x1ZT0nJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVl PVNxbD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMSB2YWx1ZT 0ncXVlcnknPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAyIHZh bHVlPScnPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMgdmFsdW U9JyIuIGh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCdd KSAuIic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Y2hhcnNldC B2YWx1ZT0nIi4gKGlzc2V0KCRfUE9TVFsnY2hhcnNldCddKT8k X1BPU1RbJ2NoYXJzZXQnXTonJykgLiInPgo8dGQ+PGxhYmVsPj xzZWxlY3QgbmFtZT0ndHlwZSc+PG9wdGlvbiB2YWx1ZT0nbXlz cWwnICI7CiAgICBpZihAJF9QT1NUWyd0eXBlJ109PSdteXNxbC cpZWNobyAnc2VsZWN0ZWQnOwplY2hvICI+TXlTcWw8L29wdGlv bj48b3B0aW9uIHZhbHVlPSdwZ3NxbCcgIjsKaWYoQCRfUE9TVF sndHlwZSddPT0ncGdzcWwnKWVjaG8gJ3NlbGVjdGVkJzsKZWNo byAiPlBvc3RncmVTcWw8L29wdGlvbj48L3NlbGVjdD48L2xhYm VsPjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9c3Fs X2hvc3QgdmFsdWU9XCIiLiAoZW1wdHkoJF9QT1NUWydzcWxfaG 9zdCddKT8nbG9jYWxob3N0JzpodG1sc3BlY2lhbGNoYXJzKCRf UE9TVFsnc3FsX2hvc3QnXSkpIC4iXCI+PC90ZD4KPHRkPjxpbn B1dCB0eXBlPXRleHQgbmFtZT1zcWxfbG9naW4gdmFsdWU9XCIi LiAoZW1wdHkoJF9QT1NUWydzcWxfbG9naW4nXSk/J3Jvb3QnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfbG 9naW4nXSkpIC4iXCI+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPXRl eHQgbmFtZT1zcWxfcGFzcyB2YWx1ZT1cIiIuIChlbXB0eSgkX1 BPU1RbJ3NxbF9wYXNzJ10pPycnOmh0bWxzcGVjaWFsY2hhcnMo JF9QT1NUWydzcWxfcGFzcyddKSkgLiJcIiByZXF1aXJlZD48L3 RkPjx0ZD4iOwoJJHRtcCA9ICI8aW5wdXQgdHlwZT10ZXh0IG5h bWU9c3FsX2Jhc2UgdmFsdWU9Jyc+IjsKCWlmKGlzc2V0KCRfUE 9TVFsnc3FsX2hvc3QnXSkpewoJCWlmKCRkYi0+Y29ubmVjdCgk X1BPU1RbJ3NxbF9ob3N0J10sICRfUE9TVFsnc3FsX2xvZ2luJ1 0sICRfUE9TVFsnc3FsX3Bhc3MnXSwgJF9QT1NUWydzcWxfYmFz ZSddKSkgewoJCQlzd2l0Y2goJF9QT1NUWydjaGFyc2V0J10pIH sKCQkJCWNhc2UgIldpbmRvd3MtMTI1MSI6ICRkYi0+c2V0Q2hh cnNldCgnY3AxMjUxJyk7IGJyZWFrOwoJCQkJY2FzZSAiVVRGLT giOiAkZGItPnNldENoYXJzZXQoJ3V0ZjgnKTsgYnJlYWs7CgkJ CQljYXNlICJLT0k4LVIiOiAkZGItPnNldENoYXJzZXQoJ2tvaT hyJyk7IGJyZWFrOwoJCQkJY2FzZSAiS09JOC1VIjogJGRiLT5z ZXRDaGFyc2V0KCdrb2k4dScpOyBicmVhazsKCQkJCWNhc2UgIm NwODY2IjogJGRiLT5zZXRDaGFyc2V0KCdjcDg2NicpOyBicmVh azsKCQkJfQoJCQkkZGItPmxpc3REYnMoKTsKCQkJZWNobyAiPG xhYmVsPjxzZWxlY3QgbmFtZT1zcWxfYmFzZT48b3B0aW9uIHZh bHVlPScnPjwvb3B0aW9uPiI7CgkJCXdoaWxlKCTilp8gPSAkZG ItPmZldGNoKCkpIHsKCQkJCWxpc3QoJGtleSwgJHZhbHVlKSA9 IGVhY2goJOKWnyk7CgkJCQllY2hvICc8b3B0aW9uIHZhbHVlPS InLiR2YWx1ZS4nIiAnLigkdmFsdWU9PSRfUE9TVFsnc3FsX2Jh c2UnXT8nc2VsZWN0ZWQnOicnKS4nPicuJHZhbHVlLic8L29wdG lvbj4nOwoJCQl9CgkJCWVjaG8gJzwvc2VsZWN0PjwvbGFiZWw+ JzsKCQl9CgkJZWxzZSBlY2hvICR0bXA7Cgl9ZWxzZQoJCWVjaG 8gJHRtcDsKCWVjaG8gIjwvdGQ+CgkJCQk8dGQ+PGlucHV0IHR5 cGU9c3VibWl0IHZhbHVlPSdzdWJtaXQnIG9uY2xpY2s9J2ZzKG Quc2YpOyc+PC90ZD4KICAgICAgICAgICAgICAgIDx0ZD48aW5w dXQgdHlwZT1jaGVja2JveCBuYW1lPXNxbF9jb3VudCB2YWx1ZT 0nb24nIiAuIChlbXB0eSgkX1BPU1RbJ3NxbF9jb3VudCddKT8n JzonIGNoZWNrZWQnKSAuICI+IGNvdW50IHRoZSBudW1iZXIgb2 Ygcm93czwvdGQ+CgkJCTwvdHI+CgkJPC90YWJsZT4KCQk8c2Ny aXB0PgogICAgICAgICAgICBzX2RiPSciLkBhZGRzbGFzaGVzKC RfUE9TVFsnc3FsX2Jhc2UnXSkuIic7CiAgICAgICAgICAgIGZ1 bmN0aW9uIGZzKGYpIHsKICAgICAgICAgICAgICAgIGlmKGYuc3 FsX2Jhc2UudmFsdWUhPXNfZGIpIHsgZi5vbnN1Ym1pdCA9IGZ1 bmN0aW9uKCkge307CiAgICAgICAgICAgICAgICAgICAgaWYoZi 5wMSkgZi5wMS52YWx1ZT0nJzsKICAgICAgICAgICAgICAgICAg ICBpZihmLnAyKSBmLnAyLnZhbHVlPScnOwogICAgICAgICAgIC AgICAgICAgIGlmKGYucDMpIGYucDMudmFsdWU9Jyc7CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCQkJZnVuY3Rpb2 4gc3QodCxsKSB7CgkJCQlkLnNmLnAxLnZhbHVlID0gJ3NlbGVj dCc7CgkJCQlkLnNmLnAyLnZhbHVlID0gdDsKICAgICAgICAgIC AgICAgIGlmKGwgJiYgZC5zZi5wMykgZC5zZi5wMy52YWx1ZSA9 IGw7CgkJCQlkLnNmLnN1Ym1pdCgpOwoJCQl9CgkJCWZ1bmN0aW 9uIGlzKCkgewoJCQkJZm9yKGk9MDtpPGQuc2YuZWxlbWVudHNb J3RibFtdJ10ubGVuZ3RoOysraSkKCQkJCQlkLnNmLmVsZW1lbn RzWyd0YmxbXSddW2ldLmNoZWNrZWQgPSAhZC5zZi5lbGVtZW50 c1sndGJsW10nXVtpXS5jaGVja2VkOwoJCQl9CgkJPC9zY3JpcH Q+IjsKCWlmKGlzc2V0KCRkYikgJiYgJGRiLT5saW5rKXsKCQll Y2hvICI8YnIvPjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW 5nPTIgY2VsbHNwYWNpbmc9MD4iOwoJCQlpZighZW1wdHkoJF9Q T1NUWydzcWxfYmFzZSddKSl7CgkJCQkkZGItPnNlbGVjdGRiKC RfUE9TVFsnc3FsX2Jhc2UnXSk7CgkJCQllY2hvICI8dHI+PHRk IHdpZHRoPTEgc3R5bGU9J2JvcmRlci10b3A6MnB4IHNvbGlkIC M2NjY7Jz48c3Bhbj5UYWJsZXM6PC9zcGFuPjxicj48YnI+IjsK CQkJCSR0YmxzX3JlcyA9ICRkYi0+bGlzdFRhYmxlcygpOwoJCQ kJd2hpbGUoJOKWnyA9ICRkYi0+ZmV0Y2goJHRibHNfcmVzKSkg ewoJCQkJCWxpc3QoJGtleSwgJHZhbHVlKSA9IGVhY2goJOKWny k7CiAgICAgICAgICAgICAgICAgICAgaWYoIWVtcHR5KCRfUE9T VFsnc3FsX2NvdW50J10pKQogICAgICAgICAgICAgICAgICAgIC AgICAkbiA9ICRkYi0+ZmV0Y2goJGRiLT5xdWVyeSgnU0VMRUNU IENPVU5UKCopIGFzIG4gRlJPTSAnLiR2YWx1ZS4nJykpOwoJCQ kJCSR2YWx1ZSA9IGh0bWxzcGVjaWFsY2hhcnMoJHZhbHVlKTsK CQkJCQllY2hvICI8bm9icj48aW5wdXQgdHlwZT0nY2hlY2tib3 gnIG5hbWU9J3RibFtdJyB2YWx1ZT0nIi4kdmFsdWUuIic+Jm5i c3A7PGEgaHJlZj0jIG9uY2xpY2s9XCJzdCgnIi4kdmFsdWUuIi csMSlcIj4iLiR2YWx1ZS4iPC9hPiIgLiAoZW1wdHkoJF9QT1NU WydzcWxfY291bnQnXSk/JyZuYnNwOyc6IiA8c21hbGw+KHskblsnbiddfSk8L3NtYWxsPi IpIC4gIjwvbm9icj48YnI+IjsKCQkJCX0KCQkJCWVjaG8gIjxp bnB1dCB0eXBlPSdjaGVja2JveCcgb25jbGljaz0naXMoKTsnPi A8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0R1bXAnIG9uY2xp Y2s9J2RvY3VtZW50LnNmLnAyLnZhbHVlPVwiZG93bmxvYWRcIj tkb2N1bWVudC5zZi5zdWJtaXQoKTsnPjxicj5GaWxlIHBhdGg6 PGlucHV0IHR5cGU9dGV4dCBuYW1lPWZpbGUgdmFsdWU9J2R1bX Auc3FsJz48L3RkPjx0ZCBzdHlsZT0nYm9yZGVyLXRvcDoycHgg c29saWQgIzY2NjsnPiI7CgkJCQlpZihAJF9QT1NUWydwMSddID 09ICdzZWxlY3QnKSB7CgkJCQkJJF9QT1NUWydwMSddID0gJ3F1 ZXJ5JzsKICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3AzJ1 0gPSAkX1BPU1RbJ3AzJ10/JF9QT1NUWydwMyddOjE7CgkJCQkJJGRiLT5xdWVyeSgnU0VMRU NUIENPVU5UKCopIGFzIG4gRlJPTSAnIC4gJF9QT1NUWydwMidd KTsKCQkJCQkkbnVtID0gJGRiLT5mZXRjaCgpOwoJCQkJCSRwYW dlcyA9IGNlaWwoJG51bVsnbiddIC8gMzApOwogICAgICAgICAg ICAgICAgICAgIGVjaG8gIjxzY3JpcHQ+ZC5zZi5vbnN1Ym1pdD 1mdW5jdGlvbigpe3N0KFwiIiAuICRfUE9TVFsncDInXSAuICJc IiwgZC5zZi5wMy52YWx1ZSl9PC9zY3JpcHQ+PHNwYW4+Ii4kX1 BPU1RbJ3AyJ10uIjwvc3Bhbj4gKHskbnVtWyduJ119IHJlY29y ZHMpIFBhZ2UgIyA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9J3AzJy B2YWx1ZT0iIC4gKChpbnQpJF9QT1NUWydwMyddKSAuICI+IjsK ICAgICAgICAgICAgICAgICAgICBlY2hvICIgb2YgJHBhZ2VzIj sKICAgICAgICAgICAgICAgICAgICBpZigkX1BPU1RbJ3AzJ10g PiAxKQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgPG EgaHJlZj0jIG9uY2xpY2s9J3N0KFwiIiAuICRfUE9TVFsncDIn XSAuICciLCAnIC4gKCRfUE9TVFsncDMnXS0xKSAuICIpJz4mbH Q7IFByZXY8L2E+IjsKICAgICAgICAgICAgICAgICAgICBpZigk X1BPU1RbJ3AzJ10gPCAkcGFnZXMpCiAgICAgICAgICAgICAgIC AgICAgICAgIGVjaG8gIiA8YSBocmVmPSMgb25jbGljaz0nc3Qo XCIiIC4gJF9QT1NUWydwMiddIC4gJyIsICcgLiAoJF9QT1NUWy dwMyddKzEpIC4gIiknPk5leHQgJmd0OzwvYT4iOwogICAgICAg ICAgICAgICAgICAgICRfUE9TVFsncDMnXS0tOwoJCQkJCWlmKC RfUE9TVFsndHlwZSddPT0ncGdzcWwnKQoJCQkJCQkkX1BPU1Rb J3AyJ10gPSAnU0VMRUNUICogRlJPTSAnLiRfUE9TVFsncDInXS 4nIExJTUlUIDMwIE9GRlNFVCAnLigkX1BPU1RbJ3AzJ10qMzAp OwoJCQkJCWVsc2UKCQkJCQkJJF9QT1NUWydwMiddID0gJ1NFTE VDVCAqIEZST00gYCcuJF9QT1NUWydwMiddLidgIExJTUlUICcu KCRfUE9TVFsncDMnXSozMCkuJywzMCc7CgkJCQkJZWNobyAiPG JyPjxicj4iOwoJCQkJfQoJCQkJaWYoKEAkX1BPU1RbJ3AxJ10g PT0gJ3F1ZXJ5JykgJiYgIWVtcHR5KCRfUE9TVFsncDInXSkpIH sKCQkJCQkkZGItPnF1ZXJ5KEAkX1BPU1RbJ3AyJ10pOwoJCQkJ CWlmKCRkYi0+cmVzICE9PSBmYWxzZSkgewoJCQkJCQkkdGl0bG UgPSBmYWxzZTsKCQkJCQkJZWNobyAnPHRhYmxlIHdpZHRoPTEw MCUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yIGNsYXNzPW 1haW4+JzsKCQkJCQkJJGxpbmUgPSAxOwoJCQkJCQl3aGlsZSgk 4pafID0gJGRiLT5mZXRjaCgpKQl7CgkJCQkJCQlpZighJHRpdG xlKQl7CgkJCQkJCQkJZWNobyAnPHRyPic7CgkJCQkJCQkJZm9y ZWFjaCgk4pafIGFzICRrZXkgPT4gJHZhbHVlKQoJCQkJCQkJCQ llY2hvICc8dGg+Jy4ka2V5Lic8L3RoPic7CgkJCQkJCQkJcmVz ZXQoJOKWnyk7CgkJCQkJCQkJJHRpdGxlPXRydWU7CgkJCQkJCQ kJZWNobyAnPC90cj48dHI+JzsKCQkJCQkJCQkkbGluZSA9IDI7 CgkJCQkJCQl9CgkJCQkJCQllY2hvICc8dHIgY2xhc3M9ImwnLi RsaW5lLiciPic7CgkJCQkJCQkkbGluZSA9ICRsaW5lPT0xPzI6 MTsKCQkJCQkJCWZvcmVhY2goJOKWnyBhcyAka2V5ID0+ICR2YW x1ZSkgewoJCQkJCQkJCWlmKCR2YWx1ZSA9PSBudWxsKQoJCQkJ CQkJCQllY2hvICc8dGQ+PGk+bnVsbDwvaT48L3RkPic7CgkJCQ kJCQkJZWxzZQoJCQkJCQkJCQllY2hvICc8dGQ+Jy5ubDJiciho dG1sc3BlY2lhbGNoYXJzKCR2YWx1ZSkpLic8L3RkPic7CgkJCQ kJCQl9CgkJCQkJCQllY2hvICc8L3RyPic7CgkJCQkJCX0KCQkJ CQkJZWNobyAnPC90YWJsZT4nOwoJCQkJCX0gZWxzZSB7CgkJCQ kJCWVjaG8gJzxkaXY+PGI+RXJyb3I6PC9iPiAnLmh0bWxzcGVj aWFsY2hhcnMoJGRiLT5lcnJvcigpKS4nPC9kaXY+JzsKCQkJCQ l9CgkJCQl9CgkJCQllY2hvICI8YnI+PC9mb3JtPjxmb3JtIG9u c3VibWl0PSdkLnNmLnAxLnZhbHVlPVwicXVlcnlcIjtkLnNmLn AyLnZhbHVlPXRoaXMucXVlcnkudmFsdWU7ZG9jdW1lbnQuc2Yu c3VibWl0KCk7cmV0dXJuIGZhbHNlOyc+PHRleHRhcmVhIG5hbW U9J3F1ZXJ5JyBzdHlsZT0nd2lkdGg6MTAwJTtoZWlnaHQ6MTAw cHgnPiI7CiAgICAgICAgICAgICAgICBpZighZW1wdHkoJF9QT1 NUWydwMiddKSAmJiAoJF9QT1NUWydwMSddICE9ICdsb2FkZmls ZScpKQogICAgICAgICAgICAgICAgICAgIGVjaG8gaHRtbHNwZW NpYWxjaGFycygkX1BPU1RbJ3AyJ10pOwogICAgICAgICAgICAg ICAgZWNobyAiPC90ZXh0YXJlYT48YnIvPjxpbnB1dCB0eXBlPX N1Ym1pdCB2YWx1ZT0nRXhlY3V0ZSc+IjsKCQkJCWVjaG8gIjwv dGQ+PC90cj4iOwoJCQl9CgkJCWVjaG8gIjwvdGFibGU+PC9mb3 JtPjxici8+IjsKICAgICAgICAgICAgaWYoJF9QT1NUWyd0eXBl J109PSdteXNxbCcpIHsKICAgICAgICAgICAgICAgICRkYi0+cX VlcnkoIlNFTEVDVCAxIEZST00gbXlzcWwudXNlciBXSEVSRSBj b25jYXQoYHVzZXJgLCAnQCcsIGBob3N0YCkgPSBVU0VSKCkgQU 5EIGBGaWxlX3ByaXZgID0gJ3knIik7CiAgICAgICAgICAgICAg ICBpZigkZGItPmZldGNoKCkpCiAgICAgICAgICAgICAgICAgIC AgZWNobyAiPGZvcm0gb25zdWJtaXQ9J2Quc2YucDEudmFsdWU9 XCJsb2FkZmlsZVwiO2RvY3VtZW50LnNmLnAyLnZhbHVlPXRoaX MuZi52YWx1ZTtkb2N1bWVudC5zZi5zdWJtaXQoKTtyZXR1cm4g ZmFsc2U7Jz48c3Bhbj5Mb2FkIGZpbGU8L3NwYW4+IDxpbnB1dC AgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1mPjxp bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nc3VibWl0Jz48L2Zvcm 0+IjsKICAgICAgICAgICAgfQoJCQlpZihAJF9QT1NUWydwMSdd ID09ICdsb2FkZmlsZScpIHsKCQkJCSRmaWxlID0gJGRiLT5sb2 FkRmlsZSgkX1BPU1RbJ3AyJ10pOwoJCQkJZWNobyAnPGJyLz48 cHJlIGNsYXNzPW1sMT4nLmh0bWxzcGVjaWFsY2hhcnMoJGZpbG VbJ2ZpbGUnXSkuJzwvcHJlPic7CgkJCX0KCX0gZWxzZSB7CiAg ICAgICAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYi0+ZXJyb3 IoKSk7CiAgICB9CgllY2hvICc8L2Rpdj4nOwoJaGFyZEZvb3Rl cigpOwp9CmZ1bmN0aW9uIGFjdGlvbk5ldHdvcmsoKSB7CgloYX JkSGVhZGVyKCk7CgkkYmFja19jb25uZWN0X2M9IkkybHVZMngx WkdVZ1BITjBaR2x2TG1nK0RRb2phVzVqYkhWa1pTQThjM2x6TD NOdlkydGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhR dmFXNHVhRDROQ21sdWRDQnRZV2x1S0dsdWRDQmhjbWRqTENCam FHRnlJQ3BoY21kMlcxMHBJSHNOQ2lBZ0lDQnBiblFnWm1RN0RR b2dJQ0FnYzNSeWRXTjBJSE52WTJ0aFpHUnlYMmx1SUhOcGJqc0 5DaUFnSUNCa1lXVnRiMjRvTVN3d0tUc05DaUFnSUNCemFXNHVj Mmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ0lDQWdjMm x1TG5OcGJsOXdiM0owSUQwZ2FIUnZibk1vWVhSdmFTaGhjbWQy V3pKZEtTazdEUW9nSUNBZ2MybHVMbk5wYmw5aFpHUnlMbk5mWV dSa2NpQTlJR2x1WlhSZllXUmtjaWhoY21kMld6RmRLVHNOQ2lB Z0lDQm1aQ0E5SUhOdlkydGxkQ2hCUmw5SlRrVlVMQ0JUVDBOTF gxTlVVa1ZCVFN3Z1NWQlFVazlVVDE5VVExQXBJRHNOQ2lBZ0lD QnBaaUFvS0dOdmJtNWxZM1FvWm1Rc0lDaHpkSEoxWTNRZ2MyOW phMkZrWkhJZ0tpa2dKbk5wYml3Z2MybDZaVzltS0hOMGNuVmpk Q0J6YjJOcllXUmtjaWtwS1R3d0tTQjdEUW9nSUNBZ0lDQWdJSE JsY25KdmNpZ2lRMjl1Ym1WamRDQm1ZV2xzSWlrN0RRb2dJQ0Fn SUNBZ0lISmxkSFZ5YmlBd093MEtJQ0FnSUgwTkNpQWdJQ0JrZF hBeUtHWmtMQ0F3S1RzTkNpQWdJQ0JrZFhBeUtHWmtMQ0F4S1Rz TkNpQWdJQ0JrZFhBeUtHWmtMQ0F5S1RzTkNpQWdJQ0J6ZVhOMF pXMG9JaTlpYVc0dmMyZ2dMV2tpS1RzTkNpQWdJQ0JqYkc5elpT aG1aQ2s3RFFwOSI7CgkkYmFja19jb25uZWN0X3A9Ikl5RXZkWE 55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKR2xo WkdSeVBXbHVaWFJmWVhSdmJpZ2tRVkpIVmxzd1hTa2dmSHdnWk dsbEtDSkZjbkp2Y2pvZ0pDRmNiaUlwT3cwS0pIQmhaR1J5UFhO dlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQWthV0ZrWkhJcE lIeDhJR1JwWlNnaVJYSnliM0k2SUNRaFhHNGlLVHNOQ2lSd2Nt OTBiejFuWlhSd2NtOTBiMko1Ym1GdFpTZ25kR053SnlrN0RRcH piMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxY MU5VVWtWQlRTd2dKSEJ5YjNSdktTQjhmQ0JrYVdVb0lrVnljbT l5T2lBa0lWeHVJaWs3RFFwamIyNXVaV04wS0ZOUFEwdEZWQ3dn SkhCaFpHUnlLU0I4ZkNCa2FXVW9Ja1Z5Y205eU9pQWtJVnh1SW lrN0RRcHZjR1Z1S0ZOVVJFbE9MQ0FpUGlaVFQwTkxSVlFpS1Rz TkNtOXdaVzRvVTFSRVQxVlVMQ0FpUGlaVFQwTkxSVlFpS1RzTk NtOXdaVzRvVTFSRVJWSlNMQ0FpUGlaVFQwTkxSVlFpS1RzTkNu TjVjM1JsYlNnbkwySnBiaTl6YUNBdGFTY3BPdzBLWTJ4dmMyVW 9VMVJFU1U0cE93MEtZMnh2YzJVb1UxUkVUMVZVS1RzTkNtTnNi M05sS0ZOVVJFVlNVaWs3IjsKCSRiaW5kX3BvcnRfYz0iSTJsdV kyeDFaR1VnUEhOMFpHbHZMbWcrRFFvamFXNWpiSFZrWlNBOGMz UnlhVzVuTG1nK0RRb2phVzVqYkhWa1pTQThkVzVwYzNSa0xtZy tEUW9qYVc1amJIVmtaU0E4Ym1WMFpHSXVhRDROQ2lOcGJtTnNk V1JsSUR4emRHUnNhV0l1YUQ0TkNtbHVkQ0J0WVdsdUtHbHVkQ0 JoY21kakxDQmphR0Z5SUNvcVlYSm5kaWtnZXcwS0lDQWdJR2x1 ZENCekxHTXNhVHNOQ2lBZ0lDQmphR0Z5SUhCYk16QmRPdzBLSU NBZ0lITjBjblZqZENCemIyTnJZV1JrY2w5cGJpQnlPdzBLSUNB Z0lHUmhaVzF2YmlneExEQXBPdzBLSUNBZ0lITWdQU0J6YjJOcl pYUW9RVVpmU1U1RlZDeFRUME5MWDFOVVVrVkJUU3d3S1RzTkNp QWdJQ0JwWmlnaGN5a2djbVYwZFhKdUlDMHhPdzBLSUNBZ0lISX VjMmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ0lDQWdj aTV6YVc1ZmNHOXlkQ0E5SUdoMGIyNXpLR0YwYjJrb1lYSm5kbH N4WFNrcE93MEtJQ0FnSUhJdWMybHVYMkZrWkhJdWMxOWhaR1J5 SUQwZ2FIUnZibXdvU1U1QlJFUlNYMEZPV1NrN0RRb2dJQ0FnWW 1sdVpDaHpMQ0FvYzNSeWRXTjBJSE52WTJ0aFpHUnlJQ29wSm5J c0lEQjRNVEFwT3cwS0lDQWdJR3hwYzNSbGJpaHpMQ0ExS1RzTk NpQWdJQ0IzYUdsc1pTZ3hLU0I3RFFvZ0lDQWdJQ0FnSUdNOVlX TmpaWEIwS0hNc01Dd3dLVHNOQ2lBZ0lDQWdJQ0FnWkhWd01paG pMREFwT3cwS0lDQWdJQ0FnSUNCa2RYQXlLR01zTVNrN0RRb2dJ Q0FnSUNBZ0lHUjFjRElvWXl3eUtUc05DaUFnSUNBZ0lDQWdkM0 pwZEdVb1l5d2lVR0Z6YzNkdmNtUTZJaXc1S1RzTkNpQWdJQ0Fn SUNBZ2NtVmhaQ2hqTEhBc2MybDZaVzltS0hBcEtUc05DaUFnSU NBZ0lDQWdabTl5S0drOU1EdHBQSE4wY214bGJpaHdLVHRwS3lz cERRb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlnZ0tIQmJhVjBnUFQwZ0 oxeHVKeWtnZkh3Z0tIQmJhVjBnUFQwZ0oxeHlKeWtnS1EwS0lD QWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCYmFWMGdQU0FuWERBbk93ME tJQ0FnSUNBZ0lDQnBaaUFvYzNSeVkyMXdLR0Z5WjNaYk1sMHNj Q2tnUFQwZ01Da05DaUFnSUNBZ0lDQWdJQ0FnSUhONWMzUmxiU2 dpTDJKcGJpOXphQ0F0YVNJcE93MEtJQ0FnSUNBZ0lDQmpiRzl6 WlNoaktUc05DaUFnSUNCOURRcDkiOwoJJGJpbmRfcG9ydF9wPS JJeUV2ZFhOeUwySnBiaTl3WlhKc0RRb2tVMGhGVEV3OUlpOWlh VzR2YzJnZ0xXa2lPdzBLYVdZZ0tFQkJVa2RXSUR3Z01Ta2dleU JsZUdsMEtERXBPeUI5RFFwMWMyVWdVMjlqYTJWME93MEtjMjlq YTJWMEtGTXNKbEJHWDBsT1JWUXNKbE5QUTB0ZlUxUlNSVUZOTE dkbGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbktTa2dmSHdnWkds bElDSkRZVzUwSUdOeVpXRjBaU0J6YjJOclpYUmNiaUk3RFFwel pYUnpiMk5yYjNCMEtGTXNVMDlNWDFOUFEwdEZWQ3hUVDE5U1JW VlRSVUZFUkZJc01TazdEUXBpYVc1a0tGTXNjMjlqYTJGa1pISm ZhVzRvSkVGU1IxWmJNRjBzU1U1QlJFUlNYMEZPV1NrcElIeDhJ R1JwWlNBaVEyRnVkQ0J2Y0dWdUlIQnZjblJjYmlJN0RRcHNhWE 4wWlc0b1V5d3pLU0I4ZkNCa2FXVWdJa05oYm5RZ2JHbHpkR1Z1 SUhCdmNuUmNiaUk3RFFwM2FHbHNaU2d4S1NCN0RRb0pZV05qWl hCMEtFTlBUazRzVXlrN0RRb0phV1lvSVNna2NHbGtQV1p2Y21z cEtTQjdEUW9KQ1dScFpTQWlRMkZ1Ym05MElHWnZjbXNpSUdsbU lDZ2haR1ZtYVc1bFpDQWtjR2xrS1RzTkNna0piM0JsYmlCVFZF UkpUaXdpUENaRFQwNU9JanNOQ2drSmIzQmxiaUJUVkVSUFZWUX NJajRtUTA5T1RpSTdEUW9KQ1c5d1pXNGdVMVJFUlZKU0xDSStK a05QVGs0aU93MEtDUWxsZUdWaklDUlRTRVZNVENCOGZDQmthV1 VnY0hKcGJuUWdRMDlPVGlBaVEyRnVkQ0JsZUdWamRYUmxJQ1JU U0VWTVRGeHVJanNOQ2drSlkyeHZjMlVnUTA5T1Rqc05DZ2tKWl hocGRDQXdPdzBLQ1gwTkNuMD0iOwoJZWNobyAiPGgxPk5ldHdv cmsgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4KCTxmb3 JtIG5hbWU9J25mcCcgb25TdWJtaXQ9J2cobnVsbCxudWxsLHRo aXMudXNpbmcudmFsdWUsdGhpcy5wb3J0LnZhbHVlLHRoaXMucG Fzcy52YWx1ZSk7cmV0dXJuIGZhbHNlOyc+Cgk8c3Bhbj5CaW5k IHBvcnQgdG8gL2Jpbi9zaDwvc3Bhbj48YnIvPgoJUG9ydDogPG lucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPScz MTMzNyc+IFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0ndGV4dCcgbm FtZT0ncGFzcyc+IFVzaW5nOiA8bGFiZWw+PHNlbGVjdCBuYW1l PSd1c2luZyc+PG9wdGlvbiB2YWx1ZT0nYnBjJz5DPC9vcHRpb2 4+PG9wdGlvbiB2YWx1ZT0nYnBwJz5QZXJsPC9vcHRpb24+PC9z ZWxlY3Q+PC9sYWJlbD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbH VlPSdzdWJtaXQnPgoJPC9mb3JtPgoJPGZvcm0gbmFtZT0nbmZw JyBvblN1Ym1pdD0nZyhudWxsLG51bGwsdGhpcy51c2luZy52YW x1ZSx0aGlzLnNlcnZlci52YWx1ZSx0aGlzLnBvcnQudmFsdWUp O3JldHVybiBmYWxzZTsnPgoJPHNwYW4+QmFjay1jb25uZWN0IH RvPC9zcGFuPjxici8+CglTZXJ2ZXI6IDxpbnB1dCB0eXBlPSd0 ZXh0JyBuYW1lPSdzZXJ2ZXInIHZhbHVlPSIuICRfU0VSVkVSWy dSRU1PVEVfQUREUiddIC4iPiBQb3J0OiA8aW5wdXQgdHlwZT0n dGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzMxMzM3Jz4gVXNpbm c6IDxsYWJlbD48c2VsZWN0IG5hbWU9J3VzaW5nJz48b3B0aW9u IHZhbHVlPSdiY2MnPkM8L29wdGlvbj48b3B0aW9uIHZhbHVlPS diY3AnPlBlcmw8L29wdGlvbj48L3NlbGVjdD48L2xhYmVsPiA8 aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J3N1Ym1pdCc+Cgk8L2 Zvcm0+PGJyPiI7CglpZihpc3NldCgkX1BPU1RbJ3AxJ10pKSB7 CgkJZnVuY3Rpb24gY2YoJGYsJHQpIHsKCQkJJHc9QGZvcGVuKC RmLCJ3Iikgb3IgQGZ1bmN0aW9uX2V4aXN0cygnZmlsZV9wdXRf Y29udGVudHMnKTsKCQkJaWYoJHcpCXsKCQkJCUBmd3JpdGUoJH csQGJhc2U2NF9kZWNvZGUoJHQpKSBvciBAZnB1dHMoJHcsQGJh c2U2NF9kZWNvZGUoJHQpKSBvciBAZmlsZV9wdXRfY29udGVudH MoJGYsQGJhc2U2NF9kZWNvZGUoJHQpKTsKCQkJCUBmY2xvc2Uo JHcpOwoJCQl9CgkJfQoJCWlmKCRfUE9TVFsncDEnXSA9PSAnYn BjJykgewoJCQljZigiL3RtcC9icC5jIiwkYmluZF9wb3J0X2Mp OwoJCQkk4paWID0gZXgoImdjYyAtbyAvdG1wL2JwIC90bXAvYn AuYyIpOwoJCQlAdW5saW5rKCIvdG1wL2JwLmMiKTsKCQkJJOKW liAuPSBleCgiL3RtcC9icCAiLiRfUE9TVFsncDInXS4iICIuJF 9QT1NUWydwMyddLiIgJiIpOwoJCQllY2hvICI8cHJlIGNsYXNz PW1sMT4k4paWIi5leCgicHMgYXV4IHwgZ3JlcCBicCIpLiI8L3 ByZT4iOwoJCX0KCQlpZigkX1BPU1RbJ3AxJ10gPT0gJ2JwcCcp IHsKCQkJY2YoIi90bXAvYnAucGwiLCRiaW5kX3BvcnRfcCk7Cg kJCSTilpYgPSBleCh3aGljaCgicGVybCIpLiIgL3RtcC9icC5w bCAiLiRfUE9TVFsncDInXS4iICYiKTsKCQkJZWNobyAiPHByZS BjbGFzcz1tbDE+JOKWliIuZXgoInBzIGF1eCB8IGdyZXAgYnAu cGwiKS4iPC9wcmU+IjsKCQl9CgkJaWYoJF9QT1NUWydwMSddID 09ICdiY2MnKSB7CgkJCWNmKCIvdG1wL2JjLmMiLCRiYWNrX2Nv bm5lY3RfYyk7CgkJCSTilpYgPSBleCgiZ2NjIC1vIC90bXAvYm MgL3RtcC9iYy5jIik7CgkJCUB1bmxpbmsoIi90bXAvYmMuYyIp OwoJCQkk4paWIC49IGV4KCIvdG1wL2JjICIuJF9QT1NUWydwMi ddLiIgIi4kX1BPU1RbJ3AzJ10uIiAmIik7CgkJCWVjaG8gIjxw cmUgY2xhc3M9bWwxPiTilpYiLmV4KCJwcyBhdXggfCBncmVwIG JjIikuIjwvcHJlPiI7CgkJfQoJCWlmKCRfUE9TVFsncDEnXSA9 PSAnYmNwJykgewoJCQljZigiL3RtcC9iYy5wbCIsJGJhY2tfY2 9ubmVjdF9wKTsKCQkJJOKWliA9IGV4KHdoaWNoKCJwZXJsIiku IiAvdG1wL2JjLnBsICIuJF9QT1NUWydwMiddLiIgIi4kX1BPU1 RbJ3AzJ10uIiAmIik7CgkJCWVjaG8gIjxwcmUgY2xhc3M9bWwx PiTilpYiLmV4KCJwcyBhdXggfCBncmVwIGJjLnBsIikuIjwvcH JlPiI7CgkJfQoJfQoJZWNobyAnPC9kaXY+JzsKCWhhcmRGb290 ZXIoKTsKfQppZiggZW1wdHkoJF9QT1NUWydhJ10pICkKCWlmKG lzc2V0KCTilpopICYmIGZ1bmN0aW9uX2V4aXN0cygnYWN0aW9u JyAuICTilpopKQoJCSRfUE9TVFsnYSddID0gJOKWmjsKCWVsc2 UKCQkkX1BPU1RbJ2EnXSA9ICdGaWxlc01hbic7CmlmKCAhZW1w dHkoJF9QT1NUWydhJ10pICYmIGZ1bmN0aW9uX2V4aXN0cygnYW N0aW9uJyAuICRfUE9TVFsnYSddKSApCgljYWxsX3VzZXJfZnVu YygnYWN0aW9uJyAuICRfUE9TVFsnYSddKTsKPz4===")); ?>
Sou вне форума
Старый 30.03.2017, 18:22
#1744
Мастер
 
Пол: Мужской
Возраст: 50
Адрес: Краснодарский край
Инвестирую в: Другое
Регистрация: 07.07.2015
Сообщений: 5,484
Благодарностей: 834
CryptoSolutions - Cryptosolutions.biz

Платит, уже и не малыш как бы, судя по депам.... 20:14 29.03.17 Receive 170642480 U11892314
CryptoSolutions +1.5 Received Payment 1.5 USD from account U11892314. Memo: API Payment. Withdraw to cdrom2004 from Build your future by CryptoSolutions.
cdrom2004 вне форума
Старый 31.03.2017, 10:01
#1745
Топ Мастер
 
Имя: Александр
Пол: Мужской
Возраст: 54
Адрес: Днепр
Регистрация: 23.12.2014
Сообщений: 9,809
Благодарностей: 6,495
CryptoSolutions - Cryptosolutions.biz

ВВыплата

31.03.2017 08:00
$4.20 has been successfully sent to your AdvCash account alex....
Transaction batch is 03ba453b-517d-40d8-bea7-da31c422e932.
Build your future by CryptoSolutions
AlexNick вне форума
Старый 31.03.2017, 10:28
#1746
Топ Мастер
 
Пол: Мужской
Инвестирую в: Доверительное управление
Регистрация: 15.03.2012
Сообщений: 16,364
Благодарностей: 12,652
CryptoSolutions - Cryptosolutions.biz

выплата

Date time Transfer type Status

31.03.2017 09:00 Internal system transfer Completed

From

[email protected]

Amount Commission

+1.05 USD 0.00 USD

Note

Withdraw to needcash from Build your future by CryptoSolutions
oak tree вне форума
Старый 31.03.2017, 11:34
#1747
Профессионал
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 20.01.2014
Сообщений: 12,351
Благодарностей: 1,557
Автор темы CryptoSolutions - Cryptosolutions.biz

Payment Received:

The amount of 21 USD has been deposited to your Perfect Money account. Accounts: U11892314->U4888473. Memo: API Payment. Withdraw to pbhyipsinfo from Build your future by CryptoSolutions.. Date: 06:17 31.03.17. Batch: 170802923.

The amount of 14 USD has been deposited to your Perfect Money account. Accounts: U11892314->U4888473. Memo: API Payment. Withdraw to pbhyipsinfo from Build your future by CryptoSolutions.. Date: 06:17 31.03.17. Batch: 170802941.

The amount of 64 USD has been deposited to your Perfect Money account. Accounts: U11892314->U4888473. Memo: API Payment. Withdraw to pbhyipsinfo from Build your future by CryptoSolutions.. Date: 06:18 31.03.17. Batch: 170803000.

$1.51 has been successfully sent to your Bitcoin account 1Lhsvu7ujFdiVLNaw4kr4MtBiBep2w8fqe.
Transaction batch is CWBC2JIVCXEUPKBODXOB8PVZTD.

$1.52 has been successfully sent to your Bitcoin account 1Lhsvu7ujFdiVLNaw4kr4MtBiBep2w8fqe.
Transaction batch is CWBC4WCJFP4YMW2UW0ZU7YCZHF.

$15.00 has been successfully sent to your AdvCash account [email protected].
Transaction batch is 96a1cf2e-f102-40ca-a874-e48a9968591a.

$1.20 has been successfully sent to your AdvCash account [email protected].
Transaction batch is 810af1bb-ec4e-4047-9fc4-443b7aad25e5.
leenguyen01 вне форума
Старый 31.03.2017, 12:29
#1748
Топ Мастер
 
Пол: Женский
Адрес: На берегу моря
Инвестирую в: Другое
Регистрация: 20.12.2012
Сообщений: 29,041
Благодарностей: 19,514

награды Волшебный горшочек 
CryptoSolutions - Cryptosolutions.biz

Выплата

Transaction ID:
929469ce-c5c3-4126-9f1b-6b1a280417cc
От:
[email protected]

Сумма:
1.50 USD
Примечание:
Withdraw from Build your future by CryptoSolutions
OleXar вне форума
Старый 31.03.2017, 12:45
#1749
Мастер
 
Регистрация: 20.01.2016
Сообщений: 3,797
Благодарностей: 1,557
CryptoSolutions - Cryptosolutions.biz

$1.50 has been successfully sent to your PerfectMoney account U107ЁЁЁЁ
Transaction batch is 170802931.

Build your future by CryptoSolutions
maxim0875 вне форума
Старый 31.03.2017, 13:04
#1750
Топ Мастер
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 02.04.2015
Сообщений: 8,199
Благодарностей: 9,412
CryptoSolutions - Cryptosolutions.biz

Выплата!

31.03.17 06:17 Receive Received Payment 1.00 USD from account U11892314 to account U703****. Batch: 170802774. Memo: API Payment. Withdraw to ****** from Build your future by CryptoSolutions.
deadlock вне форума
Старый 31.03.2017, 13:19
#1751
Топ Мастер
 
Пол: Женский
Адрес: На берегу моря
Инвестирую в: Другое
Регистрация: 20.12.2012
Сообщений: 29,041
Благодарностей: 19,514

награды Волшебный горшочек 
CryptoSolutions - Cryptosolutions.biz

Выплата

Transaction ID:
ea6f3b05-9185-4980-88d5-6e8678e915e7
От:
[email protected]

Сумма:
0.45 USD
Примечание:
Withdraw from Build your future by CryptoSolutions
OleXar вне форума
Старый 31.03.2017, 13:24
#1752
Топ Мастер
 
Пол: Мужской
Инвестирую в: Другое
Регистрация: 17.03.2015
Сообщений: 62,083
Благодарностей: 11,201
CryptoSolutions - Cryptosolutions.biz

Выплата
06:18 31.03.17 Batch: 170802984 Received Payment 1.35 USD from account U11892314. Memo: API Payment. Withdraw from Build your future by CryptoSolutions
nick-s вне форума
Старый 31.03.2017, 13:31
#1753
Специалист
 
Имя: Анна
Пол: Женский
Инвестирую в: Доверительное управление
Регистрация: 02.05.2015
Сообщений: 20,059
Благодарностей: 11,976
CryptoSolutions - Cryptosolutions.biz

платит, спасибо!

06:17 31.03.17 Receive 170802939 U11892314
CryptoSolutions Received Payment 1.5 USD from account U11892314. Memo: API Payment. Withdraw to AnnP68 from Build your future by CryptoSolutions
AnnP68 вне форума
Старый 31.03.2017, 13:43
#1754
Топ Мастер
 
Имя: Андрей
Пол: Мужской
Возраст: 45
Адрес: Украина
Инвестирую в: HYIP
Регистрация: 26.02.2015
Сообщений: 13,942
Благодарностей: 6,813
CryptoSolutions - Cryptosolutions.biz

Выплата получена

The amount of 0.3 USD has been deposited to your Perfect Money account. Accounts: U11892314->U7536421. Memo: API Payment. Withdraw to clipman77 from Build your future by CryptoSolutions.. Date: 06:17 31.03.17. Batch: 170802792.
clipman77 вне форума
Старый 31.03.2017, 13:44
#1755
Топ Мастер
 
Пол: Женский
Адрес: На берегу моря
Инвестирую в: Другое
Регистрация: 20.12.2012
Сообщений: 29,041
Благодарностей: 19,514

награды Волшебный горшочек 
CryptoSolutions - Cryptosolutions.biz

Выплата

Transaction ID:
bdd66e69-12eb-4cb2-9a85-29275b639dee
От:
[email protected]

Сумма:
1.50 USD
Примечание:
Withdraw from Build your future by CryptoSolutions
OleXar вне форума
Старый 31.03.2017, 14:18
#1756
Профессионал
 
Пол: Мужской
Возраст: 35
Адрес: Там, где мне комфортно
Инвестирую в: HYIP
Регистрация: 06.06.2014
Сообщений: 10,584
Благодарностей: 8,442
CryptoSolutions - Cryptosolutions.biz

Выплата:

03.31.17 06:17 Account Receive +0.45 Received Payment 0.45 USD from account U11892314 to account U6290***. Batch: 170802821. Memo: API Payment. Withdraw to from Build your future by CryptoSolutions.
Mikos вне форума
Старый 31.03.2017, 15:24
#1757
Специалист
 
Регистрация: 02.02.2017
Сообщений: 401
Благодарностей: 191
CryptoSolutions - Cryptosolutions.biz

Новый депозит!
The amount of 100 USD
has been withdrawn from your Perfect Money account. Accounts: U7024427->U...........Memo: Shopping Cart Payment. Deposit to Build your future by CryptoSolutions User Lesia888.. Date: 11:37 31.03.17. Batch: 170832185.
Мадемуазель вне форума
Старый 31.03.2017, 18:58
#1758
Профессионал
 
Пол: Женский
Инвестирую в: HYIP
Регистрация: 22.10.2014
Сообщений: 7,020
Благодарностей: 7,078
CryptoSolutions - Cryptosolutions.biz

выплата

The amount of 0.3 USD has been deposited to your Perfect Money account. Accounts: U11892314->U5. Memo: API Payment. Withdraw to li from Build your future by CryptoSolutions.. Date: 06:17 31.03.17. Batch: 170802917.
lina-15 вне форума
Старый 31.03.2017, 21:39
#1759
Специалист
 
Регистрация: 10.09.2016
Сообщений: 430
Благодарностей: 178
CryptoSolutions - Cryptosolutions.biz

сразу 2 выплаты


31.03.17 06:18 Receive Received Payment 0.3 USD from account U11892314 to account U935****. Batch: 170802988. Memo: API Payment. Withdraw to vitvit from Build your future by CryptoSolutions.

31.03.17 06:16 Receive Received Payment 0.3 USD from account U11892314 to account U935****. Batch: 170802764. Memo: API Payment. Withdraw to vitvit from Build your future by CryptoSolutions
vitvit вне форума
Старый 31.03.2017, 21:42
#1760
Мастер
 
Имя: Miguel
Пол: Мужской
Адрес: St.Petersburg
Инвестирую в: Интернет-биржи
Регистрация: 28.07.2012
Сообщений: 12,271
Благодарностей: 6,081
CryptoSolutions - Cryptosolutions.biz

Payment Received. Thanks, Admin!

9/30

Date : 03/31/2017 06:18
From/To Account : U11892314
Amount : 0.75
Currency : USD
Batch : 170802986
Memo : API Payment. Withdraw to oldschool from Build your future by CryptoSolutions.
Hash : f8a6fc0883798b8b2e7324c5767ad37c
redwin вне форума
Войдите, чтобы оставить комментарий.
Быстрый переход