| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\marketing\\recharge\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\marketing\\recharge\\index.vue","mtime":1761614939034},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1761614937017},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgU2V0dGluZyBmcm9tICdAL3NldHRpbmcnOwppbXBvcnQgeyBnZXRDb2xvckNoYW5nZSB9IGZyb20gJ0AvYXBpL2RpeSc7CmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7CmltcG9ydCB7IHByb2R1Y3RHZXRUZW1wS2V5c0FwaSwgdXBsb2FkVHlwZSBhcyBfdXBsb2FkVHlwZSB9IGZyb20gJ0AvYXBpL3Byb2R1Y3QnOwppbXBvcnQgeyBncm91cEFsbEFwaSwgZ3JvdXBEYXRhTGlzdEFwaSwgZ3JvdXBTYXZlQXBpLCBvcGVuQWR2U2F2ZSwgZ3JvdXBEYXRhQWRkQXBpLCBncm91cERhdGFIZWFkZXJBcGksIGdyb3VwRGF0YUVkaXRBcGksIGdyb3VwRGF0YVNldEFwaSwgZ2V0QWdyZWVtZW50IGFzIF9nZXRBZ3JlZW1lbnQsIHNldEFncmVlbWVudCwgZ2V0T3BlbkFkdiB9IGZyb20gJ0AvYXBpL3N5c3RlbSc7CmltcG9ydCBkcmFnZ2FibGUgZnJvbSAndnVlZHJhZ2dhYmxlJzsKaW1wb3J0IHVwbG9hZFBpY3R1cmVzIGZyb20gJ0AvY29tcG9uZW50cy91cGxvYWRQaWN0dXJlcyc7CmltcG9ydCB7IGdldENvb2tpZXMgfSBmcm9tICdAL2xpYnMvdXRpbCc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnbGlzdCcsCiAgY29tcG9uZW50czogewogICAgZHJhZ2dhYmxlOiBkcmFnZ2FibGUsCiAgICB1cGxvYWRQaWN0dXJlczogdXBsb2FkUGljdHVyZXMKICB9LAogIGNvbXB1dGVkOiBfb2JqZWN0U3ByZWFkKHsKICAgIGJnY29sb3JzOiBmdW5jdGlvbiBiZ2NvbG9ycygpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICAnLS1jb2xvci10aGVtZSc6IHRoaXMuYmdDb2wKICAgICAgfTsKICAgIH0sCiAgICBsYWJlbFdpZHRoOiBmdW5jdGlvbiBsYWJlbFdpZHRoKCkgewogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/IHVuZGVmaW5lZCA6ICc4MHB4JzsKICAgIH0sCiAgICBsYWJlbFBvc2l0aW9uOiBmdW5jdGlvbiBsYWJlbFBvc2l0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/ICd0b3AnIDogJ3JpZ2h0JzsKICAgIH0KICB9LCBtYXBTdGF0ZSgnYWRtaW4vbGF5b3V0JywgWydtZW51Q29sbGFwc2UnXSkpLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBmb3JtVmFsaWRhdGU6IHsKICAgICAgICBjb250ZW50OiAnJwogICAgICB9LAogICAgICBydWxlVmFsaWRhdGU6IHt9LAogICAgICBteUNvbmZpZzogewogICAgICAgIGF1dG9IZWlnaHRFbmFibGVkOiBmYWxzZSwKICAgICAgICAvLyDnvJbovpHlmajkuI3oh6rliqjooqvlhoXlrrnmkpHpq5gKICAgICAgICBpbml0aWFsRnJhbWVIZWlnaHQ6IDUwMCwKICAgICAgICAvLyDliJ3lp4vlrrnlmajpq5jluqYKICAgICAgICBpbml0aWFsRnJhbWVXaWR0aDogJzEwMCUnLAogICAgICAgIC8vIOWIneWni+WuueWZqOWuveW6pgogICAgICAgIFVFRElUT1JfSE9NRV9VUkw6ICcvVUVkaXRvci8nLAogICAgICAgIHNlcnZlclVybDogJycKICAgICAgfSwKICAgICAgYTogMCwKICAgICAgLy/liKTmlq3nmoTpmpDnp4HljY/orq4KICAgICAgZ3VpZGU6IDAsCiAgICAgIGJnaW1nOiAwLAogICAgICBjb2x1bW5zMTogW10sCiAgICAgIGJnQ29sOiAnJywKICAgICAgbmFtZTogJ3VzZXJfcmVjaGFyZ2VfcXVvdGEnLAogICAgICBncmlkOiB7CiAgICAgICAgeGw6IDcsCiAgICAgICAgbGc6IDcsCiAgICAgICAgbWQ6IDEyLAogICAgICAgIHNtOiAyNCwKICAgICAgICB4czogMjQKICAgICAgfSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIHNnaW5MaXN0OiBbXSwKICAgICAgcHJvZ3Jlc3M6IDAsCiAgICAgIC8vIOi/m+W6puadoem7mOiupDAKICAgICAgc3dpcGVyT3B0aW9uOiB7CiAgICAgICAgLy/mmL7npLrliIbpobUKICAgICAgICBwYWdpbmF0aW9uOiB7CiAgICAgICAgICBlbDogJy5zd2lwZXItcGFnaW5hdGlvbicKICAgICAgICB9LAogICAgICAgIC8v6K6+572u54K55Ye7566t5aS0CiAgICAgICAgbmF2aWdhdGlvbjogewogICAgICAgICAgbmV4dEVsOiAnLnN3aXBlci1idXR0b24tbmV4dCcsCiAgICAgICAgICBwcmV2RWw6ICcuc3dpcGVyLWJ1dHRvbi1wcmV2JwogICAgICAgIH0sCiAgICAgICAgLy/oh6rliqjova7mkq0KICAgICAgICBhdXRvcGxheTogewogICAgICAgICAgZGVsYXk6IDIwMDAsCiAgICAgICAgICAvL+W9k+eUqOaIt+a7keWKqOWbvueJh+WQjue7p+e7reiHquWKqOi9ruaSrQogICAgICAgICAgZGlzYWJsZU9uSW50ZXJhY3Rpb246IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAvL+W8gOWQr+W+queOr+aooeW8jwogICAgICAgIGxvb3A6IGZhbHNlCiAgICAgIH0sCiAgICAgIHVybDogJycsCiAgICAgIEJhc2VVUkw6IFNldHRpbmcuYXBpQmFzZVVSTC5yZXBsYWNlKC9hZG1pbmFwaS8sICcnKSwKICAgICAgcGFnZUlkOiA2MiwKICAgICAgdGhlbWUzOiAnbGlnaHQnLAogICAgICB0YWJMaXN0OiBbXSwKICAgICAgdXBsb2FkX3R5cGU6ICcnLAogICAgICAvL+inhumikeS4iuS8oOexu+WeiyAxIOacrOWcsOS4iuS8oCAyIDMgNCBPU1PkuIrkvKAKICAgICAgdXBsb2FkRGF0YToge30sCiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICBsYXN0T2JqOiB7CiAgICAgICAgYWRkX3RpbWU6ICcnLAogICAgICAgIGNvbW1lbnQ6ICcnLAogICAgICAgIGdpZDogJycsCiAgICAgICAgaWQ6ICcnLAogICAgICAgIGltZzogJycsCiAgICAgICAgbGluazogJycsCiAgICAgICAgc29ydDogJycsCiAgICAgICAgc3RhdHVzOiAxCiAgICAgIH0sCiAgICAgIGlzQ2hvaWNlOiAn5Y2V6YCJJywKICAgICAgbW9kYWxQaWM6IGZhbHNlLAogICAgICBncmlkUGljOiB7CiAgICAgICAgeGw6IDYsCiAgICAgICAgbGc6IDgsCiAgICAgICAgbWQ6IDEyLAogICAgICAgIHNtOiAxMiwKICAgICAgICB4czogMTIKICAgICAgfSwKICAgICAgZ3JpZEJ0bjogewogICAgICAgIHhsOiA0LAogICAgICAgIGxnOiA4LAogICAgICAgIG1kOiA4LAogICAgICAgIHNtOiA4LAogICAgICAgIHhzOiA4CiAgICAgIH0sCiAgICAgIGdyb3VwQWxsOiBbXSwKICAgICAgYWN0aXZlSW5kZXg6IDAsCiAgICAgIHNvcnROYW1lOiBudWxsLAogICAgICBhY3RpdmVJbmRleHM6IDAsCiAgICAgIGNtc0xpc3Q6IFtdLAogICAgICBsb2FkaW5nRXhpc3Q6IGZhbHNlLAogICAgICBmb3JtSXRlbTogewogICAgICAgIHRpbWU6ICcnLAogICAgICAgIHR5cGU6ICdwaWMnLAogICAgICAgIHN0YXR1czogMSwKICAgICAgICB2YWx1ZTogW10sCiAgICAgICAgdmlkZW9fbGluazogJycKICAgICAgfSwKICAgICAgZmlsZVVybDogU2V0dGluZy5hcGlCYXNlVVJMICsgJy9maWxlL3VwbG9hZCcsCiAgICAgIGNhcmRVcmw6IFNldHRpbmcuYXBpQmFzZVVSTCArICcvZmlsZS91cGxvYWQvMScsCiAgICAgIGhlYWRlcjoge30sCiAgICAgIHR5cGU6IDAsCiAgICAgIHVwbG9hZDogewogICAgICAgIHZpZGVvSW5nOiBmYWxzZSAvLyDmmK/lkKbmmL7npLrov5vluqbmnaHvvJsKICAgICAgfQogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmNvbG9yKCk7CiAgICB0aGlzLnVwbG9hZFR5cGUoKTsKICAgIHRoaXMuZ2V0VG9rZW4oKTsKICAgIHRoaXMuZ3VpZGUgPSAwOwogICAgdGhpcy5hID0gMDsKICAgIHRoaXMudXJsID0gJyc7CiAgICB0aGlzLmdldExpc3RIZWFkZXIoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICAvLyB0aGlzLmdldEdyb3VwQWxsKCk7CiAgICB0aGlzLmluZm8oKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldEVkaXRvckNvbnRlbnQ6IGZ1bmN0aW9uIGdldEVkaXRvckNvbnRlbnQoZGF0YSkgewogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5jb250ZW50ID0gZGF0YTsKICAgIH0sCiAgICAvLyDliKDpmaTop4bpopHvvJsKICAgIGRlbFZpZGVvOiBmdW5jdGlvbiBkZWxWaWRlbygpIHsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICB0aGF0LiRzZXQodGhhdC5mb3JtSXRlbSwgJ3ZpZGVvX2xpbmsnLCAnJyk7CiAgICB9LAogICAgLy/ojrflj5bop4bpopHkuIrkvKDnsbvlnosKICAgIHVwbG9hZFR5cGU6IGZ1bmN0aW9uIHVwbG9hZFR5cGUoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIF91cGxvYWRUeXBlKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMudXBsb2FkX3R5cGUgPSByZXMuZGF0YS51cGxvYWRfdHlwZTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5LiK5Lyg5oiQ5YqfCiAgICBoYW5kbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVTdWNjZXNzKHJlcywgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkgewogICAgICAgIHRoaXMuJHNldCh0aGlzLmZvcm1JdGVtLCAndmlkZW9fbGluaycsIHJlcy5kYXRhLnNyYyk7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0KICAgIH0sCiAgICB6aF91cGxvYWRGaWxlOiBmdW5jdGlvbiB6aF91cGxvYWRGaWxlKCkgewogICAgICBpZiAodGhpcy52aWRlb19saW5rKSB7CiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUudmlkZW9fbGluayA9IHRoaXMudmlkZW9fbGluazsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRyZWZzLnJlZmlkLmNsaWNrKCk7CiAgICAgIH0KICAgIH0sCiAgICB6aF91cGxvYWRGaWxlX2NoYW5nZTogZnVuY3Rpb24gemhfdXBsb2FkRmlsZV9jaGFuZ2UoZXZmaWxlKSB7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgdmFyIHN1ZmZpeCA9IGV2ZmlsZS50YXJnZXQuZmlsZXNbMF0ubmFtZS5zdWJzdHIoZXZmaWxlLnRhcmdldC5maWxlc1swXS5uYW1lLmluZGV4T2YoJy4nKSk7CiAgICAgIGlmIChzdWZmaXguaW5kZXhPZignLm1wNCcpID09PSAtMSkgewogICAgICAgIHJldHVybiB0aGF0LiRtZXNzYWdlLmVycm9yKCflj6rog73kuIrkvKBNUDTmlofku7YnKTsKICAgICAgfQogICAgICB2YXIgdHlwZXMgPSB7CiAgICAgICAga2V5OiBldmZpbGUudGFyZ2V0LmZpbGVzWzBdLm5hbWUsCiAgICAgICAgY29udGVudFR5cGU6IGV2ZmlsZS50YXJnZXQuZmlsZXNbMF0udHlwZQogICAgICB9OwogICAgICBwcm9kdWN0R2V0VGVtcEtleXNBcGkodHlwZXMpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHRoYXQuJHZpZGVvQ2xvdWQudmlkZW9VcGxvYWQoewogICAgICAgICAgdHlwZTogcmVzLmRhdGEudHlwZSwKICAgICAgICAgIGV2ZmlsZTogZXZmaWxlLAogICAgICAgICAgcmVzOiByZXMsCiAgICAgICAgICB1cGxvYWRpbmc6IGZ1bmN0aW9uIHVwbG9hZGluZyhzdGF0dXMsIHByb2dyZXNzKSB7CiAgICAgICAgICAgIHRoYXQudXBsb2FkLnZpZGVvSW5nID0gc3RhdHVzOwogICAgICAgICAgfQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgdGhhdC5mb3JtVmFsaWRhdGUudmlkZW9fbGluayA9IHJlcy51cmw7CiAgICAgICAgICB0aGF0LiRtZXNzYWdlLnN1Y2Nlc3MoJ+inhumikeS4iuS8oOaIkOWKnycpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIHRoYXQuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB0aGF0LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDkuIrkvKDlpLTpg6h0b2tlbgogICAgZ2V0VG9rZW46IGZ1bmN0aW9uIGdldFRva2VuKCkgewogICAgICB0aGlzLmhlYWRlclsnQXV0aG9yaS16YXRpb24nXSA9ICdCZWFyZXIgJyArIGdldENvb2tpZXMoJ3Rva2VuJyk7CiAgICB9LAogICAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLnVwbG9hZERhdGEgPSB7fTsKICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgewogICAgICAgIF90aGlzMi4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgcmVzb2x2ZSh0cnVlKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHJldHVybiBwcm9taXNlOwogICAgfSwKICAgIGNvbG9yOiBmdW5jdGlvbiBjb2xvcigpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGdldENvbG9yQ2hhbmdlKCdjb2xvcl9jaGFuZ2UnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBzd2l0Y2ggKHJlcy5kYXRhLnN0YXR1cykgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBfdGhpczMuYmdDb2wgPSAnIzM4NzVFQSc7CiAgICAgICAgICAgIF90aGlzMy5iZ2ltZyA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBfdGhpczMuYmdDb2wgPSAnIzAwQzA1MCc7CiAgICAgICAgICAgIF90aGlzMy5iZ2ltZyA9IDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICBfdGhpczMuYmdDb2wgPSAnI0U5MzMyMyc7CiAgICAgICAgICAgIF90aGlzMy5iZ2ltZyA9IDM7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBfdGhpczMuYmdDb2wgPSAnI0ZGNDQ4Ric7CiAgICAgICAgICAgIF90aGlzMy5iZ2ltZyA9IDQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBfdGhpczMuYmdDb2wgPSAnI0ZFNUMyRCc7CiAgICAgICAgICAgIF90aGlzMy5iZ2ltZyA9IDU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g5re75Yqg6KGo5Y2VCiAgICBncm91cEFkZDogZnVuY3Rpb24gZ3JvdXBBZGQoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB0aGlzLiRtb2RhbEZvcm0oZ3JvdXBEYXRhQWRkQXBpKHsKICAgICAgICBnaWQ6IHRoaXMucGFnZUlkLAogICAgICAgIGNvbmZpZ19uYW1lOiB0aGlzLm5hbWUKICAgICAgfSwgJ3NldHRpbmcvZ3JvdXBfZGF0YS9jcmVhdGUnKSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM0LnVybCA9IF90aGlzNC5CYXNlVVJMICsgJ3BhZ2VzL3VzZXJzL3VzZXJfc2dpbi9pbmRleCc7CiAgICAgICAgX3RoaXM0LmluZm8oKTsKICAgICAgfSk7CiAgICB9LAogICAgaW5mbzogZnVuY3Rpb24gaW5mbygpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIGdyb3VwRGF0YUxpc3RBcGkoewogICAgICAgIGNvbmZpZ19uYW1lOiB0aGlzLm5hbWUKICAgICAgfSwgJ3NldHRpbmcvZ3JvdXBfZGF0YScpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQubikgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIF90aGlzNS50YWJMaXN0ID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1Lm5hbWUgPT0gJ2FkbWluX2xvZ2luX3NsaWRlJykgewogICAgICAgICAgICAgICAgICBfdGhpczUudGFiTGlzdC5saXN0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4LCBhcnJheSkgewogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbS5zbGlkZSAhPSAnc3RyaW5nJyAmJiBpdGVtLnNsaWRlICE9ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNsaWRlID0gaXRlbS5zbGlkZVswXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChfdGhpczUubmFtZSA9PSAnc2lnbl9kYXlfbnVtJykgewogICAgICAgICAgICAgICAgICBfdGhpczUuY21zTGlzdCA9IHJlcy5kYXRhLmxpc3Q7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKF90aGlzNS5uYW1lID09ICd1c2VyX3JlY2hhcmdlX3F1b3RhJykgewogICAgICAgICAgICAgICAgICBfdGhpczUuc2dpbkxpc3QgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNS50YWJMaXN0Lmxpc3QuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgsIGFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtLmltZyAhPSAnc3RyaW5nJyAmJiBpdGVtLmltZyAhPSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgICAgICAgaXRlbS5pbWcgPSBpdGVtLmltZ1swXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCkgewogICAgICAgICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczUubG9hZGluZyA9IGZhbHNlOwogICAgICAgIF90aGlzNS4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgZWRpdHM6IGZ1bmN0aW9uIGVkaXRzKHJvdykgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5wYWdlSWQgPSByb3cuaWQgfHwgMDsKICAgICAgdGhpcy5uYW1lID0gcm93LmNvbmZpZ19uYW1lIHx8ICcnOwogICAgICBpZiAocm93ID09IDEpIHsKICAgICAgICB0aGlzLmEgPSAxOwogICAgICAgIHRoaXMuZ3VpZGUgPSAwOwogICAgICAgIHRoaXMuZ2V0QWdyZWVtZW50KCk7CiAgICAgIH0gZWxzZSBpZiAocm93ID09IDIpIHsKICAgICAgICB0aGlzLmEgPSAwOwogICAgICAgIHRoaXMuZ3VpZGUgPSAyOwogICAgICAgIGdldE9wZW5BZHYoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzNi5mb3JtSXRlbSA9IHJlcy5kYXRhOwogICAgICAgICAgX3RoaXM2LnRhYkxpc3QubGlzdCA9IHJlcy5kYXRhLnZhbHVlOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaW5mbygpOwogICAgICAgIHRoaXMuZ3VpZGUgPSAwOwogICAgICAgIHRoaXMuYSA9IDA7CiAgICAgICAgc3dpdGNoIChyb3cuY29uZmlnX25hbWUpIHsKICAgICAgICAgIGNhc2UgJ3JvdXRpbmVfaG9tZV9iYXN0X2Jhbm5lcic6CiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5CYXNlVVJMICsgJ3BhZ2VzL2NvbHVtbkdvb2RzL0hvdE5ld0dvb2RzL2luZGV4P3R5cGU9MSZuYW1lPeeyvuWTgeaOqOiNkCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnc2lnbl9kYXlfbnVtJzoKICAgICAgICAgICAgdGhpcy51cmwgPSAnJzsKICAgICAgICAgICAgdGhpcy5nZXRMaXN0SGVhZGVyKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnY29tYmluYXRpb25fYmFubmVyJzoKICAgICAgICAgICAgdGhpcy51cmwgPSB0aGlzLkJhc2VVUkwgKyAncGFnZXMvYWN0aXZpdHkvZ29vZHNfY29tYmluYXRpb24vaW5kZXgnOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ3JvdXRpbmVfaG9tZV9ob3RfYmFubmVyJzoKICAgICAgICAgICAgdGhpcy51cmwgPSB0aGlzLkJhc2VVUkwgKyAncGFnZXMvY29sdW1uR29vZHMvSG90TmV3R29vZHMvaW5kZXg/dHlwZT0yJm5hbWU954Ot6Zeo5qac5Y2VJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdyb3V0aW5lX2hvbWVfbmV3X2Jhbm5lcic6CiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5CYXNlVVJMICsgJ3BhZ2VzL2NvbHVtbkdvb2RzL0hvdE5ld0dvb2RzL2luZGV4P3R5cGU9MyZuYW1lPemmluWPkeaWsOWTgSc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAncm91dGluZV9ob21lX2JlbmVmaXRfYmFubmVyJzoKICAgICAgICAgICAgdGhpcy51cmwgPSB0aGlzLkJhc2VVUkwgKyAncGFnZXMvY29sdW1uR29vZHMvSG90TmV3R29vZHMvaW5kZXg/dHlwZT00Jm5hbWU95L+D6ZSA5Y2V5ZOBJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICd1c2VyX3JlY2hhcmdlX3F1b3RhJzoKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdhZG1pbl9sb2dpbl9zbGlkZSc6CiAgICAgICAgICAgIHRoaXMudXJsID0gJyc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnaW50ZWdyYWxfc2hvcF9iYW5uZXInOgogICAgICAgICAgICB0aGlzLnVybCA9ICcnOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBhZGRCb3g6IGZ1bmN0aW9uIGFkZEJveCgpIHsKICAgICAgaWYgKHRoaXMudGFiTGlzdC5saXN0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgdGhpcy50YWJMaXN0Lmxpc3QucHVzaCh0aGlzLmxhc3RPYmopOwogICAgICAgIHRoaXMubGFzdE9iaiA9IHsKICAgICAgICAgIGFkZF90aW1lOiAnJywKICAgICAgICAgIGNvbW1lbnQ6ICcnLAogICAgICAgICAgZ2lkOiAnJywKICAgICAgICAgIGlkOiAnJywKICAgICAgICAgIGltZzogJycsCiAgICAgICAgICBsaW5rOiAnJywKICAgICAgICAgIHNvcnQ6ICcnLAogICAgICAgICAgc3RhdHVzOiAxCiAgICAgICAgfTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodGhpcy50YWJMaXN0Lmxpc3QubGVuZ3RoID09IDUpIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5pyA5aSa5re75Yqg5LqU5byg5ZGmJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciBvYmogPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdE9iaikpOwogICAgICAgICAgdGhpcy50YWJMaXN0Lmxpc3QucHVzaChvYmopOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOWIoOmZpAogICAgYmluZERlbGV0ZTogZnVuY3Rpb24gYmluZERlbGV0ZShpdGVtLCBpbmRleCkgewogICAgICB0aGlzLnRhYkxpc3QubGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgfSwKICAgIC8vIOeCueWHu+WbvuaWh+WwgemdogogICAgbW9kYWxQaWNUYXA6IGZ1bmN0aW9uIG1vZGFsUGljVGFwKHRpdGxlLCBpbmRleCkgewogICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIHRoaXMubW9kYWxQaWMgPSB0cnVlOwogICAgfSwKICAgIC8vIOiOt+WPluWbvueJh+S/oeaBrwogICAgZ2V0UGljOiBmdW5jdGlvbiBnZXRQaWMocGMpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXM3Lm5hbWUgPT0gJ2FkbWluX2xvZ2luX3NsaWRlJykgewogICAgICAgICAgX3RoaXM3LnRhYkxpc3QubGlzdFtfdGhpczcuYWN0aXZlSW5kZXhdLnNsaWRlID0gcGMuYXR0X2RpcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM3LnRhYkxpc3QubGlzdFtfdGhpczcuYWN0aXZlSW5kZXhdLmltZyA9IHBjLmF0dF9kaXI7CiAgICAgICAgfQogICAgICAgIF90aGlzNy5tb2RhbFBpYyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICBzYXZlOiBmdW5jdGlvbiBzYXZlKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgaWYgKHRoaXMuYSA9PSAxKSB7CiAgICAgICAgdGhpcy5vbnN1Ym1pdCgnZm9ybVZhbGlkYXRlJyk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5ndWlkZSA9PSAyKSB7CiAgICAgICAgdGhpcy5mb3JtSXRlbS52YWx1ZSA9IHRoaXMudGFiTGlzdC5saXN0OwogICAgICAgIG9wZW5BZHZTYXZlKHRoaXMuZm9ybUl0ZW0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5sb2FkaW5nRXhpc3QgPSB0cnVlOwogICAgICAgIGdyb3VwU2F2ZUFwaSh7CiAgICAgICAgICBnaWQ6IHRoaXMucGFnZUlkLAogICAgICAgICAgY29uZmlnX25hbWU6IHRoaXMubmFtZSwKICAgICAgICAgIGRhdGE6IHRoaXMudGFiTGlzdC5saXN0CiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczgubG9hZGluZ0V4aXN0ID0gZmFsc2U7CiAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICBfdGhpczgubG9hZGluZ0V4aXN0ID0gZmFsc2U7CiAgICAgICAgICBfdGhpczguJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRMaXN0SGVhZGVyOiBmdW5jdGlvbiBnZXRMaXN0SGVhZGVyKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgZ3JvdXBEYXRhSGVhZGVyQXBpKHsKICAgICAgICBjb25maWdfbmFtZTogdGhpcy5uYW1lCiAgICAgIH0sICdzZXR0aW5nL3NpZ25fZGF0YS9oZWFkZXInKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgIHZhciBoZWFkZXIgPSBkYXRhLmhlYWRlcjsKICAgICAgICB2YXIgaW5kZXggPSBbXTsKICAgICAgICBfdGhpczkuY29sdW1uczEgPSBoZWFkZXI7CiAgICAgICAgX3RoaXM5LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOS5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgX3RoaXM5LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDnvJbovpEKICAgIGVkaXQ6IGZ1bmN0aW9uIGVkaXQocm93KSB7CiAgICAgIHZhciBfdGhpczAgPSB0aGlzOwogICAgICB0aGlzLiRtb2RhbEZvcm0oZ3JvdXBEYXRhRWRpdEFwaSh7CiAgICAgICAgZ2lkOiB0aGlzLnBhZ2VJZCwKICAgICAgICBjb25maWdfbmFtZTogdGhpcy5uYW1lCiAgICAgIH0sICdzZXR0aW5nL2dyb3VwX2RhdGEvJyArIHJvdy5pZCArICcvZWRpdCcpKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczAuaW5mbygpOwogICAgICAgIF90aGlzMC51cmwgPSBfdGhpczAuQmFzZVVSTCArICdwYWdlcy91c2Vycy91c2VyX3NnaW4vaW5kZXgnOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDliKDpmaQKICAgIGRlbDogZnVuY3Rpb24gZGVsKHJvdywgdGl0LCBudW0pIHsKICAgICAgdmFyIF90aGlzMSA9IHRoaXM7CiAgICAgIHZhciBkZWxmcm9tRGF0YSA9IHsKICAgICAgICB0aXRsZTogdGl0LAogICAgICAgIG51bTogbnVtLAogICAgICAgIHVybDogJ3NldHRpbmcvZ3JvdXBfZGF0YS8nICsgcm93LmlkLAogICAgICAgIG1ldGhvZDogJ0RFTEVURScsCiAgICAgICAgaWRzOiAnJwogICAgICB9OwogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMS5pbmZvKCk7CiAgICAgICAgX3RoaXMxLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczEuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS/ruaUueaYr+WQpuaYvuekugogICAgb25jaGFuZ2VJc1Nob3c6IGZ1bmN0aW9uIG9uY2hhbmdlSXNTaG93KHJvdykgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIGdyb3VwRGF0YVNldEFwaSgnc2V0dGluZy9ncm91cF9kYXRhL3NldF9zdGF0dXMvJyArIHJvdy5pZCArICcvJyArIHJvdy5zdGF0dXMpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlMihyZXMpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDIpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBfdGhpczEwLnVybCA9IF90aGlzMTAuQmFzZVVSTCArICcvcGFnZXMvdXNlcnMvdXNlcl9zZ2luL2luZGV4JzsKICAgICAgICAgICAgICAgIF90aGlzMTAuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgICAgIF90aGlzMTAuaW5mbygpOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMxMC51cmwgPSBfdGhpczEwLkJhc2VVUkwgKyAnL3BhZ2VzL3VzZXJzL3VzZXJfc2dpbi9pbmRleCc7CiAgICAgICAgX3RoaXMxMC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0R3JvdXBBbGw6IGZ1bmN0aW9uIGdldEdyb3VwQWxsKCkgewogICAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CiAgICAgIGdyb3VwQWxsQXBpKCkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMyA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUzKHJlcykgewogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0MykgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMubikgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIF90aGlzMTEuZ3JvdXBBbGwgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIF90aGlzMTEuc29ydE5hbWUgPSByZXMuZGF0YVswXS5jb25maWdfbmFtZTsKICAgICAgICAgICAgICAgIF90aGlzMTEucGFnZUlkID0gcmVzLmRhdGFbMF0uaWQ7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczExLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBnZXRDb250ZW50OiBmdW5jdGlvbiBnZXRDb250ZW50KHZhbCkgewogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5jb250ZW50ID0gdmFsOwogICAgfSwKICAgIC8vIOaPkOS6pOaVsOaNrgogICAgb25zdWJtaXQ6IGZ1bmN0aW9uIG9uc3VibWl0KG5hbWUpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgc2V0QWdyZWVtZW50KF90aGlzMTIuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBfcmVmNCA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWU0KHJlcykgewogICAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDQpIHsKICAgICAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5uKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBfdGhpczEyLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LmEoMik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwgX2NhbGxlZTQpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g0KSB7CiAgICAgICAgICAgICAgcmV0dXJuIF9yZWY0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMxMi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvL+ivpuaDhQogICAgZ2V0QWdyZWVtZW50OiBmdW5jdGlvbiBnZXRBZ3JlZW1lbnQoKSB7CiAgICAgIHZhciBfdGhpczEzID0gdGhpczsKICAgICAgX2dldEFncmVlbWVudCgpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjUgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNShyZXMpIHsKICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0NSkgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUubikgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGRhdGEgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIF90aGlzMTMuZm9ybVZhbGlkYXRlID0gewogICAgICAgICAgICAgICAgICBjb250ZW50OiBkYXRhLmNvbnRlbnQKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g1KSB7CiAgICAgICAgICByZXR1cm4gX3JlZjUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczEzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczEzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0KICB9Cn07"},null]}
|