1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue","mtime":1618565769572},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIGZyb20gIkU6L2JvbWFuLWZyYW13b3JrL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgeyBnZXRHZW5UYWJsZSwgdXBkYXRlR2VuVGFibGUsIGRlbFBvc3QsIHRhYkxpc3QgYXMgX3RhYkxpc3QsIGxpc3RUYWJsZSwgYWRkR2VuVGFibGUsIHNldEdlblRhYmxlLCBkZWxHZW5UYWJsZSwgbGlzdEFsbENvbHVtbnNCeVRhYmxlSWQsIHRhYmxlU3FsLCB6eEltcGxlbWVudCwgZ2V0UmVsb2FkLCBhZGRHZW5UYWJsZUNvbHVtbiwgZGVsR2VuVGFibGVDb2x1bW4sIHNldEdlblRhYmxlQ29sdW1uLCBnZXRHZW5UYWJsZUNvbHVtbiwgcXVyR2VuVGFibGUgfSBmcm9tICJAL2FwaS90b29sL2dlbiI7CmltcG9ydCB7IG9wdGlvbnNlbGVjdCBhcyBnZXREaWN0T3B0aW9uc2VsZWN0IH0gZnJvbSAiQC9hcGkvc3lzdGVtL2RpY3QvdHlwZSI7CmltcG9ydCB7IGxpc3RNZW51IGFzIGdldE1lbnVUcmVlc2VsZWN0IH0gZnJvbSAiQC9hcGkvc3lzdGVtL21lbnUiOwppbXBvcnQgYmFzaWNJbmZvRm9ybSBmcm9tICIuL2Jhc2ljSW5mb0Zvcm0iOwppbXBvcnQgZ2VuSW5mb0Zvcm0gZnJvbSAiLi9nZW5JbmZvRm9ybSI7CmltcG9ydCBTb3J0YWJsZSBmcm9tICdzb3J0YWJsZWpzJzsKdmFyIF90aGlzID0gJyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiR2VuRWRpdCIsCiAgY29tcG9uZW50czogewogICAgYmFzaWNJbmZvRm9ybTogYmFzaWNJbmZvRm9ybSwKICAgIGdlbkluZm9Gb3JtOiBnZW5JbmZvRm9ybQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIF90aGlzID0gdGhpczsKICAgIHJldHVybiB7CiAgICAgIC8vIOWtl+auteS/oeaBrwogICAgICB0YWJsZVNxbERhdGE6IFtdLAogICAgICBjb2x1bUxpc3Q6IFtdLAogICAgICBmb3JlaWduS2V5OiBbXSwKICAgICAgb3BlblpkOiBmYWxzZSwKICAgICAgZm9ybVpkOiB7fSwKICAgICAgcnVsZXNaZDogewogICAgICAgIGNvbHVtbk5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXlrZfmrrXlkI0iLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgY29sdW1uQ29tbWVudDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeWtl+auteaPj+i/sCIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBjb2x1bW5UeXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl54mp55CG57G75Z6LIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIG1hc2s6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXlrZfmrrXmmL7npLrop4TliJkiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgc29ydDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeW6j+WPtyIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBsb2FkaW5nWmQ6ICcnLAogICAgICAvLyDlhbPogZTooagKICAgICAgdGl0bGU6ICIiLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIGZvcm06IHt9LAogICAgICBydWxlczogewogICAgICAgIHJlbGF0aW9uUGFyZW50SWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nlhbPogZTooagiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcmVsYXRpb25DaGlsZElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup5a2X5q61IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJlbGF0aW9uVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeWFs+iBlOadoeS7tiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBwb3N0TGlzdDogW10sCiAgICAgIHRvdGFsOiAxLAogICAgICB0YWJsZUxpc3Q6IHt9LAogICAgICAvLyDlhbPogZTmlrnlvI8KICAgICAgLy8g5YaF5bWM57yW6L6RCiAgICAgIGdlbkxpc3Q6IFtdLAogICAgICBnbGJQYXJhbXM6IHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMAogICAgICB9LAogICAgICAvLyDlhbPogZTooajmn6Xor6Llj4LmlbAKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICByZWxhdGlvblBhcmVudElkOiB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQsCiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAKICAgICAgfSwKICAgICAgLy8g6YCJ5Lit6YCJ6aG55Y2h55qEIG5hbWUKICAgICAgYWN0aXZlTmFtZTogImJhc2ljIiwKICAgICAgLy8g6KGo5qC855qE6auY5bqmCiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gMjQ1ICsgInB4IiwKICAgICAgLy8g6KGo5L+h5oGvCiAgICAgIHRhYmxlczogW10sCiAgICAgIC8vIOihqOWIl+S/oeaBrwogICAgICBjbG91bW5zOiBbXSwKICAgICAgLy8g5a2X5YW45L+h5oGvCiAgICAgIGRpY3RPcHRpb25zOiBbXSwKICAgICAgLy8g6I+c5Y2V5L+h5oGvCiAgICAgIG1lbnVzOiBbXSwKICAgICAgLy8g6KGo6K+m57uG5L+h5oGvCiAgICAgIGluZm86IHt9LAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgaWRzMTogW10sCiAgICAgIC8vIOmdnuWNleS4quemgeeUqAogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIHNpbmdsZTE6IHRydWUsCiAgICAgIC8vIOmdnuWkmuS4quemgeeUqAogICAgICBtdWx0aXBsZTogdHJ1ZSwKICAgICAgbXVsdGlwbGUxOiB0cnVlLAogICAgICAvLyDlhbPogZTmlrnlvI8KICAgICAgcmVsYXRpb25UeXBlOiBbXSwKICAgICAgLy8g5YaF5bWM57yW6L6RCiAgICAgIGVtYmVkRWRpdDogW10KICAgIH07CiAgfSwKICBmaWx0ZXJzOiB7CiAgICB6ZEZuOiBmdW5jdGlvbiB6ZEZuKGRhdGEpIHsKICAgICAgdmFyIGlzID0gJyc7CgogICAgICB2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoX3RoaXMuY29sdW1MaXN0KSwKICAgICAgICAgIF9zdGVwOwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKF9pdGVyYXRvci5zKCk7ICEoX3N0ZXAgPSBfaXRlcmF0b3IubigpKS5kb25lOykgewogICAgICAgICAgdmFyIGl0ZW0gPSBfc3RlcC52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5jb2x1bW5JZCA9PSBkYXRhKSB7CiAgICAgICAgICAgIGlzID0gaXRlbS5jb2x1bW5OYW1lOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2l0ZXJhdG9yLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IuZigpOwogICAgICB9CgogICAgICByZXR1cm4gaXM7CiAgICB9LAogICAgcmVsYXRpb25UeXBlRm46IGZ1bmN0aW9uIHJlbGF0aW9uVHlwZUZuKGRhdGEpIHsKICAgICAgdmFyIGlzID0gJyc7CgogICAgICB2YXIgX2l0ZXJhdG9yMiA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKF90aGlzLnJlbGF0aW9uVHlwZSksCiAgICAgICAgICBfc3RlcDI7CgogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yMi5zKCk7ICEoX3N0ZXAyID0gX2l0ZXJhdG9yMi5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgaXRlbSA9IF9zdGVwMi52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5kaWN0VmFsdWUgPT0gZGF0YSkgewogICAgICAgICAgICBpcyA9IGl0ZW0uZGljdExhYmVsOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2l0ZXJhdG9yMi5lKGVycik7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgX2l0ZXJhdG9yMi5mKCk7CiAgICAgIH0KCiAgICAgIHJldHVybiBpczsKICAgIH0sCiAgICBlbWJlZEVkaXRGbjogZnVuY3Rpb24gZW1iZWRFZGl0Rm4oZGF0YSkgewogICAgICB2YXIgaXMgPSAnJzsKCiAgICAgIHZhciBfaXRlcmF0b3IzID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoX3RoaXMuZW1iZWRFZGl0KSwKICAgICAgICAgIF9zdGVwMzsKCiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IzLnMoKTsgIShfc3RlcDMgPSBfaXRlcmF0b3IzLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciBpdGVtID0gX3N0ZXAzLnZhbHVlOwoKICAgICAgICAgIGlmIChpdGVtLmRpY3RWYWx1ZSA9PSBkYXRhKSB7CiAgICAgICAgICAgIGlzID0gaXRlbS5kaWN0TGFiZWw7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3IzLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IzLmYoKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzOwogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgIHZhciB0YWJsZUlkID0gdGhpcy4kcm91dGUucGFyYW1zICYmIHRoaXMuJHJvdXRlLnBhcmFtcy50YWJsZUlkOwoKICAgIGlmICh0YWJsZUlkKSB7CiAgICAgIC8vIOiOt+WPluihqOivpue7huS/oeaBrwogICAgICBnZXRHZW5UYWJsZSh0YWJsZUlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczIuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgX3RoaXMyLmluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgIF90aGlzMi50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgIH0pOyAvL+afpeivouaVsOaNruW6k3NxbAoKICAgICAgdGFibGVTcWwodGFibGVJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5kYXRhKSB7CiAgICAgICAgICBfdGhpczIudGFibGVTcWxEYXRhID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgLyoqIOafpeivouWtl+WFuOS4i+aLieWIl+ihqCAqLwoKICAgICAgZ2V0RGljdE9wdGlvbnNlbGVjdCgpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLmRpY3RPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7IC8vIOWFs+iBlOWtl+autQoKICAgICAgbGlzdEFsbENvbHVtbnNCeVRhYmxlSWQoewogICAgICAgIHRhYmxlSWQ6IHRhYmxlSWQKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczIuY29sdW1MaXN0ID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7IC8vIOWFs+iBlOihqOaVsOaNrgoKICAgICAgbGlzdFRhYmxlKHRoaXMuZ2xiUGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi50YWJsZUxpc3QgPSByZXNwb25zZTsKICAgICAgfSk7CiAgICAgIC8qKiDmn6Xor6Loj5zljZXkuIvmi4nliJfooaggKi8KICAgICAgLy8gZ2V0TWVudVRyZWVzZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgLy8gICB0aGlzLm1lbnVzID0gdGhpcy5oYW5kbGVUcmVlKHJlc3BvbnNlLmRhdGEsICJtZW51SWQiKTsKICAgICAgLy8gfSk7CiAgICAgIC8vIOWFs+iBlOaWueW8jwoKICAgICAgdGhpcy5nZXREaWN0cygicmVsYXRpb25fdHlwZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLnJlbGF0aW9uVHlwZSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOyAvLyDlhoXltYznvJbovpEKCiAgICAgIHRoaXMuZ2V0RGljdHMoImVtYmVkX2VkaXQiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi5lbWJlZEVkaXQgPSByZXNwb25zZS5kYXRhOwogICAgICB9KTsKICAgIH0KCiAgICB0aGlzLnRhYkxpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHN1Ym1pdEZvcm1aZDogZnVuY3Rpb24gc3VibWl0Rm9ybVpkKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHRoaXMuJHJlZnNbImZvcm1aZCJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgdmFyIHRhYmxlSWQgPSBfdGhpczMuJHJvdXRlLnBhcmFtcyAmJiBfdGhpczMuJHJvdXRlLnBhcmFtcy50YWJsZUlkOwogICAgICAgICAgX3RoaXMzLmZvcm1aZC50YWJsZUlkID0gdGFibGVJZDsKCiAgICAgICAgICBpZiAoX3RoaXMzLmZvcm1aZC5jb2x1bW5JZCAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgc2V0R2VuVGFibGVDb2x1bW4oX3RoaXMzLmZvcm1aZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBfdGhpczMubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzMy5vcGVuWmQgPSBmYWxzZTsgLy8g6I635Y+W6KGo6K+m57uG5L+h5oGvCgogICAgICAgICAgICAgIGdldEdlblRhYmxlKHRhYmxlSWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgICAgX3RoaXMzLmNsb3VtbnMgPSByZXMuZGF0YS5yb3dzOwogICAgICAgICAgICAgICAgX3RoaXMzLmluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgICAgICAgICAgX3RoaXMzLnRhYmxlcyA9IHJlcy5kYXRhLnRhYmxlczsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhZGRHZW5UYWJsZUNvbHVtbihfdGhpczMuZm9ybVpkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIF90aGlzMy5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKCiAgICAgICAgICAgICAgX3RoaXMzLm9wZW5aZCA9IGZhbHNlOyAvLyDojrflj5booajor6bnu4bkv6Hmga8KCiAgICAgICAgICAgICAgZ2V0R2VuVGFibGUodGFibGVJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICBfdGhpczMuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgICAgICAgICBfdGhpczMuaW5mbyA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgICAgICAgICBfdGhpczMudGFibGVzID0gcmVzLmRhdGEudGFibGVzOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHN4Q3JlYUJ0bjogZnVuY3Rpb24gc3hDcmVhQnRuKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKCiAgICAgIHZhciB0YWJsZUlkID0gdGhpcy4kcm91dGUucGFyYW1zICYmIHRoaXMuJHJvdXRlLnBhcmFtcy50YWJsZUlkOwogICAgICBnZXRSZWxvYWQoewogICAgICAgIHRhYmxlSWQ6IHRhYmxlSWQsCiAgICAgICAgY3JlYXRlU3FsOiB0aGlzLnRhYmxlU3FsRGF0YS5jcmVhdGVTcWwsCiAgICAgICAgY3JlYXRlTG9nOiB0aGlzLnRhYmxlU3FsRGF0YS5jcmVhdGVMb2csCiAgICAgICAgaWQ6IHRoaXMudGFibGVTcWxEYXRhLmlkCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNC5tc2dTdWNjZXNzKCfliLfmlrDmiJDlip8nKTsgLy/mn6Xor6LmlbDmja7lupNzcWwKCgogICAgICAgIHRhYmxlU3FsKHRhYmxlSWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgaWYgKHJlcy5kYXRhKSB7CiAgICAgICAgICAgIF90aGlzNC50YWJsZVNxbERhdGEgPSByZXMuZGF0YTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgenhDcmVhQnRuOiBmdW5jdGlvbiB6eENyZWFCdG4oKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTmiafooYzliJvlu7ror63lj6U/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB6eEltcGxlbWVudCh7CiAgICAgICAgICB0YWJsZUlkOiBfdGhpcy4kcm91dGUucGFyYW1zICYmIF90aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZCwKICAgICAgICAgIGNyZWF0ZVNxbDogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZVNxbCwKICAgICAgICAgIGNyZWF0ZUxvZzogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZUxvZywKICAgICAgICAgIGlkOiBfdGhpcy50YWJsZVNxbERhdGEuaWQKICAgICAgICB9KTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMubXNnU3VjY2Vzcygn5omn6KGM5oiQ5YqfJyk7CiAgICAgIH0pOwogICAgfSwKICAgIGRiU2VsZWN0ZWRaZDogZnVuY3Rpb24gZGJTZWxlY3RlZFpkKHJvdykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIGlkID0gcm93LmNvbHVtbklkOwogICAgICBnZXRHZW5UYWJsZUNvbHVtbihpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgZGF0YS5mb3JlaWduS2V5ID0gZGF0YS5mb3JlaWduS2V5ID8gZGF0YS5mb3JlaWduS2V5IC0gMCA6ICcnOwogICAgICAgIF90aGlzNS5mb3JtWmQgPSBkYXRhOwogICAgICAgIF90aGlzNS5vcGVuWmQgPSB0cnVlOwogICAgICAgIF90aGlzNS50aXRsZSA9ICLkv67mlLnlrZfmrrXkv6Hmga8iOwogICAgICB9KTsKICAgIH0sCiAgICBkYlNlbGVjdGVkOiBmdW5jdGlvbiBkYlNlbGVjdGVkKHJvdykgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIGlkID0gcm93LmlkOwogICAgICBxdXJHZW5UYWJsZShpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgZGF0YS5yZWxhdGlvblR5cGUgPSBkYXRhLnJlbGF0aW9uVHlwZSArICIiOwogICAgICAgIGRhdGEuZW1iZWRFZGl0ID0gZGF0YS5lbWJlZEVkaXQgKyAiIjsKICAgICAgICBnZXRHZW5UYWJsZShkYXRhLnJlbGF0aW9uUGFyZW50SWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM2Lmdlbkxpc3QgPSByZXMuZGF0YS5yb3dzOwogICAgICAgICAgX3RoaXM2LmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgX3RoaXM2Lm9wZW4gPSB0cnVlOwogICAgICAgICAgX3RoaXM2LnRpdGxlID0gIuS/ruaUueWFs+iBlOihqCI7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIGFkZEdsZm46IGZ1bmN0aW9uIGFkZEdsZm4oKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzNy5mb3JtLmlkICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZXRHZW5UYWJsZShfdGhpczcuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBfdGhpczcubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzNy5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgIF90aGlzNy50YWJMaXN0KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRkR2VuVGFibGUoX3RoaXM3LmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXM3Lm1zZ1N1Y2Nlc3MoIuaWsOWinuaIkOWKnyIpOwoKICAgICAgICAgICAgICBfdGhpczcub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICBfdGhpczcudGFiTGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHJlbGF0aW9uRm46IGZ1bmN0aW9uIHJlbGF0aW9uRm4oZGF0YSkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIGdldEdlblRhYmxlKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC5nZW5MaXN0ID0gcmVzLmRhdGEucm93czsKICAgICAgfSk7CiAgICB9LAogICAgbG9hZE1vcmU6IGZ1bmN0aW9uIGxvYWRNb3JlKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgdmFyIG51bSA9IF90aGlzLnRhYmxlTGlzdC50b3RhbCAlIDEwID09IDAgPyBfdGhpcy50YWJsZUxpc3QudG90YWwgLyAxMCA6IChfdGhpcy50YWJsZUxpc3QudG90YWwgLSBfdGhpcy50YWJsZUxpc3QudG90YWwgJSAxMCkgLyAxMCArIDE7CiAgICAgIGNvbnNvbGUubG9nKG51bSwgMSk7CgogICAgICBpZiAodGhpcy5nbGJQYXJhbXMucGFnZU51bSA8IG51bSkgewogICAgICAgIHRoaXMuZ2xiUGFyYW1zLnBhZ2VOdW0rKzsgLy8g5YWz6IGU6KGo5pWw5o2uCgogICAgICAgIGxpc3RUYWJsZSh0aGlzLmdsYlBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2U7CiAgICAgICAgICBkYXRhLnJvd3MgPSBfdGhpcy50YWJsZUxpc3Qucm93cy5jb25jYXQoZGF0YS5yb3dzKTsKICAgICAgICAgIF90aGlzLnRhYmxlTGlzdCA9IGRhdGE7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB0aGlzLm9wZW5aZCA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0WmQoKTsKICAgIH0sCiAgICAvLyDlhbPogZTooajmlbDmja4KICAgIHRhYkxpc3Q6IGZ1bmN0aW9uIHRhYkxpc3QoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKCiAgICAgIF90YWJMaXN0KHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM5LnBvc3RMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICBfdGhpczkudG90YWwgPSByZXNwb25zZS50b3RhbDsKICAgICAgICBfdGhpczkubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOaWsOWinuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlQWRkX2dsOiBmdW5jdGlvbiBoYW5kbGVBZGRfZ2woKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5vcGVuID0gdHJ1ZTsKICAgICAgdGhpcy50aXRsZSA9ICLmlrDlop7lhbPogZTooagiOwogICAgfSwKICAgIGhhbmRsZURlbF9nbDogZnVuY3Rpb24gaGFuZGxlRGVsX2dsKHJvdykgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CgogICAgICB2YXIgaWRzID0gcm93LmlkIHx8IHRoaXMuaWRzMTsKICAgICAgY29uc29sZS5sb2coaWRzLCAxMjIzKTsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6ZmkaWTkuLoiJyArIGlkcyArICci55qE5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZGVsR2VuVGFibGUoaWRzKTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMxMC50YWJMaXN0KCk7CgogICAgICAgIF90aGlzMTAubXNnU3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIik7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7fTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCiAgICByZXNldFpkOiBmdW5jdGlvbiByZXNldFpkKCkgewogICAgICB0aGlzLmZvcm1aZCA9IHt9OwogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybVpkIik7CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczExID0gdGhpczsKCiAgICAgIHZhciBpc0luRmxhZyA9IDA7CiAgICAgIHZhciBpc091dEZsYWcgPSAwOwogICAgICBjb25zb2xlLmxvZyh0aGlzLmNsb3VtbnMsIDMzMyk7CgogICAgICB2YXIgX2l0ZXJhdG9yNCA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHRoaXMuY2xvdW1ucyksCiAgICAgICAgICBfc3RlcDQ7CgogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yNC5zKCk7ICEoX3N0ZXA0ID0gX2l0ZXJhdG9yNC5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgaXRlbSA9IF9zdGVwNC52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5pc0luID09ICdZJykgewogICAgICAgICAgICBpc0luRmxhZysrOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChpdGVtLmlzT3V0ID09ICdZJykgewogICAgICAgICAgICBpc091dEZsYWcrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvcjQuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvcjQuZigpOwogICAgICB9CgogICAgICBpZiAoaXNJbkZsYWcgPiAxKSB7CiAgICAgICAgdGhpcy5tc2dFcnJvcignIui+k+WFpeWtl+autSLmnIDlpJrlj6rog73pgInmi6nkuIDkuKohJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZiAoaXNPdXRGbGFnID4gMSkgewogICAgICAgIHRoaXMubXNnRXJyb3IoJyLmmL7npLrlrZfmrrUi5pyA5aSa5Y+q6IO96YCJ5oup5LiA5LiqIScpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgdmFyIGJhc2ljRm9ybSA9IHRoaXMuJHJlZnMuYmFzaWNJbmZvLiRyZWZzLmJhc2ljSW5mb0Zvcm07IC8vIGNvbnN0IGdlbkZvcm0gPSB0aGlzLiRyZWZzLmdlbkluZm8uJHJlZnMuZ2VuSW5mb0Zvcm07CgogICAgICBQcm9taXNlLmFsbChbYmFzaWNGb3JtXS5tYXAodGhpcy5nZXRGb3JtUHJvbWlzZSkpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciB2YWxpZGF0ZVJlc3VsdCA9IHJlcy5ldmVyeShmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuICEhaXRlbTsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKHZhbGlkYXRlUmVzdWx0KSB7CiAgICAgICAgICB2YXIgZ2VuVGFibGUgPSBPYmplY3QuYXNzaWduKHt9LCBiYXNpY0Zvcm0ubW9kZWwpOwogICAgICAgICAgZ2VuVGFibGUuY29sdW1ucyA9IF90aGlzMTEuY2xvdW1uczsgLy8gZ2VuVGFibGUucGFyYW1zID0gewogICAgICAgICAgLy8gICB0cmVlQ29kZTogZ2VuVGFibGUudHJlZUNvZGUsCiAgICAgICAgICAvLyAgIHRyZWVOYW1lOiBnZW5UYWJsZS50cmVlTmFtZSwKICAgICAgICAgIC8vICAgdHJlZVBhcmVudENvZGU6IGdlblRhYmxlLnRyZWVQYXJlbnRDb2RlLAogICAgICAgICAgLy8gICBwYXJlbnRNZW51SWQ6IGdlblRhYmxlLnBhcmVudE1lbnVJZAogICAgICAgICAgLy8gfTsKCiAgICAgICAgICB1cGRhdGVHZW5UYWJsZShnZW5UYWJsZSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzMTEubXNnU3VjY2VzcyhyZXMubXNnKTsKCiAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgX3RoaXMxMS5jbG9zZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMxMS5tc2dFcnJvcigi6KGo5Y2V5qCh6aqM5pyq6YCa6L+H77yM6K+36YeN5paw5qOA5p+l5o+Q5Lqk5YaF5a65Iik7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBnZXRGb3JtUHJvbWlzZTogZnVuY3Rpb24gZ2V0Rm9ybVByb21pc2UoZm9ybSkgewogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKICAgICAgICBmb3JtLnZhbGlkYXRlKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIHJlc29sdmUocmVzKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDlhbPpl63mjInpkq4gKi8KICAgIGNsb3NlOiBmdW5jdGlvbiBjbG9zZSgpIHsKICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goInRhZ3NWaWV3L2RlbFZpZXciLCB0aGlzLiRyb3V0ZSk7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBwYXRoOiAiL3Rvb2wvZ2VuIiwKICAgICAgICBxdWVyeTogewogICAgICAgICAgdDogRGF0ZS5ub3coKQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMgPSBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uY29sdW1uSWQ7CiAgICAgIH0pOwogICAgICB0aGlzLnNpbmdsZSA9IHNlbGVjdGlvbi5sZW5ndGggIT0gMTsKICAgICAgdGhpcy5tdWx0aXBsZSA9ICFzZWxlY3Rpb24ubGVuZ3RoOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlMTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlMShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMxID0gc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgICAgdGhpcy5zaW5nbGUxID0gc2VsZWN0aW9uLmxlbmd0aCAhPSAxOwogICAgICB0aGlzLm11bHRpcGxlMSA9ICFzZWxlY3Rpb24ubGVuZ3RoOwogICAgfSwKCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwoKICAgICAgdmFyIGlkcyA9IHJvdy5pZCB8fCB0aGlzLmlkczsKICAgICAgdmFyIHRhYmxlSWQgPSB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQ7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOWtl+autee8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBkZWxHZW5UYWJsZUNvbHVtbihpZHMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAvLyDojrflj5booajor6bnu4bkv6Hmga8KICAgICAgICBnZXRHZW5UYWJsZSh0YWJsZUlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMTIuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgICBfdGhpczEyLmluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgICAgX3RoaXMxMi50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgICAgfSk7CgogICAgICAgIF90aGlzMTIubXNnU3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIik7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0WmQoKTsKICAgICAgdGhpcy5vcGVuWmQgPSB0cnVlOwogICAgICB0aGlzLnRpdGxlID0gIuaWsOWinuWtl+auteS/oeaBryI7CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMTMgPSB0aGlzOwoKICAgIHZhciBlbCA9IHRoaXMuJHJlZnMuZHJhZ1RhYmxlLiRlbC5xdWVyeVNlbGVjdG9yQWxsKCIuZWwtdGFibGVfX2JvZHktd3JhcHBlciA+IHRhYmxlID4gdGJvZHkiKVswXTsKICAgIHZhciBzb3J0YWJsZSA9IFNvcnRhYmxlLmNyZWF0ZShlbCwgewogICAgICBoYW5kbGU6ICIuYWxsb3dEcmFnIiwKICAgICAgb25FbmQ6IGZ1bmN0aW9uIG9uRW5kKGV2dCkgewogICAgICAgIHZhciB0YXJnZXRSb3cgPSBfdGhpczEzLmNsb3VtbnMuc3BsaWNlKGV2dC5vbGRJbmRleCwgMSlbMF07CgogICAgICAgIF90aGlzMTMuY2xvdW1ucy5zcGxpY2UoZXZ0Lm5ld0luZGV4LCAwLCB0YXJnZXRSb3cpOwoKICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBfdGhpczEzLmNsb3VtbnMpIHsKICAgICAgICAgIF90aGlzMTMuY2xvdW1uc1tpbmRleF0uc29ydCA9IHBhcnNlSW50KGluZGV4KSArIDE7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9Cn07"},null]}
|