{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-eslint\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\dataShare-fvue\\src\\store\\menu.js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\store\\menu.js","mtime":1733309212454},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-eslint\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiOwp2YXIgX2FjdGlvbnM7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc29ydC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3Iuc29tZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgcG9ydGFsIGZyb20gIkAvYXBpL3BvcnRhbC5qcyI7CmltcG9ydCBwcm9jZXNzIGZyb20gIkAvYXBpL3Byb2Nlc3MuanMiOwppbXBvcnQgeyBjaGlsZHJlbiB9IGZyb20gJ21pbi1kb2N1bWVudCc7CnZhciBzdGF0ZSA9IHsKICBhbGw6IFtdLAogIC8v6I+c5Y2V5pWw5o2uCiAgcmVzaWR1YWw6IGZhbHNlLAogIC8v5omL5Yqo5L+u5pS55LqG6I+c5Y2V55qE5qCH6K6wCiAgc3RhdGVtZW50OiBbXSwKICAvL+aKpeihqOS4reW/g+iPnOWNlQogIHBhZ2luYXRpb246IHt9LAogIC8v5YiG6aG15Y+C5pWwCiAgcm93czogW10sCiAgLy/mlrDpl7vliqjmgIHliJfooajmlbDmja4KICBub3RpY2U6IFtdLAogIC8v5Y+R5paH5YWs5ZGK5YiX6KGo5pWw5o2uCiAgdG90YWw6IDAsCiAgLy/liJfooajmlbDmja7mgLvmnaHmlbAKICBmaWxlc0RhdGE6IHt9LAogIC8v5paw6Ze75YWs5ZGK6K+m5oOFCiAgbWVldGluZzogW10sCiAgLy/kvJrorq7liJfooagKICBtZW51TWFwczoge30sCiAgLy/liqjmgIHoj5zljZXmlbDmja4KICBjdXJyZW50TWVudToge30sCiAgLy/lvZPliY3kuIDnuqfoj5zljZUKICBjb2x1bW5BbGlhc0FyeTogW10sCiAgLy/lvZPliY3opoHor7fmsYLmoI/nm67mlbDmja7nmoTliKvlkI3mlbDnu4QKICBjb2x1bW5RdWVyeU1lcmdpbmc6IG51bGwsCiAgLy/ojrflj5bmoI/nm67mlbDmja7nmoTor7fmsYLlkIjlubbmoIforrDlj5jph48KICBjb2x1bW5EYXRhOiB7fSwKICAvL+WQhOagj+ebrueahOaVsOaNrgogIGNvbHVtbkRhdGFMb2FkZWRBbGlhc2VzOiBudWxsLAogIHN5c01lbnVzOiBbXSwKICAvL+ezu+e7n+WQjuWPsOiPnOWNlQogIGZyb250TWVudXM6IFtdIC8v5YmN5Y+w6I+c5Y2VCn07CnZhciBnZXR0ZXJzID0gewogIGdldENvbHVtbkRhdGFXaXRoQWxpYXM6IGZ1bmN0aW9uIGdldENvbHVtbkRhdGFXaXRoQWxpYXMoc3RhdGUpIHsKICAgIHJldHVybiBmdW5jdGlvbiAoYWxpYXMpIHsKICAgICAgcmV0dXJuIHN0YXRlLmNvbHVtbkRhdGFbYWxpYXNdOwogICAgfTsKICB9LAogIGhhc0NvbHVtbkRhdGFXaXRoQWxpYXM6IGZ1bmN0aW9uIGhhc0NvbHVtbkRhdGFXaXRoQWxpYXMoc3RhdGUpIHsKICAgIHJldHVybiBmdW5jdGlvbiAoYWxpYXMpIHsKICAgICAgcmV0dXJuIHN0YXRlLmNvbHVtbkRhdGEuaGFzT3duUHJvcGVydHkoYWxpYXMpOwogICAgfTsKICB9LAogIGZyb250TWVudXM6IGZ1bmN0aW9uIGZyb250TWVudXMoc3RhdGUpIHsKICAgIHJldHVybiBzdGF0ZS5mcm9udE1lbnVzOwogIH0sCiAgc3lzTWVudXM6IGZ1bmN0aW9uIHN5c01lbnVzKHN0YXRlKSB7CiAgICByZXR1cm4gc3RhdGUuc3lzTWVudXM7CiAgfQp9Owp2YXIgYWN0aW9ucyA9IChfYWN0aW9ucyA9IHsKICBhY3Rpb25TeXNNZW51czogZnVuY3Rpb24gYWN0aW9uU3lzTWVudXMoX3JlZikgewogICAgdmFyIGNvbW1pdCA9IF9yZWYuY29tbWl0LAogICAgICBzdGF0ZSA9IF9yZWYuc3RhdGU7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICBpZiAoc3RhdGUubWVudXMgJiYgc3RhdGUubWVudXMubGVuZ3RoID49IDEpIHsKICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHBvcnRhbC5nZXRTeXNNZW51cygpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJjdXJyZW50U3lzTWVudXMiLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7CiAgICAgICAgY29tbWl0KCJtdXRhdGlvblN5c01lbnVzIiwgZGF0YSk7CiAgICAgICAgcmVzb2x2ZShkYXRhKTsKICAgICAgfSk7CiAgICB9KTsKICB9LAogIGFjdGlvbkZyb250TWVudXM6IGZ1bmN0aW9uIGFjdGlvbkZyb250TWVudXMoX3JlZjIpIHsKICAgIHZhciBjb21taXQgPSBfcmVmMi5jb21taXQsCiAgICAgIHN0YXRlID0gX3JlZjIuc3RhdGU7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICBpZiAoc3RhdGUuZnJvbnRNZW51cyAmJiBzdGF0ZS5mcm9udE1lbnVzLmxlbmd0aCA+PSAxKSB7CiAgICAgICAgcmVzb2x2ZShzdGF0ZS5mcm9udE1lbnVzKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgcG9ydGFsLmdldEZyb250TWVudXMoKS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgdmFyIF9kYXRhXyQsIF9kYXRhXyQyOwogICAgICAgIHZhciBkYXRhXyA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgfSk7CiAgICAgICAgY29tbWl0KCJtdXRhdGlvbkZyb250TWVudXMiLCAoKF9kYXRhXyQgPSBkYXRhX1swXSkgPT09IG51bGwgfHwgX2RhdGFfJCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RhdGFfJC5jaGlsZHJlbikgfHwgW10pOwogICAgICAgIHJlc29sdmUoKF9kYXRhXyQyID0gZGF0YV9bMF0pID09PSBudWxsIHx8IF9kYXRhXyQyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZGF0YV8kMi5jaGlsZHJlbik7CiAgICAgIH0pOwogICAgfSk7CiAgfSwKICAvLyDmn6Xor6LpnZnmgIHotYTmupDnm67lvZUKICBnZXRTdGF0aWNNZW51czogZnVuY3Rpb24gZ2V0U3RhdGljTWVudXMoX3JlZjMpIHsKICAgIHZhciBjb21taXQgPSBfcmVmMy5jb21taXQ7CiAgICBwb3J0YWwuZ2V0TWVudXMoZnVuY3Rpb24gKG1lbnVzKSB7CiAgICAgIGNvbW1pdCgnYXBwZW5kTWVudXMnLCBtZW51cyk7CiAgICB9KTsKICB9LAogIC8vIOafpeivoua1geeoi+S4reW/g+S4i+eahOi1hOa6kOebruW9lQogIGdldFN5bmNNZW51czogZnVuY3Rpb24gZ2V0U3luY01lbnVzKF9yZWY0LCBpc0xlYWRlcikgewogICAgdmFyIGNvbW1pdCA9IF9yZWY0LmNvbW1pdDsKICAgIHBvcnRhbC5nZXRTdWJNZW51cygnZnJvbnRfbWVudScsIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBwcm9jZXNzLmdldFNlY3JldGFyeUJ5VXNlcklkKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgaXNMZWFkZXIgPSBmYWxzZTsKICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgLy/msqHmnInpooblr7wKICAgICAgICAgIGlzTGVhZGVyID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmVzcG9uc2UuaXNMZWFkZXIgPSBpc0xlYWRlcjsKICAgICAgICBjb21taXQoJ3NldFN5bmNNZW51cycsIHJlc3BvbnNlKTsKICAgICAgfSk7CiAgICB9KTsKICB9LAogIC8v6I635Y+W5rWB56iL5Lit5b+D5LiL55qE6LWE5rqQ55uu5b2VCiAgZ2V0RGVmYXVsdE1lbnVzOiBmdW5jdGlvbiBnZXREZWZhdWx0TWVudXMoX3JlZjUpIHsKICAgIHZhciBjb21taXQgPSBfcmVmNS5jb21taXQ7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICBwb3J0YWwuZ2V0U3ViTWVudXMoJ2Zyb250X21lbnUnLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBwcm9jZXNzLmdldFNlY3JldGFyeUJ5VXNlcklkKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIHZhciBpc0xlYWRlciA9IGZhbHNlOwogICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgLy/msqHmnInpooblr7wKICAgICAgICAgICAgaXNMZWFkZXIgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmVzcG9uc2UuaXNMZWFkZXIgPSBpc0xlYWRlcjsKICAgICAgICAgIGNvbW1pdCgnc2V0U3luY01lbnVzJywgcmVzcG9uc2UpOwogICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0sCiAgLy8g5b2T5YmN55So5oi35o6l5Y+j5p2D6ZmQCiAgZ2V0Q3VycmVudFVzZXJNZXRob2RBdXRoOiBmdW5jdGlvbiBnZXRDdXJyZW50VXNlck1ldGhvZEF1dGgoX3JlZjYpIHsKICAgIHZhciBjb21taXQgPSBfcmVmNi5jb21taXQ7CiAgICBwb3J0YWwuZ2V0Q3VycmVudFVzZXJNZXRob2RBdXRoKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuYWxsTWV0aG9kID0gcmVzcG9uc2UuZGF0YS5hbGxNZXRob2Q7CiAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5tZXRob2RBdXRoID0gcmVzcG9uc2UuZGF0YS5jdXJVc2VyTWV0aG9kOwogICAgfSk7CiAgfSwKICAvLyDlvZPliY3oj5zljZUKICBnZXRBbGxtZW51czogZnVuY3Rpb24gZ2V0QWxsbWVudXMoX3JlZjcsIG1lbnUpIHsKICAgIHZhciBjb21taXQgPSBfcmVmNy5jb21taXQ7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICByZXNvbHZlKHN0YXRlLmFsbCk7CiAgICB9KTsKICB9LAogIC8vIOW9k+WJjeiPnOWNlQogIGdldEN1cnJlbnRNZW51OiBmdW5jdGlvbiBnZXRDdXJyZW50TWVudShfcmVmOCwgbWVudSkgewogICAgdmFyIGNvbW1pdCA9IF9yZWY4LmNvbW1pdDsKICAgIGNvbW1pdCgnc2V0Q3VycmVudE1lbnUnLCBtZW51KTsKICB9LAogIC8vIOi/veWKoOS4gOS4quebruW9leWIsOebruW9leiPnOWNleS4rQogIGFwcGVuZDJtZW51czogZnVuY3Rpb24gYXBwZW5kMm1lbnVzKF9yZWY5LCBtZW51KSB7CiAgICB2YXIgY29tbWl0ID0gX3JlZjkuY29tbWl0LAogICAgICBzdGF0ZSA9IF9yZWY5LnN0YXRlOwogICAgY29tbWl0KCdhcHBlbmRNZW51cycsIFttZW51XSk7CiAgfSwKICAvLyDkuLTml7borr7nva7kuIDkuKrkv67mlLnov4fnmoTnm67lvZXoj5zljZUKICBzZXRUZW1wbGF0ZU1lbnVzOiBmdW5jdGlvbiBzZXRUZW1wbGF0ZU1lbnVzKF9yZWYxMCwgbWVudSkgewogICAgdmFyIGNvbW1pdCA9IF9yZWYxMC5jb21taXQ7CiAgICBjb21taXQoJ3NldE1lbnVzJywgbWVudSk7CiAgICBjb21taXQoJ3NldFJlc2lkdWFsJywgdHJ1ZSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgLy8gMC4156eS5ZCO6YeN572u5omL5Yqo5L+u5pS555uu5b2V5pWw5o2u55qE5qCH6K6wCiAgICAgIGNvbW1pdCgnc2V0UmVzaWR1YWwnLCBmYWxzZSk7CiAgICB9LCA1MDApOwogIH0sCiAgLy8g5Li05pe26K6+572u5LiA5Liq5L+u5pS56L+H55qE55uu5b2V6I+c5Y2VCiAgc2V0Q29weU1lbnVzOiBmdW5jdGlvbiBzZXRDb3B5TWVudXMoX3JlZjExLCBtZW51KSB7CiAgICB2YXIgY29tbWl0ID0gX3JlZjExLmNvbW1pdDsKICAgIGNvbW1pdCgnc2V0TWVudXMnLCBtZW51KTsKICB9LAogIC8v5pu05paw5q+P6aG15LiL5ouJ5pi+56S65pWw5o2uCiAgc2V0UGFnaW5hdGlvblNpemU6IGZ1bmN0aW9uIHNldFBhZ2luYXRpb25TaXplKF9yZWYxMiwgc2l6ZSkgewogICAgdmFyIGNvbW1pdCA9IF9yZWYxMi5jb21taXQsCiAgICAgIHN0YXRlID0gX3JlZjEyLnN0YXRlOwogICAgY29tbWl0KCJzZXRQYWdpbmF0aW9uU2l6ZSIsIHNpemUpOwogIH0sCiAgLy/mm7TmlrDnrKzlh6DpobUKICBzZXRQYWdpbmF0aW9uUGFnZU51bTogZnVuY3Rpb24gc2V0UGFnaW5hdGlvblBhZ2VOdW0oX3JlZjEzLCBjdXJyZW50UGFnZSkgewogICAgdmFyIGNvbW1pdCA9IF9yZWYxMy5jb21taXQsCiAgICAgIHN0YXRlID0gX3JlZjEzLnN0YXRlOwogICAgY29tbWl0KCJzZXRQYWdpbmF0aW9uUGFnZU51bSIsIGN1cnJlbnRQYWdlKTsKICB9LAogIC8v6I635Y+W5paw6Ze75Yqo5oCB5YiX6KGoCiAgZ2V0TmV3c1BhZ2luYXRpb246IGZ1bmN0aW9uIGdldE5ld3NQYWdpbmF0aW9uKF9yZWYxNCwgcGFnaW5hdGlvbikgewogICAgdmFyIGNvbW1pdCA9IF9yZWYxNC5jb21taXQsCiAgICAgIHN0YXRlID0gX3JlZjE0LnN0YXRlOwogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgcG9ydGFsLmdldE5ld3NQYWdpbmF0aW9uKHBhZ2luYXRpb24sIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIGNvbW1pdCgic2V0Um93cyIsIHJlc3BvbnNlLmRhdGEucm93cyk7IC8v5paw6Ze75Yqo5oCB5pWw5o2uCiAgICAgICAgY29tbWl0KCJzZXRUb3RhbCIsIHJlc3BvbnNlLmRhdGEudG90YWwpOyAvL+aAu+aVsOaNruadoeaVsAogICAgICAgIHZhciBwYWdlQmVhbiA9IHsKICAgICAgICAgICJwYWdlIjogcmVzcG9uc2UuZGF0YS5wYWdlLAogICAgICAgICAgInBhZ2VTaXplIjogcmVzcG9uc2UuZGF0YS5wYWdlU2l6ZSwKICAgICAgICAgICJzaG93VG90YWwiOiAidHJ1ZSIKICAgICAgICB9OyAvL+aOpeWPo+aWueazlei/lOWbnueahHBhZ2VCZWFuCiAgICAgICAgY29tbWl0KCJzZXRQYWdpbmF0aW9uIiwgcGFnZUJlYW4pOyAvL+aYvuekuuesrOWHoOmhte+8jOavj+mhteaYvuekuuWkmuWwkeadoQogICAgICAgIHJlc29sdmUoKTsKICAgICAgfSk7CiAgICB9KTsKICB9Cn0sIF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfYWN0aW9ucywgImdldE5ld3NQYWdpbmF0aW9uIiwgZnVuY3Rpb24gZ2V0TmV3c1BhZ2luYXRpb24oX3JlZjE1LCB0eXBlKSB7CiAgdmFyIGNvbW1pdCA9IF9yZWYxNS5jb21taXQsCiAgICBzdGF0ZSA9IF9yZWYxNS5zdGF0ZTsKICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgcG9ydGFsLmdldE5ld3NQYWdpbmF0aW9uKHR5cGUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICByZXNvbHZlKHJlc3BvbnNlLmRhdGEpOwogICAgfSk7CiAgfSk7Cn0pLCAiZ2V0TmV3c1BhZ2luYXRpb25MaXN0IiwgZnVuY3Rpb24gZ2V0TmV3c1BhZ2luYXRpb25MaXN0KF9yZWYxNiwgcGFnaW5hdGlvbikgewogIHZhciBjb21taXQgPSBfcmVmMTYuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMTYuc3RhdGU7CiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgIHBvcnRhbC5nZXROZXdzUGFnaW5hdGlvbkxpc3QocGFnaW5hdGlvbiwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIGNvbW1pdCgic2V0Um93cyIsIHJlc3BvbnNlLmRhdGEucm93cyk7CiAgICAgIGNvbW1pdCgic2V0VG90YWwiLCByZXNwb25zZS5kYXRhLnRvdGFsKTsKICAgICAgdmFyIHBhZ2VCZWFuID0gewogICAgICAgICJwYWdlIjogcmVzcG9uc2UuZGF0YS5wYWdlLAogICAgICAgICJwYWdlU2l6ZSI6IHJlc3BvbnNlLmRhdGEucGFnZVNpemUsCiAgICAgICAgInNob3dUb3RhbCI6ICJ0cnVlIgogICAgICB9OwogICAgICBjb21taXQoInNldFBhZ2luYXRpb24iLCBwYWdlQmVhbik7CiAgICAgIHJlc29sdmUoKTsKICAgIH0pOwogIH0pOwp9KSwgImdldE5vdGljZVBhZ2luYXRpb24iLCBmdW5jdGlvbiBnZXROb3RpY2VQYWdpbmF0aW9uKF9yZWYxNywgcGFnaW5hdGlvbikgewogIHZhciBjb21taXQgPSBfcmVmMTcuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMTcuc3RhdGU7CiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgIHBvcnRhbC5nZXROb3RpY2VQYWdpbmF0aW9uKHBhZ2luYXRpb24sIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBjb21taXQoInNldE5vdGljZSIsIHJlc3BvbnNlLmRhdGEucm93cyk7IC8v5Y+R5paH5ZGK5pWw5o2uCiAgICAgIGNvbW1pdCgic2V0VG90YWwiLCByZXNwb25zZS5kYXRhLnRvdGFsKTsgLy/mgLvmlbDmja7mnaHmlbAKICAgICAgdmFyIHBhZ2VCZWFuID0gewogICAgICAgICJwYWdlIjogcmVzcG9uc2UuZGF0YS5wYWdlLAogICAgICAgICJwYWdlU2l6ZSI6IHJlc3BvbnNlLmRhdGEucGFnZVNpemUsCiAgICAgICAgInNob3dUb3RhbCI6ICJ0cnVlIgogICAgICB9OyAvL+aOpeWPo+aWueazlei/lOWbnueahHBhZ2VCZWFuCiAgICAgIGNvbW1pdCgic2V0UGFnaW5hdGlvbiIsIHBhZ2VCZWFuKTsgLy/mmL7npLrnrKzlh6DpobXvvIzmr4/pobXmmL7npLrlpJrlsJHmnaEKICAgICAgcmVzb2x2ZSgpOwogICAgfSk7CiAgfSk7Cn0pLCAiZ2V0TmV3c0J5SWQiLCBmdW5jdGlvbiBnZXROZXdzQnlJZChfcmVmMTgsIHBhZ2luYXRpb24pIHsKICB2YXIgY29tbWl0ID0gX3JlZjE4LmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjE4LnN0YXRlOwogIHBvcnRhbC5nZXROZXdzQnlJZChwYWdpbmF0aW9uLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgIGlmIChyZXNwb25zZS5kYXRhLmZmaikgewogICAgICB2YXIgZmlsZXMgPSBKU09OLnBhcnNlKHJlc3BvbnNlLmRhdGEuZmZqKTsKICAgICAgcmVzcG9uc2UuZGF0YS5mZmogPSBmaWxlczsKICAgIH0KICAgIGNvbW1pdCgic2V0RmlsZXNEYXRhIiwgcmVzcG9uc2UuZGF0YSk7IC8v5Y+R5paH5ZGK5pWw5o2uCiAgfSk7Cn0pLCAib25saW5lUHJldmlldyIsIGZ1bmN0aW9uIG9ubGluZVByZXZpZXcoX3JlZjE5LCBpZCkgewogIHZhciBjb21taXQgPSBfcmVmMTkuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMTkuc3RhdGU7CiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgIHBvcnRhbC5vbmxpbmVQcmV2aWV3KGlkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgcmVzb2x2ZShyZXNwb25zZS5kYXRhKTsKICAgIH0pOwogIH0pOwp9KSwgImRvd25sb2FkRmlsZSIsIGZ1bmN0aW9uIGRvd25sb2FkRmlsZShfcmVmMjAsIGlkKSB7CiAgdmFyIGNvbW1pdCA9IF9yZWYyMC5jb21taXQsCiAgICBzdGF0ZSA9IF9yZWYyMC5zdGF0ZTsKICBwb3J0YWwuZG93bmxvYWRGaWxlKGlkKTsKfSksICJkb3dubG9hZEltZyIsIGZ1bmN0aW9uIGRvd25sb2FkSW1nKF9yZWYyMSwgdXJsKSB7CiAgdmFyIGNvbW1pdCA9IF9yZWYyMS5jb21taXQsCiAgICBzdGF0ZSA9IF9yZWYyMS5zdGF0ZTsKICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgcG9ydGFsLmRvd25sb2FkSW1nKHVybCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIHJlc29sdmUocmVzcG9uc2UpOwogICAgfSk7CiAgfSk7Cn0pLCAiZ2V0TWVldGluZ1BhZ2luYXRpb24iLCBmdW5jdGlvbiBnZXRNZWV0aW5nUGFnaW5hdGlvbihfcmVmMjIsIHBhZ2luYXRpb24pIHsKICB2YXIgY29tbWl0ID0gX3JlZjIyLmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjIyLnN0YXRlOwogIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICBwb3J0YWwuZ2V0TWVldGluZ1BhZ2luYXRpb24ocGFnaW5hdGlvbiwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIGNvbW1pdCgic2V0TWVldGluZyIsIHJlc3BvbnNlLmRhdGEucm93cyk7IC8v5Lya6K6u5pWw5o2uCiAgICAgIGNvbW1pdCgic2V0VG90YWwiLCByZXNwb25zZS5kYXRhLnRvdGFsKTsgLy/mgLvmlbDmja7mnaHmlbAKICAgICAgdmFyIHBhZ2VCZWFuID0gewogICAgICAgICJwYWdlIjogcmVzcG9uc2UuZGF0YS5wYWdlLAogICAgICAgICJwYWdlU2l6ZSI6IHJlc3BvbnNlLmRhdGEucGFnZVNpemUsCiAgICAgICAgInNob3dUb3RhbCI6ICJ0cnVlIgogICAgICB9OyAvL+aOpeWPo+aWueazlei/lOWbnueahHBhZ2VCZWFuCiAgICAgIGNvbW1pdCgic2V0UGFnaW5hdGlvbiIsIHBhZ2VCZWFuKTsgLy/mmL7npLrnrKzlh6DpobXvvIzmr4/pobXmmL7npLrlpJrlsJHmnaEKICAgICAgcmVzb2x2ZSgpOwogICAgfSk7CiAgfSk7Cn0pLCAiZ2V0QnlUeXBlS2V5Rm9yQ29tQm8iLCBmdW5jdGlvbiBnZXRCeVR5cGVLZXlGb3JDb21CbyhfcmVmMjMsIGRpY0tleSkgewogIHZhciBjb21taXQgPSBfcmVmMjMuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMjMuc3RhdGU7CiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgIHBvcnRhbC5nZXRCeVR5cGVLZXlGb3JDb21CbyhkaWNLZXksIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICByZXNvbHZlKHJlc3BvbnNlKTsKICAgIH0pOwogIH0pOwp9KSwgImdldE5leHRJZEJ5QWxpYXMiLCBmdW5jdGlvbiBnZXROZXh0SWRCeUFsaWFzKF9yZWYyNCwgYWxpYXMpIHsKICB2YXIgY29tbWl0ID0gX3JlZjI0LmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjI0LnN0YXRlOwogIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICBwb3J0YWwuZ2V0TmV4dElkQnlBbGlhcyhhbGlhcywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIHJlc29sdmUocmVzcG9uc2UpOwogICAgfSk7CiAgfSk7Cn0pLCBfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfYWN0aW9ucywgInZ1ZUZyb250SG9tZSIsIGZ1bmN0aW9uIHZ1ZUZyb250SG9tZShfcmVmMjUpIHsKICB2YXIgY29tbWl0ID0gX3JlZjI1LmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjI1LnN0YXRlOwogIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICBwb3J0YWwudnVlRnJvbnRIb21lKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICByZXNvbHZlKHJlc3BvbnNlKTsKICAgIH0pOwogIH0pOwp9KSwgImdldENvbHVtbkJ5QWxpYXMiLCBmdW5jdGlvbiBnZXRDb2x1bW5CeUFsaWFzKF9yZWYyNiwgYWxpYXMpIHsKICB2YXIgY29tbWl0ID0gX3JlZjI2LmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjI2LnN0YXRlOwogIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICBwb3J0YWwuZ2V0Q29sdW1uQnlBbGlhcyhhbGlhcywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIHJlc29sdmUocmVzcG9uc2UpOwogICAgICBjb21taXQoInVwZGF0ZUNvbHVtbkRhdGEiLCByZXNwb25zZSk7CiAgICB9KTsKICB9KTsKfSksICJnZXRDb2x1bW5CeUFsaWFzQmF0Y2giLCBmdW5jdGlvbiBnZXRDb2x1bW5CeUFsaWFzQmF0Y2goX3JlZjI3LCBhbGlhcykgewogIHZhciBjb21taXQgPSBfcmVmMjcuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMjcuc3RhdGUsCiAgICBnZXR0ZXJzID0gX3JlZjI3LmdldHRlcnM7CiAgLy8gMS7lpoLmnpzlvZPliY3moI/nm67mlbDmja7kuK3lt7Lnu4/mnInlr7nlupTnmoTlgLzkuobvvIznm7TmjqXov5Tlm57jgIIKICBpZiAoZ2V0dGVycy5oYXNDb2x1bW5EYXRhV2l0aEFsaWFzKGFsaWFzKSkgewogICAgcmV0dXJuOwogIH0KICAvLyAyLuaYr+WQpuato+WcqOi/m+ihjOivt+axguWQiOW5tu+8mwogIGlmIChzdGF0ZS5jb2x1bW5RdWVyeU1lcmdpbmcpIHsKICAgIC8vICgxKS7lj5bmtojlvZPliY3lgJLorqHml7bvvJsKICAgIGNsZWFyVGltZW91dChzdGF0ZS5jb2x1bW5RdWVyeU1lcmdpbmcpOwogICAgLy8gKDIpLumHjee9ruW9k+WJjeWAkuiuoeaXtuWPlua2iOagh+iusOS9je+8mwogICAgY29tbWl0KCJzZXRDb2x1bW5RdWVyeU1lcmdpbmciLCBudWxsKTsKICB9CiAgLy8gMy7mnoTlu7rkuIDkuKror7fmsYLlgJLorqHml7bvvIjpu5jorqTkuKTkuKror7fmsYLnm7jlt641MOavq+enkuWGheS8muWQiOW5tuS4uuS4gOS4quivt+axgu+8ie+8mwogIHZhciB0aW1lb3V0Q2FuY2VsID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAvLyA0LuWAkuiuoeaXtue7k+adn++8jOecn+ato+WPkemAgeivt+axgu+8mwogICAgcG9ydGFsLmJhdGNoR2V0Q29sdW1uQnlBbGlhc2VzKHN0YXRlLmNvbHVtbkFsaWFzQXJ5LmpvaW4oIiwiKSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIC8vIDUu5pu05paw5qCP55uu5pWw5o2u5YiwdnVleOeahHN0YXRl5Lit44CCCiAgICAgIGNvbW1pdCgic2V0Q29sdW1uRGF0YSIsIHJlc3BvbnNlKTsKICAgIH0pOwogICAgLy8g5riF56m65qCP55uu6K+35rGC5p+l6K+i5Yir5ZCN5pWw57uECiAgICBjb21taXQoImNsZWFyQ29sdW1uQWxpYXNBcnkiKTsKICAgIC8vIOmHjee9ruWAkuiuoeaXtuWPlua2iOagh+iusOS9jQogICAgY29tbWl0KCJzZXRDb2x1bW5RdWVyeU1lcmdpbmciLCBudWxsKTsKICB9LCA1MCk7CiAgLy8g5re75Yqg5qCP55uu6K+35rGC5p+l6K+i5Yir5ZCN5Yiw5pWw57uECiAgY29tbWl0KCJhZGRDb2x1bW5BbGlhcyIsIGFsaWFzKTsKICAvLyDmm7TmlrDlgJLorqHml7blj5bmtojmoIforrDkvY0KICBjb21taXQoInNldENvbHVtblF1ZXJ5TWVyZ2luZyIsIHRpbWVvdXRDYW5jZWwpOwp9KSwgImdldENvbHVtbkRhdGEiLCBmdW5jdGlvbiBnZXRDb2x1bW5EYXRhKF9yZWYyOCwgY29sdW1uKSB7CiAgdmFyIGNvbW1pdCA9IF9yZWYyOC5jb21taXQsCiAgICBzdGF0ZSA9IF9yZWYyOC5zdGF0ZTsKICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgcG9ydGFsLmdldENvbHVtbkRhdGEoY29sdW1uLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgcmVzb2x2ZShyZXNwb25zZSk7CiAgICB9KTsKICB9KTsKfSksICJ1cGRhdGVGaWxlRXh0cmFQcm9wIiwgZnVuY3Rpb24gdXBkYXRlRmlsZUV4dHJhUHJvcChfcmVmMjksIGNvbHVtbikgewogIHZhciBjb21taXQgPSBfcmVmMjkuY29tbWl0LAogICAgc3RhdGUgPSBfcmVmMjkuc3RhdGU7CiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgIHBvcnRhbC51cGRhdGVGaWxlRXh0cmFQcm9wKGNvbHVtbiwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIHJlc29sdmUocmVzcG9uc2UpOwogICAgfSk7CiAgfSk7Cn0pLCAiY2xlYXJNZW51cyIsIGZ1bmN0aW9uIGNsZWFyTWVudXMoX3JlZjMwLCBjb2x1bW4pIHsKICB2YXIgY29tbWl0ID0gX3JlZjMwLmNvbW1pdCwKICAgIHN0YXRlID0gX3JlZjMwLnN0YXRlOwogIGNvbW1pdCgiY2xlYXJNZW51cyIpOwogIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJjdXJyZW50RnJvbnRNZW51cyIpOwogIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJkaWN0X2RhdGEiKTsKICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiYWxsTWV0aG9kIik7CiAgd2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oIm1ldGhvZEF1dGgiKTsKfSkpOwp2YXIgbXV0YXRpb25zID0gewogIHNldE1lbnVzOiBmdW5jdGlvbiBzZXRNZW51cyhzdGF0ZSwgbWVudXMpIHsKICAgIHN0YXRlLmFsbCA9IG1lbnVzOwogIH0sCiAgY2xlYXJNZW51czogZnVuY3Rpb24gY2xlYXJNZW51cygpIHsKICAgIHN0YXRlLmZyb250TWVudXMgPSBbXTsKICAgIHN0YXRlLnN5c01lbnVzID0gW107CiAgfSwKICBzZXRSZXNpZHVhbDogZnVuY3Rpb24gc2V0UmVzaWR1YWwoc3RhdGUsIHZhbCkgewogICAgc3RhdGUucmVzaWR1YWwgPSB2YWw7CiAgfSwKICBhcHBlbmRNZW51czogZnVuY3Rpb24gYXBwZW5kTWVudXMoc3RhdGUsIG1lbnVzKSB7CiAgICBtZW51cy5mb3JFYWNoKGZ1bmN0aW9uIChtZW51KSB7CiAgICAgIGlmICghc3RhdGUuYWxsLnNvbWUoZnVuY3Rpb24gKG0pIHsKICAgICAgICByZXR1cm4gbS5hbGlhcyA9PT0gbWVudS5hbGlhczsKICAgICAgfSkpIHsKICAgICAgICBzdGF0ZS5hbGwucHVzaChtZW51KTsKICAgICAgfQogICAgfSk7CiAgICBzdGF0ZS5hbGwuc29ydChmdW5jdGlvbiAobSwgbikgewogICAgICByZXR1cm4gbS5pZCAtIG4uaWQ7CiAgICB9KTsKICB9LAogIHNldFN5bmNNZW51czogZnVuY3Rpb24gc2V0U3luY01lbnVzKHN0YXRlLCByZXNwb25zZSkgewogICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS52YWx1ZSAmJiByZXNwb25zZS5kYXRhLnZhbHVlLmxlbmd0aCA+IDApIHsKICAgICAgdmFyIG1lbnVzID0gcmVzcG9uc2UuZGF0YS52YWx1ZTsKICAgICAgbWVudXMuZm9yRWFjaChmdW5jdGlvbiAobWVudSkgewogICAgICAgIGlmICghc3RhdGUuYWxsLnNvbWUoZnVuY3Rpb24gKG0pIHsKICAgICAgICAgIHJldHVybiBtLmNvZGUgPT09IG1lbnUuYWxpYXM7CiAgICAgICAgfSkpIHsKICAgICAgICAgIHN0YXRlLmFsbC5wdXNoKHsKICAgICAgICAgICAgaWQ6IG1lbnUuaWQsCiAgICAgICAgICAgIGNvZGU6IG1lbnUuYWxpYXMsCiAgICAgICAgICAgIGFsaWFzOiBtZW51LmFsaWFzLAogICAgICAgICAgICBwYXRoOiBtZW51Lm1lbnVVcmwsCiAgICAgICAgICAgIG5hbWU6IG1lbnUubmFtZSwKICAgICAgICAgICAgc246IG1lbnUuc24KICAgICAgICAgIH0pOwogICAgICAgICAgLy/liKTmlq3mmK/lkKbmmK/mtYHnqIvkuK3lv4MKICAgICAgICAgIGlmIChtZW51LmFsaWFzID09ICJ2LWZsb3ciKSB7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5pc0xlYWRlcikgewogICAgICAgICAgICAgIC8v5rKh5pyJ6aKG5a+8CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAobWVudS5jaGlsZHJlbltpXS5hbGlhcyA9PSAidi1sZWFkZXIiKSB7CiAgICAgICAgICAgICAgICAgIG1lbnUuY2hpbGRyZW4uc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgc3RhdGUubWVudU1hcHNbbWVudS5hbGlhc10gPSBtZW51LmNoaWxkcmVuOwogICAgICAgICAgICB9IGVsc2UgaWYgKCFyZXNwb25zZS5pc0xlYWRlcikgewogICAgICAgICAgICAgIC8v5pyJ6aKG5a+8CiAgICAgICAgICAgICAgc3RhdGUubWVudU1hcHNbbWVudS5hbGlhc10gPSBtZW51LmNoaWxkcmVuOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdGF0ZS5tZW51TWFwc1ttZW51LmFsaWFzXSA9IG1lbnUuY2hpbGRyZW47CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIH0KICAgICAgfSk7CiAgICB9CiAgfSwKICBzZXRDdXJyZW50TWVudTogZnVuY3Rpb24gc2V0Q3VycmVudE1lbnUoc3RhdGUsIHJlc3BvbnNlKSB7CiAgICBzdGF0ZS5jdXJyZW50TWVudSA9IHJlc3BvbnNlOwogIH0sCiAgZ2V0QWxsbWVudXM6IGZ1bmN0aW9uIGdldEFsbG1lbnVzKHN0YXRlLCByZXNwb25zZSkgewogICAgcmV0dXJuIHN0YXRlLmFsbDsKICB9LAogIHNldFBhZ2luYXRpb246IGZ1bmN0aW9uIHNldFBhZ2luYXRpb24oc3RhdGUsIHBhZ2luYXRpb24pIHsKICAgIHN0YXRlLnBhZ2luYXRpb24gPSBwYWdpbmF0aW9uOwogIH0sCiAgc2V0UGFnaW5hdGlvblNpemU6IGZ1bmN0aW9uIHNldFBhZ2luYXRpb25TaXplKHN0YXRlLCBzaXplKSB7CiAgICBzdGF0ZS5wYWdpbmF0aW9uLnBhZ2VTaXplID0gc2l6ZTsKICB9LAogIHNldFBhZ2luYXRpb25QYWdlTnVtOiBmdW5jdGlvbiBzZXRQYWdpbmF0aW9uUGFnZU51bShzdGF0ZSwgY3VycmVudFBhZ2UpIHsKICAgIHN0YXRlLnBhZ2luYXRpb24ucGFnZSA9IGN1cnJlbnRQYWdlOwogIH0sCiAgc2V0Um93czogZnVuY3Rpb24gc2V0Um93cyhzdGF0ZSwgcm93cykgewogICAgc3RhdGUucm93cyA9IHJvd3M7CiAgfSwKICBzZXROb3RpY2U6IGZ1bmN0aW9uIHNldE5vdGljZShzdGF0ZSwgbm90aWNlKSB7CiAgICBzdGF0ZS5ub3RpY2UgPSBub3RpY2U7CiAgfSwKICBzZXRUb3RhbDogZnVuY3Rpb24gc2V0VG90YWwoc3RhdGUsIHRvdGFsKSB7CiAgICBzdGF0ZS50b3RhbCA9IHRvdGFsOwogIH0sCiAgc2V0RmlsZXNEYXRhOiBmdW5jdGlvbiBzZXRGaWxlc0RhdGEoc3RhdGUsIGZpbGVzRGF0YSkgewogICAgc3RhdGUuZmlsZXNEYXRhID0gZmlsZXNEYXRhOwogIH0sCiAgc2V0TWVldGluZzogZnVuY3Rpb24gc2V0TWVldGluZyhzdGF0ZSwgbWVldGluZykgewogICAgc3RhdGUubWVldGluZyA9IG1lZXRpbmc7CiAgfSwKICBhZGRDb2x1bW5BbGlhczogZnVuY3Rpb24gYWRkQ29sdW1uQWxpYXMoc3RhdGUsIGFsaWFzKSB7CiAgICBzdGF0ZS5jb2x1bW5BbGlhc0FyeS5wdXNoKGFsaWFzKTsKICB9LAogIGNsZWFyQ29sdW1uQWxpYXNBcnk6IGZ1bmN0aW9uIGNsZWFyQ29sdW1uQWxpYXNBcnkoc3RhdGUpIHsKICAgIHN0YXRlLmNvbHVtbkFsaWFzQXJ5ID0gW107CiAgfSwKICBzZXRDb2x1bW5RdWVyeU1lcmdpbmc6IGZ1bmN0aW9uIHNldENvbHVtblF1ZXJ5TWVyZ2luZyhzdGF0ZSwgdmFsKSB7CiAgICBzdGF0ZS5jb2x1bW5RdWVyeU1lcmdpbmcgPSB2YWw7CiAgfSwKICBzZXRDb2x1bW5EYXRhOiBmdW5jdGlvbiBzZXRDb2x1bW5EYXRhKHN0YXRlLCBkYXRhKSB7CiAgICB2YXIgX2NvbERhdGEgPSBzdGF0ZS5jb2x1bW5EYXRhIHx8IHt9LAogICAgICBhbGlhc0FyeSA9IHN0YXRlLmNvbHVtbkRhdGFMb2FkZWRBbGlhc2VzID8gc3RhdGUuY29sdW1uRGF0YUxvYWRlZEFsaWFzZXMuc3BsaXQoJywnKSA6IFtdOwogICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7CiAgICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICAgIGFsaWFzQXJ5LnB1c2goZC5hbGlhcyk7CiAgICAgICAgX2NvbERhdGFbZC5hbGlhc10gPSBkOwogICAgICB9KTsKICAgIH0KICAgIHN0YXRlLmNvbHVtbkRhdGEgPSBfY29sRGF0YTsKICAgIHN0YXRlLmNvbHVtbkRhdGFMb2FkZWRBbGlhc2VzID0gYWxpYXNBcnkuam9pbigiLCIpOwogIH0sCiAgdXBkYXRlQ29sdW1uRGF0YTogZnVuY3Rpb24gdXBkYXRlQ29sdW1uRGF0YShzdGF0ZSwgZGF0YSkgewogICAgaWYgKGRhdGEgJiYgZGF0YS5hbGlhcykgewogICAgICBzdGF0ZS5jb2x1bW5EYXRhW2RhdGEuYWxpYXNdID0gZGF0YTsKICAgIH0KICB9LAogIC8vIOWJjeWPsOiPnOWNlei1i+WAvAogIG11dGF0aW9uRnJvbnRNZW51czogZnVuY3Rpb24gbXV0YXRpb25Gcm9udE1lbnVzKHN0YXRlLCBmcm9udE1lbnVzKSB7CiAgICBzdGF0ZS5mcm9udE1lbnVzID0gZnJvbnRNZW51czsKICB9LAogIC8vIOWQjuWPsOiPnOWNlei1i+WAvAogIG11dGF0aW9uU3lzTWVudXM6IGZ1bmN0aW9uIG11dGF0aW9uU3lzTWVudXMoc3RhdGUsIHN5c01lbnVzKSB7CiAgICBzdGF0ZS5zeXNNZW51cyA9IHN5c01lbnVzOwogIH0KfTsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWVzcGFjZWQ6IHRydWUsCiAgc3RhdGU6IHN0YXRlLAogIGdldHRlcnM6IGdldHRlcnMsCiAgYWN0aW9uczogYWN0aW9ucywKICBtdXRhdGlvbnM6IG11dGF0aW9ucwp9Ow=="},null]}