{"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-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\control\\HtTreeselect.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\control\\HtTreeselect.vue","mtime":1733309211704},{"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-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"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-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmRvdC1hbGwuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5zdGlja3kuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc2VhcmNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB1dGlscyBmcm9tICJAL3V0aWxzLmpzIjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJodC1zZWxlY3QiLAogIHByb3BzOiBbInZhbGlkYXRlIiwgInZhbHVlIiwgIm5hbWUiLCAicGVybWlzc2lvbiIsICJtdWx0aXBsZSIsICJzZWxlY3RsaXN0IiwgImxpbmthZ2UiLCAiZ2FuZ2VkIiwgInRvb2x0aXBwbGFjZW1lbnQiLCAiZmlsdGVyYWJsZSIsICJhbGxvd0NyZWF0ZSIsICJzdHlsZXMiXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaW5wdXRWYWw6IFtdLAogICAgICBpbnB1dFZhbG5ldzogIiIsCiAgICAgIGNvbmZpZzoge30sCiAgICAgIHRvdGFsOiAxMCwKICAgICAgcGFnZVNpemU6IDUsCiAgICAgIGN1cnJlbnRQYWdlOiAxLAogICAgICBvcHRpb25zOiBbXSwKICAgICAgdGVtcG9wdGlvbnM6IFtdLAogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogImNoaWxkcmVuIiwKICAgICAgICBsYWJlbDogInZhbHVlIgogICAgICB9CiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGlucHV0VmFsOiBmdW5jdGlvbiBpbnB1dFZhbChuZXdWYWwsIG9sZFZhbCkgewogICAgICB0aGlzLiRlbWl0KCJpbnB1dCIsIG5ld1ZhbCk7CiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgaW5wdXRXcml0ZWFibGU6IGZ1bmN0aW9uIGlucHV0V3JpdGVhYmxlKCkgewogICAgICByZXR1cm4gdXRpbHMuZ2V0V3JpdGVhYmxlKHRoaXMucGVybWlzc2lvbik7CiAgICB9LAogICAgaW5wdXRWYWxpZGF0ZTogZnVuY3Rpb24gaW5wdXRWYWxpZGF0ZSgpIHsKICAgICAgdmFyIHZhbGlkYXRlT2JqID0gdGhpcy4kc3RvcmUuc3RhdGUuaW5kZXgudmFsaWRhdGU7CiAgICAgIHJldHVybiB1dGlscy5hZGRSZXF1aXJlZE9yTm90KHRoaXMucGVybWlzc2lvbiwgdGhpcy52YWxpZGF0ZSwgdmFsaWRhdGVPYmosIHRoaXMpOwogICAgfSwKICAgIGlucHV0TmFtZTogZnVuY3Rpb24gaW5wdXROYW1lKCkgewogICAgICB2YXIgbGFiZWxkZXNjID0gIiI7CiAgICAgIGlmICh0aGlzLiRzbG90cyAmJiB0aGlzLiRzbG90cy5sYWJlbGRlc2MgJiYgdGhpcy4kc2xvdHMubGFiZWxkZXNjWzBdLmNoaWxkcmVuICYmIHRoaXMuJHNsb3RzLmxhYmVsZGVzY1swXS5jaGlsZHJlblswXS50ZXh0KSB7CiAgICAgICAgbGFiZWxkZXNjID0gdGhpcy4kc2xvdHMubGFiZWxkZXNjWzBdLmNoaWxkcmVuWzBdLnRleHQ7CiAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IHRoaXMubmFtZSA6IHV0aWxzLmdldE5hbWUoKSArICItIiArIGxhYmVsZGVzYzsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gdGhpcy5uYW1lIDogdXRpbHMuZ2V0TmFtZSgpOwogICAgICB9CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy5vcHRpb25zID0gdGhpcy5zZWxlY3RsaXN0ID8gdGhpcy5zZWxlY3RsaXN0IDogW107CiAgICB2YXIgX21lID0gdGhpczsKICAgIHZhciBleHAgPSB0aGlzLmxpbmthZ2U7CiAgICBpZiAoZXhwICYmIGV4cC5sZW5ndGggPiAwICYmIHRoaXMuJHBhcmVudC5pc1ZpZXcpIHsKICAgICAgdmFyIHBJbnN0ID0gdXRpbHMuZ2V0T25saW5lRm9ybUluc3RhbmNlKF9tZSk7CiAgICAgIF9tZS50cmFjZXMgPSB7fTsKICAgICAgZXhwLmZvckVhY2goZnVuY3Rpb24gKG0pIHsKICAgICAgICBtLmVmZmVjdC5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7CiAgICAgICAgICB2YXIgcGF0aCA9ICJwZXJtaXNzaW9uLmZpZWxkcy4iLmNvbmNhdChtLnRhcmdldCk7CiAgICAgICAgICB2YXIgb2xkVmFsID0gdXRpbHMuZ2V0VmFsdWVCeVBhdGgocEluc3QsIHBhdGgpOwogICAgICAgICAgX21lLnRyYWNlc1twYXRoXSA9IG9sZFZhbDsKICAgICAgICB9KTsKICAgICAgICBfbWUuJHdhdGNoKCJpbnB1dFZhbCIsIGZ1bmN0aW9uIChuZXdWYWwsIG9sZFZhbCkgewogICAgICAgICAgaWYgKG5ld1ZhbCAhPT0gb2xkVmFsICYmIG0udmFsdWUgPT0gbmV3VmFsKSB7CiAgICAgICAgICAgIG0uZWZmZWN0LmZvckVhY2goZnVuY3Rpb24gKGVmKSB7CiAgICAgICAgICAgICAgX21lLiRzdG9yZS5kaXNwYXRjaCgiaW5kZXgvZGVsVmFsaWRhdGUiKTsKICAgICAgICAgICAgICB2YXIgcCA9ICJwZXJtaXNzaW9uLmZpZWxkcy4iLmNvbmNhdChlZi50YXJnZXQpOwogICAgICAgICAgICAgIHZhciB2YWwgPSBfbWUudHJhY2VzW3BdOwogICAgICAgICAgICAgIGlmIChtLnZhbHVlID09PSBuZXdWYWwpIHsKICAgICAgICAgICAgICAgIHZhbCA9IGVmLnR5cGU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9tZS4kc3RvcmUuZGlzcGF0Y2goImluZGV4L2xpbmthZ2VWYWxpZGF0ZSIsIGVmKTsKICAgICAgICAgICAgICB1dGlscy5zZXRWYWx1ZUJ5UGF0aChwSW5zdCwgcCwgdmFsKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgdmFyIGdhbmdlZCA9IHRoaXMuZ2FuZ2VkOwogICAgLy/liKTmlq3mmK/lkKbmnInlj4LmlbDnu5HlrpoKICAgIGlmIChnYW5nZWQgJiYgZ2FuZ2VkLmJpbmQgJiYgdGhpcy5jb25maWcpIHsKICAgICAgdmFyIGJpbmQgPSBnYW5nZWQuYmluZDsKICAgICAgdmFyIGZvcm1WbSA9IHV0aWxzLmdldE9ubGluZUZvcm1JbnN0YW5jZShfbWUpOwogICAgICBmb3JtVm0uJHdhdGNoKCJkYXRhIiwgZnVuY3Rpb24gKG5ld1ZhbCwgb2xkVmFsKSB7CiAgICAgICAgZm9yICh2YXIga2V5IGluIGJpbmQpIHsKICAgICAgICAgIHZhciBfcEluc3QgPSB1dGlscy5nZXRPbmxpbmVGb3JtSW5zdGFuY2UoX21lKTsKICAgICAgICAgIHZhciB2YWwgPSB1dGlscy5nZXRWYWx1ZUJ5UGF0aChfcEluc3QsIGJpbmRba2V5XSk7CiAgICAgICAgICBfbWUuc2VhcmNoKGZhbHNlLCB2YWwpOwogICAgICAgIH0KICAgICAgfSwgewogICAgICAgIGRlZXA6IHRydWUKICAgICAgfSk7CiAgICB9CgogICAgLy/lm57mmL4KICAgIGlmICh0aGlzLmlucHV0VmFsICYmIHRoaXMuaW5wdXRWYWwuY29uc3RydWN0b3IgPT0gQXJyYXkgJiYgdGhpcy5pbnB1dFZhbC5sZW5ndGggPiAwICYmIHRoaXMuaW5wdXRWYWxuZXcgPT0gIiIgJiYgdGhpcy5zZWxlY3RsaXN0KSB7CiAgICAgIHZhciBpbnB1dFZhbEFyciA9IFtdOwogICAgICBpZiAoISh0aGlzLmlucHV0VmFsIGluc3RhbmNlb2YgQXJyYXkpKSB7CiAgICAgICAgdGhpcy5pbnB1dFZhbCA9IHRoaXMuaW5wdXRWYWwuc3BsaXQoIiwiKTsKICAgICAgfQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5wdXRWYWwubGVuZ3RoOyBpKyspIHsKICAgICAgICBmb3IgKHZhciBhID0gMDsgYSA8IHRoaXMuc2VsZWN0bGlzdC5sZW5ndGg7IGErKykgewogICAgICAgICAgaWYgKHRoaXMuc2VsZWN0bGlzdFthXS5rZXkgPT0gdGhpcy5pbnB1dFZhbFtpXSkgewogICAgICAgICAgICBpbnB1dFZhbEFyci5wdXNoKHRoaXMuc2VsZWN0bGlzdFthXS52YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmlucHV0VmFsbmV3ID0gaW5wdXRWYWxBcnIuam9pbigiLCIpOwogICAgfSBlbHNlIHsKICAgICAgaWYgKHRoaXMuaW5wdXRWYWwgJiYgdGhpcy5pbnB1dFZhbC5sZW5ndGggPiAwICYmIHRoaXMuaW5wdXRWYWwgaW5zdGFuY2VvZiBBcnJheSkgewogICAgICAgIHRoaXMuaW5wdXRWYWwgPSB0aGlzLmlucHV0VmFsLnNwbGl0KCIsIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbnB1dFZhbG5ldyA9IHRoaXMuaW5wdXRWYWw7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuaW5wdXRWYWwgIT0gIiIgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCAhPSAwKSB7CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHRoaXMub3B0aW9ucy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNbX2ldLmtleSA9PSB0aGlzLmlucHV0VmFsKSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWxuZXcgPSB0aGlzLm9wdGlvbnNbX2ldLnZhbHVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuc2VsZWN0bGlzdCA/IHRoaXMuc2VsZWN0bGlzdCA6IFtdOwogICAgLy/liqjmgIHkvKDlhaUKICAgIGlmICh0aGlzLmdhbmdlZCAmJiB0aGlzLmdhbmdlZC5hbGlhcyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoIDwgMSkgewogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgiZm9ybS9nZXRCeUFsaWFzQ3EiLCB0aGlzLmdhbmdlZC5hbGlhcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMyLmNvbmZpZyA9IHJlczsKICAgICAgICBfdGhpczIuc2VhcmNoKCk7CiAgICAgIH0pOwogICAgfQogICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5pbmRleE9mKCJbIikgPT0gMCkgewogICAgICB2YXIgc2VsZWN0VmFsID0gdGhpcy52YWx1ZS5zdWJzdHIoMCwgdGhpcy52YWx1ZS5sZW5ndGggLSAxKTsKICAgICAgc2VsZWN0VmFsID0gc2VsZWN0VmFsLnN1YnN0cigxKTsKICAgICAgaWYgKHNlbGVjdFZhbCA9PT0gIiIpIHsKICAgICAgICB0aGlzLmlucHV0VmFsID0gc2VsZWN0VmFsOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgc2VsZWN0VmFsMiA9IHNlbGVjdFZhbC5zcGxpdCgiLCIpOwogICAgICB2YXIgc2VsZWN0VmFsbmV3ID0gW107CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0VmFsMi5sZW5ndGg7IGkrKykgewogICAgICAgIHNlbGVjdFZhbG5ldy5wdXNoKHNlbGVjdFZhbDJbaV0udHJpbSgpKTsKICAgICAgfQogICAgICB0aGlzLmlucHV0VmFsID0gc2VsZWN0VmFsbmV3OwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5pbnB1dFZhbCA9IHRoaXMudmFsdWU7CiAgICB9CiAgICB0aGlzLiR2YWxpZGF0b3IgPSB0aGlzLiRyb290LiR2YWxpZGF0b3I7CiAgfSwKICBtZXRob2RzOiB7CiAgICBjbGVhcjogZnVuY3Rpb24gY2xlYXIoKSB7CiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7CiAgICAgICAgdGhpcy50ZW1wb3B0aW9ucyA9IFtdOwogICAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHRoaXMuJHJlZnMudHJlZXNlbGVjdEVsVHJlZS5zZXRDaGVja2VkS2V5cyhbXSwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlc2VsZWN0RWxUcmVlLnNldEN1cnJlbnROb2RlKHt9KTsKICAgICAgfQogICAgfSwKICAgIGNsaWNrTmF0aXZlOiBmdW5jdGlvbiBjbGlja05hdGl2ZSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIC8v5Yqo5oCB5Lyg5YWlCiAgICAgIGlmICh0aGlzLmdhbmdlZCAmJiB0aGlzLmdhbmdlZC5hbGlhcyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoIDwgMSkgewogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCJmb3JtL2dldEJ5QWxpYXNDcSIsIHRoaXMuZ2FuZ2VkLmFsaWFzKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMy5jb25maWcgPSByZXM7CiAgICAgICAgICBfdGhpczMuc2VhcmNoKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBzZWxlY3RCbHVyOiBmdW5jdGlvbiBzZWxlY3RCbHVyKHZhbCkgewogICAgICB0aGlzLnNlYXJjaCgpOwogICAgfSwKICAgIGhhbmRsZUNoZWNrQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVDaGVja0NoYW5nZShkYXRhKSB7CiAgICAgIHZhciBjaGVja2VkTm9kZXMgPSB0aGlzLiRyZWZzLnRyZWVzZWxlY3RFbFRyZWUuZ2V0Q2hlY2tlZE5vZGVzKCk7CiAgICAgIHRoaXMuaW5wdXRWYWwgPSBbXTsKICAgICAgdGhpcy50ZW1wb3B0aW9ucyA9IGNoZWNrZWROb2RlczsKICAgICAgdmFyIF9pdGVyYXRvciA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKGNoZWNrZWROb2RlcyksCiAgICAgICAgX3N0ZXA7CiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciBfZGF0YSA9IF9zdGVwLnZhbHVlOwogICAgICAgICAgdGhpcy5pbnB1dFZhbC5wdXNoKF9kYXRhLmtleSk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3IuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvci5mKCk7CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVOb2RlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZU5vZGVDbGljayhkYXRhKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHsKICAgICAgICB0aGlzLmlucHV0VmFsID0gZGF0YS52YWx1ZTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVzZWxlY3QuYmx1cigpOwogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM0LiR2YWxpZGF0b3IudmFsaWRhdGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGZpbHRlck5vZGU6IGZ1bmN0aW9uIGZpbHRlck5vZGUodmFsdWUsIGRhdGEpIHsKICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBkYXRhLnZhbHVlLmluZGV4T2YodmFsdWUpICE9PSAtMTsKICAgIH0sCiAgICBmaWx0ZXJNZXRob2Q6IGZ1bmN0aW9uIGZpbHRlck1ldGhvZChxdWVyeSkgewogICAgICB0aGlzLiRyZWZzLnRyZWVzZWxlY3RFbFRyZWUuZmlsdGVyKHF1ZXJ5KTsKICAgIH0sCiAgICByZW1vdGVNZXRob2Q6IGZ1bmN0aW9uIHJlbW90ZU1ldGhvZCh2YWwpIHsKICAgICAgaWYgKHZhbCkgewogICAgICAgIHRoaXMuc2VhcmNoKGZhbHNlLCB2YWwpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMucGFyYW0gPSAiIjsKICAgICAgICB0aGlzLnNlYXJjaCgpOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ3VycmVudENoYW5nZTogZnVuY3Rpb24gaGFuZGxlQ3VycmVudENoYW5nZShjdXJyZW50UGFnZSkgewogICAgICB0aGlzLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2U7CiAgICAgIHRoaXMuc2VhcmNoKGN1cnJlbnRQYWdlKTsKICAgIH0sCiAgICBzZWFyY2g6IGZ1bmN0aW9uIHNlYXJjaChjdXJyZW50UGFnZSwgcGFyYW0pIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5jb25maWcpIHJldHVybjsKICAgICAgdmFyIHN0ciA9IHRoaXMuY29uZmlnOwogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB2YXIgZ2FuZ2VkID0gdGhpcy5nYW5nZWQ7CiAgICAgIHRoaXMucGFnZVNpemUgPSBzdHIucGFnZVNpemU7CiAgICAgIC8vIGlmKHN0ci5uZWVkUGFnZSA9PT0gMSl7CiAgICAgIHZhciBwYWdlQmVhbiA9IHsKICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UgPyBjdXJyZW50UGFnZSA6IDEsCiAgICAgICAgICBwYWdlU2l6ZTogc3RyLnBhZ2VTaXplLAogICAgICAgICAgc2hvd1RvdGFsOiAidHJ1ZSIKICAgICAgICB9CiAgICAgIH07CiAgICAgIGlmIChwYXJhbSkgewogICAgICAgIGlmIChzdHIuZHNUeXBlID09ICJkYXRhU291cmNlIikgewogICAgICAgICAgdmFyIEJhc2U2NCA9IHJlcXVpcmUoImpzLWJhc2U2NCIpLkJhc2U2NDsKICAgICAgICAgIHN0ci5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlID8gY3VycmVudFBhZ2UgOiAxOwogICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGdhbmdlZC5iaW5kKSA9PT0gInt9IikgewogICAgICAgICAgICBzdHIucXVlcnlEYXRhID0gQmFzZTY0LmVuY29kZShKU09OLnN0cmluZ2lmeShbewogICAgICAgICAgICAgIGtleTogZ2FuZ2VkLnZhbHVlQmluZCwKICAgICAgICAgICAgICB2YWx1ZTogcGFyYW0KICAgICAgICAgICAgfV0pKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhciBxdWVyeURhdGEgPSBbXTsKICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGdhbmdlZC5iaW5kKSB7CiAgICAgICAgICAgICAgdmFyIHBJbnN0ID0gdXRpbHMuZ2V0T25saW5lRm9ybUluc3RhbmNlKF90aGlzKTsKICAgICAgICAgICAgICB2YXIgdmFsID0gdXRpbHMuZ2V0VmFsdWVCeVBhdGgocEluc3QsIGdhbmdlZC5iaW5kW2tleV0pOwogICAgICAgICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgICAgICAgIHF1ZXJ5RGF0YS5wdXNoKHsKICAgICAgICAgICAgICAgICAga2V5OiBrZXksCiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBxdWVyeURhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgIGtleToga2V5LAogICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyYW0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBzdHIucXVlcnlEYXRhID0gQmFzZTY0LmVuY29kZShKU09OLnN0cmluZ2lmeShxdWVyeURhdGEpKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIHRlbXBsYXRlUGEgPSB0aGlzLmNvbmZpZy5kYXRhUGFyYW07CiAgICAgICAgICBpZiAodGhpcy5jb25maWcucmVxdWVzdFR5cGUgPT0gIlBPU1QiICYmIHRlbXBsYXRlUGEpIHsKICAgICAgICAgICAgdmFyIGNvbmRpdGlvbmZpZWxkID0gSlNPTi5wYXJzZShzdHIuY29uZGl0aW9uZmllbGQpOwogICAgICAgICAgICBjb25kaXRpb25maWVsZC5mb3JFYWNoKGZ1bmN0aW9uIChlbGUpIHsKICAgICAgICAgICAgICB2YXIgcEluc3QgPSB1dGlscy5nZXRPbmxpbmVGb3JtSW5zdGFuY2UoX3RoaXMpOwogICAgICAgICAgICAgIHZhciB2YWwgPSB1dGlscy5nZXRWYWx1ZUJ5UGF0aChwSW5zdCwgZ2FuZ2VkLmJpbmRbZWxlLmZpZWxkXSk7CiAgICAgICAgICAgICAgaWYgKHZhbCkgewogICAgICAgICAgICAgICAgdGVtcGxhdGVQYSA9IHRlbXBsYXRlUGEucmVwbGFjZShuZXcgUmVnRXhwKCJcXHsiICsgZWxlLmZpZWxkICsgIlxcfSIsICJnIiksIHZhbCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRlbXBsYXRlUGEgPSB0ZW1wbGF0ZVBhLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFx7IiArIGVsZS5maWVsZCArICJcXH0iLCAiZyIpLCBwYXJhbSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7fQogICAgICAgICAgc3RyLnBhZ2VCZWFuID0gdXRpbHMucGFyc2VUb0pzb24odGVtcGxhdGVQYSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHN0ci5wYWdlQmVhbiA9IHBhZ2VCZWFuOwogICAgICAgIHN0ci5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlID8gY3VycmVudFBhZ2UgOiAxOwogICAgICAgIHN0ci5xdWVyeURhdGEgPSAiIjsKICAgICAgfQogICAgICAvL30KICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goImZvcm0vc2VsZWN0UXVlcnkiLCBzdHIpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChfdGhpczUuY29uZmlnICYmIF90aGlzNS5jb25maWcuZHNUeXBlID09PSAicmVzdGZ1bCIpIHsKICAgICAgICAgIF90aGlzLm9wdGlvbnMgPSByZXMucm93czsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgX3RoaXMudG90YWwgPSByZXMudG90YWw7CiAgICAgICAgX3RoaXMub3B0aW9ucyA9IFtdOwogICAgICAgIHJlcy5yb3dzLmZvckVhY2goZnVuY3Rpb24gKG0pIHsKICAgICAgICAgIHZhciBvcHRpb24gPSB7fTsKICAgICAgICAgIGlmIChfdGhpcy5nYW5nZWQudmFsdWVCaW5kKSB7CiAgICAgICAgICAgIG9wdGlvbi5rZXkgPSBtW2dhbmdlZC52YWx1ZUJpbmRdOwogICAgICAgICAgfQogICAgICAgICAgaWYgKF90aGlzLmdhbmdlZC5sYWJlbEJpbmQpIHsKICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0gbVtnYW5nZWQubGFiZWxCaW5kXTsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzLm9wdGlvbnMucHVzaChvcHRpb24pOwogICAgICAgIH0pOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX3RoaXMub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaWYgKF90aGlzLmlucHV0VmFsbmV3ID09IF90aGlzLm9wdGlvbnNbaV0ua2V5KSB7CiAgICAgICAgICAgIF90aGlzLmlucHV0VmFsbmV3ID0gX3RoaXMub3B0aW9uc1tpXS52YWx1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICB9Cn07"},null]}