1 line
16 KiB
JSON
1 line
16 KiB
JSON
{"remainingRequest":"/Users/kang/Gitea/vue-element-admin/node_modules/thread-loader/dist/cjs.js!/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js!/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/kang/Gitea/vue-element-admin/src/views/permission/role.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/kang/Gitea/vue-element-admin/src/views/permission/role.vue","mtime":1754409279873},{"path":"/Users/kang/Gitea/vue-element-admin/babel.config.js","mtime":1754409277597},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/thread-loader/dist/cjs.js","mtime":1754409279608},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js","mtime":1754409277911},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js","mtime":1754409279720}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiL1VzZXJzL2thbmcvR2l0ZWEvdnVlLWVsZW1lbnQtYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gIi9Vc2Vycy9rYW5nL0dpdGVhL3Z1ZS1lbGVtZW50LWFkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyI7CmltcG9ydCBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciBmcm9tICIvVXNlcnMva2FuZy9HaXRlYS92dWUtZWxlbWVudC1hZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlci5qcyI7CmltcG9ydCBfcmVnZW5lcmF0b3IgZnJvbSAiL1VzZXJzL2thbmcvR2l0ZWEvdnVlLWVsZW1lbnQtYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIi9Vc2Vycy9rYW5nL0dpdGVhL3Z1ZS1lbGVtZW50LWFkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgcGF0aCBmcm9tICdwYXRoJzsKaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSAnQC91dGlscyc7CmltcG9ydCB7IGdldFJvdXRlcyBhcyBfZ2V0Um91dGVzLCBnZXRSb2xlcyBhcyBfZ2V0Um9sZXMsIGFkZFJvbGUsIGRlbGV0ZVJvbGUsIHVwZGF0ZVJvbGUgfSBmcm9tICdAL2FwaS9yb2xlJzsKaW1wb3J0IF9pMThuIGZyb20gJ0AvbGFuZyc7CnZhciBkZWZhdWx0Um9sZSA9IHsKICBrZXk6ICcnLAogIG5hbWU6ICcnLAogIGRlc2NyaXB0aW9uOiAnJywKICByb3V0ZXM6IFtdCn07CmV4cG9ydCBkZWZhdWx0IHsKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgcm9sZTogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFJvbGUpLAogICAgICByb3V0ZXM6IFtdLAogICAgICByb2xlc0xpc3Q6IFtdLAogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgZGlhbG9nVHlwZTogJ25ldycsCiAgICAgIGNoZWNrU3RyaWN0bHk6IGZhbHNlLAogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywKICAgICAgICBsYWJlbDogJ3RpdGxlJwogICAgICB9CiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIHJvdXRlc0RhdGE6IGZ1bmN0aW9uIHJvdXRlc0RhdGEoKSB7CiAgICAgIHJldHVybiB0aGlzLnJvdXRlczsKICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICAvLyBNb2NrOiBnZXQgYWxsIHJvdXRlcyBhbmQgcm9sZXMgbGlzdCBmcm9tIHNlcnZlcgogICAgdGhpcy5nZXRSb3V0ZXMoKTsKICAgIHRoaXMuZ2V0Um9sZXMoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldFJvdXRlczogZnVuY3Rpb24gZ2V0Um91dGVzKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgcmVzLCByb3V0ZXM7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5uKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uID0gMTsKICAgICAgICAgICAgICByZXR1cm4gX2dldFJvdXRlcygpOwogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgcmVzID0gX2NvbnRleHQudjsKICAgICAgICAgICAgICBfdGhpcy5zZXJ2aWNlUm91dGVzID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgcm91dGVzID0gX3RoaXMuZ2VuZXJhdGVSb3V0ZXMocmVzLmRhdGEpOwogICAgICAgICAgICAgIF90aGlzLnJvdXRlcyA9IF90aGlzLmkxOG4ocm91dGVzKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hKDIpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBnZXRSb2xlczogZnVuY3Rpb24gZ2V0Um9sZXMoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIHJlczsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQyLm4gPSAxOwogICAgICAgICAgICAgIHJldHVybiBfZ2V0Um9sZXMoKTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHJlcyA9IF9jb250ZXh0Mi52OwogICAgICAgICAgICAgIF90aGlzMi5yb2xlc0xpc3QgPSByZXMuZGF0YTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYSgyKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGkxOG46IGZ1bmN0aW9uIGkxOG4ocm91dGVzKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB2YXIgYXBwID0gcm91dGVzLm1hcChmdW5jdGlvbiAocm91dGUpIHsKICAgICAgICByb3V0ZS50aXRsZSA9IF9pMThuLnQoInJvdXRlLiIuY29uY2F0KHJvdXRlLnRpdGxlKSk7CiAgICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7CiAgICAgICAgICByb3V0ZS5jaGlsZHJlbiA9IF90aGlzMy5pMThuKHJvdXRlLmNoaWxkcmVuKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvdXRlOwogICAgICB9KTsKICAgICAgcmV0dXJuIGFwcDsKICAgIH0sCiAgICAvLyBSZXNoYXBlIHRoZSByb3V0ZXMgc3RydWN0dXJlIHNvIHRoYXQgaXQgbG9va3MgdGhlIHNhbWUgYXMgdGhlIHNpZGViYXIKICAgIGdlbmVyYXRlUm91dGVzOiBmdW5jdGlvbiBnZW5lcmF0ZVJvdXRlcyhyb3V0ZXMpIHsKICAgICAgdmFyIGJhc2VQYXRoID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnLyc7CiAgICAgIHZhciByZXMgPSBbXTsKICAgICAgdmFyIF9pdGVyYXRvciA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHJvdXRlcyksCiAgICAgICAgX3N0ZXA7CiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciByb3V0ZSA9IF9zdGVwLnZhbHVlOwogICAgICAgICAgLy8gc2tpcCBzb21lIHJvdXRlCiAgICAgICAgICBpZiAocm91dGUuaGlkZGVuKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgdmFyIG9ubHlPbmVTaG93aW5nQ2hpbGQgPSB0aGlzLm9ubHlPbmVTaG93aW5nQ2hpbGQocm91dGUuY2hpbGRyZW4sIHJvdXRlKTsKICAgICAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiBvbmx5T25lU2hvd2luZ0NoaWxkICYmICFyb3V0ZS5hbHdheXNTaG93KSB7CiAgICAgICAgICAgIHJvdXRlID0gb25seU9uZVNob3dpbmdDaGlsZDsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBkYXRhID0gewogICAgICAgICAgICBwYXRoOiBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHJvdXRlLnBhdGgpLAogICAgICAgICAgICB0aXRsZTogcm91dGUubWV0YSAmJiByb3V0ZS5tZXRhLnRpdGxlCiAgICAgICAgICB9OwoKICAgICAgICAgIC8vIHJlY3Vyc2l2ZSBjaGlsZCByb3V0ZXMKICAgICAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbikgewogICAgICAgICAgICBkYXRhLmNoaWxkcmVuID0gdGhpcy5nZW5lcmF0ZVJvdXRlcyhyb3V0ZS5jaGlsZHJlbiwgZGF0YS5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJlcy5wdXNoKGRhdGEpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2l0ZXJhdG9yLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IuZigpOwogICAgICB9CiAgICAgIHJldHVybiByZXM7CiAgICB9LAogICAgZ2VuZXJhdGVBcnI6IGZ1bmN0aW9uIGdlbmVyYXRlQXJyKHJvdXRlcykgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdmFyIGRhdGEgPSBbXTsKICAgICAgcm91dGVzLmZvckVhY2goZnVuY3Rpb24gKHJvdXRlKSB7CiAgICAgICAgZGF0YS5wdXNoKHJvdXRlKTsKICAgICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHsKICAgICAgICAgIHZhciB0ZW1wID0gX3RoaXM0LmdlbmVyYXRlQXJyKHJvdXRlLmNoaWxkcmVuKTsKICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZGF0YSA9IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoZGF0YSksIF90b0NvbnN1bWFibGVBcnJheSh0ZW1wKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIGRhdGE7CiAgICB9LAogICAgaGFuZGxlQWRkUm9sZTogZnVuY3Rpb24gaGFuZGxlQWRkUm9sZSgpIHsKICAgICAgdGhpcy5yb2xlID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFJvbGUpOwogICAgICBpZiAodGhpcy4kcmVmcy50cmVlKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlLnNldENoZWNrZWROb2RlcyhbXSk7CiAgICAgIH0KICAgICAgdGhpcy5kaWFsb2dUeXBlID0gJ25ldyc7CiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlRWRpdDogZnVuY3Rpb24gaGFuZGxlRWRpdChzY29wZSkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy5kaWFsb2dUeXBlID0gJ2VkaXQnOwogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICB0aGlzLmNoZWNrU3RyaWN0bHkgPSB0cnVlOwogICAgICB0aGlzLnJvbGUgPSBkZWVwQ2xvbmUoc2NvcGUucm93KTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIHZhciByb3V0ZXMgPSBfdGhpczUuZ2VuZXJhdGVSb3V0ZXMoX3RoaXM1LnJvbGUucm91dGVzKTsKICAgICAgICBfdGhpczUuJHJlZnMudHJlZS5zZXRDaGVja2VkTm9kZXMoX3RoaXM1LmdlbmVyYXRlQXJyKHJvdXRlcykpOwogICAgICAgIC8vIHNldCBjaGVja2VkIHN0YXRlIG9mIGEgbm9kZSBub3QgYWZmZWN0cyBpdHMgZmF0aGVyIGFuZCBjaGlsZCBub2RlcwogICAgICAgIF90aGlzNS5jaGVja1N0cmljdGx5ID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKF9yZWYpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHZhciAkaW5kZXggPSBfcmVmLiRpbmRleCwKICAgICAgICByb3cgPSBfcmVmLnJvdzsKICAgICAgdGhpcy4kY29uZmlybSgnQ29uZmlybSB0byByZW1vdmUgdGhlIHJvbGU/JywgJ1dhcm5pbmcnLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdDb25maXJtJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAnQ2FuY2VsJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLm4pIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5uID0gMTsKICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlUm9sZShyb3cua2V5KTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF90aGlzNi5yb2xlc0xpc3Quc3BsaWNlKCRpbmRleCwgMSk7CiAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdEZWxldGUgc3VjY2VkIScKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuYSgyKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTsKICAgICAgfSk7CiAgICB9LAogICAgZ2VuZXJhdGVUcmVlOiBmdW5jdGlvbiBnZW5lcmF0ZVRyZWUocm91dGVzKSB7CiAgICAgIHZhciBiYXNlUGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJy8nOwogICAgICB2YXIgY2hlY2tlZEtleXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDsKICAgICAgdmFyIHJlcyA9IFtdOwogICAgICB2YXIgX2l0ZXJhdG9yMiA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHJvdXRlcyksCiAgICAgICAgX3N0ZXAyOwogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yMi5zKCk7ICEoX3N0ZXAyID0gX2l0ZXJhdG9yMi5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgcm91dGUgPSBfc3RlcDIudmFsdWU7CiAgICAgICAgICB2YXIgcm91dGVQYXRoID0gcGF0aC5yZXNvbHZlKGJhc2VQYXRoLCByb3V0ZS5wYXRoKTsKCiAgICAgICAgICAvLyByZWN1cnNpdmUgY2hpbGQgcm91dGVzCiAgICAgICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHsKICAgICAgICAgICAgcm91dGUuY2hpbGRyZW4gPSB0aGlzLmdlbmVyYXRlVHJlZShyb3V0ZS5jaGlsZHJlbiwgcm91dGVQYXRoLCBjaGVja2VkS2V5cyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY2hlY2tlZEtleXMuaW5jbHVkZXMocm91dGVQYXRoKSB8fCByb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGggPj0gMSkgewogICAgICAgICAgICByZXMucHVzaChyb3V0ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3IyLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IyLmYoKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzOwogICAgfSwKICAgIGNvbmZpcm1Sb2xlOiBmdW5jdGlvbiBjb25maXJtUm9sZSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICB2YXIgaXNFZGl0LCBjaGVja2VkS2V5cywgaW5kZXgsIF95aWVsZCRhZGRSb2xlLCBkYXRhLCBfdGhpczckcm9sZSwgZGVzY3JpcHRpb24sIGtleSwgbmFtZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDQubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgaXNFZGl0ID0gX3RoaXM3LmRpYWxvZ1R5cGUgPT09ICdlZGl0JzsKICAgICAgICAgICAgICBjaGVja2VkS2V5cyA9IF90aGlzNy4kcmVmcy50cmVlLmdldENoZWNrZWRLZXlzKCk7CiAgICAgICAgICAgICAgX3RoaXM3LnJvbGUucm91dGVzID0gX3RoaXM3LmdlbmVyYXRlVHJlZShkZWVwQ2xvbmUoX3RoaXM3LnNlcnZpY2VSb3V0ZXMpLCAnLycsIGNoZWNrZWRLZXlzKTsKICAgICAgICAgICAgICBpZiAoIWlzRWRpdCkgewogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm4gPSA1OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0NC5uID0gMTsKICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlUm9sZShfdGhpczcucm9sZS5rZXksIF90aGlzNy5yb2xlKTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGluZGV4ID0gMDsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGlmICghKGluZGV4IDwgX3RoaXM3LnJvbGVzTGlzdC5sZW5ndGgpKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDQubiA9IDQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEoX3RoaXM3LnJvbGVzTGlzdFtpbmRleF0ua2V5ID09PSBfdGhpczcucm9sZS5rZXkpKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDQubiA9IDM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX3RoaXM3LnJvbGVzTGlzdC5zcGxpY2UoaW5kZXgsIDEsIE9iamVjdC5hc3NpZ24oe30sIF90aGlzNy5yb2xlKSk7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5hKDMsIDQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgaW5kZXgrKzsKICAgICAgICAgICAgICBfY29udGV4dDQubiA9IDI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfY29udGV4dDQubiA9IDc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfY29udGV4dDQubiA9IDY7CiAgICAgICAgICAgICAgcmV0dXJuIGFkZFJvbGUoX3RoaXM3LnJvbGUpOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX3lpZWxkJGFkZFJvbGUgPSBfY29udGV4dDQudjsKICAgICAgICAgICAgICBkYXRhID0gX3lpZWxkJGFkZFJvbGUuZGF0YTsKICAgICAgICAgICAgICBfdGhpczcucm9sZS5rZXkgPSBkYXRhLmtleTsKICAgICAgICAgICAgICBfdGhpczcucm9sZXNMaXN0LnB1c2goX3RoaXM3LnJvbGUpOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgX3RoaXM3JHJvbGUgPSBfdGhpczcucm9sZSwgZGVzY3JpcHRpb24gPSBfdGhpczckcm9sZS5kZXNjcmlwdGlvbiwga2V5ID0gX3RoaXM3JHJvbGUua2V5LCBuYW1lID0gX3RoaXM3JHJvbGUubmFtZTsKICAgICAgICAgICAgICBfdGhpczcuZGlhbG9nVmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgIF90aGlzNy4kbm90aWZ5KHsKICAgICAgICAgICAgICAgIHRpdGxlOiAnU3VjY2VzcycsCiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVVzZUhUTUxTdHJpbmc6IHRydWUsCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAiXG4gICAgICAgICAgICA8ZGl2PlJvbGUgS2V5OiAiLmNvbmNhdChrZXksICI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+Um9sZSBOYW1lOiAiKS5jb25jYXQobmFtZSwgIjwvZGl2PlxuICAgICAgICAgICAgPGRpdj5EZXNjcmlwdGlvbjogIikuY29uY2F0KGRlc2NyaXB0aW9uLCAiPC9kaXY+XG4gICAgICAgICAgIiksCiAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYSgyKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIHJlZmVyZW5jZTogc3JjL3ZpZXcvbGF5b3V0L2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFySXRlbS52dWUKICAgIG9ubHlPbmVTaG93aW5nQ2hpbGQ6IGZ1bmN0aW9uIG9ubHlPbmVTaG93aW5nQ2hpbGQoKSB7CiAgICAgIHZhciBjaGlsZHJlbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107CiAgICAgIHZhciBwYXJlbnQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKICAgICAgdmFyIG9ubHlPbmVDaGlsZCA9IG51bGw7CiAgICAgIHZhciBzaG93aW5nQ2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gIWl0ZW0uaGlkZGVuOwogICAgICB9KTsKCiAgICAgIC8vIFdoZW4gdGhlcmUgaXMgb25seSBvbmUgY2hpbGQgcm91dGUsIHRoZSBjaGlsZCByb3V0ZSBpcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdAogICAgICBpZiAoc2hvd2luZ0NoaWxkcmVuLmxlbmd0aCA9PT0gMSkgewogICAgICAgIG9ubHlPbmVDaGlsZCA9IHNob3dpbmdDaGlsZHJlblswXTsKICAgICAgICBvbmx5T25lQ2hpbGQucGF0aCA9IHBhdGgucmVzb2x2ZShwYXJlbnQucGF0aCwgb25seU9uZUNoaWxkLnBhdGgpOwogICAgICAgIHJldHVybiBvbmx5T25lQ2hpbGQ7CiAgICAgIH0KCiAgICAgIC8vIFNob3cgcGFyZW50IGlmIHRoZXJlIGFyZSBubyBjaGlsZCByb3V0ZSB0byBkaXNwbGF5CiAgICAgIGlmIChzaG93aW5nQ2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgb25seU9uZUNoaWxkID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBwYXJlbnQpLCB7fSwgewogICAgICAgICAgcGF0aDogJycsCiAgICAgICAgICBub1Nob3dpbmdDaGlsZHJlbjogdHJ1ZQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBvbmx5T25lQ2hpbGQ7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KfTs="},null]} |