{"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\\views\\teachOffice\\shiftSemester\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\shiftSemester\\index.vue","mtime":1787648748789},{"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:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmRpZmZlcmVuY2UudjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaW50ZXJzZWN0aW9uLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmlzLWRpc2pvaW50LWZyb20udjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaXMtc3Vic2V0LW9mLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmlzLXN1cGVyc2V0LW9mLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LnN5bW1ldHJpYy1kaWZmZXJlbmNlLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LnVuaW9uLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBDbGFzc1NlbWVzdGVyRGV0YWlsRGlhbG9nIGZyb20gJy4vQ2xhc3NTZW1lc3RlckRldGFpbERpYWxvZy52dWUnOwppbXBvcnQgQ2xhc3NDYWxlbmRhckRpYWxvZyBmcm9tICcuL0NsYXNzQ2FsZW5kYXJEaWFsb2cudnVlJzsKaW1wb3J0IHsgbGlzdFNlbWVzdGVyLCBhbGxTZW1lc3RlciwgYWRkU2VtZXN0ZXIsIHVwZGF0ZVNlbWVzdGVyLCBkZWxTZW1lc3RlciwgYmF0Y2hEZWxldGVTZW1lc3RlciwgYmF0Y2hVcGRhdGVEYXRlUmFuZ2UsIGJhdGNoVXBkYXRlSnhyd2JoLCBiYXRjaEFkZEZyb21FbGVjdGl2ZSB9IGZyb20gJ0AvYXBpL3N0dWRlbnRSZWNvcmRzL3NlbWVzdGVyJzsKaW1wb3J0IHsgbGlzdEFsbFNlbWVzdGVyIH0gZnJvbSAnQC9hcGkvdGVhY2hCdXNpbmVzcy9zZW1lc3Rlcic7CmltcG9ydCB7IGxpc3RUZWFjaGluZ1Rhc2sgfSBmcm9tICdAL2FwaS90ZWFjaEJ1c2luZXNzL3RlYWNoaW5nVGFzayc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnU2hpZnRTZW1lc3RlcicsCiAgY29tcG9uZW50czogewogICAgQ2xhc3NTZW1lc3RlckRldGFpbERpYWxvZzogQ2xhc3NTZW1lc3RlckRldGFpbERpYWxvZywKICAgIENsYXNzQ2FsZW5kYXJEaWFsb2c6IENsYXNzQ2FsZW5kYXJEaWFsb2cKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgc2F2aW5nOiBmYWxzZSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p+l6K+i5p2h5Lu2ID09PT09PT09PT09PT09PT09PT09CiAgICAgIHNlYXJjaEZvcm06IHsKICAgICAgICB4eWRiaDogJycKICAgICAgfSwKICAgICAgZmlsdGVyWWVhcjogdW5kZWZpbmVkLAogICAgICB5ZWFyRmlsdGVyT3B0aW9uczogW10sCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOWIl+ihqOS4juWIhumhtSA9PT09PT09PT09PT09PT09PT09PQogICAgICB0YWJsZURhdGE6IFtdLAogICAgICBzZWxlY3Rpb246IFtdLAogICAgICBjdXJyZW50Um93OiBudWxsLAogICAgICBwYWdlTnVtOiAxLAogICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDkuIvmi4nmlbDmja4gPT09PT09PT09PT09PT09PT09PT0KICAgICAgLyoqIOW5tOW6puS4i+aLie+8iOadpeiHqiAvc2VtZXN0ZXIvYWxs77yJICovCiAgICAgIHllYXJPcHRpb25zOiBbXSwKICAgICAgLyoqIOaVmeWtpuS7u+WKoeS4i+aLie+8iHsgYmgsIHJ3bWMgfe+8iSAqLwogICAgICB0YXNrT3B0aW9uczogW10sCiAgICAgIC8qKiDlhajpg6jnj63mrKHlrabmnJ/vvIjnlKjkuo7nj63ljoblpI3liLbnm67moIfpgInmi6nvvIkgKi8KICAgICAgc2VtZXN0ZXJPcHRpb25zOiBbXSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g54+t5qyh5a2m5pyf5paw5aKeL+e8lui+kSA9PT09PT09PT09PT09PT09PT09PQogICAgICBkZXRhaWxWaXNpYmxlOiBmYWxzZSwKICAgICAgZGV0YWlsTW9kZTogJ2FkZCcsCiAgICAgIGRldGFpbFNlbWVzdGVyOiBudWxsLAogICAgICBkZXRhaWxUZWFtSW5mbzogbnVsbCwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g54+t5Y6G566h55CGID09PT09PT09PT09PT09PT09PT09CiAgICAgIGNhbGVuZGFyVmlzaWJsZTogZmFsc2UsCiAgICAgIGNhbGVuZGFyU2VtZXN0ZXI6IG51bGwsCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaJuemHj+WIm+W7uuePreasoeWtpuacnyA9PT09PT09PT09PT09PT09PT09PQogICAgICBiYXRjaEFkZFZpc2libGU6IGZhbHNlLAogICAgICBiYXRjaEFkZEZvcm06IHsKICAgICAgICBuZDogdW5kZWZpbmVkLAogICAgICAgIHhxZGM6ICcnLAogICAgICAgIHN0YXJ0VGltZTogJycsCiAgICAgICAgZW5kVGltZTogJycKICAgICAgfSwKICAgICAgYmF0Y2hBZGRSdWxlczogewogICAgICAgIG5kOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5bm05bqmJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgeHFkYzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeWtpuacnycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHN0YXJ0VGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeW8gOWni+aXpeacnycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGVuZFRpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nnu5PmnZ/ml6XmnJ8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XQogICAgICB9LAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDlv6vpgJ/orr7lrprlrabmnJ/ml6XmnJ8gPT09PT09PT09PT09PT09PT09PT0KICAgICAgZGF0ZVJhbmdlVmlzaWJsZTogZmFsc2UsCiAgICAgIGRhdGVSYW5nZUZvcm06IHsKICAgICAgICBreHJxOiAnJywKICAgICAgICBqc3JxOiAnJwogICAgICB9LAogICAgICBkYXRlUmFuZ2VSdWxlczogewogICAgICAgIGt4cnE6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlvIDlrabml6XmnJ8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBqc3JxOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup57uT5p2f5pel5pyfJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5om56YeP6K6+572u5pWZ5a2m5Lu75YqhID09PT09PT09PT09PT09PT09PT09CiAgICAgIGp4cndWaXNpYmxlOiBmYWxzZSwKICAgICAganhyd0Zvcm06IHsKICAgICAgICBqeHJ3Ymg6IHVuZGVmaW5lZAogICAgICB9LAogICAgICBqeHJ3UnVsZXM6IHsKICAgICAgICBqeHJ3Ymg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlZnlrabku7vliqEnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XQogICAgICB9CiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIC8qKiDmnKzlnLDmjInlubTluqbov4fmu6TvvIjlkI7nq68gL3NlbWVzdGVyL2xpc3Qg5LuF5pSv5oyBIHh5ZGJoIOaooeeziuetm+mAie+8iSAqL2Rpc3BsYXlEYXRhOiBmdW5jdGlvbiBkaXNwbGF5RGF0YSgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgaWYgKCF0aGlzLmZpbHRlclllYXIpIHJldHVybiB0aGlzLnRhYmxlRGF0YTsKICAgICAgcmV0dXJuIHRoaXMudGFibGVEYXRhLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBTdHJpbmcoaXRlbS5uZCkgPT09IFN0cmluZyhfdGhpcy5maWx0ZXJZZWFyKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy5sb2FkWWVhck9wdGlvbnMoKTsKICAgIHRoaXMubG9hZFRhc2tPcHRpb25zKCk7CiAgICB0aGlzLmxvYWRTZW1lc3Rlck9wdGlvbnMoKTsKICAgIHRoaXMubG9hZExpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8qID09PT09PT09PT09PT09PT09PT09IOagvOW8j+WMliA9PT09PT09PT09PT09PT09PT09PSAqL2ZtdERhdGU6IGZ1bmN0aW9uIGZtdERhdGUodmFsKSB7CiAgICAgIGlmICghdmFsKSByZXR1cm4gJy0nOwogICAgICByZXR1cm4gU3RyaW5nKHZhbCkuc2xpY2UoMCwgMTApOwogICAgfSwKICAgIHhxZGNMYWJlbDogZnVuY3Rpb24geHFkY0xhYmVsKHZhbCkgewogICAgICBpZiAodmFsID09PSAxIHx8IHZhbCA9PT0gJzEnKSByZXR1cm4gJ+esrDHlrabmnJ8nOwogICAgICBpZiAodmFsID09PSAyIHx8IHZhbCA9PT0gJzInKSByZXR1cm4gJ+esrDLlrabmnJ8nOwogICAgICBpZiAodmFsID09PSAzIHx8IHZhbCA9PT0gJzMnKSByZXR1cm4gJ+esrDPlrabmnJ8nOwogICAgICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJycgPyAiXHU3QjJDIi5jb25jYXQodmFsLCAiXHU1QjY2XHU2NzFGIikgOiAnLSc7CiAgICB9LAogICAgLyoqIOaVmeWtpuS7u+WKoee8luWPtyDihpIg5ZCN56ewICovdGFza05hbWU6IGZ1bmN0aW9uIHRhc2tOYW1lKGJoKSB7CiAgICAgIGlmICghYmgpIHJldHVybiAnLSc7CiAgICAgIHZhciBvcHQgPSB0aGlzLnRhc2tPcHRpb25zLmZpbmQoZnVuY3Rpb24gKG8pIHsKICAgICAgICByZXR1cm4gby5iaCA9PT0gYmg7CiAgICAgIH0pOwogICAgICByZXR1cm4gb3B0ID8gb3B0LnJ3bWMgOiBiaDsKICAgIH0sCiAgICBjbGVhblBheWxvYWQ6IGZ1bmN0aW9uIGNsZWFuUGF5bG9hZChvYmopIHsKICAgICAgdmFyIHBheWxvYWQgPSB7fTsKICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTsKICAgICAgICBpZiAodmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgIHBheWxvYWRba2V5XSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBwYXlsb2FkOwogICAgfSwKICAgIC8qID09PT09PT09PT09PT09PT09PT09IOS4i+aLieaVsOaNruWKoOi9vSA9PT09PT09PT09PT09PT09PT09PSAqL2xvYWRZZWFyT3B0aW9uczogZnVuY3Rpb24gbG9hZFllYXJPcHRpb25zKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgbGlzdEFsbFNlbWVzdGVyKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGxpc3QgPSByZXMgJiYgcmVzLmRhdGEgfHwgW107CiAgICAgICAgdmFyIHllYXJzID0gbGlzdC5tYXAoZnVuY3Rpb24gKHgpIHsKICAgICAgICAgIHJldHVybiB4Lm5kOwogICAgICAgIH0pLmZpbHRlcihmdW5jdGlvbiAodikgewogICAgICAgICAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsICYmIHYgIT09ICcnOwogICAgICAgIH0pOwogICAgICAgIF90aGlzMi55ZWFyT3B0aW9ucyA9IF90b0NvbnN1bWFibGVBcnJheShuZXcgU2V0KHllYXJzKSkuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICAgICAgcmV0dXJuIE51bWJlcihhKSAtIE51bWJlcihiKTsKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi55ZWFyT3B0aW9ucyA9IFtdOwogICAgICB9KTsKICAgIH0sCiAgICBsb2FkVGFza09wdGlvbnM6IGZ1bmN0aW9uIGxvYWRUYXNrT3B0aW9ucygpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGxpc3RUZWFjaGluZ1Rhc2soewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwMDAKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGxpc3QgPSByZXMgJiYgcmVzLmRhdGEgJiYgcmVzLmRhdGEucmVjb3JkcyB8fCBbXTsKICAgICAgICBfdGhpczMudGFza09wdGlvbnMgPSBsaXN0LmZpbHRlcihmdW5jdGlvbiAobykgewogICAgICAgICAgcmV0dXJuIG8uYmg7CiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczMudGFza09wdGlvbnMgPSBbXTsKICAgICAgfSk7CiAgICB9LAogICAgbG9hZFNlbWVzdGVyT3B0aW9uczogZnVuY3Rpb24gbG9hZFNlbWVzdGVyT3B0aW9ucygpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIGFsbFNlbWVzdGVyKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM0LnNlbWVzdGVyT3B0aW9ucyA9IHJlcyAmJiByZXMuZGF0YSB8fCBbXTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC5zZW1lc3Rlck9wdGlvbnMgPSBbXTsKICAgICAgfSk7CiAgICB9LAogICAgLyogPT09PT09PT09PT09PT09PT09PT0g5YiX6KGo5Yqg6L29ID09PT09PT09PT09PT09PT09PT09ICovbG9hZExpc3Q6IGZ1bmN0aW9uIGxvYWRMaXN0KCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5jbGVhblBheWxvYWQoewogICAgICAgIHBhZ2VOdW06IHRoaXMucGFnZU51bSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwKICAgICAgICB4eWRiaDogdGhpcy5zZWFyY2hGb3JtLnh5ZGJoCiAgICAgIH0pOwogICAgICBsaXN0U2VtZXN0ZXIocXVlcnkpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBkYXRhID0gcmVzICYmIHJlcy5kYXRhIHx8IHt9OwogICAgICAgIF90aGlzNS50YWJsZURhdGEgPSBkYXRhLnJlY29yZHMgfHwgW107CiAgICAgICAgX3RoaXM1LnRvdGFsID0gZGF0YS50b3RhbCB8fCAwOwogICAgICAgIF90aGlzNS5idWlsZFllYXJGaWx0ZXJPcHRpb25zKCk7CiAgICAgICAgX3RoaXM1LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNS50YWJsZURhdGEgPSBbXTsKICAgICAgICBfdGhpczUudG90YWwgPSAwOwogICAgICAgIF90aGlzNS5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDmnKzlnLDlubTluqbov4fmu6TkuIvmi4nvvIjku47lvZPliY3mlbDmja7liqjmgIHnlJ/miJDvvIzpgb/lhY3noaznvJbnoIHvvIkgKi9idWlsZFllYXJGaWx0ZXJPcHRpb25zOiBmdW5jdGlvbiBidWlsZFllYXJGaWx0ZXJPcHRpb25zKCkgewogICAgICB2YXIgeWVhcnMgPSB0aGlzLnRhYmxlRGF0YS5tYXAoZnVuY3Rpb24gKHIpIHsKICAgICAgICByZXR1cm4gci5uZDsKICAgICAgfSkuZmlsdGVyKGZ1bmN0aW9uICh2KSB7CiAgICAgICAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsICYmIHYgIT09ICcnOwogICAgICB9KTsKICAgICAgdGhpcy55ZWFyRmlsdGVyT3B0aW9ucyA9IF90b0NvbnN1bWFibGVBcnJheShuZXcgU2V0KHllYXJzKSkuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICAgIHJldHVybiBOdW1iZXIoYSkgLSBOdW1iZXIoYik7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVllYXJDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVllYXJDaGFuZ2UoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKF90aGlzNi4kcmVmcy50YWJsZVJlZikgX3RoaXM2LiRyZWZzLnRhYmxlUmVmLnNldEN1cnJlbnRSb3cobnVsbCk7CiAgICAgICAgX3RoaXM2LmN1cnJlbnRSb3cgPSBudWxsOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVTaXplQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTaXplQ2hhbmdlKHNpemUpIHsKICAgICAgdGhpcy5wYWdlU2l6ZSA9IHNpemU7CiAgICAgIHRoaXMubG9hZExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVQYWdlQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVQYWdlQ2hhbmdlKHBhZ2UpIHsKICAgICAgdGhpcy5wYWdlTnVtID0gcGFnZTsKICAgICAgdGhpcy5sb2FkTGlzdCgpOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHJvd3MpIHsKICAgICAgdGhpcy5zZWxlY3Rpb24gPSByb3dzOwogICAgfSwKICAgIGhhbmRsZUN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRDaGFuZ2Uocm93KSB7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgIH0sCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PSDmn6Xor6IgLyDph43nva4gPT09PT09PT09PT09PT09PT09PT0gKi9oYW5kbGVRdWVyeTogZnVuY3Rpb24gaGFuZGxlUXVlcnkoKSB7CiAgICAgIHRoaXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMubG9hZExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVSZXNldDogZnVuY3Rpb24gaGFuZGxlUmVzZXQoKSB7CiAgICAgIHRoaXMuc2VhcmNoRm9ybS54eWRiaCA9ICcnOwogICAgICB0aGlzLmZpbHRlclllYXIgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMubG9hZExpc3QoKTsKICAgIH0sCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4gLyDnvJbovpEgPT09PT09PT09PT09PT09PT09PT0gKi9oYW5kbGVBZGQ6IGZ1bmN0aW9uIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5kZXRhaWxNb2RlID0gJ2FkZCc7CiAgICAgIHRoaXMuZGV0YWlsU2VtZXN0ZXIgPSBudWxsOwogICAgICB0aGlzLmRldGFpbFRlYW1JbmZvID0gbnVsbDsKICAgICAgdGhpcy5kZXRhaWxWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVFZGl0OiBmdW5jdGlvbiBoYW5kbGVFZGl0KHJvdykgewogICAgICB2YXIgdGFyZ2V0ID0gcm93IHx8IHRoaXMuY3VycmVudFJvdzsKICAgICAgaWYgKCF0YXJnZXQpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOmAieaLqeS4gOadoeePreasoeWtpuacn+S/oeaBrycpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmRldGFpbE1vZGUgPSAnZWRpdCc7CiAgICAgIHRoaXMuZGV0YWlsU2VtZXN0ZXIgPSB0YXJnZXQ7CiAgICAgIHRoaXMuZGV0YWlsVGVhbUluZm8gPSBudWxsOwogICAgICB0aGlzLmRldGFpbFZpc2libGUgPSB0cnVlOwogICAgfSwKICAgIGhhbmRsZURldGFpbFN1Ym1pdDogZnVuY3Rpb24gaGFuZGxlRGV0YWlsU3VibWl0KHBheWxvYWQpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTsKICAgICAgdmFyIHJlcSA9IHRoaXMuZGV0YWlsTW9kZSA9PT0gJ2VkaXQnID8gdXBkYXRlU2VtZXN0ZXIocGF5bG9hZCkgOiBhZGRTZW1lc3RlcihwYXlsb2FkKTsKICAgICAgcmVxLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNy5zYXZpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczcuZGV0YWlsVmlzaWJsZSA9IGZhbHNlOwogICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKF90aGlzNy5kZXRhaWxNb2RlID09PSAnZWRpdCcgPyAn54+t5qyh5a2m5pyf5bey5pu05pawJyA6ICfnj63mrKHlrabmnJ/lt7LmlrDlop4nKTsKICAgICAgICBfdGhpczcubG9hZExpc3QoKTsKICAgICAgICBfdGhpczcubG9hZFNlbWVzdGVyT3B0aW9ucygpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM3LnNhdmluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PSDliKDpmaQgPT09PT09PT09PT09PT09PT09PT0gKi9oYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZSgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7flhYjli77pgInopoHliKDpmaTnmoTnj63mrKHlrabmnJ8nKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy4kY29uZmlybSgiXHU3ODZFXHU1QjlBXHU1MjIwXHU5NjY0XHU5MDA5XHU0RTJEXHU3Njg0ICIuY29uY2F0KHRoaXMuc2VsZWN0aW9uLmxlbmd0aCwgIiBcdTY3NjFcdTczRURcdTZCMjFcdTVCNjZcdTY3MUZcdTU0MTdcdUZGMUZcdTUyMjBcdTk2NjRcdTU0MEVcdTUxNzZcdTRFMEJcdTczRURcdTUzODZcdThCQjBcdTVGNTVcdTVDMDZcdTRFMDBcdTVFNzZcdTUyMjBcdTk2NjRcdTMwMDIiKSwgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBiaExpc3QgPSBfdGhpczguc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAocikgewogICAgICAgICAgcmV0dXJuIHIuYmg7CiAgICAgICAgfSk7CiAgICAgICAgYmF0Y2hEZWxldGVTZW1lc3RlcihiaExpc3QpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MoJ+W3suWIoOmZpCcpOwogICAgICAgICAgX3RoaXM4LmxvYWRMaXN0KCk7CiAgICAgICAgICBfdGhpczgubG9hZFNlbWVzdGVyT3B0aW9ucygpOwogICAgICAgIH0pOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgaGFuZGxlRGVsZXRlUm93OiBmdW5jdGlvbiBoYW5kbGVEZWxldGVSb3cocm93KSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCJcdTc4NkVcdTVCOUFcdTUyMjBcdTk2NjRcdTczRURcdTZCMjFcdTVCNjZcdTY3MUZcdTMwMEMiLmNvbmNhdChyb3cueHlkYmggfHwgcm93LmJoLCAiXHUzMDBEXHU1NDE3XHVGRjFGXHU1MjIwXHU5NjY0XHU1NDBFXHU1MTc2XHU0RTBCXHU3M0VEXHU1Mzg2XHU4QkIwXHU1RjU1XHU1QzA2XHU0RTAwXHU1RTc2XHU1MjIwXHU5NjY0XHUzMDAyIiksICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBkZWxTZW1lc3Rlcihyb3cuYmgpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLnN1Y2Nlc3MoJ+W3suWIoOmZpCcpOwogICAgICAgICAgX3RoaXM5LmxvYWRMaXN0KCk7CiAgICAgICAgICBfdGhpczkubG9hZFNlbWVzdGVyT3B0aW9ucygpOwogICAgICAgIH0pOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLyogPT09PT09PT09PT09PT09PT09PT0g57yW6L6R54+t5Y6GID09PT09PT09PT09PT09PT09PT09ICovaGFuZGxlRWRpdENhbGVuZGFyOiBmdW5jdGlvbiBoYW5kbGVFZGl0Q2FsZW5kYXIocm93KSB7CiAgICAgIHZhciB0YXJnZXQgPSByb3cgfHwgdGhpcy5jdXJyZW50Um93OwogICAgICBpZiAoIXRhcmdldCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35YWI5Zyo5YiX6KGo5Lit6YCJ5oup5LiA5p2h54+t5qyh5a2m5pyf5L+h5oGvJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuY2FsZW5kYXJTZW1lc3RlciA9IHRhcmdldDsKICAgICAgdGhpcy5jYWxlbmRhclZpc2libGUgPSB0cnVlOwogICAgfSwKICAgIC8qID09PT09PT09PT09PT09PT09PT09IOaJuemHj+WIm+W7uuePreasoeWtpuacnyA9PT09PT09PT09PT09PT09PT09PSAqL2hhbmRsZUJhdGNoQWRkOiBmdW5jdGlvbiBoYW5kbGVCYXRjaEFkZCgpIHsKICAgICAgdmFyIF90aGlzMCA9IHRoaXM7CiAgICAgIHRoaXMuYmF0Y2hBZGRGb3JtID0gewogICAgICAgIG5kOiB0aGlzLnllYXJPcHRpb25zWzBdIHx8IHVuZGVmaW5lZCwKICAgICAgICB4cWRjOiAnJywKICAgICAgICBzdGFydFRpbWU6ICcnLAogICAgICAgIGVuZFRpbWU6ICcnCiAgICAgIH07CiAgICAgIHRoaXMuYmF0Y2hBZGRWaXNpYmxlID0gdHJ1ZTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChfdGhpczAuJHJlZnMuYmF0Y2hBZGRGb3JtUmVmKSBfdGhpczAuJHJlZnMuYmF0Y2hBZGRGb3JtUmVmLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlQmF0Y2hBZGRTdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZUJhdGNoQWRkU3VibWl0KCkgewogICAgICB2YXIgX3RoaXMxID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5iYXRjaEFkZEZvcm1SZWYudmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKCF2YWxpZCkgcmV0dXJuOwogICAgICAgIHZhciBmID0gX3RoaXMxLmJhdGNoQWRkRm9ybTsKICAgICAgICBfdGhpczEuc2F2aW5nID0gdHJ1ZTsKICAgICAgICBiYXRjaEFkZEZyb21FbGVjdGl2ZSh7CiAgICAgICAgICBuZDogZi5uZCwKICAgICAgICAgIHhxZGM6IGYueHFkYywKICAgICAgICAgIHN0YXJ0VGltZTogZi5zdGFydFRpbWUsCiAgICAgICAgICBlbmRUaW1lOiBmLmVuZFRpbWUKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMS5zYXZpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzMS5iYXRjaEFkZFZpc2libGUgPSBmYWxzZTsKICAgICAgICAgIHZhciBjb3VudCA9IHJlcyAmJiByZXMuZGF0YSB8fCAwOwogICAgICAgICAgX3RoaXMxLiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NURGMlx1NTIxQlx1NUVGQSAiLmNvbmNhdChjb3VudCwgIiBcdTRFMkFcdTczRURcdTZCMjFcdTVCNjZcdTY3MUYiKSk7CiAgICAgICAgICBfdGhpczEubG9hZExpc3QoKTsKICAgICAgICAgIF90aGlzMS5sb2FkU2VtZXN0ZXJPcHRpb25zKCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMxLnNhdmluZyA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PSDlv6vpgJ/orr7lrprlrabmnJ/ml6XmnJ8gPT09PT09PT09PT09PT09PT09PT0gKi9oYW5kbGVRdWlja1NldERhdGVzOiBmdW5jdGlvbiBoYW5kbGVRdWlja1NldERhdGVzKCkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7flhYjli77pgInopoHorr7lrprml6XmnJ/nmoTnj63mrKHlrabmnJ8nKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy5kYXRlUmFuZ2VGb3JtID0gewogICAgICAgIGt4cnE6ICcnLAogICAgICAgIGpzcnE6ICcnCiAgICAgIH07CiAgICAgIHRoaXMuZGF0ZVJhbmdlVmlzaWJsZSA9IHRydWU7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXMxMC4kcmVmcy5kYXRlUmFuZ2VGb3JtUmVmKSBfdGhpczEwLiRyZWZzLmRhdGVSYW5nZUZvcm1SZWYuY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVEYXRlUmFuZ2VTdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZURhdGVSYW5nZVN1Ym1pdCgpIHsKICAgICAgdmFyIF90aGlzMTEgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmRhdGVSYW5nZUZvcm1SZWYudmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKCF2YWxpZCkgcmV0dXJuOwogICAgICAgIHZhciBmID0gX3RoaXMxMS5kYXRlUmFuZ2VGb3JtOwogICAgICAgIF90aGlzMTEuc2F2aW5nID0gdHJ1ZTsKICAgICAgICBiYXRjaFVwZGF0ZURhdGVSYW5nZSh7CiAgICAgICAgICBiaExpc3Q6IF90aGlzMTEuc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAocikgewogICAgICAgICAgICByZXR1cm4gci5iaDsKICAgICAgICAgIH0pLAogICAgICAgICAgeHFrc3NqOiBmLmt4cnEsCiAgICAgICAgICB4cWpzc2o6IGYuanNycQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXMxMS5zYXZpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzMTEuZGF0ZVJhbmdlVmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGNvdW50ID0gcmVzICYmIHJlcy5kYXRhIHx8IDA7CiAgICAgICAgICBfdGhpczExLiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NURGMlx1NjZGNFx1NjVCMCAiLmNvbmNhdChjb3VudCwgIiBcdTY3NjFcdTczRURcdTZCMjFcdTVCNjZcdTY3MUZcdTc2ODRcdTY1RTVcdTY3MUYiKSk7CiAgICAgICAgICBfdGhpczExLmxvYWRMaXN0KCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMxMS5zYXZpbmcgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLyogPT09PT09PT09PT09PT09PT09PT0g5om56YeP6K6+572u5pWZ5a2m5Lu75YqhID09PT09PT09PT09PT09PT09PT09ICovaGFuZGxlU2V0SnhydzogZnVuY3Rpb24gaGFuZGxlU2V0SnhydygpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwogICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uLmxlbmd0aCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35YWI5Yu+6YCJ6KaB6K6+572u5pWZ5a2m5Lu75Yqh55qE54+t5qyh5a2m5pyfJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuanhyd0Zvcm0gPSB7CiAgICAgICAganhyd2JoOiB1bmRlZmluZWQKICAgICAgfTsKICAgICAgdGhpcy5qeHJ3VmlzaWJsZSA9IHRydWU7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXMxMi4kcmVmcy5qeHJ3Rm9ybVJlZikgX3RoaXMxMi4kcmVmcy5qeHJ3Rm9ybVJlZi5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZUp4cndTdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZUp4cndTdWJtaXQoKSB7CiAgICAgIHZhciBfdGhpczEzID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5qeHJ3Rm9ybVJlZi52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAoIXZhbGlkKSByZXR1cm47CiAgICAgICAgX3RoaXMxMy5zYXZpbmcgPSB0cnVlOwogICAgICAgIGJhdGNoVXBkYXRlSnhyd2JoKHsKICAgICAgICAgIGJoTGlzdDogX3RoaXMxMy5zZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgIHJldHVybiByLmJoOwogICAgICAgICAgfSksCiAgICAgICAgICBqeHJ3Ymg6IF90aGlzMTMuanhyd0Zvcm0uanhyd2JoCiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczEzLnNhdmluZyA9IGZhbHNlOwogICAgICAgICAgX3RoaXMxMy5qeHJ3VmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGNvdW50ID0gcmVzICYmIHJlcy5kYXRhIHx8IDA7CiAgICAgICAgICBfdGhpczEzLiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NURGMlx1NjZGNFx1NjVCMCAiLmNvbmNhdChjb3VudCwgIiBcdTY3NjFcdTczRURcdTZCMjFcdTVCNjZcdTY3MUZcdTc2ODRcdTY1NTlcdTVCNjZcdTRFRkJcdTUyQTEiKSk7CiAgICAgICAgICBfdGhpczEzLmxvYWRMaXN0KCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMxMy5zYXZpbmcgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},null]}