project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
23 KiB

{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info\\index.vue","mtime":1634007171158},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbGlzdEluZm8sIGdldEluZm8sIGRlbEluZm8sIGFkZEluZm8sIHVwZGF0ZUluZm8sIGV4cG9ydEluZm8sIGNoYW5nZVN0YXR1cywgaW1wb3J0VGVtcGxhdGUgYXMgX2ltcG9ydFRlbXBsYXRlIH0gZnJvbSAiQC9hcGkvcHJvamVjdC9pbmZvIjsKaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICJAL3V0aWxzL2F1dGgiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkluZm8iLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyDkuIrkvKDlj4LmlbAKICAgICAgdXBsb2FkOiB7CiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIG9wZW46IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6gKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBnZXRUb2tlbigpCiAgICAgICAgfSwKICAgICAgICAvLyDkuIrkvKDnmoTlnLDlnYAKICAgICAgICB1cmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL3Byb2plY3QvaW5mby9jb21tb24vdXBsb2FkIiwKICAgICAgICAvLyDkuIrkvKDnmoTmlofku7bliJfooagKICAgICAgICBmaWxlTGlzdDogW10KICAgICAgfSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZFByb2plY3Q6IHsKICAgICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYLvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDlvLnlh7rlsYLmoIfpopjvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuabtOaWsOW3sue7j+WtmOWcqOeahOeUqOaIt+aVsOaNrgogICAgICAgIHVwZGF0ZVN1cHBvcnQ6IDAsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9wcm9qZWN0L2luZm8vaW1wb3J0RGF0YSIKICAgICAgfSwKICAgICAgLy8g6YGu572p5bGCCiAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgIC8vIOmAieS4reaVsOe7hAogICAgICBpZHM6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIC8vIOaYvuekuuaQnOe0ouadoeS7tgogICAgICBzaG93U2VhcmNoOiB0cnVlLAogICAgICAvLyDmgLvmnaHmlbAKICAgICAgdG90YWw6IDAsCiAgICAgIC8vIOmhueebruS/oeaBr+ihqOagvOaVsOaNrgogICAgICBpbmZvTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgcHJvamVjdENvZGU6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZTogbnVsbCwKICAgICAgICBwcm9qZWN0TmFtZTogbnVsbCwKICAgICAgICBjb250YWN0RGVwYXJ0OiBudWxsLAogICAgICAgIHByaW5jaXBhbDogbnVsbCwKICAgICAgICBwcm9qZWN0WWVhcjogbnVsbCwKICAgICAgICBwcm9qZWN0VHlwZTogbnVsbCwKICAgICAgICByZXNlYXJjaFBlcmlvZDogbnVsbCwKICAgICAgICB0b2F0bEZ1bmRpbmdDb250cm9sOiBudWxsLAogICAgICAgIHByb2plY3RTdGFydFRpbWU6IG51bGwsCiAgICAgICAgcHJvamVjdEVuZFRpbWU6IG51bGwsCiAgICAgICAgcHJvamVjdFNlYXJjaEN5Y2xlOiBudWxsLAogICAgICAgIHNlY3JldExldmVsOiBudWxsLAogICAgICAgIGZhY3VsdHlOdW1iZXI6IG51bGwsCiAgICAgICAgYWNhZGVtaWNpYW5OdW1iZXI6IG51bGwsCiAgICAgICAgc3ViamVjdE51bWJlcjogbnVsbCwKICAgICAgICB0b3BpY051bWJlcjogbnVsbCwKICAgICAgICBhbm5leE5hbWU6IG51bGwsCiAgICAgICAgYW5uZXhQYXRoOiBudWxsCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgc2VjcmV0T3B0aW9uczogW10sCiAgICAgIC8v6aG555uu57G75Z6LCiAgICAgIHR5cGVPcHRpb25zOiBbXSwKICAgICAgLy/pobnnm67lubTluqYKICAgICAgeWVhck9wdGlvbnM6IFtdLAogICAgICAvL+mhueebruW5tOmZkAogICAgICB5ZWFyTGltaXRPcHRpb25zOiBbXSwKICAgICAgLy/ogZTns7vpg6jpl6gKICAgICAgY29udGFjdERlcHRPcHRpb25zOiBbXSwKICAgICAgLy/pobnnm67mnaXmupAKICAgICAgc291cmNlT3B0aW9uczogW10sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczogewogICAgICAgIHByb2plY3RDb2RlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aG555uu57yW5Y+3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICB0aGlzLmdldExpc3QoKTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zZWNyZXRfbGV2ZWwiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zZWNyZXRPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3R5cGUiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy50eXBlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb195ZWFyIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMueWVhck9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9feWVhcl9saW1pdCIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnllYXJMaW1pdE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fY29udGFjdF9kZXB0IikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMuY29udGFjdERlcHRPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NvdXJjZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNvdXJjZU9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvKiog5a+85YWl5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVJbXBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUltcG9ydCgpIHsKICAgICAgdGhpcy51cGxvYWRQcm9qZWN0LnRpdGxlID0gIumhueebruWvvOWFpSI7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICBzZWNyZXRGb3JtYXQ6IGZ1bmN0aW9uIHNlY3JldEZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zZWNyZXRPcHRpb25zLCByb3cuc2VjcmV0TGV2ZWwpOwogICAgfSwKICAgIHR5cGVGb3JtYXQ6IGZ1bmN0aW9uIHR5cGVGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMudHlwZU9wdGlvbnMsIHJvdy5wcm9qZWN0VHlwZSk7CiAgICB9LAogICAgeWVhckZvcm1hdDogZnVuY3Rpb24geWVhckZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy55ZWFyT3B0aW9ucywgcm93LnByb2plY3RZZWFyKTsKICAgIH0sCiAgICB5ZWFyTGltaXRGb3JtYXQ6IGZ1bmN0aW9uIHllYXJMaW1pdEZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy55ZWFyTGltaXRPcHRpb25zLCByb3cucmVzZWFyY2hQZXJpb2QpOwogICAgfSwKICAgIGNvbnRhY3REZXB0Rm9ybWF0OiBmdW5jdGlvbiBjb250YWN0RGVwdEZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5jb250YWN0RGVwdE9wdGlvbnMsIHJvdy5jb250YWN0RGVwYXJ0KTsKICAgIH0sCiAgICBzb3VyY2VGb3JtYXQ6IGZ1bmN0aW9uIHNvdXJjZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zb3VyY2VPcHRpb25zLCByb3cucHJvamVjdFNvdXJjZSk7CiAgICB9LAogICAgLy/mn6Xor6LmnaHku7bmoIfnuqIKICAgIHJlcGxhY2VSZWQ6IGZ1bmN0aW9uIHJlcGxhY2VSZWQob2JqLCBwYXJhbXMpIHsKICAgICAgaWYgKHBhcmFtcyA9PSAncHJvamVjdENvZGUnKSB7CiAgICAgICAgaWYgKHRoaXMucXVlcnlQYXJhbXMucHJvamVjdENvZGUgIT0gbnVsbCkgewogICAgICAgICAgcmV0dXJuIG9iai5yZXBsYWNlKHRoaXMucXVlcnlQYXJhbXMucHJvamVjdENvZGUsICI8c3BhbiBzdHlsZT0nY29sb3I6IHJlZCc+IiArIHRoaXMucXVlcnlQYXJhbXMucHJvamVjdENvZGUgKyAiPC9zcGFuPiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChwYXJhbXMgPT0gJ3Byb2plY3ROYW1lJykgewogICAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3ROYW1lICE9IG51bGwpIHsKICAgICAgICAgIHJldHVybiBvYmoucmVwbGFjZSh0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3ROYW1lLCAiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPiIgKyB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3ROYW1lICsgIjwvc3Bhbj4iKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHJldHVybiBvYmo7CiAgICB9LAoKICAgIC8qKiDmn6Xor6Lpobnnm67kv6Hmga/liJfooaggKi8KICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdEluZm8odGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczIuaW5mb0xpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIF90aGlzMi50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzMi5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVN0YXR1c0NoYW5nZTogZnVuY3Rpb24gaGFuZGxlU3RhdHVzQ2hhbmdlKHJvdykgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHZhciB0ZXh0ID0gcm93LmlzRmlsZSA9PT0gIjAiID8gIuW9kuahoyIgOiAi5Y+W5raI5b2S5qGjIjsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu6K6k6KaBJyArIHRleHQgKyAn6K+l6aG555uu5ZCXJywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBjaGFuZ2VTdGF0dXMocm93LnByb2plY3RJZCwgcm93LmlzRmlsZSk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMy5tc2dTdWNjZXNzKHRleHQgKyAi5oiQ5YqfIik7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICByb3cuaXNGaWxlID0gcm93LmlzRmlsZSA9PT0gIjAiID8gIjEiIDogIjAiOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgcHJvamVjdElkOiBudWxsLAogICAgICAgIHByb2plY3RDb2RlOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2U6IG51bGwsCiAgICAgICAgcHJvamVjdE5hbWU6IG51bGwsCiAgICAgICAgY29udGFjdERlcGFydDogbnVsbCwKICAgICAgICBwcmluY2lwYWw6IG51bGwsCiAgICAgICAgcHJvamVjdFllYXI6IG51bGwsCiAgICAgICAgcHJvamVjdFR5cGU6IG51bGwsCiAgICAgICAgcmVzZWFyY2hQZXJpb2Q6IG51bGwsCiAgICAgICAgdG9hdGxGdW5kaW5nQ29udHJvbDogbnVsbCwKICAgICAgICBwcm9qZWN0U3RhcnRUaW1lOiBudWxsLAogICAgICAgIHByb2plY3RFbmRUaW1lOiBudWxsLAogICAgICAgIHByb2plY3RTZWFyY2hDeWNsZTogbnVsbCwKICAgICAgICBzZWNyZXRMZXZlbDogbnVsbCwKICAgICAgICBmYWN1bHR5TnVtYmVyOiBudWxsLAogICAgICAgIGFjYWRlbWljaWFuTnVtYmVyOiBudWxsLAogICAgICAgIHN1YmplY3ROdW1iZXI6IG51bGwsCiAgICAgICAgdG9waWNOdW1iZXI6IG51bGwsCiAgICAgICAgYW5uZXhOYW1lOiBudWxsLAogICAgICAgIGFubmV4UGF0aDogbnVsbCwKICAgICAgICBjcmVhdGVCeTogbnVsbCwKICAgICAgICBjcmVhdGVUaW1lOiBudWxsLAogICAgICAgIHVwZGF0ZUJ5OiBudWxsLAogICAgICAgIHVwZGF0ZVRpbWU6IG51bGwsCiAgICAgICAgcmVtYXJrOiBudWxsLAogICAgICAgIGRlbEZsYWc6IG51bGwKICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCgogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCgogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMgPSBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0ucHJvamVjdElkOwogICAgICB9KTsKICAgICAgdGhpcy5zaW5nbGUgPSBzZWxlY3Rpb24ubGVuZ3RoICE9PSAxOwogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAoKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg6aG555uu5L+h5oGvIjsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgIH0sCgogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlOiBmdW5jdGlvbiBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgcHJvamVjdElkID0gcm93LnByb2plY3RJZCB8fCB0aGlzLmlkczsKICAgICAgZ2V0SW5mbyhwcm9qZWN0SWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM0LmZvcm0gPSByZXNwb25zZS5kYXRhOwoKICAgICAgICBfdGhpczQuZm9ybWF0VXBsb2FkQW5uZXgoX3RoaXM0LmZvcm0uYW5uZXhOYW1lLCBfdGhpczQuZm9ybS5hbm5leFBhdGgpOwoKICAgICAgICBfdGhpczQub3BlbiA9IHRydWU7CiAgICAgICAgX3RoaXM0LnRpdGxlID0gIuS/ruaUuemhueebruS/oeaBryI7CiAgICAgIH0pOwogICAgfSwKICAgIC8v5qC85byP5YyW5LiK5Lyg6ZmE5Lu2CiAgICBmb3JtYXRVcGxvYWRBbm5leDogZnVuY3Rpb24gZm9ybWF0VXBsb2FkQW5uZXgoYW5uZXhOYW1lLCBhbm5leFBhdGgpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKCiAgICAgIGlmIChhbm5leFBhdGggIT0gbnVsbCAmJiBhbm5leFBhdGggIT09ICcnKSB7CiAgICAgICAgdmFyIGEgPSBbXSwKICAgICAgICAgICAgYiA9IFtdOwoKICAgICAgICB0cnkgewogICAgICAgICAgYSA9IEpTT04ucGFyc2UoYW5uZXhOYW1lKTsKICAgICAgICAgIGIgPSBKU09OLnBhcnNlKGFubmV4UGF0aCk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgYSA9IFtdOwogICAgICAgICAgYiA9IFtdOwogICAgICAgIH0KCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdC5wdXNoKHsKICAgICAgICAgICAgJ25hbWUnOiBhW2ldLAogICAgICAgICAgICAndXJsJzogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArIGJbaV0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzNS5mb3JtLnByb2plY3RJZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHVwZGF0ZUluZm8oX3RoaXM1LmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09IDIwMCkgewogICAgICAgICAgICAgICAgX3RoaXM1Lm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOwoKICAgICAgICAgICAgICAgIF90aGlzNS5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgICAgX3RoaXM1LmdldExpc3QoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRkSW5mbyhfdGhpczUuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM1Lm9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgICBfdGhpczUuZ2V0TGlzdCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOWIoOmZpOaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwoKICAgICAgdmFyIHByb2plY3RJZHMgPSByb3cucHJvamVjdElkIHx8IHRoaXMuaWRzOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaTpobnnm67nvJblj7fkuLonICsgcm93LmNvZGUgKyAn55qE5pWw5o2u5L+h5oGvJywgIuitpuWRiiIsIHsKICAgICAgICAvL3RoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOmhueebruS/oeaBr+e8luWPt+S4uiInICsgcHJvamVjdElkcyArICci55qE5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZGVsSW5mbyhwcm9qZWN0SWRzKTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM2LmdldExpc3QoKTsKCiAgICAgICAgX3RoaXM2Lm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAoKICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUV4cG9ydDogZnVuY3Rpb24gaGFuZGxlRXhwb3J0KCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIHZhciBfc2VsZWN0RGF0YSA9IHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5zZWxlY3Rpb247CiAgICAgIGNvbnNvbGUubG9nKF9zZWxlY3REYXRhKTsKCiAgICAgIGlmIChfc2VsZWN0RGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgdmFyIHByb2plY3RDb2RlTGlzdCA9ICIiOwoKICAgICAgICBfc2VsZWN0RGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBwcm9qZWN0Q29kZUxpc3QgPSBwcm9qZWN0Q29kZUxpc3QgKyBpdGVtLnByb2plY3RDb2RlICsgIiwiOwogICAgICAgIH0pOwoKICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTsKICAgICAgICBxdWVyeVBhcmFtcy5wcm9qZWN0Q29kZUxpc3QgPSBwcm9qZWN0Q29kZUxpc3Q7CiAgICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5a+85Ye65Yu+6YCJ55qE6aG555uu5L+h5oGv5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIGV4cG9ydEluZm8ocXVlcnlQYXJhbXMpOwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICBfdGhpczcuZG93bmxvYWQocmVzcG9uc2UubXNnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIF9xdWVyeVBhcmFtcyA9IHRoaXMucXVlcnlQYXJhbXM7CiAgICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5a+85Ye6KOW4puafpeivouWPguaVsCnmiYDmnInpobnnm67kv6Hmga/mlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gZXhwb3J0SW5mbyhfcXVlcnlQYXJhbXMpOwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICBfdGhpczcuZG93bmxvYWQocmVzcG9uc2UubXNnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICAgIH0KICAgIH0sCgogICAgLyoq5p+l55yL6ZmE5Lu2KiovCiAgICB2aWV3QW5uZXg6IGZ1bmN0aW9uIHZpZXdBbm5leChyb3cpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leChyb3cuYW5uZXhOYW1lLCByb3cuYW5uZXhQYXRoKTsKICAgICAgdGhpcy51cGxvYWQub3BlbiA9IHRydWU7IC8vIHRoaXMudXBsb2FkUHJvamVjdC50aXRsZSA9ICLpobnnm67lr7zlhaUiOwogICAgICAvLyB0aGlzLnVwbG9hZFByb2plY3Qub3BlbiA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlUHJldmlldzogZnVuY3Rpb24gaGFuZGxlUHJldmlldyhmaWxlKSB7CiAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKTsKICAgICAgYS5kb3dubG9hZCA9IGZpbGUubmFtZTsKICAgICAgYS50YXJnZXQgPSAnX2JsYW5rJzsKICAgICAgYS5ocmVmID0gZmlsZS51cmw7CiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgIGNvbnNvbGUubG9nKGZpbGUubmFtZSk7CiAgICB9LAogICAgaGFuZGxlX3JlbW92ZTogZnVuY3Rpb24gaGFuZGxlX3JlbW92ZShmaWxlLCBmaWxlTGlzdCwgdHlwZSkgewogICAgICB2YXIgX3RtcCA9IHRoaXMudXBsb2FkLmZpbGVMaXN0OwoKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IF90bXAubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBpZiAoX3RtcFtpXS5uYW1lID0gZmlsZS5uYW1lKSB7CiAgICAgICAgICBfdG1wLnNwbGljZShpLCAxKTsKCiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIDsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBfdG1wOwogICAgICB2YXIgYSA9IFtdLAogICAgICAgICAgYiA9IFtdOwogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7CiAgICAgICAgdmFyIHVybCA9IHNbJ3VybCddOwogICAgICAgIHVybCA9IHVybC5yZXBsYWNlKHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEksICcnKTsKICAgICAgICBhLnB1c2goc1snbmFtZSddKTsKICAgICAgICBiLnB1c2godXJsKTsKICAgICAgfSk7CiAgICAgIHRoaXMuZm9ybS5hbm5leE5hbWUgPSBKU09OLnN0cmluZ2lmeShhKTsKICAgICAgdGhpcy5mb3JtLmFubmV4UGF0aCA9IEpTT04uc3RyaW5naWZ5KGIpOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOS4reWkhOeQhgogICAgaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVGaWxlVXBsb2FkUHJvZ3Jlc3MoZXZlbnQsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkLmlzVXBsb2FkaW5nID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlofku7bkuIrkvKDmiJDlip/lpITnkIYKICAgIGhhbmRsZUZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVGaWxlU3VjY2VzcyhyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQuaXNVcGxvYWRpbmcgPSBmYWxzZTsKICAgICAgdmFyIGEgPSBbXSwKICAgICAgICAgIGIgPSBbXTsKCiAgICAgIHRyeSB7CiAgICAgICAgYSA9IEpTT04ucGFyc2UodGhpcy5mb3JtLmFubmV4TmFtZSk7CiAgICAgICAgYiA9IEpTT04ucGFyc2UodGhpcy5mb3JtLmFubmV4UGF0aCk7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBhID0gW107CiAgICAgICAgYiA9IFtdOwogICAgICB9CgogICAgICBhLnB1c2gocmVzcG9uc2UuZmlsZU5hbWUpOwogICAgICBiLnB1c2gocmVzcG9uc2UudXJsKTsKICAgICAgdGhpcy5mb3JtLmFubmV4TmFtZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0uYW5uZXhQYXRoID0gSlNPTi5zdHJpbmdpZnkoYik7IC8vICB0aGlzLmZvcm0uYW5uZXhOYW1lID0gcmVzcG9uc2UuZmlsZU5hbWU7CiAgICAgIC8vICB0aGlzLmZvcm0uYW5uZXhQYXRoID0gcmVzcG9uc2UudXJsOwoKICAgICAgdGhpcy5tc2dTdWNjZXNzKHJlc3BvbnNlLm1zZyk7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5Lit5aSE55CGCiAgICBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzKGV2ZW50LCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZFByb2plY3QuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGJlZm9yZVByb2plY3RGaWxlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVQcm9qZWN0RmlsZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBpc0x0MjAwTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMzAwOwoKICAgICAgaWYgKCFpc0x0MjAwTSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWkp+Wwj+S4jeiDvei2hei/hyAyMDBNQiEnKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzTHQyMDBNOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOaIkOWKn+WkhOeQhgogICAgaGFuZGxlUHJvamVjdEZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVN1Y2Nlc3MocmVzcG9uc2UsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5pc1VwbG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRyZWZzLnVwbG9hZFByb2plY3QuY2xlYXJGaWxlcygpOwogICAgICB0aGlzLiRhbGVydChyZXNwb25zZS5tc2csICLlr7zlhaXnu5PmnpwiLCB7CiAgICAgICAgZGFuZ2Vyb3VzbHlVc2VIVE1MU3RyaW5nOiB0cnVlCiAgICAgIH0pOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmj5DkuqTkuIrkvKDmlofku7YKICAgIHN1Ym1pdEZpbGVGb3JtOiBmdW5jdGlvbiBzdWJtaXRGaWxlRm9ybSgpIHsKICAgICAgdGhpcy4kcmVmcy51cGxvYWRQcm9qZWN0LnN1Ym1pdCgpOwogICAgfSwKICAgIGltcG9ydFRlbXBsYXRlOiBmdW5jdGlvbiBpbXBvcnRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CgogICAgICBfaW1wb3J0VGVtcGxhdGUoKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzOC5kb3dubG9hZChyZXNwb25zZS5tc2cpOwogICAgICB9KTsKICAgIH0KICB9Cn07"},null]}