{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\thread-loader\\dist\\cjs.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\TreePanel\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\TreePanel\\index.vue","mtime":1787567871522},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1787309791954},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJUcmVlU2lkZWJhciIsCiAgcHJvcHM6IHsKICAgIC8vIOagkeW9ouaVsOaNrgogICAgdHJlZURhdGE6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfSwKICAgIC8vIOagh+mimAogICAgdGl0bGU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAn5qCR5b2i57uT5p6EJwogICAgfSwKICAgIC8vIOagh+mimOWbvuagh+exu+WQjQogICAgdGl0bGVJY29uQ2xhc3M6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAnZWwtaWNvbi1vZmZpY2UtYnVpbGRpbmcnCiAgICB9LAogICAgLy8g5piv5ZCm5pi+56S65pCc57Si5qGGCiAgICBzaG93U2VhcmNoOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvLyDmkJzntKLmoYbljaDkvY3nrKYKICAgIHNlYXJjaFBsYWNlaG9sZGVyOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogJ+ivt+i+k+WFpeWQjeensCcKICAgIH0sCiAgICAvLyDmmK/lkKbpu5jorqTmlLbotbfkvqfovrnmoI8KICAgIGRlZmF1bHRDb2xsYXBzZWQ6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyDmoJHphY3nva7pobkKICAgIHRyZWVQcm9wczogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjaGlsZHJlbjogImNoaWxkcmVuIiwKICAgICAgICAgIGxhYmVsOiAibGFiZWwiCiAgICAgICAgfTsKICAgICAgfQogICAgfSwKICAgIC8vIOiKgueCueWUr+S4gOagh+ivhuWtl+autQogICAgbm9kZUtleTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICdpZCcKICAgIH0sCiAgICAvLyDmmK/lkKblnKjngrnlh7voioLngrnml7blsZXlvIDmiJbmlLbotbcKICAgIGV4cGFuZE9uQ2xpY2tOb2RlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLy8g5piv5ZCm5pi+56S65aSN6YCJ5qGGCiAgICBzaG93Q2hlY2tib3g6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyDmmK/lkKbkuKXmoLznmoTpgbXlvqrniLblrZDkuI3kupLnm7jlhbPogZQKICAgIGNoZWNrU3RyaWN0bHk6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyDmmK/lkKbpu5jorqTlsZXlvIDmiYDmnInoioLngrkKICAgIGRlZmF1bHRFeHBhbmRBbGw6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyDpu5jorqTlsZXlvIDnmoToioLngrnnmoRrZXnmlbDnu4QKICAgIGRlZmF1bHRFeHBhbmRlZEtleXM6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfSwKICAgIC8vIOm7mOiupOWuveW6pgogICAgZGVmYXVsdFdpZHRoOiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogMjIwCiAgICB9LAogICAgLy8g5pS26LW35pe255qE5a695bqmCiAgICBjb2xsYXBzZWRXaWR0aDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDIwCiAgICB9LAogICAgLy8g5pyA5bCP5a695bqmCiAgICBtaW5XaWR0aDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDE4MAogICAgfSwKICAgIC8vIOacgOWkp+WuveW6pgogICAgbWF4V2lkdGg6IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA0MDAKICAgIH0sCiAgICAvLyDmnKzlnLDlrZjlgqjnmoTlrr3luqZrZXkKICAgIHN0b3JhZ2VLZXk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAndHJlZS1zaWRlYmFyLXdpZHRoJwogICAgfSwKICAgIC8vIOaYr+WQpuWQr+eUqOacrOWcsOWtmOWCqOWuveW6pgogICAgZW5hYmxlU3RvcmFnZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLy8g6Ieq5a6a5LmJ6L+H5ruk5pa55rOVCiAgICBmaWx0ZXJNZXRob2Q6IHsKICAgICAgdHlwZTogRnVuY3Rpb24sCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzZWFyY2hLZXl3b3JkOiAiIiwKICAgICAgY29sbGFwc2VkOiB0aGlzLmRlZmF1bHRDb2xsYXBzZWQsCiAgICAgIHNpZGViYXJXaWR0aDogdGhpcy5kZWZhdWx0Q29sbGFwc2VkID8gdGhpcy5jb2xsYXBzZWRXaWR0aCA6IHRoaXMuZGVmYXVsdFdpZHRoLAogICAgICBpc1Jlc2l6aW5nOiBmYWxzZSwKICAgICAgc3RhcnRYOiAwLAogICAgICBzdGFydFdpZHRoOiAwLAogICAgICBzYXZlV2lkdGhUaW1lcjogbnVsbCwKICAgICAgcmFmSWQ6IG51bGwsCiAgICAgIGlzTG9hZGluZ0Zyb21TdG9yYWdlOiBmYWxzZSwKICAgICAgZXhwYW5kZWRBbGw6IHRoaXMuZGVmYXVsdEV4cGFuZEFsbAogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICAvLyDorqHnrpflvZPliY3mmK/lkKblhajpg6jlsZXlvIAKICAgIGlzRXhwYW5kZWRBbGw6IHsKICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRBbGw7CiAgICAgIH0sCiAgICAgIHNldDogZnVuY3Rpb24gc2V0KHZhbCkgewogICAgICAgIHRoaXMuZXhwYW5kZWRBbGwgPSB2YWw7CiAgICAgIH0KICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICBjb2xsYXBzZWQ6IGZ1bmN0aW9uIGNvbGxhcHNlZChuZXdWYWwsIG9sZFZhbCkgewogICAgICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHsKICAgICAgICB0aGlzLmhhbmRsZUNvbGxhcHNlQ2hhbmdlKG5ld1ZhbCk7CiAgICAgICAgdGhpcy4kZW1pdCgiY29sbGFwc2VkLWNoYW5nZSIsIG5ld1ZhbCk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDnm5HlkKzlhoXpg6jlsZXlvIDnirbmgIHlj5jljJbvvIzop6blj5Hlrp7pmYXmoJHnmoTlsZXlvIAv5pS26LW3CiAgICBleHBhbmRlZEFsbDogZnVuY3Rpb24gZXhwYW5kZWRBbGwobmV3VmFsKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAobmV3VmFsKSB7CiAgICAgICAgICBfdGhpcy5leHBhbmRBbGxOb2RlcygpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpcy5jb2xsYXBzZUFsbE5vZGVzKCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy4kZW1pdCgiZXhwYW5kZWQtYWxsLWNoYW5nZSIsIG5ld1ZhbCk7CiAgICB9LAogICAgLy8g55uR5ZCs5pCc57Si5YWz6ZSu6K+NCiAgICBzZWFyY2hLZXl3b3JkOiBmdW5jdGlvbiBzZWFyY2hLZXl3b3JkKHZhbCkgewogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlUmVmLmZpbHRlcih2YWwpOwogICAgICAgIHRoaXMuJGVtaXQoInNlYXJjaCIsIHZhbCk7CiAgICAgIH0KICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgIHRoaXMuaXNMb2FkaW5nRnJvbVN0b3JhZ2UgPSB0cnVlOwogICAgaWYgKCF0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLmVuYWJsZVN0b3JhZ2UpIHsKICAgICAgdmFyIHNhdmVkV2lkdGggPSB0aGlzLmdldFNhdmVkV2lkdGgoKTsKICAgICAgaWYgKHNhdmVkV2lkdGggIT09IG51bGwpIHsKICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHNhdmVkV2lkdGg7CiAgICAgIH0KICAgIH0KICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMyLmlzTG9hZGluZ0Zyb21TdG9yYWdlID0gZmFsc2U7CiAgICB9KTsKICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsKSB7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczIuZXhwYW5kQWxsTm9kZXMoKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgdGhpcy5jbGVhbnVwKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvLyDoioLngrnov4fmu6Tmlrnms5UKICAgIGZpbHRlck5vZGVNZXRob2Q6IGZ1bmN0aW9uIGZpbHRlck5vZGVNZXRob2QodmFsdWUsIGRhdGEpIHsKICAgICAgaWYgKHRoaXMuZmlsdGVyTWV0aG9kKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyTWV0aG9kKHZhbHVlLCBkYXRhKTsKICAgICAgfQogICAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGRhdGEubGFiZWwgJiYgZGF0YS5sYWJlbC5pbmRleE9mKHZhbHVlKSAhPT0gLTE7CiAgICB9LAogICAgLy8g5riF55CG5a6a5pe25Zmo5ZKM5Yqo55S75binCiAgICBjbGVhbnVwOiBmdW5jdGlvbiBjbGVhbnVwKCkgewogICAgICBpZiAodGhpcy5yYWZJZCkgewogICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpOwogICAgICAgIHRoaXMucmFmSWQgPSBudWxsOwogICAgICB9CiAgICAgIGlmICh0aGlzLnNhdmVXaWR0aFRpbWVyKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVdpZHRoVGltZXIpOwogICAgICAgIHRoaXMuc2F2ZVdpZHRoVGltZXIgPSBudWxsOwogICAgICB9CiAgICB9LAogICAgLy8g5aSE55CG5pS26LW3L+WxleW8gOeKtuaAgeWPmOWMlgogICAgaGFuZGxlQ29sbGFwc2VDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUNvbGxhcHNlQ2hhbmdlKGlzQ29sbGFwc2VkKSB7CiAgICAgIGlmIChpc0NvbGxhcHNlZCkgewogICAgICAgIHRoaXMuc2F2ZVdpZHRoVG9TdG9yYWdlKCk7CiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB0aGlzLmNvbGxhcHNlZFdpZHRoOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBzYXZlZFdpZHRoID0gdGhpcy5nZXRTYXZlZFdpZHRoKCk7CiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSBzYXZlZFdpZHRoICE9PSBudWxsID8gc2F2ZWRXaWR0aCA6IHRoaXMuZGVmYXVsdFdpZHRoOwogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+W5L+d5a2Y55qE5a695bqmCiAgICBnZXRTYXZlZFdpZHRoOiBmdW5jdGlvbiBnZXRTYXZlZFdpZHRoKCkgewogICAgICBpZiAoIXRoaXMuZW5hYmxlU3RvcmFnZSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHRyeSB7CiAgICAgICAgdmFyIHNhdmVkV2lkdGggPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpOwogICAgICAgIGlmIChzYXZlZFdpZHRoKSB7CiAgICAgICAgICB2YXIgd2lkdGggPSBwYXJzZUludChzYXZlZFdpZHRoLCAxMCk7CiAgICAgICAgICBpZiAoIWlzTmFOKHdpZHRoKSAmJiB3aWR0aCA+PSB0aGlzLm1pbldpZHRoICYmIHdpZHRoIDw9IHRoaXMubWF4V2lkdGgpIHsKICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNpZGViYXIgd2lkdGggZnJvbSBzdG9yYWdlIHdpdGgga2V5ICIuY29uY2F0KHRoaXMuc3RvcmFnZUtleSwgIjoiKSwgZXJyb3IpOwogICAgICB9CiAgICAgIHJldHVybiBudWxsOwogICAgfSwKICAgIC8vIOS/neWtmOWuveW6puWIsOacrOWcsOWtmOWCqAogICAgc2F2ZVdpZHRoVG9TdG9yYWdlOiBmdW5jdGlvbiBzYXZlV2lkdGhUb1N0b3JhZ2UoKSB7CiAgICAgIGlmICh0aGlzLmNvbGxhcHNlZCB8fCAhdGhpcy5lbmFibGVTdG9yYWdlKSByZXR1cm47CiAgICAgIHRyeSB7CiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCB0aGlzLnNpZGViYXJXaWR0aC50b1N0cmluZygpKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzYXZlIHNpZGViYXIgd2lkdGggdG8gc3RvcmFnZSB3aXRoIGtleSAiLmNvbmNhdCh0aGlzLnN0b3JhZ2VLZXksICI6IiksIGVycm9yKTsKICAgICAgfQogICAgfSwKICAgIC8vIOWIh+aNouS+p+i+ueagj+aUtui1ty/lsZXlvIDnirbmgIEKICAgIHRvZ2dsZUNvbGxhcHNlZDogZnVuY3Rpb24gdG9nZ2xlQ29sbGFwc2VkKCkgewogICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDsKICAgIH0sCiAgICAvLyDliIfmjaLlsZXlvIAv5oqY5Y+g5omA5pyJ6IqC54K5CiAgICB0b2dnbGVFeHBhbmRBbGw6IGZ1bmN0aW9uIHRvZ2dsZUV4cGFuZEFsbCgpIHsKICAgICAgdGhpcy5pc0V4cGFuZGVkQWxsID0gIXRoaXMuaXNFeHBhbmRlZEFsbDsKICAgIH0sCiAgICAvLyDlsZXlvIDmiYDmnInoioLngrkKICAgIGV4cGFuZEFsbE5vZGVzOiBmdW5jdGlvbiBleHBhbmRBbGxOb2RlcygpIHsKICAgICAgaWYgKCF0aGlzLiRyZWZzLnRyZWVSZWYpIHJldHVybjsKICAgICAgdmFyIGFsbE5vZGVzID0gdGhpcy5nZXRBbGxOb2Rlcyh0aGlzLiRyZWZzLnRyZWVSZWYucm9vdCk7CiAgICAgIGFsbE5vZGVzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKICAgICAgICBpZiAobm9kZS5leHBhbmRlZCAhPT0gdW5kZWZpbmVkICYmICFub2RlLmV4cGFuZGVkKSB7CiAgICAgICAgICBub2RlLmV4cGFuZGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPluaJgOacieiKgueCuQogICAgZ2V0QWxsTm9kZXM6IGZ1bmN0aW9uIGdldEFsbE5vZGVzKHJvb3ROb2RlKSB7CiAgICAgIHZhciBub2RlcyA9IFtdOwogICAgICB2YXIgX3RyYXZlcnNlID0gZnVuY3Rpb24gdHJhdmVyc2Uobm9kZSkgewogICAgICAgIGlmICghbm9kZSkgcmV0dXJuOwogICAgICAgIG5vZGVzLnB1c2gobm9kZSk7CiAgICAgICAgaWYgKG5vZGUuY2hpbGROb2RlcyAmJiBub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7CiAgICAgICAgICBub2RlLmNoaWxkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHsKICAgICAgICAgICAgcmV0dXJuIF90cmF2ZXJzZShjaGlsZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIF90cmF2ZXJzZShyb290Tm9kZSk7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0sCiAgICAvLyDmlLbotbfmiYDmnInoioLngrkKICAgIGNvbGxhcHNlQWxsTm9kZXM6IGZ1bmN0aW9uIGNvbGxhcHNlQWxsTm9kZXMoKSB7CiAgICAgIGlmICghdGhpcy4kcmVmcy50cmVlUmVmKSByZXR1cm47CiAgICAgIHZhciBhbGxOb2RlcyA9IHRoaXMuZ2V0QWxsTm9kZXModGhpcy4kcmVmcy50cmVlUmVmLnJvb3QpOwogICAgICBhbGxOb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7CiAgICAgICAgaWYgKG5vZGUuZXhwYW5kZWQgIT09IHVuZGVmaW5lZCAmJiBub2RlLmV4cGFuZGVkKSB7CiAgICAgICAgICBub2RlLmV4cGFuZGVkID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDlpITnkIbliLfmlrDmk43kvZwKICAgIGhhbmRsZVJlZnJlc2g6IGZ1bmN0aW9uIGhhbmRsZVJlZnJlc2goKSB7CiAgICAgIHRoaXMuJGVtaXQoInJlZnJlc2giKTsKICAgIH0sCiAgICAvLyDoioLngrnngrnlh7vkuovku7YKICAgIG9uTm9kZUNsaWNrOiBmdW5jdGlvbiBvbk5vZGVDbGljayhkYXRhLCBub2RlLCBlKSB7CiAgICAgIHRoaXMuJGVtaXQoIm5vZGUtY2xpY2siLCBkYXRhLCBub2RlLCBlKTsKICAgIH0sCiAgICAvLyDlpI3pgInmoYbpgInkuK3kuovku7YKICAgIG9uQ2hlY2s6IGZ1bmN0aW9uIG9uQ2hlY2soZGF0YSwgY2hlY2tlZEluZm8pIHsKICAgICAgdGhpcy4kZW1pdCgiY2hlY2siLCBkYXRhLCBjaGVja2VkSW5mbyk7CiAgICB9LAogICAgLy8g6IqC54K55bGV5byA5LqL5Lu2CiAgICBvbk5vZGVFeHBhbmQ6IGZ1bmN0aW9uIG9uTm9kZUV4cGFuZChkYXRhLCBub2RlLCBlKSB7CiAgICAgIHRoaXMuJGVtaXQoIm5vZGUtZXhwYW5kIiwgZGF0YSwgbm9kZSwgZSk7CiAgICB9LAogICAgLy8g6IqC54K55oqY5Y+g5LqL5Lu2CiAgICBvbk5vZGVDb2xsYXBzZTogZnVuY3Rpb24gb25Ob2RlQ29sbGFwc2UoZGF0YSwgbm9kZSwgZSkgewogICAgICB0aGlzLiRlbWl0KCJub2RlLWNvbGxhcHNlIiwgZGF0YSwgbm9kZSwgZSk7CiAgICB9LAogICAgLy8g5pCc57Si5aSE55CGCiAgICBvblNlYXJjaDogZnVuY3Rpb24gb25TZWFyY2goKSB7CiAgICAgIC8vIOaQnOe0oumAu+i+keW3suWcqCB3YXRjaCDkuK3lpITnkIYKICAgIH0sCiAgICAvLyDorr7nva7lvZPliY3pgInkuK3nmoToioLngrkKICAgIHNldEN1cnJlbnRLZXk6IGZ1bmN0aW9uIHNldEN1cnJlbnRLZXkoa2V5KSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVSZWYpIHsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVSZWYuc2V0Q3VycmVudEtleShrZXkpOwogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+W5b2T5YmN6YCJ5Lit55qE6IqC54K5CiAgICBnZXRDdXJyZW50Tm9kZTogZnVuY3Rpb24gZ2V0Q3VycmVudE5vZGUoKSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVSZWYpIHsKICAgICAgICByZXR1cm4gdGhpcy4kcmVmcy50cmVlUmVmLmdldEN1cnJlbnROb2RlKCk7CiAgICAgIH0KICAgICAgcmV0dXJuIG51bGw7CiAgICB9LAogICAgLy8g6I635Y+W5b2T5YmN6YCJ5Lit55qE6IqC54K555qEa2V5CiAgICBnZXRDdXJyZW50S2V5OiBmdW5jdGlvbiBnZXRDdXJyZW50S2V5KCkgewogICAgICBpZiAodGhpcy4kcmVmcy50cmVlUmVmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJHJlZnMudHJlZVJlZi5nZXRDdXJyZW50S2V5KCk7CiAgICAgIH0KICAgICAgcmV0dXJuIG51bGw7CiAgICB9LAogICAgLy8g6K6+572u6YCJ5Lit55qE6IqC54K5a2V5c++8iOWkjemAieahhu+8iQogICAgc2V0Q2hlY2tlZEtleXM6IGZ1bmN0aW9uIHNldENoZWNrZWRLZXlzKGtleXMpIHsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZiAmJiB0aGlzLnNob3dDaGVja2JveCkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZVJlZi5zZXRDaGVja2VkS2V5cyhrZXlzKTsKICAgICAgfQogICAgfSwKICAgIC8vIOiOt+WPlumAieS4reeahOiKgueCuWtleXPvvIjlpI3pgInmoYbvvIkKICAgIGdldENoZWNrZWRLZXlzOiBmdW5jdGlvbiBnZXRDaGVja2VkS2V5cygpIHsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZiAmJiB0aGlzLnNob3dDaGVja2JveCkgewogICAgICAgIHJldHVybiB0aGlzLiRyZWZzLnRyZWVSZWYuZ2V0Q2hlY2tlZEtleXMoKTsKICAgICAgfQogICAgICByZXR1cm4gW107CiAgICB9LAogICAgLy8g6I635Y+W6YCJ5Lit55qE6IqC54K577yI5aSN6YCJ5qGG77yJCiAgICBnZXRDaGVja2VkTm9kZXM6IGZ1bmN0aW9uIGdldENoZWNrZWROb2RlcygpIHsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZiAmJiB0aGlzLnNob3dDaGVja2JveCkgewogICAgICAgIHJldHVybiB0aGlzLiRyZWZzLnRyZWVSZWYuZ2V0Q2hlY2tlZE5vZGVzKCk7CiAgICAgIH0KICAgICAgcmV0dXJuIFtdOwogICAgfSwKICAgIC8vIOa4heepuuaQnOe0ogogICAgY2xlYXJTZWFyY2g6IGZ1bmN0aW9uIGNsZWFyU2VhcmNoKCkgewogICAgICB0aGlzLnNlYXJjaEtleXdvcmQgPSAiIjsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZVJlZikgewogICAgICAgIHRoaXMuJHJlZnMudHJlZVJlZi5maWx0ZXIoIiIpOwogICAgICB9CiAgICB9LAogICAgLy8g6L+H5ruk5qCRCiAgICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcih2YWx1ZSkgewogICAgICB0aGlzLnNlYXJjaEtleXdvcmQgPSB2YWx1ZTsKICAgIH0sCiAgICAvLyDlvIDlp4vosIPmlbTlpKflsI8KICAgIHN0YXJ0UmVzaXplOiBmdW5jdGlvbiBzdGFydFJlc2l6ZShlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgdGhpcy5pc1Jlc2l6aW5nID0gdHJ1ZTsKICAgICAgdGhpcy5zdGFydFggPSBlLnR5cGUgPT09ICdtb3VzZWRvd24nID8gZS5jbGllbnRYIDogZS50b3VjaGVzWzBdLmNsaWVudFg7CiAgICAgIHRoaXMuc3RhcnRXaWR0aCA9IHRoaXMuc2lkZWJhcldpZHRoOwogICAgICBpZiAoZS50eXBlID09PSAnbW91c2Vkb3duJykgewogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlUmVzaXplTW92ZSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuc3RvcFJlc2l6ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5oYW5kbGVSZXNpemVNb3ZlLCB7CiAgICAgICAgICBwYXNzaXZlOiBmYWxzZQogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5zdG9wUmVzaXplKTsKICAgICAgfQogICAgICB0aGlzLmRpc2FibGVVc2VyU2VsZWN0KCk7CiAgICB9LAogICAgLy8g5aSE55CG6LCD5pW05aSn5bCP56e75YqoCiAgICBoYW5kbGVSZXNpemVNb3ZlOiBmdW5jdGlvbiBoYW5kbGVSZXNpemVNb3ZlKGUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKSByZXR1cm47CiAgICAgIGlmICh0aGlzLnJhZklkKSB7CiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7CiAgICAgIH0KICAgICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgdmFyIGNsaWVudFggPSBlLnR5cGUgPT09ICdtb3VzZW1vdmUnID8gZS5jbGllbnRYIDogZS50b3VjaGVzWzBdLmNsaWVudFg7CiAgICAgICAgdmFyIGRlbHRhWCA9IGNsaWVudFggLSBfdGhpczMuc3RhcnRYOwogICAgICAgIHZhciBuZXdXaWR0aCA9IF90aGlzMy5zdGFydFdpZHRoICsgZGVsdGFYOwogICAgICAgIHZhciBjbGFtcGVkV2lkdGggPSBNYXRoLm1heChfdGhpczMubWluV2lkdGgsIE1hdGgubWluKF90aGlzMy5tYXhXaWR0aCwgbmV3V2lkdGgpKTsKICAgICAgICBpZiAoTWF0aC5hYnMoY2xhbXBlZFdpZHRoIC0gX3RoaXMzLnNpZGViYXJXaWR0aCkgPj0gMSkgewogICAgICAgICAgX3RoaXMzLnNpZGViYXJXaWR0aCA9IGNsYW1wZWRXaWR0aDsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWBnOatouiwg+aVtOWkp+WwjwogICAgc3RvcFJlc2l6ZTogZnVuY3Rpb24gc3RvcFJlc2l6ZSgpIHsKICAgICAgaWYgKCF0aGlzLmlzUmVzaXppbmcpIHJldHVybjsKICAgICAgdGhpcy5pc1Jlc2l6aW5nID0gZmFsc2U7CiAgICAgIGlmICh0aGlzLnJhZklkKSB7CiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7CiAgICAgICAgdGhpcy5yYWZJZCA9IG51bGw7CiAgICAgIH0KICAgICAgdGhpcy5zdGFydFggPSAwOwogICAgICB0aGlzLnN0YXJ0V2lkdGggPSAwOwogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpOwogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5zdG9wUmVzaXplKTsKICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5oYW5kbGVSZXNpemVNb3ZlKTsKICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLnN0b3BSZXNpemUpOwogICAgICB0aGlzLmVuYWJsZVVzZXJTZWxlY3QoKTsKICAgICAgdGhpcy5zYXZlV2lkdGhUb1N0b3JhZ2UoKTsKICAgIH0sCiAgICAvLyDnpoHnlKjnlKjmiLfpgInmi6kKICAgIGRpc2FibGVVc2VyU2VsZWN0OiBmdW5jdGlvbiBkaXNhYmxlVXNlclNlbGVjdCgpIHsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJ25vbmUnOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3QgPSAnbm9uZSc7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubW96VXNlclNlbGVjdCA9ICdub25lJzsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tc1VzZXJTZWxlY3QgPSAnbm9uZSc7CiAgICB9LAogICAgLy8g5ZCv55So55So5oi36YCJ5oupCiAgICBlbmFibGVVc2VyU2VsZWN0OiBmdW5jdGlvbiBlbmFibGVVc2VyU2VsZWN0KCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnJzsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0ID0gJyc7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubW96VXNlclNlbGVjdCA9ICcnOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1zVXNlclNlbGVjdCA9ICcnOwogICAgfSwKICAgIC8vIOmHjee9ruWuveW6puWIsOm7mOiupOWAvAogICAgcmVzZXRXaWR0aDogZnVuY3Rpb24gcmVzZXRXaWR0aCgpIHsKICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB0aGlzLmRlZmF1bHRXaWR0aDsKICAgICAgdGhpcy5zYXZlV2lkdGhUb1N0b3JhZ2UoKTsKICAgIH0sCiAgICAvLyDojrflj5blvZPliY3lrr3luqYKICAgIGdldEN1cnJlbnRXaWR0aDogZnVuY3Rpb24gZ2V0Q3VycmVudFdpZHRoKCkgewogICAgICByZXR1cm4gdGhpcy5zaWRlYmFyV2lkdGg7CiAgICB9LAogICAgLy8g6K6+572u5a695bqmCiAgICBzZXRXaWR0aDogZnVuY3Rpb24gc2V0V2lkdGgod2lkdGgpIHsKICAgICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicgJiYgd2lkdGggPj0gdGhpcy5taW5XaWR0aCAmJiB3aWR0aCA8PSB0aGlzLm1heFdpZHRoKSB7CiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB3aWR0aDsKICAgICAgICBpZiAoIXRoaXMuY29sbGFwc2VkKSB7CiAgICAgICAgICB0aGlzLnNhdmVXaWR0aFRvU3RvcmFnZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTs="},null]}