560c617e41284813b1a22abc4054a528.json 107 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\user\\list\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\user\\list\\index.vue","mtime":1761185180234},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\babel.config.js","mtime":1761185179818},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\.babelrc","mtime":1761185179813},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJDOi9Vc2Vycy9BZG1pbmlzdHJhdG9yL0Rlc2t0b3AvY3JtZWI1LjAvdGVtcGxhdGUvYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJDOi9Vc2Vycy9BZG1pbmlzdHJhdG9yL0Rlc2t0b3AvY3JtZWI1LjAvdGVtcGxhdGUvYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJDOi9Vc2Vycy9BZG1pbmlzdHJhdG9yL0Rlc2t0b3AvY3JtZWI1LjAvdGVtcGxhdGUvYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkM6L1VzZXJzL0FkbWluaXN0cmF0b3IvRGVza3RvcC9jcm1lYjUuMC90ZW1wbGF0ZS9hZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkM6L1VzZXJzL0FkbWluaXN0cmF0b3IvRGVza3RvcC9jcm1lYjUuMC90ZW1wbGF0ZS9hZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQtaW5kZXguanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuZGlmZmVyZW5jZS52Mi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnNldC5pbnRlcnNlY3Rpb24udjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaXMtZGlzam9pbnQtZnJvbS52Mi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnNldC5pcy1zdWJzZXQtb2YudjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaXMtc3VwZXJzZXQtb2YudjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuc3ltbWV0cmljLWRpZmZlcmVuY2UudjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQudW5pb24udjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0IHVzZXJMYWJlbCBmcm9tICdAL2NvbXBvbmVudHMvdXNlckxhYmVsJzsKaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsKaW1wb3J0IGV4cGFuZFJvdyBmcm9tICcuL3RhYmxlRXhwYW5kLnZ1ZSc7CmltcG9ydCB1c2VyRWRpdCBmcm9tICcuL2hhbmRsZS91c2VyRWRpdC52dWUnOwppbXBvcnQgeyB1c2VyTGlzdCwgZ2V0VXNlckRhdGEsIGlzU2hvd0FwaSwgZWRpdE90aGVyQXBpLCBnaXZlTGV2ZWxBcGksIHVzZXJTZXRHcm91cCwgdXNlckdyb3VwQXBpLCBsZXZlbExpc3RBcGksIHVzZXJTZXRMYWJlbEFwaSwgdXNlckxhYmVsQXBpLCB1c2VyU3luY2hybywgZ2V0VXNlclNhdmVGb3JtLCBnaXZlTGV2ZWxUaW1lQXBpLCBnZXRVc2VySW5mbywgc2V0VXNlciBhcyBfc2V0VXNlciwgZWRpdFVzZXIsIHNhdmVTZXRMYWJlbCB9IGZyb20gJ0AvYXBpL3VzZXInOwppbXBvcnQgeyBhZ2VudFNwcmVhZEFwaSB9IGZyb20gJ0AvYXBpL2FnZW50JzsKaW1wb3J0IHsgZXhwb3J0VXNlckxpc3QgfSBmcm9tICdAL2FwaS9leHBvcnQnOwppbXBvcnQgZWRpdEZyb20gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9mcm9tL2Zyb20nOwppbXBvcnQgc2VuZEZyb20gZnJvbSAnQC9jb21wb25lbnRzL3NlbmRDb3Vwb25zL2luZGV4JzsKaW1wb3J0IHVzZXJEZXRhaWxzIGZyb20gJy4vaGFuZGxlL3VzZXJEZXRhaWxzJzsKaW1wb3J0IG5ld3NDYXRlZ29yeSBmcm9tICdAL2NvbXBvbmVudHMvbmV3c0NhdGVnb3J5L2luZGV4JzsKaW1wb3J0IGN1c3RvbWVySW5mbyBmcm9tICdAL2NvbXBvbmVudHMvY3VzdG9tZXJJbmZvJzsKaW1wb3J0IHsgY2l0eUxpc3QgfSBmcm9tICdAL2FwaS9hcHAnOwppbXBvcnQgeyBtZW1iZXJzaGlwRGF0YUxpc3RBcGkgfSBmcm9tICdAL2FwaS9tZW1iZXJzaGlwTGV2ZWwnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ3VzZXJfbGlzdCcsCiAgY29tcG9uZW50czogewogICAgZXhwYW5kUm93OiBleHBhbmRSb3csCiAgICBlZGl0RnJvbTogZWRpdEZyb20sCiAgICBzZW5kRnJvbTogc2VuZEZyb20sCiAgICB1c2VyRGV0YWlsczogdXNlckRldGFpbHMsCiAgICBuZXdzQ2F0ZWdvcnk6IG5ld3NDYXRlZ29yeSwKICAgIGN1c3RvbWVySW5mbzogY3VzdG9tZXJJbmZvLAogICAgdXNlckxhYmVsOiB1c2VyTGFiZWwsCiAgICB1c2VyRWRpdDogdXNlckVkaXQKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBkYXRhTGFiZWw6IFtdLAogICAgICBzZWxlY3REYXRhTGFiZWw6IFtdLAogICAgICB1c2VyRGF0YToge30sCiAgICAgIG1vZGFsczogZmFsc2UsCiAgICAgIHNlbGVjdExhYmVsU2hvdzogZmFsc2UsCiAgICAgIGxhYmVsU2hvdzogZmFsc2UsCiAgICAgIGN1c3RvbWVyU2hvdzogZmFsc2UsCiAgICAgIHByb21vdGVyU2hvdzogZmFsc2UsCiAgICAgIGxhYmVsQWN0aXZlOiB7CiAgICAgICAgdWlkOiAwCiAgICAgIH0sCiAgICAgIGZvcm1JbmxpbmU6IHsKICAgICAgICB1aWQ6IDAsCiAgICAgICAgc3ByZWFkX3VpZDogMCwKICAgICAgICBpbWFnZTogJycKICAgICAgfSwKICAgICAgcGlja2VyT3B0aW9uczogdGhpcy4kdGltZU9wdGlvbnMsCiAgICAgIGNvbGxhcHNlOiBmYWxzZSwKICAgICAgaGVhZGVOdW06IFt7CiAgICAgICAgdHlwZTogJycsCiAgICAgICAgbmFtZTogJ+WFqOmDqCcKICAgICAgfSwgewogICAgICAgIHR5cGU6ICd3ZWNoYXQnLAogICAgICAgIG5hbWU6ICflvq7kv6HlhazkvJflj7cnCiAgICAgIH0sIHsKICAgICAgICB0eXBlOiAncm91dGluZScsCiAgICAgICAgbmFtZTogJ+W+ruS/oeWwj+eoi+W6jycKICAgICAgfSwgewogICAgICAgIHR5cGU6ICdoNScsCiAgICAgICAgbmFtZTogJ0g1JwogICAgICB9LCB7CiAgICAgICAgdHlwZTogJ3BjJywKICAgICAgICBuYW1lOiAnUEMnCiAgICAgIH0sIHsKICAgICAgICB0eXBlOiAnYXBwJywKICAgICAgICBuYW1lOiAnQVBQJwogICAgICB9XSwKICAgICAgYWRkcmVzczogW10sCiAgICAgIGFkZHJlc0RhdGE6IFtdLAogICAgICBpc1Nob3dTZW5kOiB0cnVlLAogICAgICBtb2RhbDEzOiBmYWxzZSwKICAgICAgbWF4Q29sczogNCwKICAgICAgc2Nyb2xsZXJIZWlnaHQ6ICc2MDAnLAogICAgICBjb250ZW50VG9wOiAnMTMwJywKICAgICAgY29udGVudFdpZHRoOiAnOTglJywKICAgICAgZ3JpZDogewogICAgICAgIHhsOiA2LAogICAgICAgIGxnOiA2LAogICAgICAgIG1kOiA4LAogICAgICAgIHNtOiAxMiwKICAgICAgICB4czogMjQKICAgICAgfSwKICAgICAgZ3JpZDI6IHsKICAgICAgICB4bDogOCwKICAgICAgICBsZzogOCwKICAgICAgICBtZDogOCwKICAgICAgICBzbTogMTIsCiAgICAgICAgeHM6IDI0CiAgICAgIH0sCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0b3RhbDogMCwKICAgICAgdXNlckZyb206IHsKICAgICAgICBsYWJlbF9pZDogJycsCiAgICAgICAgdXNlcl90eXBlOiAnJywKICAgICAgICBzdGF0dXM6ICcnLAogICAgICAgIHNleDogJycsCiAgICAgICAgaXNfcHJvbW90ZXI6ICcnLAogICAgICAgIGNvdW50cnk6ICcnLAogICAgICAgIGlzTWVtYmVyOiAnJywKICAgICAgICBwYXlfY291bnRfbnVtOiBbJycsICcnXSwKICAgICAgICBiYWxhbmNlOiBbJycsICcnXSwKICAgICAgICBpbnRlZ3JhbDogWycnLCAnJ10sCiAgICAgICAgcGF5X2NvdW50X21vbmV5OiBbJycsICcnXSwKICAgICAgICByZWNoYXJnZV9jb3VudDogWycnLCAnJ10sCiAgICAgICAgdXNlcl90aW1lX3R5cGU6ICcnLAogICAgICAgIHVzZXJfdGltZTogJycsCiAgICAgICAgYmVmb3JlX3BheV90aW1lOiAnJywKICAgICAgICBuaWNrbmFtZTogJycsCiAgICAgICAgcHJvdmluY2U6ICcnLAogICAgICAgIGNpdHk6ICcnLAogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgbGltaXQ6IDE1LAogICAgICAgIGxldmVsOiAnJywKICAgICAgICBncm91cF9pZDogJycsCiAgICAgICAgYWdlbnRfbGV2ZWw6ICcnLAogICAgICAgIGZpZWxkX2tleTogJycKICAgICAgfSwKICAgICAgYmVmb3JlX3BheV90aW1lOiAnJywKICAgICAgZmllbGRfa2V5OiAnJywKICAgICAgbGV2ZWw6ICcnLAogICAgICBncm91cF9pZDogJycsCiAgICAgIGFnZW50X2xldmVsOiAnJywKICAgICAgbGFiZWxfaWQ6ICcnLAogICAgICB1c2VyX3RpbWVfdHlwZTogJycsCiAgICAgIHBheV9jb3VudDogJycsCiAgICAgIHVzZXJMaXN0czogW10sCiAgICAgIEZyb21EYXRhOiBudWxsLAogICAgICBzZWxlY3Rpb25MaXN0OiBbXSwKICAgICAgdXNlcl9pZHM6ICcnLAogICAgICBzZWxlY3RlZERhdGE6IFtdLAogICAgICB0aW1lVmFsOiBbXSwKICAgICAgZ3JvdXBMaXN0OiBbXSwKICAgICAgbGV2ZWxMaXN0OiBbXSwKICAgICAgbWVtYmVyc2hpcExpc3Q6IFtdLAogICAgICBsYWJlbEZyb206IHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIGxpbWl0OiAnJwogICAgICB9LAogICAgICBsYWJlbExpc3RzOiBbXSwKICAgICAgc2VsZWN0ZWRJZHM6IFtdLAogICAgICAvL+mAieS4reWQiOW5tumhueeahGlkCiAgICAgIGlkczogW10KICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7fSwgbWFwU3RhdGUoJ21lZGlhJywgWydpc01vYmlsZSddKSksCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgdGhpcy5nZXRDaXR5TGlzdCgpOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMudXNlckdyb3VwKCk7CiAgICB0aGlzLmxldmVsTGlzdHMoKTsKICAgIHRoaXMubWVtYmVyc2hpcERhdGFMaXN0KCk7CiAgICAvLyB0aGlzLmdyb3VwTGlzdHMoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldENpdHlMaXN0OiBmdW5jdGlvbiBnZXRDaXR5TGlzdCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgY2l0eUxpc3QoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpcy5hZGRyZXNEYXRhID0gcmVzLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIHNldFVzZXI6IGZ1bmN0aW9uIHNldFVzZXIoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB2YXIgZGF0YSA9IHRoaXMuJHJlZnMudXNlckVkaXQuZm9ybUl0ZW07CiAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgdGhpcy4kcmVmcy51c2VyRWRpdC5kYXRhTGFiZWwubWFwKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgaWRzLnB1c2goaS5pZCk7CiAgICAgIH0pOwogICAgICBkYXRhLmxhYmVsX2lkID0gaWRzOwogICAgICAvLyBpZiAoIWRhdGEucmVhbF9uYW1lKSByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fovpPlhaXnnJ/lrp7lp5PlkI0iKTsKICAgICAgLy8gaWYgKCFkYXRhLnBob25lKSByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fovpPlhaXmiYvmnLrlj7ciKTsKICAgICAgLy8gaWYgKCFkYXRhLnB3ZCkgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl5a+G56CBIik7CiAgICAgIC8vIGlmICghZGF0YS50cnVlX3B3ZCkgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl56Gu6K6k5a+G56CBIik7CiAgICAgIGlmIChkYXRhLnVpZCkgewogICAgICAgIGVkaXRVc2VyKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXMyLm1vZGFscyA9IGZhbHNlOwogICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICBfdGhpczIuZ2V0TGlzdCgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIF9zZXRVc2VyKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXMyLm1vZGFscyA9IGZhbHNlOwogICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICBfdGhpczIuZ2V0TGlzdCgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIG9uY2VHZXRMaXN0OiBmdW5jdGlvbiBvbmNlR2V0TGlzdCgpIHsKICAgICAgdGhpcy5sYWJlbEFjdGl2ZS51aWQgPSAwOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmoIfnrb7lvLnnqpflhbPpl60KICAgIGxhYmVsQ2xvc2U6IGZ1bmN0aW9uIGxhYmVsQ2xvc2UoKSB7CiAgICAgIHRoaXMubGFiZWxBY3RpdmUudWlkID0gMDsKICAgICAgdGhpcy5sYWJlbFNob3cgPSBmYWxzZTsKICAgICAgdGhpcy5zZWxlY3RMYWJlbFNob3cgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDmj5DkuqQKICAgIHB1dFNlbmQ6IGZ1bmN0aW9uIHB1dFNlbmQobmFtZSkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGlmICghX3RoaXMzLmZvcm1JbmxpbmUuc3ByZWFkX3VpZCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMzLiRtZXNzYWdlLmVycm9yKCfor7fkuIrkvKDnlKjmiLcnKTsKICAgICAgICAgIH0KICAgICAgICAgIGFnZW50U3ByZWFkQXBpKF90aGlzMy5mb3JtSW5saW5lKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMzLnByb21vdGVyU2hvdyA9IGZhbHNlOwogICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgX3RoaXMzLmdldExpc3QoKTsKICAgICAgICAgICAgX3RoaXMzLiRyZWZzW25hbWVdLnJlc2V0RmllbGRzKCk7CiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgc2F2ZTogZnVuY3Rpb24gc2F2ZSgpIHsKICAgICAgdGhpcy5tb2RhbHMgPSB0cnVlOwoKICAgICAgLy8gdGhpcy4kbW9kYWxGb3JtKGdldFVzZXJTYXZlRm9ybSgpKQogICAgICAvLyAgIC50aGVuKCgpID0+IHsKICAgICAgLy8gICAgIHRoaXMudXNlckZyb20ucGFnZSA9IDE7CiAgICAgIC8vICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgLy8gICB9KQogICAgICAvLyAgIC5jYXRjaCgocmVzKSA9PiB7CiAgICAgIC8vICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAvLyAgIH0pOwogICAgfSwKICAgIHN5bmNocm86IGZ1bmN0aW9uIHN5bmNocm8oKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB1c2VyU3luY2hybygpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM0LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBpc1NlbDogZnVuY3Rpb24gaXNTZWwocm93KSB7CiAgICAgIHJldHVybiAhISFyb3cuaXNfZGVsOwogICAgfSwKICAgIC8vIOWIhue7hOWIl+ihqAogICAgZ3JvdXBMaXN0czogZnVuY3Rpb24gZ3JvdXBMaXN0cygpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIHVzZXJMYWJlbEFwaSh0aGlzLmxhYmVsRnJvbSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZShyZXMpIHsKICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczUubGFiZWxMaXN0cyA9IGRhdGEubGlzdDsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczUuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIG9uQ2xpY2tUYWI6IGZ1bmN0aW9uIG9uQ2xpY2tUYWIoKSB7CiAgICAgIHRoaXMudXNlckZyb20ucGFnZSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIHVzZXJHcm91cDogZnVuY3Rpb24gdXNlckdyb3VwKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBsaW1pdDogJycKICAgICAgfTsKICAgICAgdXNlckdyb3VwQXBpKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNi5ncm91cExpc3QgPSByZXMuZGF0YS5saXN0OwogICAgICB9KTsKICAgIH0sCiAgICBsZXZlbExpc3RzOiBmdW5jdGlvbiBsZXZlbExpc3RzKCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBsaW1pdDogJycsCiAgICAgICAgdGl0bGU6ICcnLAogICAgICAgIGlzX3Nob3c6IDEKICAgICAgfTsKICAgICAgbGV2ZWxMaXN0QXBpKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNy5sZXZlbExpc3QgPSByZXMuZGF0YS5saXN0OwogICAgICB9KTsKICAgIH0sCiAgICBtZW1iZXJzaGlwRGF0YUxpc3Q6IGZ1bmN0aW9uIG1lbWJlcnNoaXBEYXRhTGlzdCgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHZhciBkYXRhID0gewogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgbGltaXQ6IDAsCiAgICAgICAgc3RhdXM6IDEKICAgICAgfTsKICAgICAgbWVtYmVyc2hpcERhdGFMaXN0QXBpKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC5tZW1iZXJzaGlwTGlzdCA9IHJlcy5kYXRhLmxpc3Q7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOaJuemHj+iuvue9ruWIhue7hO+8mwogICAgc2V0R3JvdXA6IGZ1bmN0aW9uIHNldEdyb3VwKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgaWYgKHRoaXMuaWRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB6K6+572u5YiG57uE55qE55So5oi3Jyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIHVpZHMgPSB7CiAgICAgICAgICB1aWRzOiB0aGlzLmlkcwogICAgICAgIH07CiAgICAgICAgdGhpcy4kbW9kYWxGb3JtKHVzZXJTZXRHcm91cCh1aWRzKSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczkuaWRzID0gW107CiAgICAgICAgICBfdGhpczkuc2VsZWN0ZWRJZHMgPSBbXTsKICAgICAgICAgIF90aGlzOS5nZXRMaXN0KCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmibnph4/orr7nva7moIfnrb7vvJsKICAgIHNldExhYmVsOiBmdW5jdGlvbiBzZXRMYWJlbCgpIHsKICAgICAgaWYgKHRoaXMuaWRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB6K6+572u5qCH562+55qE55So5oi3Jyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIHVpZHMgPSB7CiAgICAgICAgICB1aWRzOiB0aGlzLmlkcwogICAgICAgIH07CiAgICAgICAgdGhpcy5sYWJlbEFjdGl2ZS51aWQgPSAwOwogICAgICAgIHRoaXMubGFiZWxTaG93ID0gdHJ1ZTsKICAgICAgICAvLyB0aGlzLiRtb2RhbEZvcm0odXNlclNldExhYmVsQXBpKHVpZHMpKS50aGVuKCgpID0+CiAgICAgICAgLy8gICB0aGlzLiRyZWZzLnNlbmRzLmdldExpc3QoKQogICAgICAgIC8vICk7CiAgICAgIH0KICAgIH0sCiAgICBhY3RpdmVTZWxlY3REYXRhOiBmdW5jdGlvbiBhY3RpdmVTZWxlY3REYXRhKGRhdGEpIHsKICAgICAgdGhpcy5zZWxlY3RMYWJlbFNob3cgPSBmYWxzZTsKICAgICAgdGhpcy5zZWxlY3REYXRhTGFiZWwgPSBkYXRhIHx8IFtdOwogICAgICBpZiAodGhpcy5zZWxlY3REYXRhTGFiZWwubGVuZ3RoKSB7CiAgICAgICAgdmFyIGFjdGl2ZUlkcyA9IFtdOwogICAgICAgIHRoaXMuc2VsZWN0RGF0YUxhYmVsLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgYWN0aXZlSWRzLnB1c2goaXRlbS5pZCk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy51c2VyRnJvbS5sYWJlbF9pZCA9IGFjdGl2ZUlkcy5qb2luKCcsJyk7CiAgICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy51c2VyRnJvbS5sYWJlbF9pZCA9ICcnOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ2xvc2U6IGZ1bmN0aW9uIGhhbmRsZUNsb3NlKHRhZykgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgdmFyIGkgPSB0aGlzLnNlbGVjdERhdGFMYWJlbC5maW5kSW5kZXgoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gdGFnLmlkOwogICAgICB9KTsKICAgICAgaWYgKGkgIT09IC0xKSB7CiAgICAgICAgdGhpcy5zZWxlY3REYXRhTGFiZWwuc3BsaWNlKGksIDEpOwogICAgICB9CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXMwLnNlbGVjdERhdGFMYWJlbC5sZW5ndGgpIHsKICAgICAgICAgIHZhciBhY3RpdmVJZHMgPSBbXTsKICAgICAgICAgIF90aGlzMC5zZWxlY3REYXRhTGFiZWwubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGFjdGl2ZUlkcy5wdXNoKGl0ZW0uaWQpOwogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczAudXNlckZyb20ubGFiZWxfaWQgPSBhY3RpdmVJZHMuam9pbignLCcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczAudXNlckZyb20ubGFiZWxfaWQgPSAnJzsKICAgICAgICB9CiAgICAgIH0pOwogICAgICAvLyB0aGlzLnVzZXJTZWFyY2hzKCk7CiAgICB9LAogICAgLy8g5om56YeP6K6+572u5qCH562+CiAgICBhY3RpdmVEYXRhOiBmdW5jdGlvbiBhY3RpdmVEYXRhKGRhdGEpIHsKICAgICAgdmFyIF90aGlzMSA9IHRoaXM7CiAgICAgIHZhciBsYWJlbHMgPSBbXTsKICAgICAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuOwogICAgICBkYXRhLm1hcChmdW5jdGlvbiAoaSkgewogICAgICAgIGxhYmVscy5wdXNoKGkuaWQpOwogICAgICB9KTsKICAgICAgc2F2ZVNldExhYmVsKHsKICAgICAgICB1aWRzOiB0aGlzLmlkcy5qb2luKCcsJyksCiAgICAgICAgbGFiZWxfaWQ6IGxhYmVscwogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczEubGFiZWxTaG93ID0gZmFsc2U7CiAgICAgICAgX3RoaXMxLnNlbGVjdGVkSWRzID0gbmV3IFNldCgpOwogICAgICAgIF90aGlzMS5nZXRMaXN0KCk7CiAgICAgICAgX3RoaXMxLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v5piv5ZCm5Li65LuY6LS55Lya5ZGY77ybCiAgICBjaGFuZ2VNZW1iZXI6IGZ1bmN0aW9uIGNoYW5nZU1lbWJlcigpIHsKICAgICAgdGhpcy51c2VyRnJvbS5wYWdlID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLy8g6YCJ5oup5Zu95a62CiAgICBjaGFuZ2VDb3VudHJ5OiBmdW5jdGlvbiBjaGFuZ2VDb3VudHJ5KCkgewogICAgICBpZiAodGhpcy51c2VyRnJvbS5jb3VudHJ5ID09PSAnYWJyb2FkJyB8fCAhdGhpcy51c2VyRnJvbS5jb3VudHJ5KSB7CiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbXTsKICAgICAgICB0aGlzLnVzZXJGcm9tLnByb3ZpbmNlID0gJyc7CiAgICAgICAgdGhpcy51c2VyRnJvbS5jaXR5ID0gJyc7CiAgICAgICAgdGhpcy5hZGRyZXNzID0gW107CiAgICAgIH0KICAgIH0sCiAgICAvLyDpgInmi6nlnLDlnYAKICAgIGhhbmRsZUNoYW5nZTogZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKHNlbGVjdGVkRGF0YSkgewogICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IHNlbGVjdGVkRGF0YS5tYXAoZnVuY3Rpb24gKG8pIHsKICAgICAgICByZXR1cm4gby5sYWJlbDsKICAgICAgfSk7CiAgICAgIHRoaXMudXNlckZyb20ucHJvdmluY2UgPSB0aGlzLnNlbGVjdGVkRGF0YVswXTsKICAgICAgdGhpcy51c2VyRnJvbS5jaXR5ID0gdGhpcy5zZWxlY3RlZERhdGFbMV07CiAgICB9LAogICAgLy8g5YW35L2T5pel5pyfCiAgICBvbmNoYW5nZVRpbWU6IGZ1bmN0aW9uIG9uY2hhbmdlVGltZShlLCB0eXBlKSB7CiAgICAgIHRoaXMudXNlckZyb21bdHlwZV0gPSBlID8gZS5qb2luKCctJykgOiAnJzsKICAgIH0sCiAgICB1c2VyRGV0YWlsOiBmdW5jdGlvbiB1c2VyRGV0YWlsKHJvdykgewogICAgICB0aGlzLiRyZWZzLnVzZXJEZXRhaWxzLm1vZGFscyA9IHRydWU7CiAgICAgIHRoaXMuJHJlZnMudXNlckRldGFpbHMuZ2V0RGV0YWlscyhyb3cudWlkKTsKICAgIH0sCiAgICAvLyDmk43kvZwKICAgIGNoYW5nZU1lbnU6IGZ1bmN0aW9uIGNoYW5nZU1lbnUocm93LCBuYW1lLCBpbmRleCkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIHZhciB1aWQgPSBbXTsKICAgICAgdWlkLnB1c2gocm93LnVpZCk7CiAgICAgIHZhciB1aWRzID0gewogICAgICAgIHVpZHM6IHVpZAogICAgICB9OwogICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICBjYXNlICcxJzoKICAgICAgICAgIHRoaXMuZWRpdChyb3cpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnMic6CiAgICAgICAgICB0aGlzLmdldE90aGVyRnJvbShyb3cudWlkLCAnbW9uZXknKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJzMnOgogICAgICAgICAgdGhpcy5naXZlTGV2ZWxUaW1lKHJvdy51aWQpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnNCc6CiAgICAgICAgICB0aGlzLmRlbChyb3csICfmuIXpmaQg44CQICcgKyB0aGlzLnRlblRleHQocm93Lm5pY2tuYW1lKSArICcg44CR55qE5Lya5ZGY562J57qnJywgaW5kZXgsICd1c2VyJyk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICc1JzoKICAgICAgICAgIHRoaXMuJG1vZGFsRm9ybSh1c2VyU2V0R3JvdXAodWlkcykpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMxMC5nZXRMaXN0KCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJzYnOgogICAgICAgICAgdGhpcy5vcGVuTGFiZWwocm93KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJzcnOgogICAgICAgICAgdGhpcy5lZGl0Uyhyb3cpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnOCc6CiAgICAgICAgICB0aGlzLmdldE90aGVyRnJvbShyb3cudWlkLCAncG9pbnQnKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aGlzLmRlbChyb3csICfop6PpmaTjgJAgJyArIHRoaXMudGVuVGV4dChyb3cubmlja25hbWUpICsgJyDjgJHnmoTkuIrnuqfmjqjlub/kuronLCBpbmRleCwgJ3R1aWd1YW5nJyk7CiAgICAgIH0KICAgIH0sCiAgICB0ZW5UZXh0OiBmdW5jdGlvbiB0ZW5UZXh0KHN0cikgewogICAgICBpZiAoc3RyLmxlbmd0aCA+IDEwKSB7CiAgICAgICAgLy/lpoLmnpzlrZfnrKbplb/luqbotoXov4cxMO+8jOWQjumdoueahOWtl+espuWwseWPmOaIkC4uLuWPr+iHquihjOiwg+aVtOmVv+W6puWSjOS7o+abv+Wtl+espgogICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMTApICsgJy4uLic7IC8v5oiq5Y+W5LuO56ys5LiA5Liq5a2X56ym5byA5aeL77yM5b6A5ZCO5Y+WMTDkuKrlrZfnrKbvvIzliankvZnnmoTnlKguLi7ku6Pmm78KICAgICAgfQogICAgICByZXR1cm4gc3RyOwogICAgfSwKICAgIG9wZW5MYWJlbDogZnVuY3Rpb24gb3BlbkxhYmVsKHJvdykgewogICAgICB0aGlzLmxhYmVsU2hvdyA9IHRydWU7CiAgICAgIHRoaXMubGFiZWxBY3RpdmUudWlkID0gcm93LnVpZDsKICAgIH0sCiAgICBvcGVuU2VsZWN0TGFiZWw6IGZ1bmN0aW9uIG9wZW5TZWxlY3RMYWJlbCgpIHsKICAgICAgdGhpcy5zZWxlY3RMYWJlbFNob3cgPSB0cnVlOwogICAgfSwKICAgIGVkaXRTOiBmdW5jdGlvbiBlZGl0Uyhyb3cpIHsKICAgICAgdGhpcy5wcm9tb3RlclNob3cgPSB0cnVlOwogICAgICB0aGlzLmZvcm1JbmxpbmUudWlkID0gcm93LnVpZDsKICAgIH0sCiAgICBjdXN0b21lcjogZnVuY3Rpb24gY3VzdG9tZXIoKSB7CiAgICAgIHRoaXMuY3VzdG9tZXJTaG93ID0gdHJ1ZTsKICAgIH0sCiAgICBpbWFnZU9iamVjdDogZnVuY3Rpb24gaW1hZ2VPYmplY3QoZSkgewogICAgICB0aGlzLmN1c3RvbWVyU2hvdyA9IGZhbHNlOwogICAgICB0aGlzLmZvcm1JbmxpbmUuc3ByZWFkX3VpZCA9IGUudWlkOwogICAgICB0aGlzLmZvcm1JbmxpbmUuaW1hZ2UgPSBlLmltYWdlOwogICAgfSwKICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKG5hbWUpIHsKICAgICAgdGhpcy5wcm9tb3RlclNob3cgPSBmYWxzZTsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS5yZXNldEZpZWxkcygpOwogICAgICB0aGlzLmZvcm1JbmxpbmUgPSB7CiAgICAgICAgdWlkOiAwLAogICAgICAgIHNwcmVhZF91aWQ6IDAsCiAgICAgICAgaW1hZ2U6ICcnCiAgICAgIH07CiAgICB9LAogICAgLy8g6LWg6YCB5Lya5ZGY562J57qnCiAgICBnaXZlTGV2ZWw6IGZ1bmN0aW9uIGdpdmVMZXZlbChpZCkgewogICAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CiAgICAgIHRoaXMuJG1vZGFsRm9ybShnaXZlTGV2ZWxBcGkoaWQpKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gX3RoaXMxMS5nZXRMaXN0KDEpOwogICAgICB9KTsKCiAgICAgIC8vIGdpdmVMZXZlbEFwaShpZCkKICAgICAgLy8gICAudGhlbihhc3luYyAocmVzKSA9PiB7CiAgICAgIC8vICAgICBpZiAocmVzLmRhdGEuc3RhdHVzID09PSBmYWxzZSkgewogICAgICAvLyAgICAgICByZXR1cm4gdGhpcy4kYXV0aExhcHNlKHJlcy5kYXRhKTsKICAgICAgLy8gICAgIH0KCiAgICAgIC8vICAgICB0aGlzLkZyb21EYXRhID0gcmVzLmRhdGE7CiAgICAgIC8vICAgICB0aGlzLiRyZWZzLmVkaXRzLm1vZGFscyA9IHRydWU7CiAgICAgIC8vICAgfSkKICAgICAgLy8gICAuY2F0Y2goKHJlcykgPT4gewogICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgLy8gICB9KTsKICAgIH0sCiAgICAvLyDotaDpgIHkvJrlkZjnrYnnuqcKICAgIGdpdmVMZXZlbFRpbWU6IGZ1bmN0aW9uIGdpdmVMZXZlbFRpbWUoaWQpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwogICAgICB0aGlzLiRtb2RhbEZvcm0oZ2l2ZUxldmVsVGltZUFwaShpZCkpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBfdGhpczEyLmdldExpc3QoMSk7CiAgICAgIH0pOwoKICAgICAgLy8gZ2l2ZUxldmVsVGltZUFwaShpZCkKICAgICAgLy8gICAudGhlbihhc3luYyAocmVzKSA9PiB7CiAgICAgIC8vICAgICBpZiAocmVzLmRhdGEuc3RhdHVzID09PSBmYWxzZSkgewogICAgICAvLyAgICAgICByZXR1cm4gdGhpcy4kYXV0aExhcHNlKHJlcy5kYXRhKTsKICAgICAgLy8gICAgIH0KICAgICAgLy8gICAgIHRoaXMuRnJvbURhdGEgPSByZXMuZGF0YTsKICAgICAgLy8gICAgIHRoaXMuJHJlZnMuZWRpdHMubW9kYWxzID0gdHJ1ZTsKICAgICAgLy8gICB9KQogICAgICAvLyAgIC5jYXRjaCgocmVzKSA9PiB7CiAgICAgIC8vICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAvLyAgIH0pOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgZGVsOiBmdW5jdGlvbiBkZWwocm93LCB0aXQsIG51bSwgbmFtZSkgewogICAgICB2YXIgX3RoaXMxMyA9IHRoaXM7CiAgICAgIHZhciBkZWxmcm9tRGF0YSA9IHsKICAgICAgICB0aXRsZTogdGl0LAogICAgICAgIG51bTogbnVtLAogICAgICAgIHVybDogbmFtZSA9PT0gJ3VzZXInID8gInVzZXIvZGVsX2xldmVsLyIuY29uY2F0KHJvdy51aWQpIDogImFnZW50L3N0YWlyL2RlbGV0ZV9zcHJlYWQvIi5jb25jYXQocm93LnVpZCksCiAgICAgICAgbWV0aG9kOiBuYW1lID09PSAndXNlcicgPyAnREVMRVRFJyA6ICdQVVQnLAogICAgICAgIGlkczogJycsCiAgICAgICAgd2lkdGg6IDYwMAogICAgICB9OwogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICBfdGhpczEzLmdldExpc3QoKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOa4hemZpOS8muWRmOWIoOmZpOaIkOWKnwogICAgc3VibWl0TW9kZWw6IGZ1bmN0aW9uIHN1Ym1pdE1vZGVsKCkgewogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDkvJrlkZjliJfooagKICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczE0ID0gdGhpczsKICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0RGF0YUxhYmVsLmxlbmd0aCkgewogICAgICAvLyAgIGxldCBhY3RpdmVJZHMgPSBbXTsKICAgICAgLy8gICB0aGlzLnNlbGVjdERhdGFMYWJlbC5mb3JFYWNoKChpdGVtKSA9PiB7CiAgICAgIC8vICAgICBhY3RpdmVJZHMucHVzaChpdGVtLmlkKTsKICAgICAgLy8gICB9KTsKICAgICAgLy8gICB0aGlzLnVzZXJGcm9tLmxhYmVsX2lkID0gYWN0aXZlSWRzLmpvaW4oJywnKTsKICAgICAgLy8gfQogICAgICB0aGlzLnVzZXJGcm9tLnVzZXJfdHlwZSA9IHRoaXMudXNlckZyb20udXNlcl90eXBlIHx8ICcnOwogICAgICB0aGlzLnVzZXJGcm9tLnN0YXR1cyA9IHRoaXMudXNlckZyb20uc3RhdHVzIHx8ICcnOwogICAgICB0aGlzLnVzZXJGcm9tLnNleCA9IHRoaXMudXNlckZyb20uc2V4IHx8ICcnOwogICAgICB0aGlzLnVzZXJGcm9tLmlzX3Byb21vdGVyID0gdGhpcy51c2VyRnJvbS5pc19wcm9tb3RlciB8fCAnJzsKICAgICAgdGhpcy51c2VyRnJvbS5jb3VudHJ5ID0gdGhpcy51c2VyRnJvbS5jb3VudHJ5IHx8ICcnOwogICAgICB0aGlzLnVzZXJGcm9tLnBheV9jb3VudCA9IHRoaXMucGF5X2NvdW50ID09PSAnYWxsJyA/ICcnIDogdGhpcy5wYXlfY291bnQ7CiAgICAgIHRoaXMudXNlckZyb20udXNlcl90aW1lX3R5cGUgPSB0aGlzLnVzZXJfdGltZV90eXBlID09PSAnYWxsJyA/ICcnIDogdGhpcy51c2VyX3RpbWVfdHlwZTsKICAgICAgdGhpcy51c2VyRnJvbS5maWVsZF9rZXkgPSB0aGlzLmZpZWxkX2tleSA9PT0gJ2FsbCcgPyAnJyA6IHRoaXMuZmllbGRfa2V5OwogICAgICB0aGlzLnVzZXJGcm9tLmxldmVsID0gdGhpcy5sZXZlbCA9PT0gJ2FsbCcgPyAnJyA6IHRoaXMubGV2ZWw7CiAgICAgIHRoaXMudXNlckZyb20uZ3JvdXBfaWQgPSB0aGlzLmdyb3VwX2lkID09PSAnYWxsJyA/ICcnIDogdGhpcy5ncm91cF9pZDsKICAgICAgdGhpcy51c2VyRnJvbS5hZ2VudF9sZXZlbCA9IHRoaXMuYWdlbnRfbGV2ZWwgPT09ICdhbGwnID8gJycgOiB0aGlzLmFnZW50X2xldmVsOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB1c2VyTGlzdCh0aGlzLnVzZXJGcm9tKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYyID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTIocmVzKSB7CiAgICAgICAgICB2YXIgZGF0YTsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDIpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczE0LnVzZXJMaXN0cyA9IGRhdGEubGlzdDsKICAgICAgICAgICAgICAgIF90aGlzMTQudG90YWwgPSBkYXRhLmNvdW50OwogICAgICAgICAgICAgICAgX3RoaXMxNC5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBfdGhpczE0LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzMTQuc2V0Q2hlY2tlZCgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczE0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczE0LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDnlKjmiLflr7zlh7oKICAgIGV4cG9ydExpc3Q6IGZ1bmN0aW9uIGV4cG9ydExpc3QoKSB7CiAgICAgIHZhciBfdGhpczE1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciB0aCwgZmlsZWtleSwgZGF0YSwgZmlsZU5hbWUsIGV4Y2VsRGF0YSwgaSwgbGViRGF0YTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgaWYgKF90aGlzMTUuaWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS5pZHMgPSBfdGhpczE1LmlkczsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS51c2VyX3R5cGUgPSBfdGhpczE1LnVzZXJGcm9tLnVzZXJfdHlwZSB8fCAnJzsKICAgICAgICAgICAgICBfdGhpczE1LnVzZXJGcm9tLnN0YXR1cyA9IF90aGlzMTUudXNlckZyb20uc3RhdHVzIHx8ICcnOwogICAgICAgICAgICAgIF90aGlzMTUudXNlckZyb20uc2V4ID0gX3RoaXMxNS51c2VyRnJvbS5zZXggfHwgJyc7CiAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS5pc19wcm9tb3RlciA9IF90aGlzMTUudXNlckZyb20uaXNfcHJvbW90ZXIgfHwgJyc7CiAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS5jb3VudHJ5ID0gX3RoaXMxNS51c2VyRnJvbS5jb3VudHJ5IHx8ICcnOwogICAgICAgICAgICAgIF90aGlzMTUudXNlckZyb20ucGF5X2NvdW50ID0gX3RoaXMxNS5wYXlfY291bnQgPT09ICdhbGwnID8gJycgOiBfdGhpczE1LnBheV9jb3VudDsKICAgICAgICAgICAgICBfdGhpczE1LnVzZXJGcm9tLnVzZXJfdGltZV90eXBlID0gX3RoaXMxNS51c2VyX3RpbWVfdHlwZSA9PT0gJ2FsbCcgPyAnJyA6IF90aGlzMTUudXNlcl90aW1lX3R5cGU7CiAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS5maWVsZF9rZXkgPSBfdGhpczE1LmZpZWxkX2tleSA9PT0gJ2FsbCcgPyAnJyA6IF90aGlzMTUuZmllbGRfa2V5OwogICAgICAgICAgICAgIF90aGlzMTUudXNlckZyb20ubGV2ZWwgPSBfdGhpczE1LmxldmVsID09PSAnYWxsJyA/ICcnIDogX3RoaXMxNS5sZXZlbDsKICAgICAgICAgICAgICBfdGhpczE1LnVzZXJGcm9tLmdyb3VwX2lkID0gX3RoaXMxNS5ncm91cF9pZCA9PT0gJ2FsbCcgPyAnJyA6IF90aGlzMTUuZ3JvdXBfaWQ7CiAgICAgICAgICAgICAgX3RoaXMxNS51c2VyRnJvbS5hZ2VudF9sZXZlbCA9IF90aGlzMTUuYWdlbnRfbGV2ZWwgPT09ICdhbGwnID8gJycgOiBfdGhpczE1LmFnZW50X2xldmVsOwogICAgICAgICAgICAgIHRoID0gW10sIGZpbGVrZXkgPSBbXSwgZGF0YSA9IFtdLCBmaWxlTmFtZSA9ICcnOyAvLyAgIGxldCBmaWxlTmFtZSA9ICIiOwogICAgICAgICAgICAgIGV4Y2VsRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RoaXMxNS51c2VyRnJvbSkpOwogICAgICAgICAgICAgIGV4Y2VsRGF0YS5wYWdlID0gMTsKICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGlmICghKGkgPCBleGNlbERhdGEucGFnZSArIDEpKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDMubiA9IDU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQzLm4gPSAyOwogICAgICAgICAgICAgIHJldHVybiBfdGhpczE1LmdldEV4Y2VsRGF0YShleGNlbERhdGEpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgbGViRGF0YSA9IF9jb250ZXh0My52OwogICAgICAgICAgICAgIGlmICghZmlsZU5hbWUpIGZpbGVOYW1lID0gbGViRGF0YS5maWxlbmFtZTsKICAgICAgICAgICAgICBpZiAoIWZpbGVrZXkubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBmaWxla2V5ID0gbGViRGF0YS5maWxlS2V5OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXRoLmxlbmd0aCkgdGggPSBsZWJEYXRhLmhlYWRlcjsKICAgICAgICAgICAgICBpZiAoIWxlYkRhdGEuZXhwb3J0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgX2NvbnRleHQzLm4gPSAzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdChsZWJEYXRhLmV4cG9ydCk7CiAgICAgICAgICAgICAgZXhjZWxEYXRhLnBhZ2UrKzsKICAgICAgICAgICAgICBfY29udGV4dDMubiA9IDQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfdGhpczE1LiRleHBvcnRFeGNlbCh0aCwgZmlsZWtleSwgZmlsZU5hbWUsIGRhdGEpOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuYSgyKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICBfY29udGV4dDMubiA9IDE7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmEoMik7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBnZXRFeGNlbERhdGE6IGZ1bmN0aW9uIGdldEV4Y2VsRGF0YShleGNlbERhdGEpIHsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICBleHBvcnRVc2VyTGlzdChleGNlbERhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgcmVzb2x2ZShyZXMuZGF0YSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIHBhZ2VDaGFuZ2U6IGZ1bmN0aW9uIHBhZ2VDaGFuZ2UoKSB7CiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IFtdOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmkJzntKIKICAgIHVzZXJTZWFyY2hzOiBmdW5jdGlvbiB1c2VyU2VhcmNocygpIHsKICAgICAgdGhpcy51c2VyRnJvbS5wYWdlID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLy8g6YeN572uCiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQobmFtZSkgewogICAgICB0aGlzLnVzZXJGcm9tID0gX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eSh7CiAgICAgICAgbGFiZWxfaWQ6ICcnLAogICAgICAgIHN0YXR1czogJycsCiAgICAgICAgc2V4OiAnJywKICAgICAgICBpc19wcm9tb3RlcjogJycsCiAgICAgICAgY291bnRyeTogJycsCiAgICAgICAgaXNNZW1iZXI6ICcnLAogICAgICAgIHBheV9jb3VudF9udW06IFsnJywgJyddLAogICAgICAgIGJhbGFuY2U6IFsnJywgJyddLAogICAgICAgIGludGVncmFsOiBbJycsICcnXSwKICAgICAgICBwYXlfY291bnRfbW9uZXk6IFsnJywgJyddLAogICAgICAgIHJlY2hhcmdlX2NvdW50OiBbJycsICcnXSwKICAgICAgICB1c2VyX3RpbWVfdHlwZTogJycsCiAgICAgICAgdXNlcl90aW1lOiAnJywKICAgICAgICBiZWZvcmVfcGF5X3RpbWU6ICcnLAogICAgICAgIG5pY2tuYW1lOiAnJywKICAgICAgICBwcm92aW5jZTogJycsCiAgICAgICAgY2l0eTogJycsCiAgICAgICAgcGFnZTogMSwKICAgICAgICBsaW1pdDogMTUsCiAgICAgICAgbGV2ZWw6ICcnLAogICAgICAgIGdyb3VwX2lkOiAnJywKICAgICAgICBhZ2VudF9sZXZlbDogJycsCiAgICAgICAgZmllbGRfa2V5OiAnJwogICAgICB9LCAicGFnZSIsIDEpLCAibGltaXQiLCAyMCk7CiAgICAgIHRoaXMuZmllbGRfa2V5ID0gJyc7CiAgICAgIHRoaXMubGV2ZWwgPSAnJzsKICAgICAgdGhpcy5ncm91cF9pZCA9ICcnOwogICAgICB0aGlzLmFnZW50X2xldmVsID0gJyc7CiAgICAgIHRoaXMuZGF0YUxhYmVsID0gW107CiAgICAgIHRoaXMuc2VsZWN0RGF0YUxhYmVsID0gW107CiAgICAgIHRoaXMudXNlcl90aW1lX3R5cGUgPSAnJzsKICAgICAgdGhpcy5wYXlfY291bnQgPSAnJzsKICAgICAgdGhpcy50aW1lVmFsID0gW107CiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KCk7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8vIOiOt+WPlue8lui+keihqOWNleaVsOaNrgogICAgZ2V0VXNlckZyb206IGZ1bmN0aW9uIGdldFVzZXJGcm9tKGlkKSB7CiAgICAgIHZhciBfdGhpczE2ID0gdGhpczsKICAgICAgZ2V0VXNlckluZm8oaWQpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjMgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNChyZXMpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBfdGhpczE2Lm1vZGFscyA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczE2LnVzZXJEYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczE2LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bnp6/liIbkvZnpop3ooajljZUKICAgIGdldE90aGVyRnJvbTogZnVuY3Rpb24gZ2V0T3RoZXJGcm9tKGlkLCB0eXBlKSB7CiAgICAgIHZhciBfdGhpczE3ID0gdGhpczsKICAgICAgdGhpcy4kbW9kYWxGb3JtKGVkaXRPdGhlckFwaShpZCwgdHlwZSkpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBfdGhpczE3LmdldExpc3QoMSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS/ruaUueeKtuaAgQogICAgb25jaGFuZ2VJc1Nob3c6IGZ1bmN0aW9uIG9uY2hhbmdlSXNTaG93KHJvdykgewogICAgICB2YXIgX3RoaXMxOCA9IHRoaXM7CiAgICAgIHZhciBkYXRhID0gewogICAgICAgIGlkOiByb3cudWlkLAogICAgICAgIHN0YXR1czogcm93LnN0YXR1cwogICAgICB9OwogICAgICBpc1Nob3dBcGkoZGF0YSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmNCA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWU1KHJlcykgewogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0NSkgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUubikgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIF90aGlzMTguJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDQpIHsKICAgICAgICAgIHJldHVybiBfcmVmNC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTguJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOeCueWHu+WPkemAgeS8mOaDoOWIuAogICAgb25TZW5kOiBmdW5jdGlvbiBvblNlbmQoKSB7CiAgICAgIGlmICh0aGlzLmlkcy5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWPkemAgeS8mOaDoOWIuOeahOeUqOaItycpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJHJlZnMuc2VuZHMubW9kYWxzID0gdHJ1ZTsKICAgICAgICB0aGlzLiRyZWZzLnNlbmRzLmdldExpc3QoKTsKICAgICAgfQogICAgfSwKICAgIC8vIOWPkemAgeWbvuaWh+a2iOaBrwogICAgb25TZW5kUGljOiBmdW5jdGlvbiBvblNlbmRQaWMoKSB7CiAgICAgIGlmICh0aGlzLmlkcy5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWPkemAgeWbvuaWh+a2iOaBr+eahOeUqOaItycpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMubW9kYWwxMyA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICAvLyDnvJbovpEKICAgIGVkaXQ6IGZ1bmN0aW9uIGVkaXQocm93KSB7CiAgICAgIHRoaXMuZ2V0VXNlckZyb20ocm93LnVpZCk7CiAgICB9LAogICAgLy8g5L+u5pS55oiQ5YqfCiAgICBzdWJtaXRGYWlsOiBmdW5jdGlvbiBzdWJtaXRGYWlsKCkgewogICAgICAvLyB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmjpLluo8KICAgIHNvcnRDaGFuZ2VkOiBmdW5jdGlvbiBzb3J0Q2hhbmdlZChlLCBwcm9wcywgb3JkZXIpIHsKICAgICAgdGhpcy51c2VyRnJvbVtlLnByb3BdID0gZS5vcmRlcjsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLy/lhajpgInlkozlj5bmtojlhajpgInml7bop6blj5EKICAgIGhhbmRsZVNlbGVjdEFsbDogZnVuY3Rpb24gaGFuZGxlU2VsZWN0QWxsKHNlbGVjdGlvbikgewogICAgICB2YXIgX3RoaXMxOSA9IHRoaXM7CiAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoZSkgewogICAgICAgIGlkcy5wdXNoKGUudWlkKTsKICAgICAgfSk7CiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBpZHM7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAvL+ehruS/nWRvbeWKoOi9veWujOavlQogICAgICAgIF90aGlzMTkuc2V0Q2hlY2tlZCgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyAg6YCJ5Lit5p+Q5LiA6KGMCiAgICBoYW5kbGVTZWxlY3RSb3c6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdFJvdyhzZWxlY3Rpb24sIHJvdykgewogICAgICB2YXIgX3RoaXMyMCA9IHRoaXM7CiAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoZSkgewogICAgICAgIGlkcy5wdXNoKGUudWlkKTsKICAgICAgfSk7CiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBpZHM7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAvL+ehruS/nWRvbeWKoOi9veWujOavlQogICAgICAgIF90aGlzMjAuc2V0Q2hlY2tlZCgpOwogICAgICB9KTsKICAgIH0sCiAgICBzZXRDaGVja2VkOiBmdW5jdGlvbiBzZXRDaGVja2VkKCkgewogICAgICAvL+Wwhm5ldyBTZXQoKei9rOWMluS4uuaVsOe7hAogICAgICB0aGlzLmlkcyA9IF90b0NvbnN1bWFibGVBcnJheSh0aGlzLnNlbGVjdGVkSWRzKTsKICAgICAgLy8g5om+5Yiw57uR5a6a55qEdGFibGXnmoRyZWblr7nlupTnmoRkb23vvIzmib7liLB0YWJsZeeahG9iakRhdGHlr7nosaHvvIxvYmpEYXRh5L+d5a2Y55qE5piv5b2T5YmN6aG155qE5pWw5o2uCiAgICAgIHZhciBvYmpEYXRhID0gdGhpcy4kcmVmcy50YWJsZS5vYmpEYXRhOwogICAgICBmb3IgKHZhciBpbmRleCBpbiBvYmpEYXRhKSB7CiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaGFzKG9iakRhdGFbaW5kZXhdLnVpZCkpIHsKICAgICAgICAgIG9iakRhdGFbaW5kZXhdLl9pc0NoZWNrZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTs="},{"version":3,"names":["userLabel","mapState","expandRow","userEdit","userList","getUserData","isShowApi","editOtherApi","giveLevelApi","userSetGroup","userGroupApi","levelListApi","userSetLabelApi","userLabelApi","userSynchro","getUserSaveForm","giveLevelTimeApi","getUserInfo","setUser","editUser","saveSetLabel","agentSpreadApi","exportUserList","editFrom","sendFrom","userDetails","newsCategory","customerInfo","cityList","membershipDataListApi","name","components","data","dataLabel","selectDataLabel","userData","modals","selectLabelShow","labelShow","customerShow","promoterShow","labelActive","uid","formInline","spread_uid","image","pickerOptions","$timeOptions","collapse","headeNum","type","address","addresData","isShowSend","modal13","maxCols","scrollerHeight","contentTop","contentWidth","grid","xl","lg","md","sm","xs","grid2","loading","total","userFrom","label_id","user_type","status","sex","is_promoter","country","isMember","pay_count_num","balance","integral","pay_count_money","recharge_count","user_time_type","user_time","before_pay_time","nickname","province","city","page","limit","level","group_id","agent_level","field_key","pay_count","userLists","FromData","selectionList","user_ids","selectedData","timeVal","groupList","levelList","membershipList","labelFrom","labelLists","selectedIds","ids","computed","_objectSpread","created","getList","getCityList","mounted","userGroup","levelLists","membershipDataList","methods","_this","then","res","_this2","$refs","formItem","map","i","push","id","$message","success","msg","catch","err","error","onceGetList","labelClose","putSend","_this3","validate","valid","resetFields","save","synchro","_this4","isSel","row","is_del","groupLists","_this5","_ref","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","list","a","_x","apply","arguments","onClickTab","_this6","_this7","title","is_show","_this8","staus","setGroup","_this9","length","warning","uids","$modalForm","setLabel","activeSelectData","activeIds","item","join","handleClose","tag","_this0","findIndex","splice","$nextTick","activeData","_this1","labels","Set","changeMember","changeCountry","handleChange","o","label","onchangeTime","e","userDetail","getDetails","changeMenu","index","_this10","edit","getOtherFrom","giveLevelTime","del","tenText","openLabel","editS","str","substr","openSelectLabel","customer","imageObject","cancel","giveLevel","_this11","_this12","tit","num","_this13","delfromData","url","concat","method","width","$modalSure","submitModel","_this14","_ref2","_callee2","_context2","count","setChecked","_x2","exportList","_this15","_callee3","th","filekey","fileName","excelData","lebData","_context3","JSON","parse","stringify","getExcelData","v","filename","fileKey","header","export","$exportExcel","Promise","resolve","reject","pageChange","userSearchs","reset","_defineProperty","getUserFrom","_this16","_ref3","_callee4","_context4","_x3","_this17","onchangeIsShow","_this18","_ref4","_callee5","_context5","_x4","onSend","sends","onSendPic","submitFail","sortChanged","props","order","prop","handleSelectAll","selection","_this19","handleSelectRow","_this20","_toConsumableArray","objData","table","has","_isChecked"],"sources":["src/pages/user/list/index.vue"],"sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\" :body-style=\"{ padding: 0 }\">\r\n <div class=\"padding-add\">\r\n <el-form\r\n ref=\"userFrom\"\r\n :model=\"userFrom\"\r\n label-width=\"80px\"\r\n label-position=\"right\"\r\n @submit.native.prevent\r\n inline\r\n >\r\n <div class=\"acea-row search-form\" v-if=\"!collapse\">\r\n <div>\r\n <el-form-item label=\"用户搜索:\" label-for=\"nickname\">\r\n <el-input v-model=\"userFrom.nickname\" placeholder=\"请输入用户\" clearable class=\"form_content_width\">\r\n <el-select v-model=\"field_key\" slot=\"prepend\" style=\"width: 100px\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option value=\"uid\" label=\"UID\"></el-option>\r\n <el-option value=\"phone\" label=\"手机号\"></el-option>\r\n <el-option value=\"nickname\" label=\"用户昵称\"></el-option>\r\n </el-select>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"用户等级:\" label-for=\"level\">\r\n <el-select v-model=\"level\" placeholder=\"请选择用户等级\" clearable class=\"form_content_width\">\r\n <el-option value=\"all\" label=\"全部\">全部</el-option>\r\n <el-option\r\n :value=\"item.id\"\r\n v-for=\"(item, index) in levelList\"\r\n :key=\"index\"\r\n :label=\"item.name\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"用户分组:\">\r\n <el-select v-model=\"group_id\" placeholder=\"请选择用户分组\" clearable class=\"form_content_width\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option\r\n :value=\"item.id\"\r\n v-for=\"(item, index) in groupList\"\r\n :key=\"index\"\r\n :label=\"item.group_name\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </div>\r\n <el-form-item class=\"search-form-sub\">\r\n <el-button type=\"primary\" v-db-click @click=\"userSearchs\">搜索</el-button>\r\n <el-button class=\"ResetSearch\" v-db-click @click=\"reset('userFrom')\">重置</el-button>\r\n <a class=\"ivu-ml-8 font12 ml10\" v-db-click @click=\"collapse = !collapse\">\r\n <template v-if=\"!collapse\"> 展开 <i class=\"el-icon-arrow-down\" /> </template>\r\n <template v-else> 收起 <i class=\"el-icon-arrow-up\" /> </template>\r\n </a>\r\n </el-form-item>\r\n </div>\r\n <div v-if=\"collapse\" class=\"acea-row search-form\">\r\n <div class=\"search-form-box\">\r\n <el-form-item label=\"用户搜索:\" label-for=\"nickname\">\r\n <el-input v-model=\"userFrom.nickname\" placeholder=\"请输入用户\" clearable class=\"form_content_width\">\r\n <el-select v-model=\"field_key\" slot=\"prepend\" style=\"width: 100px\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option value=\"uid\" label=\"UID\"></el-option>\r\n <el-option value=\"phone\" label=\"手机号\"></el-option>\r\n <el-option value=\"nickname\" label=\"用户昵称\"></el-option>\r\n </el-select>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"用户等级:\" label-for=\"level\">\r\n <el-select v-model=\"level\" placeholder=\"请选择用户等级\" clearable class=\"form_content_width\">\r\n <el-option value=\"all\" label=\"全部\">全部</el-option>\r\n <el-option\r\n :value=\"item.id\"\r\n v-for=\"(item, index) in levelList\"\r\n :key=\"index\"\r\n :label=\"item.name\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"用户分组:\">\r\n <el-select v-model=\"group_id\" placeholder=\"请选择用户分组\" clearable class=\"form_content_width\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option\r\n :value=\"item.id\"\r\n v-for=\"(item, index) in groupList\"\r\n :key=\"index\"\r\n :label=\"item.group_name\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"分销等级:\">\r\n <el-select v-model=\"agent_level\" placeholder=\"请选择分销等级\" clearable class=\"form_content_width\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option\r\n :value=\"item.grade\"\r\n v-for=\"(item, index) in membershipList\"\r\n :key=\"index\"\r\n :label=\"item.name\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"用户标签:\" label-for=\"label_id\">\r\n <div class=\"labelInput acea-row row-between-wrapper\" v-db-click @click=\"openSelectLabel\">\r\n <div style=\"width: 222px\">\r\n <div v-if=\"selectDataLabel.length\">\r\n <el-tag :closable=\"false\" v-for=\"(item, index) in selectDataLabel\" :key=\"index\" class=\"mr10\">{{\r\n item.label_name\r\n }}</el-tag>\r\n </div>\r\n <span class=\"span\" v-else>选择用户关联标签</span>\r\n </div>\r\n <div class=\"ivu-icon ivu-icon-ios-arrow-down\"></div>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"用户身份:\">\r\n <el-select v-model=\"userFrom.is_promoter\" placeholder=\"请选择\" clearable class=\"form_content_width\">\r\n <el-option value=\"\" label=\"全部\"></el-option>\r\n <el-option value=\"1\" label=\"推广员\"></el-option>\r\n <el-option value=\"0\" label=\"普通用户\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"付费会员:\" label-for=\"isMember\">\r\n <el-select v-model=\"userFrom.isMember\" placeholder=\"请选择\" clearable class=\"form_content_width\">\r\n <el-option value=\"\" label=\"全部\"></el-option>\r\n <el-option value=\"1\" label=\"是\"></el-option>\r\n <el-option value=\"0\" label=\"否\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"储值余额:\" label-for=\"balance\">\r\n <el-input\r\n clearable\r\n placeholder=\"最小值\"\r\n v-model=\"userFrom.balance[0]\"\r\n class=\"form_range_content_width\"\r\n />\r\n ~\r\n <el-input\r\n clearable\r\n placeholder=\"最大值\"\r\n v-model=\"userFrom.balance[1]\"\r\n class=\"form_range_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"积分剩余:\" label-for=\"integral\">\r\n <el-input\r\n clearable\r\n placeholder=\"最小值\"\r\n v-model=\"userFrom.integral[0]\"\r\n class=\"form_range_content_width\"\r\n />\r\n ~\r\n <el-input\r\n clearable\r\n placeholder=\"最大值\"\r\n v-model=\"userFrom.integral[1]\"\r\n class=\"form_range_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"上次消费:\" label-for=\"before_pay_time\">\r\n <el-date-picker\r\n clearable\r\n v-model=\"before_pay_time\"\r\n type=\"daterange\"\r\n :editable=\"false\"\r\n @change=\"(e) => onchangeTime(e, 'before_pay_time')\"\r\n format=\"yyyy/MM/dd\"\r\n value-format=\"yyyy/MM/dd\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n style=\"width: 250px\"\r\n ></el-date-picker>\r\n </el-form-item>\r\n <el-form-item label=\"下单次数:\" label-for=\"pay_count\">\r\n <el-input\r\n clearable\r\n placeholder=\"最小值\"\r\n v-model=\"userFrom.pay_count_num[0]\"\r\n class=\"form_range_content_width\"\r\n />\r\n ~\r\n <el-input\r\n clearable\r\n placeholder=\"最大值\"\r\n v-model=\"userFrom.pay_count_num[1]\"\r\n class=\"form_range_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"消费金额:\" label-for=\"store_name\">\r\n <el-input\r\n clearable\r\n placeholder=\"最小值\"\r\n v-model=\"userFrom.pay_count_money[0]\"\r\n class=\"form_range_content_width\"\r\n />\r\n ~\r\n <el-input\r\n clearable\r\n placeholder=\"最大值\"\r\n v-model=\"userFrom.pay_count_money[1]\"\r\n class=\"form_range_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"充值次数:\" label-for=\"store_name\">\r\n <el-input\r\n clearable\r\n placeholder=\"最小值\"\r\n v-model=\"userFrom.recharge_count[0]\"\r\n class=\"form_range_content_width\"\r\n />\r\n ~\r\n <el-input\r\n clearable\r\n placeholder=\"最大值\"\r\n v-model=\"userFrom.recharge_count[1]\"\r\n class=\"form_range_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"访问情况:\" label-for=\"user_time_type\">\r\n <el-select v-model=\"user_time_type\" placeholder=\"请选择访问情况\" clearable class=\"form_content_width\">\r\n <el-option value=\"\" label=\"全部\"></el-option>\r\n <el-option value=\"visitno\" label=\"时间段未访问\"></el-option>\r\n <el-option value=\"visit\" label=\"时间段访问过\"></el-option>\r\n <el-option value=\"add_time\" label=\"首次访问\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"访问时间:\" label-for=\"user_time\" v-if=\"user_time_type\">\r\n <el-date-picker\r\n clearable\r\n v-model=\"timeVal\"\r\n type=\"daterange\"\r\n :editable=\"false\"\r\n @change=\"(e) => onchangeTime(e, 'user_time')\"\r\n format=\"yyyy/MM/dd\"\r\n value-format=\"yyyy/MM/dd\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n style=\"width: 250px\"\r\n ></el-date-picker>\r\n </el-form-item>\r\n <!-- <el-form-item label=\"地区:\" label-for=\"country\">\r\n <el-select\r\n v-model=\"userFrom.country\"\r\n placeholder=\"请选择国家\"\r\n clearable\r\n @change=\"changeCountry\"\r\n class=\"form_content_width\"\r\n >\r\n <el-option value=\"domestic\" label=\"中国\"></el-option>\r\n <el-option value=\"abroad\" label=\"外国\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"省份:\" v-if=\"userFrom.country === 'domestic'\">\r\n <el-cascader\r\n :options=\"addresData\"\r\n :value=\"address\"\r\n v-model=\"address\"\r\n @change=\"handleChange\"\r\n clearable\r\n style=\"width: 250px\"\r\n ></el-cascader>\r\n </el-form-item> -->\r\n </div>\r\n\r\n <el-form-item class=\"search-form-sub\">\r\n <el-button type=\"primary\" label=\"default\" v-db-click @click=\"userSearchs\">搜索</el-button>\r\n <el-button class=\"ResetSearch\" v-db-click @click=\"reset('userFrom')\">重置</el-button>\r\n <a class=\"ivu-ml-8 font12 ml10\" v-db-click @click=\"collapse = !collapse\">\r\n <template v-if=\"!collapse\"> 展开 <i class=\"el-icon-arrow-down\" /> </template>\r\n <template v-else> 收起 <i class=\"el-icon-arrow-up\" /> </template>\r\n </a>\r\n </el-form-item>\r\n </div>\r\n </el-form>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt mt16\" :body-style=\"{ padding: '0 20px 20px' }\">\r\n <el-tabs v-model=\"userFrom.user_type\" @tab-click=\"onClickTab\">\r\n <el-tab-pane :label=\"item.name\" :name=\"item.type\" v-for=\"(item, index) in headeNum\" :key=\"index\" />\r\n </el-tabs>\r\n <el-row :gutter=\"24\" justify=\"space-between\">\r\n <el-col :span=\"24\">\r\n <el-button v-auth=\"['admin-user-save']\" type=\"primary\" v-db-click @click=\"edit({ uid: 0 })\"\r\n >添加用户</el-button\r\n >\r\n <el-button v-auth=\"['admin-user-coupon']\" v-db-click @click=\"onSend\">发送优惠券</el-button>\r\n <el-button\r\n v-auth=\"['admin-wechat-news']\"\r\n class=\"greens mr10\"\r\n v-db-click\r\n @click=\"onSendPic\"\r\n v-if=\"userFrom.user_type === 'wechat'\"\r\n >\r\n 发送图文消息\r\n </el-button>\r\n <el-button v-auth=\"['admin-user-group_set']\" v-db-click @click=\"setGroup\">批量设置分组</el-button>\r\n <el-button v-auth=\"['admin-user-set_label']\" v-db-click @click=\"setLabel\">批量设置标签</el-button>\r\n <el-button class=\"mr10\" v-db-click @click=\"exportList\">导出</el-button>\r\n\r\n <!-- <el-button v-auth=\"['admin-user-synchro']\" class=\"mr20\" v-db-click @click=\"synchro\">同步公众号用户</el-button> -->\r\n </el-col>\r\n <el-col :span=\"24\" class=\"userAlert\" v-if=\"selectionList.length\">\r\n <el-alert show-icon>\r\n <template slot=\"title\">\r\n 已选择<i class=\"userI\"> {{ selectionList.length }} </i>项\r\n </template>\r\n </el-alert>\r\n </el-col>\r\n </el-row>\r\n <el-table\r\n :data=\"userLists\"\r\n class=\"mt16\"\r\n ref=\"table\"\r\n highlight-current-row\r\n v-loading=\"loading\"\r\n empty-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n @sort-change=\"sortChanged\"\r\n @select=\"handleSelectRow\"\r\n @select-all=\"handleSelectAll\"\r\n >\r\n <el-table-column type=\"expand\">\r\n <template slot-scope=\"scope\">\r\n <expandRow :row=\"scope.row\"></expandRow>\r\n </template>\r\n </el-table-column>\r\n <el-table-column type=\"selection\" :selectable=\"isSel\" width=\"55\"> </el-table-column>\r\n <el-table-column label=\"用户ID\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.uid }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"头像\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"tabBox_img\" v-viewer>\r\n <img v-lazy=\"scope.row.avatar\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"姓名\" min-width=\"150\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"acea-row\">\r\n <i class=\"el-icon-male\" v-show=\"scope.row.sex === '男'\" style=\"color: #2db7f5; font-size: 15px\"></i>\r\n <i class=\"el-icon-female\" v-show=\"scope.row.sex === '女'\" style=\"color: #ed4014; font-size: 15px\"></i>\r\n <div v-text=\"scope.row.nickname\" class=\"\"></div>\r\n </div>\r\n <div v-if=\"scope.row.is_del == 1\" style=\"color: red\">用户已注销</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"付费会员\" min-width=\"90\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.isMember ? '是' : '否' }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户等级\" min-width=\"90\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.level }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"分组\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.group_id }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"分销等级\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.agent_level_name }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"手机号\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.phone }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户类型\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.user_type }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"上级用户\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.spread_uid_nickname }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"余额\" prop=\"now_money\" min-width=\"100\" :sortable=\"true\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.now_money }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <template v-if=\"scope.row.is_del != 1\">\r\n <a v-db-click @click=\"userDetail(scope.row)\">详情</a>\r\n\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <el-dropdown size=\"small\" @command=\"changeMenu(scope.row, $event, scope.$index)\" :transfer=\"true\">\r\n <span class=\"el-dropdown-link\">更多<i class=\"el-icon-arrow-down el-icon--right\"></i> </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <!-- <el-dropdown-item command=\"1\">编辑</el-dropdown-item> -->\r\n <el-dropdown-item command=\"2\">修改余额</el-dropdown-item>\r\n <el-dropdown-item command=\"8\">修改积分</el-dropdown-item>\r\n <el-dropdown-item command=\"3\">赠送会员</el-dropdown-item>\r\n <!-- <el-dropdown-item command=\"4\" v-if=\"row.vip_name\">清除等级</el-dropdown-item>-->\r\n <el-dropdown-item command=\"5\">设置分组</el-dropdown-item>\r\n <el-dropdown-item command=\"6\">设置标签</el-dropdown-item>\r\n <el-dropdown-item command=\"7\">修改上级推广人</el-dropdown-item>\r\n <el-dropdown-item command=\"99\" v-if=\"scope.row.spread_uid\">清除上级推广人</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n </template>\r\n <template v-else>\r\n <a v-db-click @click=\"userDetail(scope.row)\">详情</a>\r\n </template>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"userFrom.page\"\r\n :limit.sync=\"userFrom.limit\"\r\n @pagination=\"pageChange\"\r\n />\r\n </div>\r\n </el-card>\r\n <!-- 编辑表单 积分余额-->\r\n <edit-from ref=\"edits\" :FromData=\"FromData\" @submitFail=\"submitFail\"></edit-from>\r\n <!-- 发送优惠券-->\r\n <send-from ref=\"sends\" :userIds=\"ids.toString()\"></send-from>\r\n <!-- 会员详情-->\r\n <user-details ref=\"userDetails\"></user-details>\r\n <!--发送图文消息 -->\r\n <el-dialog :visible.sync=\"modal13\" title=\"发送消息\" width=\"1200px\" class=\"modelBox\">\r\n <news-category\r\n v-if=\"modal13\"\r\n :isShowSend=\"isShowSend\"\r\n :userIds=\"ids.toString()\"\r\n :scrollerHeight=\"scrollerHeight\"\r\n :contentTop=\"contentTop\"\r\n :contentWidth=\"contentWidth\"\r\n :maxCols=\"maxCols\"\r\n ></news-category>\r\n </el-dialog>\r\n <!--修改推广人-->\r\n <el-dialog :visible.sync=\"promoterShow\" title=\"修改推广人\" width=\"540px\" :show-close=\"true\">\r\n <el-form ref=\"formInline\" :model=\"formInline\" label-width=\"100px\" @submit.native.prevent>\r\n <el-form-item v-if=\"formInline\" label=\"选择推广人:\" prop=\"image\">\r\n <div class=\"picBox\" v-db-click @click=\"customer\">\r\n <div class=\"pictrue\" v-if=\"formInline.image\">\r\n <img v-lazy=\"formInline.image\" />\r\n </div>\r\n <div class=\"upLoad acea-row row-center-wrapper\" v-else>\r\n <i class=\"el-icon-user\"></i>\r\n </div>\r\n </div>\r\n </el-form-item>\r\n </el-form>\r\n <div class=\"acea-row row-right mt20\">\r\n <el-button v-db-click @click=\"cancel('formInline')\">取消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"putSend('formInline')\">提交</el-button>\r\n </div>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"customerShow\" title=\"请选择商城用户\" :show-close=\"true\" width=\"1000px\">\r\n <customerInfo v-if=\"customerShow\" @imageObject=\"imageObject\"></customerInfo>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"labelShow\" append-to-body title=\"请选择用户标签\" width=\"540px\" :show-close=\"true\">\r\n <userLabel\r\n v-if=\"labelShow\"\r\n :uid=\"labelActive.uid\"\r\n :only_get=\"!labelActive.uid\"\r\n @close=\"labelClose\"\r\n @activeData=\"activeData\"\r\n @onceGetList=\"onceGetList\"\r\n ></userLabel>\r\n </el-dialog>\r\n <el-drawer\r\n custom-class=\"demo-drawer\"\r\n :visible.sync=\"modals\"\r\n :wrapperClosable=\"false\"\r\n size=\"720\"\r\n title=\"用户信息填写\"\r\n >\r\n <div class=\"demo-drawer__content\">\r\n <userEdit ref=\"userEdit\" v-if=\"modals\" :userData=\"userData\"></userEdit>\r\n <div class=\"fix_footer acea-row row-center\">\r\n <el-button v-db-click @click=\"modals = false\">取消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"setUser\">提交</el-button>\r\n </div>\r\n </div>\r\n </el-drawer>\r\n <!-- 用户标签 -->\r\n <el-dialog\r\n :visible.sync=\"selectLabelShow\"\r\n append-to-body\r\n title=\"请选择用户标签\"\r\n width=\"540px\"\r\n :show-close=\"true\"\r\n :close-on-click-modal=\"false\"\r\n >\r\n <userLabel\r\n v-if=\"selectLabelShow\"\r\n :uid=\"0\"\r\n ref=\"userLabel\"\r\n :only_get=\"true\"\r\n :selectDataLabel=\"selectDataLabel\"\r\n @activeData=\"activeSelectData\"\r\n @close=\"labelClose\"\r\n ></userLabel>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport userLabel from '@/components/userLabel';\r\nimport { mapState } from 'vuex';\r\nimport expandRow from './tableExpand.vue';\r\nimport userEdit from './handle/userEdit.vue';\r\nimport {\r\n userList,\r\n getUserData,\r\n isShowApi,\r\n editOtherApi,\r\n giveLevelApi,\r\n userSetGroup,\r\n userGroupApi,\r\n levelListApi,\r\n userSetLabelApi,\r\n userLabelApi,\r\n userSynchro,\r\n getUserSaveForm,\r\n giveLevelTimeApi,\r\n getUserInfo,\r\n setUser,\r\n editUser,\r\n saveSetLabel,\r\n} from '@/api/user';\r\nimport { agentSpreadApi } from '@/api/agent';\r\nimport { exportUserList } from '@/api/export';\r\nimport editFrom from '../../../components/from/from';\r\nimport sendFrom from '@/components/sendCoupons/index';\r\nimport userDetails from './handle/userDetails';\r\nimport newsCategory from '@/components/newsCategory/index';\r\nimport customerInfo from '@/components/customerInfo';\r\nimport { cityList } from '@/api/app';\r\nimport { membershipDataListApi } from '@/api/membershipLevel';\r\n\r\nexport default {\r\n name: 'user_list',\r\n components: {\r\n expandRow,\r\n editFrom,\r\n sendFrom,\r\n userDetails,\r\n newsCategory,\r\n customerInfo,\r\n userLabel,\r\n userEdit,\r\n },\r\n data() {\r\n return {\r\n dataLabel: [],\r\n selectDataLabel: [],\r\n userData: {},\r\n modals: false,\r\n selectLabelShow: false,\r\n labelShow: false,\r\n customerShow: false,\r\n promoterShow: false,\r\n labelActive: {\r\n uid: 0,\r\n },\r\n formInline: {\r\n uid: 0,\r\n spread_uid: 0,\r\n image: '',\r\n },\r\n pickerOptions: this.$timeOptions,\r\n collapse: false,\r\n headeNum: [\r\n { type: '', name: '全部' },\r\n { type: 'wechat', name: '微信公众号' },\r\n { type: 'routine', name: '微信小程序' },\r\n { type: 'h5', name: 'H5' },\r\n { type: 'pc', name: 'PC' },\r\n { type: 'app', name: 'APP' },\r\n ],\r\n address: [],\r\n addresData: [],\r\n isShowSend: true,\r\n modal13: false,\r\n maxCols: 4,\r\n scrollerHeight: '600',\r\n contentTop: '130',\r\n contentWidth: '98%',\r\n grid: {\r\n xl: 6,\r\n lg: 6,\r\n md: 8,\r\n sm: 12,\r\n xs: 24,\r\n },\r\n grid2: {\r\n xl: 8,\r\n lg: 8,\r\n md: 8,\r\n sm: 12,\r\n xs: 24,\r\n },\r\n loading: false,\r\n total: 0,\r\n userFrom: {\r\n label_id: '',\r\n user_type: '',\r\n status: '',\r\n sex: '',\r\n is_promoter: '',\r\n country: '',\r\n isMember: '',\r\n pay_count_num: ['', ''],\r\n balance: ['', ''],\r\n integral: ['', ''],\r\n pay_count_money: ['', ''],\r\n recharge_count: ['', ''],\r\n user_time_type: '',\r\n user_time: '',\r\n before_pay_time: '',\r\n nickname: '',\r\n province: '',\r\n city: '',\r\n page: 1,\r\n limit: 15,\r\n level: '',\r\n group_id: '',\r\n agent_level: '',\r\n field_key: '',\r\n },\r\n before_pay_time: '',\r\n field_key: '',\r\n level: '',\r\n group_id: '',\r\n agent_level: '',\r\n label_id: '',\r\n user_time_type: '',\r\n pay_count: '',\r\n userLists: [],\r\n FromData: null,\r\n selectionList: [],\r\n user_ids: '',\r\n selectedData: [],\r\n timeVal: [],\r\n groupList: [],\r\n levelList: [],\r\n membershipList: [],\r\n labelFrom: {\r\n page: 1,\r\n limit: '',\r\n },\r\n labelLists: [],\r\n selectedIds: [], //选中合并项的id\r\n ids: [],\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n },\r\n created() {\r\n this.getList();\r\n this.getCityList();\r\n },\r\n mounted() {\r\n this.userGroup();\r\n this.levelLists();\r\n this.membershipDataList();\r\n // this.groupLists();\r\n },\r\n methods: {\r\n getCityList() {\r\n cityList().then((res) => {\r\n this.addresData = res.data;\r\n });\r\n },\r\n setUser() {\r\n let data = this.$refs.userEdit.formItem;\r\n let ids = [];\r\n this.$refs.userEdit.dataLabel.map((i) => {\r\n ids.push(i.id);\r\n });\r\n data.label_id = ids;\r\n // if (!data.real_name) return this.$message.warning(\"请输入真实姓名\");\r\n // if (!data.phone) return this.$message.warning(\"请输入手机号\");\r\n // if (!data.pwd) return this.$message.warning(\"请输入密码\");\r\n // if (!data.true_pwd) return this.$message.warning(\"请输入确认密码\");\r\n if (data.uid) {\r\n editUser(data)\r\n .then((res) => {\r\n this.modals = false;\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n } else {\r\n setUser(data)\r\n .then((res) => {\r\n this.modals = false;\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n }\r\n },\r\n onceGetList() {\r\n this.labelActive.uid = 0;\r\n this.getList();\r\n },\r\n // 标签弹窗关闭\r\n labelClose() {\r\n this.labelActive.uid = 0;\r\n this.labelShow = false;\r\n this.selectLabelShow = false;\r\n },\r\n // 提交\r\n putSend(name) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n if (!this.formInline.spread_uid) {\r\n return this.$message.error('请上传用户');\r\n }\r\n agentSpreadApi(this.formInline)\r\n .then((res) => {\r\n this.promoterShow = false;\r\n this.$message.success(res.msg);\r\n this.getList();\r\n this.$refs[name].resetFields();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n }\r\n });\r\n },\r\n\r\n save() {\r\n this.modals = true;\r\n\r\n // this.$modalForm(getUserSaveForm())\r\n // .then(() => {\r\n // this.userFrom.page = 1;\r\n // this.getList();\r\n // })\r\n // .catch((res) => {\r\n // this.$message.error(res.msg);\r\n // });\r\n },\r\n synchro() {\r\n userSynchro()\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n isSel(row) {\r\n return !!!row.is_del;\r\n },\r\n // 分组列表\r\n groupLists() {\r\n this.loading = true;\r\n userLabelApi(this.labelFrom)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.labelLists = data.list;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n onClickTab() {\r\n this.userFrom.page = 1;\r\n this.getList();\r\n },\r\n userGroup() {\r\n let data = {\r\n page: 1,\r\n limit: '',\r\n };\r\n userGroupApi(data).then((res) => {\r\n this.groupList = res.data.list;\r\n });\r\n },\r\n levelLists() {\r\n let data = {\r\n page: 1,\r\n limit: '',\r\n title: '',\r\n is_show: 1,\r\n };\r\n levelListApi(data).then((res) => {\r\n this.levelList = res.data.list;\r\n });\r\n },\r\n membershipDataList() {\r\n let data = {\r\n page: 1,\r\n limit: 0,\r\n staus: 1,\r\n };\r\n membershipDataListApi(data).then((res) => {\r\n this.membershipList = res.data.list;\r\n });\r\n },\r\n // 批量设置分组;\r\n setGroup() {\r\n if (this.ids.length === 0) {\r\n this.$message.warning('请选择要设置分组的用户');\r\n } else {\r\n let uids = { uids: this.ids };\r\n this.$modalForm(userSetGroup(uids)).then(() => {\r\n this.ids = [];\r\n this.selectedIds = [];\r\n this.getList();\r\n });\r\n }\r\n },\r\n // 批量设置标签;\r\n setLabel() {\r\n if (this.ids.length === 0) {\r\n this.$message.warning('请选择要设置标签的用户');\r\n } else {\r\n let uids = { uids: this.ids };\r\n this.labelActive.uid = 0;\r\n this.labelShow = true;\r\n // this.$modalForm(userSetLabelApi(uids)).then(() =>\r\n // this.$refs.sends.getList()\r\n // );\r\n }\r\n },\r\n activeSelectData(data) {\r\n this.selectLabelShow = false;\r\n this.selectDataLabel = data || [];\r\n if (this.selectDataLabel.length) {\r\n let activeIds = [];\r\n this.selectDataLabel.map((item) => {\r\n activeIds.push(item.id);\r\n });\r\n this.userFrom.label_id = activeIds.join(',');\r\n this.getList();\r\n } else {\r\n this.userFrom.label_id = '';\r\n }\r\n },\r\n handleClose(tag) {\r\n let i = this.selectDataLabel.findIndex((item) => item.id === tag.id);\r\n if (i !== -1) {\r\n this.selectDataLabel.splice(i, 1);\r\n }\r\n this.$nextTick(() => {\r\n if (this.selectDataLabel.length) {\r\n let activeIds = [];\r\n this.selectDataLabel.map((item) => {\r\n activeIds.push(item.id);\r\n });\r\n this.userFrom.label_id = activeIds.join(',');\r\n } else {\r\n this.userFrom.label_id = '';\r\n }\r\n });\r\n // this.userSearchs();\r\n },\r\n // 批量设置标签\r\n activeData(data) {\r\n let labels = [];\r\n if (!data.length) return;\r\n data.map((i) => {\r\n labels.push(i.id);\r\n });\r\n saveSetLabel({\r\n uids: this.ids.join(','),\r\n label_id: labels,\r\n }).then((res) => {\r\n this.labelShow = false;\r\n this.selectedIds = new Set();\r\n this.getList();\r\n this.$message.success(res.msg);\r\n });\r\n },\r\n //是否为付费会员;\r\n changeMember() {\r\n this.userFrom.page = 1;\r\n this.getList();\r\n },\r\n // 选择国家\r\n changeCountry() {\r\n if (this.userFrom.country === 'abroad' || !this.userFrom.country) {\r\n this.selectedData = [];\r\n this.userFrom.province = '';\r\n this.userFrom.city = '';\r\n this.address = [];\r\n }\r\n },\r\n // 选择地址\r\n handleChange(selectedData) {\r\n this.selectedData = selectedData.map((o) => o.label);\r\n this.userFrom.province = this.selectedData[0];\r\n this.userFrom.city = this.selectedData[1];\r\n },\r\n // 具体日期\r\n onchangeTime(e, type) {\r\n this.userFrom[type] = e ? e.join('-') : '';\r\n },\r\n userDetail(row) {\r\n this.$refs.userDetails.modals = true;\r\n this.$refs.userDetails.getDetails(row.uid);\r\n },\r\n // 操作\r\n changeMenu(row, name, index) {\r\n let uid = [];\r\n uid.push(row.uid);\r\n let uids = { uids: uid };\r\n switch (name) {\r\n case '1':\r\n this.edit(row);\r\n break;\r\n case '2':\r\n this.getOtherFrom(row.uid, 'money');\r\n break;\r\n case '3':\r\n this.giveLevelTime(row.uid);\r\n break;\r\n case '4':\r\n this.del(row, '清除 【 ' + this.tenText(row.nickname) + ' 】的会员等级', index, 'user');\r\n break;\r\n case '5':\r\n this.$modalForm(userSetGroup(uids)).then(() => this.getList());\r\n break;\r\n case '6':\r\n this.openLabel(row);\r\n break;\r\n case '7':\r\n this.editS(row);\r\n break;\r\n case '8':\r\n this.getOtherFrom(row.uid, 'point');\r\n break;\r\n default:\r\n this.del(row, '解除【 ' + this.tenText(row.nickname) + ' 】的上级推广人', index, 'tuiguang');\r\n }\r\n },\r\n tenText(str) {\r\n if (str.length > 10) {\r\n //如果字符长度超过10,后面的字符就变成...可自行调整长度和代替字符\r\n str = str.substr(0, 10) + '...'; //截取从第一个字符开始,往后取10个字符,剩余的用...代替\r\n }\r\n return str;\r\n },\r\n openLabel(row) {\r\n this.labelShow = true;\r\n this.labelActive.uid = row.uid;\r\n },\r\n openSelectLabel() {\r\n this.selectLabelShow = true;\r\n },\r\n editS(row) {\r\n this.promoterShow = true;\r\n this.formInline.uid = row.uid;\r\n },\r\n customer() {\r\n this.customerShow = true;\r\n },\r\n imageObject(e) {\r\n this.customerShow = false;\r\n this.formInline.spread_uid = e.uid;\r\n this.formInline.image = e.image;\r\n },\r\n cancel(name) {\r\n this.promoterShow = false;\r\n this.$refs[name].resetFields();\r\n this.formInline = {\r\n uid: 0,\r\n spread_uid: 0,\r\n image: '',\r\n };\r\n },\r\n // 赠送会员等级\r\n giveLevel(id) {\r\n this.$modalForm(giveLevelApi(id)).then(() => this.getList(1));\r\n\r\n // giveLevelApi(id)\r\n // .then(async (res) => {\r\n // if (res.data.status === false) {\r\n // return this.$authLapse(res.data);\r\n // }\r\n\r\n // this.FromData = res.data;\r\n // this.$refs.edits.modals = true;\r\n // })\r\n // .catch((res) => {\r\n // this.$message.error(res.msg);\r\n // });\r\n },\r\n // 赠送会员等级\r\n giveLevelTime(id) {\r\n this.$modalForm(giveLevelTimeApi(id)).then(() => this.getList(1));\r\n\r\n // giveLevelTimeApi(id)\r\n // .then(async (res) => {\r\n // if (res.data.status === false) {\r\n // return this.$authLapse(res.data);\r\n // }\r\n // this.FromData = res.data;\r\n // this.$refs.edits.modals = true;\r\n // })\r\n // .catch((res) => {\r\n // this.$message.error(res.msg);\r\n // });\r\n },\r\n // 删除\r\n del(row, tit, num, name) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: name === 'user' ? `user/del_level/${row.uid}` : `agent/stair/delete_spread/${row.uid}`,\r\n method: name === 'user' ? 'DELETE' : 'PUT',\r\n ids: '',\r\n width: 600,\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 清除会员删除成功\r\n submitModel() {\r\n this.getList();\r\n },\r\n // 会员列表\r\n getList() {\r\n // if (this.selectDataLabel.length) {\r\n // let activeIds = [];\r\n // this.selectDataLabel.forEach((item) => {\r\n // activeIds.push(item.id);\r\n // });\r\n // this.userFrom.label_id = activeIds.join(',');\r\n // }\r\n this.userFrom.user_type = this.userFrom.user_type || '';\r\n this.userFrom.status = this.userFrom.status || '';\r\n this.userFrom.sex = this.userFrom.sex || '';\r\n this.userFrom.is_promoter = this.userFrom.is_promoter || '';\r\n this.userFrom.country = this.userFrom.country || '';\r\n this.userFrom.pay_count = this.pay_count === 'all' ? '' : this.pay_count;\r\n this.userFrom.user_time_type = this.user_time_type === 'all' ? '' : this.user_time_type;\r\n this.userFrom.field_key = this.field_key === 'all' ? '' : this.field_key;\r\n this.userFrom.level = this.level === 'all' ? '' : this.level;\r\n this.userFrom.group_id = this.group_id === 'all' ? '' : this.group_id;\r\n this.userFrom.agent_level = this.agent_level === 'all' ? '' : this.agent_level;\r\n this.loading = true;\r\n userList(this.userFrom)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.userLists = data.list;\r\n\r\n this.total = data.count;\r\n this.loading = false;\r\n this.$nextTick(() => {\r\n this.setChecked();\r\n });\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 用户导出\r\n async exportList() {\r\n if (this.ids.length) {\r\n this.userFrom.ids = this.ids;\r\n }\r\n this.userFrom.user_type = this.userFrom.user_type || '';\r\n this.userFrom.status = this.userFrom.status || '';\r\n this.userFrom.sex = this.userFrom.sex || '';\r\n this.userFrom.is_promoter = this.userFrom.is_promoter || '';\r\n this.userFrom.country = this.userFrom.country || '';\r\n this.userFrom.pay_count = this.pay_count === 'all' ? '' : this.pay_count;\r\n this.userFrom.user_time_type = this.user_time_type === 'all' ? '' : this.user_time_type;\r\n this.userFrom.field_key = this.field_key === 'all' ? '' : this.field_key;\r\n this.userFrom.level = this.level === 'all' ? '' : this.level;\r\n this.userFrom.group_id = this.group_id === 'all' ? '' : this.group_id;\r\n this.userFrom.agent_level = this.agent_level === 'all' ? '' : this.agent_level;\r\n let [th, filekey, data, fileName] = [[], [], [], ''];\r\n // let fileName = \"\";\r\n let excelData = JSON.parse(JSON.stringify(this.userFrom));\r\n excelData.page = 1;\r\n for (let i = 0; i < excelData.page + 1; i++) {\r\n let lebData = await this.getExcelData(excelData);\r\n if (!fileName) fileName = lebData.filename;\r\n if (!filekey.length) {\r\n filekey = lebData.fileKey;\r\n }\r\n if (!th.length) th = lebData.header;\r\n if (lebData.export.length) {\r\n data = data.concat(lebData.export);\r\n excelData.page++;\r\n } else {\r\n this.$exportExcel(th, filekey, fileName, data);\r\n return;\r\n }\r\n }\r\n },\r\n getExcelData(excelData) {\r\n return new Promise((resolve, reject) => {\r\n exportUserList(excelData).then((res) => {\r\n resolve(res.data);\r\n });\r\n });\r\n },\r\n pageChange() {\r\n this.selectionList = [];\r\n this.getList();\r\n },\r\n\r\n // 搜索\r\n userSearchs() {\r\n this.userFrom.page = 1;\r\n this.getList();\r\n },\r\n // 重置\r\n reset(name) {\r\n this.userFrom = {\r\n label_id: '',\r\n status: '',\r\n sex: '',\r\n is_promoter: '',\r\n country: '',\r\n isMember: '',\r\n pay_count_num: ['', ''],\r\n balance: ['', ''],\r\n integral: ['', ''],\r\n pay_count_money: ['', ''],\r\n recharge_count: ['', ''],\r\n user_time_type: '',\r\n user_time: '',\r\n before_pay_time: '',\r\n nickname: '',\r\n province: '',\r\n city: '',\r\n page: 1,\r\n limit: 15,\r\n level: '',\r\n group_id: '',\r\n agent_level: '',\r\n field_key: '',\r\n page: 1, // 当前页\r\n limit: 20, // 每页显示条数\r\n };\r\n this.field_key = '';\r\n this.level = '';\r\n this.group_id = '';\r\n this.agent_level = '';\r\n this.dataLabel = [];\r\n this.selectDataLabel = [];\r\n this.user_time_type = '';\r\n this.pay_count = '';\r\n this.timeVal = [];\r\n this.selectedIds = new Set();\r\n this.getList();\r\n },\r\n // 获取编辑表单数据\r\n getUserFrom(id) {\r\n getUserInfo(id)\r\n .then(async (res) => {\r\n this.modals = true;\r\n this.userData = res.data;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 获取积分余额表单\r\n getOtherFrom(id, type) {\r\n this.$modalForm(editOtherApi(id, type)).then(() => this.getList(1));\r\n },\r\n // 修改状态\r\n onchangeIsShow(row) {\r\n let data = {\r\n id: row.uid,\r\n status: row.status,\r\n };\r\n isShowApi(data)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 点击发送优惠券\r\n onSend() {\r\n if (this.ids.length === 0) {\r\n this.$message.warning('请选择要发送优惠券的用户');\r\n } else {\r\n this.$refs.sends.modals = true;\r\n this.$refs.sends.getList();\r\n }\r\n },\r\n // 发送图文消息\r\n onSendPic() {\r\n if (this.ids.length === 0) {\r\n this.$message.warning('请选择要发送图文消息的用户');\r\n } else {\r\n this.modal13 = true;\r\n }\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.getUserFrom(row.uid);\r\n },\r\n // 修改成功\r\n submitFail() {\r\n // this.getList();\r\n },\r\n // 排序\r\n sortChanged(e, props, order) {\r\n this.userFrom[e.prop] = e.order;\r\n this.getList();\r\n },\r\n //全选和取消全选时触发\r\n handleSelectAll(selection) {\r\n let ids = [];\r\n selection.map((e) => {\r\n ids.push(e.uid);\r\n });\r\n this.selectedIds = ids;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n this.setChecked();\r\n });\r\n },\r\n // 选中某一行\r\n handleSelectRow(selection, row) {\r\n let ids = [];\r\n selection.map((e) => {\r\n ids.push(e.uid);\r\n });\r\n this.selectedIds = ids;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n this.setChecked();\r\n });\r\n },\r\n setChecked() {\r\n //将new Set()转化为数组\r\n this.ids = [...this.selectedIds];\r\n // 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据\r\n let objData = this.$refs.table.objData;\r\n for (let index in objData) {\r\n if (this.selectedIds.has(objData[index].uid)) {\r\n objData[index]._isChecked = true;\r\n }\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n::v-deep .el-tabs__item {\r\n height: 54px !important;\r\n line-height: 54px !important;\r\n}\r\n\r\n.picBox {\r\n display: inline-block;\r\n cursor: pointer;\r\n\r\n .upLoad {\r\n width: 58px;\r\n height: 58px;\r\n line-height: 58px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n border-radius: 4px;\r\n background: rgba(0, 0, 0, 0.02);\r\n font-size: 24px;\r\n font-weight: 500;\r\n }\r\n\r\n .pictrue {\r\n width: 60px;\r\n height: 60px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n margin-right: 10px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n.fix_footer {\r\n position: fixed;\r\n bottom: 0;\r\n width: -webkit-fill-available;\r\n background: #fff;\r\n padding: 20px 0px;\r\n box-sizing: border-box;\r\n z-index: 100;\r\n}\r\n.userFrom {\r\n ::v-deep .ivu-form-item-content {\r\n margin-left: 0px !important;\r\n }\r\n}\r\n\r\n.userAlert {\r\n margin-top: 20px;\r\n}\r\n\r\n.userI {\r\n color: var(--prev-color-primary);\r\n font-style: normal;\r\n}\r\n\r\nimg {\r\n height: 36px;\r\n display: block;\r\n}\r\n\r\n.tabBox_img {\r\n width: 36px;\r\n height: 36px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n\r\n.tabBox_tit {\r\n width: 60%;\r\n font-size: 12px !important;\r\n margin: 0 2px 0 10px;\r\n letter-spacing: 1px;\r\n padding: 5px 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.modelBox {\r\n ::v-deep .ivu-modal-body {\r\n padding: 0 16px 16px 16px !important;\r\n }\r\n}\r\n\r\n.vipName {\r\n color: #dab176;\r\n}\r\n\r\n.listbox {\r\n ::v-deep .ivu-divider-horizontal {\r\n margin: 0 !important;\r\n }\r\n}\r\n\r\n.labelInput {\r\n width: 250px;\r\n border: 1px solid #dcdee2;\r\n padding: 0 15px;\r\n border-radius: 5px;\r\n min-height: 30px;\r\n cursor: pointer;\r\n font-size: 12px;\r\n\r\n .span {\r\n color: #c5c8ce;\r\n }\r\n\r\n .ivu-icon-ios-arrow-down {\r\n font-size: 14px;\r\n color: #808695;\r\n }\r\n}\r\n\r\n.demo-drawer-footer {\r\n width: 100%;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n border-top: 1px solid #e8e8e8;\r\n padding: 10px 16px;\r\n text-align: right;\r\n background: #fff;\r\n}\r\n\r\n.search-form {\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n .search-form-box {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex: 1;\r\n }\r\n}\r\n\r\n.search-form-sub {\r\n display: flex;\r\n}\r\n</style>\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAogBA,OAAAA,SAAA;AACA,SAAAC,QAAA;AACA,OAAAC,SAAA;AACA,OAAAC,QAAA;AACA,SACAC,QAAA,EACAC,WAAA,EACAC,SAAA,EACAC,YAAA,EACAC,YAAA,EACAC,YAAA,EACAC,YAAA,EACAC,YAAA,EACAC,eAAA,EACAC,YAAA,EACAC,WAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,WAAA,EACAC,OAAA,IAAAA,QAAA,EACAC,QAAA,EACAC,YAAA,QACA;AACA,SAAAC,cAAA;AACA,SAAAC,cAAA;AACA,OAAAC,QAAA;AACA,OAAAC,QAAA;AACA,OAAAC,WAAA;AACA,OAAAC,YAAA;AACA,OAAAC,YAAA;AACA,SAAAC,QAAA;AACA,SAAAC,qBAAA;AAEA;EACAC,IAAA;EACAC,UAAA;IACA7B,SAAA,EAAAA,SAAA;IACAqB,QAAA,EAAAA,QAAA;IACAC,QAAA,EAAAA,QAAA;IACAC,WAAA,EAAAA,WAAA;IACAC,YAAA,EAAAA,YAAA;IACAC,YAAA,EAAAA,YAAA;IACA3B,SAAA,EAAAA,SAAA;IACAG,QAAA,EAAAA;EACA;EACA6B,IAAA,WAAAA,KAAA;IACA;MACAC,SAAA;MACAC,eAAA;MACAC,QAAA;MACAC,MAAA;MACAC,eAAA;MACAC,SAAA;MACAC,YAAA;MACAC,YAAA;MACAC,WAAA;QACAC,GAAA;MACA;MACAC,UAAA;QACAD,GAAA;QACAE,UAAA;QACAC,KAAA;MACA;MACAC,aAAA,OAAAC,YAAA;MACAC,QAAA;MACAC,QAAA,GACA;QAAAC,IAAA;QAAApB,IAAA;MAAA,GACA;QAAAoB,IAAA;QAAApB,IAAA;MAAA,GACA;QAAAoB,IAAA;QAAApB,IAAA;MAAA,GACA;QAAAoB,IAAA;QAAApB,IAAA;MAAA,GACA;QAAAoB,IAAA;QAAApB,IAAA;MAAA,GACA;QAAAoB,IAAA;QAAApB,IAAA;MAAA,EACA;MACAqB,OAAA;MACAC,UAAA;MACAC,UAAA;MACAC,OAAA;MACAC,OAAA;MACAC,cAAA;MACAC,UAAA;MACAC,YAAA;MACAC,IAAA;QACAC,EAAA;QACAC,EAAA;QACAC,EAAA;QACAC,EAAA;QACAC,EAAA;MACA;MACAC,KAAA;QACAL,EAAA;QACAC,EAAA;QACAC,EAAA;QACAC,EAAA;QACAC,EAAA;MACA;MACAE,OAAA;MACAC,KAAA;MACAC,QAAA;QACAC,QAAA;QACAC,SAAA;QACAC,MAAA;QACAC,GAAA;QACAC,WAAA;QACAC,OAAA;QACAC,QAAA;QACAC,aAAA;QACAC,OAAA;QACAC,QAAA;QACAC,eAAA;QACAC,cAAA;QACAC,cAAA;QACAC,SAAA;QACAC,eAAA;QACAC,QAAA;QACAC,QAAA;QACAC,IAAA;QACAC,IAAA;QACAC,KAAA;QACAC,KAAA;QACAC,QAAA;QACAC,WAAA;QACAC,SAAA;MACA;MACAT,eAAA;MACAS,SAAA;MACAH,KAAA;MACAC,QAAA;MACAC,WAAA;MACAtB,QAAA;MACAY,cAAA;MACAY,SAAA;MACAC,SAAA;MACAC,QAAA;MACAC,aAAA;MACAC,QAAA;MACAC,YAAA;MACAC,OAAA;MACAC,SAAA;MACAC,SAAA;MACAC,cAAA;MACAC,SAAA;QACAhB,IAAA;QACAC,KAAA;MACA;MACAgB,UAAA;MACAC,WAAA;MAAA;MACAC,GAAA;IACA;EACA;EACAC,QAAA,EAAAC,aAAA,KACA3G,QAAA,wBACA;EACA4G,OAAA,WAAAA,QAAA;IACA,KAAAC,OAAA;IACA,KAAAC,WAAA;EACA;EACAC,OAAA,WAAAA,QAAA;IACA,KAAAC,SAAA;IACA,KAAAC,UAAA;IACA,KAAAC,kBAAA;IACA;EACA;EACAC,OAAA;IACAL,WAAA,WAAAA,YAAA;MAAA,IAAAM,KAAA;MACAzF,QAAA,GAAA0F,IAAA,WAAAC,GAAA;QACAF,KAAA,CAAAjE,UAAA,GAAAmE,GAAA,CAAAvF,IAAA;MACA;IACA;IACAd,OAAA,WAAAA,QAAA;MAAA,IAAAsG,MAAA;MACA,IAAAxF,IAAA,QAAAyF,KAAA,CAAAtH,QAAA,CAAAuH,QAAA;MACA,IAAAhB,GAAA;MACA,KAAAe,KAAA,CAAAtH,QAAA,CAAA8B,SAAA,CAAA0F,GAAA,WAAAC,CAAA;QACAlB,GAAA,CAAAmB,IAAA,CAAAD,CAAA,CAAAE,EAAA;MACA;MACA9F,IAAA,CAAAqC,QAAA,GAAAqC,GAAA;MACA;MACA;MACA;MACA;MACA,IAAA1E,IAAA,CAAAU,GAAA;QACAvB,QAAA,CAAAa,IAAA,EACAsF,IAAA,WAAAC,GAAA;UACAC,MAAA,CAAApF,MAAA;UACAoF,MAAA,CAAAO,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;UACAT,MAAA,CAAAV,OAAA;QACA,GACAoB,KAAA,WAAAC,GAAA;UACAX,MAAA,CAAAO,QAAA,CAAAK,KAAA,CAAAD,GAAA;QACA;MACA;QACAjH,QAAA,CAAAc,IAAA,EACAsF,IAAA,WAAAC,GAAA;UACAC,MAAA,CAAApF,MAAA;UACAoF,MAAA,CAAAO,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;UACAT,MAAA,CAAAV,OAAA;QACA,GACAoB,KAAA,WAAAC,GAAA;UACAX,MAAA,CAAAO,QAAA,CAAAK,KAAA,CAAAD,GAAA,CAAAF,GAAA;QACA;MACA;IACA;IACAI,WAAA,WAAAA,YAAA;MACA,KAAA5F,WAAA,CAAAC,GAAA;MACA,KAAAoE,OAAA;IACA;IACA;IACAwB,UAAA,WAAAA,WAAA;MACA,KAAA7F,WAAA,CAAAC,GAAA;MACA,KAAAJ,SAAA;MACA,KAAAD,eAAA;IACA;IACA;IACAkG,OAAA,WAAAA,QAAAzG,IAAA;MAAA,IAAA0G,MAAA;MACA,KAAAf,KAAA,CAAA3F,IAAA,EAAA2G,QAAA,WAAAC,KAAA;QACA,IAAAA,KAAA;UACA,KAAAF,MAAA,CAAA7F,UAAA,CAAAC,UAAA;YACA,OAAA4F,MAAA,CAAAT,QAAA,CAAAK,KAAA;UACA;UACA/G,cAAA,CAAAmH,MAAA,CAAA7F,UAAA,EACA2E,IAAA,WAAAC,GAAA;YACAiB,MAAA,CAAAhG,YAAA;YACAgG,MAAA,CAAAT,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;YACAO,MAAA,CAAA1B,OAAA;YACA0B,MAAA,CAAAf,KAAA,CAAA3F,IAAA,EAAA6G,WAAA;UACA,GACAT,KAAA,WAAAX,GAAA;YACAiB,MAAA,CAAAT,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;UACA;QACA;MACA;IACA;IAEAW,IAAA,WAAAA,KAAA;MACA,KAAAxG,MAAA;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACA;IACAyG,OAAA,WAAAA,QAAA;MAAA,IAAAC,MAAA;MACAhI,WAAA,GACAwG,IAAA,WAAAC,GAAA;QACAuB,MAAA,CAAAf,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;MACA,GACAC,KAAA,WAAAX,GAAA;QACAuB,MAAA,CAAAf,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACAc,KAAA,WAAAA,MAAAC,GAAA;MACA,UAAAA,GAAA,CAAAC,MAAA;IACA;IACA;IACAC,UAAA,WAAAA,WAAA;MAAA,IAAAC,MAAA;MACA,KAAAjF,OAAA;MACArD,YAAA,MAAA0F,SAAA,EACAe,IAAA;QAAA,IAAA8B,IAAA,GAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAAC,QAAAjC,GAAA;UAAA,IAAAvF,IAAA;UAAA,OAAAsH,YAAA,GAAAG,CAAA,WAAAC,QAAA;YAAA,kBAAAA,QAAA,CAAAC,CAAA;cAAA;gBACA3H,IAAA,GAAAuF,GAAA,CAAAvF,IAAA;gBACAmH,MAAA,CAAA3C,UAAA,GAAAxE,IAAA,CAAA4H,IAAA;cAAA;gBAAA,OAAAF,QAAA,CAAAG,CAAA;YAAA;UAAA,GAAAL,OAAA;QAAA,CACA;QAAA,iBAAAM,EAAA;UAAA,OAAAV,IAAA,CAAAW,KAAA,OAAAC,SAAA;QAAA;MAAA,KACA9B,KAAA,WAAAX,GAAA;QACA4B,MAAA,CAAAjF,OAAA;QACAiF,MAAA,CAAApB,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACAgC,UAAA,WAAAA,WAAA;MACA,KAAA7F,QAAA,CAAAmB,IAAA;MACA,KAAAuB,OAAA;IACA;IACAG,SAAA,WAAAA,UAAA;MAAA,IAAAiD,MAAA;MACA,IAAAlI,IAAA;QACAuD,IAAA;QACAC,KAAA;MACA;MACA9E,YAAA,CAAAsB,IAAA,EAAAsF,IAAA,WAAAC,GAAA;QACA2C,MAAA,CAAA9D,SAAA,GAAAmB,GAAA,CAAAvF,IAAA,CAAA4H,IAAA;MACA;IACA;IACA1C,UAAA,WAAAA,WAAA;MAAA,IAAAiD,MAAA;MACA,IAAAnI,IAAA;QACAuD,IAAA;QACAC,KAAA;QACA4E,KAAA;QACAC,OAAA;MACA;MACA1J,YAAA,CAAAqB,IAAA,EAAAsF,IAAA,WAAAC,GAAA;QACA4C,MAAA,CAAA9D,SAAA,GAAAkB,GAAA,CAAAvF,IAAA,CAAA4H,IAAA;MACA;IACA;IACAzC,kBAAA,WAAAA,mBAAA;MAAA,IAAAmD,MAAA;MACA,IAAAtI,IAAA;QACAuD,IAAA;QACAC,KAAA;QACA+E,KAAA;MACA;MACA1I,qBAAA,CAAAG,IAAA,EAAAsF,IAAA,WAAAC,GAAA;QACA+C,MAAA,CAAAhE,cAAA,GAAAiB,GAAA,CAAAvF,IAAA,CAAA4H,IAAA;MACA;IACA;IACA;IACAY,QAAA,WAAAA,SAAA;MAAA,IAAAC,MAAA;MACA,SAAA/D,GAAA,CAAAgE,MAAA;QACA,KAAA3C,QAAA,CAAA4C,OAAA;MACA;QACA,IAAAC,IAAA;UAAAA,IAAA,OAAAlE;QAAA;QACA,KAAAmE,UAAA,CAAApK,YAAA,CAAAmK,IAAA,GAAAtD,IAAA;UACAmD,MAAA,CAAA/D,GAAA;UACA+D,MAAA,CAAAhE,WAAA;UACAgE,MAAA,CAAA3D,OAAA;QACA;MACA;IACA;IACA;IACAgE,QAAA,WAAAA,SAAA;MACA,SAAApE,GAAA,CAAAgE,MAAA;QACA,KAAA3C,QAAA,CAAA4C,OAAA;MACA;QACA,IAAAC,IAAA;UAAAA,IAAA,OAAAlE;QAAA;QACA,KAAAjE,WAAA,CAAAC,GAAA;QACA,KAAAJ,SAAA;QACA;QACA;QACA;MACA;IACA;IACAyI,gBAAA,WAAAA,iBAAA/I,IAAA;MACA,KAAAK,eAAA;MACA,KAAAH,eAAA,GAAAF,IAAA;MACA,SAAAE,eAAA,CAAAwI,MAAA;QACA,IAAAM,SAAA;QACA,KAAA9I,eAAA,CAAAyF,GAAA,WAAAsD,IAAA;UACAD,SAAA,CAAAnD,IAAA,CAAAoD,IAAA,CAAAnD,EAAA;QACA;QACA,KAAA1D,QAAA,CAAAC,QAAA,GAAA2G,SAAA,CAAAE,IAAA;QACA,KAAApE,OAAA;MACA;QACA,KAAA1C,QAAA,CAAAC,QAAA;MACA;IACA;IACA8G,WAAA,WAAAA,YAAAC,GAAA;MAAA,IAAAC,MAAA;MACA,IAAAzD,CAAA,QAAA1F,eAAA,CAAAoJ,SAAA,WAAAL,IAAA;QAAA,OAAAA,IAAA,CAAAnD,EAAA,KAAAsD,GAAA,CAAAtD,EAAA;MAAA;MACA,IAAAF,CAAA;QACA,KAAA1F,eAAA,CAAAqJ,MAAA,CAAA3D,CAAA;MACA;MACA,KAAA4D,SAAA;QACA,IAAAH,MAAA,CAAAnJ,eAAA,CAAAwI,MAAA;UACA,IAAAM,SAAA;UACAK,MAAA,CAAAnJ,eAAA,CAAAyF,GAAA,WAAAsD,IAAA;YACAD,SAAA,CAAAnD,IAAA,CAAAoD,IAAA,CAAAnD,EAAA;UACA;UACAuD,MAAA,CAAAjH,QAAA,CAAAC,QAAA,GAAA2G,SAAA,CAAAE,IAAA;QACA;UACAG,MAAA,CAAAjH,QAAA,CAAAC,QAAA;QACA;MACA;MACA;IACA;IACA;IACAoH,UAAA,WAAAA,WAAAzJ,IAAA;MAAA,IAAA0J,MAAA;MACA,IAAAC,MAAA;MACA,KAAA3J,IAAA,CAAA0I,MAAA;MACA1I,IAAA,CAAA2F,GAAA,WAAAC,CAAA;QACA+D,MAAA,CAAA9D,IAAA,CAAAD,CAAA,CAAAE,EAAA;MACA;MACA1G,YAAA;QACAwJ,IAAA,OAAAlE,GAAA,CAAAwE,IAAA;QACA7G,QAAA,EAAAsH;MACA,GAAArE,IAAA,WAAAC,GAAA;QACAmE,MAAA,CAAApJ,SAAA;QACAoJ,MAAA,CAAAjF,WAAA,OAAAmF,GAAA;QACAF,MAAA,CAAA5E,OAAA;QACA4E,MAAA,CAAA3D,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;MACA;IACA;IACA;IACA4D,YAAA,WAAAA,aAAA;MACA,KAAAzH,QAAA,CAAAmB,IAAA;MACA,KAAAuB,OAAA;IACA;IACA;IACAgF,aAAA,WAAAA,cAAA;MACA,SAAA1H,QAAA,CAAAM,OAAA,uBAAAN,QAAA,CAAAM,OAAA;QACA,KAAAwB,YAAA;QACA,KAAA9B,QAAA,CAAAiB,QAAA;QACA,KAAAjB,QAAA,CAAAkB,IAAA;QACA,KAAAnC,OAAA;MACA;IACA;IACA;IACA4I,YAAA,WAAAA,aAAA7F,YAAA;MACA,KAAAA,YAAA,GAAAA,YAAA,CAAAyB,GAAA,WAAAqE,CAAA;QAAA,OAAAA,CAAA,CAAAC,KAAA;MAAA;MACA,KAAA7H,QAAA,CAAAiB,QAAA,QAAAa,YAAA;MACA,KAAA9B,QAAA,CAAAkB,IAAA,QAAAY,YAAA;IACA;IACA;IACAgG,YAAA,WAAAA,aAAAC,CAAA,EAAAjJ,IAAA;MACA,KAAAkB,QAAA,CAAAlB,IAAA,IAAAiJ,CAAA,GAAAA,CAAA,CAAAjB,IAAA;IACA;IACAkB,UAAA,WAAAA,WAAApD,GAAA;MACA,KAAAvB,KAAA,CAAAhG,WAAA,CAAAW,MAAA;MACA,KAAAqF,KAAA,CAAAhG,WAAA,CAAA4K,UAAA,CAAArD,GAAA,CAAAtG,GAAA;IACA;IACA;IACA4J,UAAA,WAAAA,WAAAtD,GAAA,EAAAlH,IAAA,EAAAyK,KAAA;MAAA,IAAAC,OAAA;MACA,IAAA9J,GAAA;MACAA,GAAA,CAAAmF,IAAA,CAAAmB,GAAA,CAAAtG,GAAA;MACA,IAAAkI,IAAA;QAAAA,IAAA,EAAAlI;MAAA;MACA,QAAAZ,IAAA;QACA;UACA,KAAA2K,IAAA,CAAAzD,GAAA;UACA;QACA;UACA,KAAA0D,YAAA,CAAA1D,GAAA,CAAAtG,GAAA;UACA;QACA;UACA,KAAAiK,aAAA,CAAA3D,GAAA,CAAAtG,GAAA;UACA;QACA;UACA,KAAAkK,GAAA,CAAA5D,GAAA,iBAAA6D,OAAA,CAAA7D,GAAA,CAAA5D,QAAA,eAAAmH,KAAA;UACA;QACA;UACA,KAAA1B,UAAA,CAAApK,YAAA,CAAAmK,IAAA,GAAAtD,IAAA;YAAA,OAAAkF,OAAA,CAAA1F,OAAA;UAAA;UACA;QACA;UACA,KAAAgG,SAAA,CAAA9D,GAAA;UACA;QACA;UACA,KAAA+D,KAAA,CAAA/D,GAAA;UACA;QACA;UACA,KAAA0D,YAAA,CAAA1D,GAAA,CAAAtG,GAAA;UACA;QACA;UACA,KAAAkK,GAAA,CAAA5D,GAAA,gBAAA6D,OAAA,CAAA7D,GAAA,CAAA5D,QAAA,gBAAAmH,KAAA;MACA;IACA;IACAM,OAAA,WAAAA,QAAAG,GAAA;MACA,IAAAA,GAAA,CAAAtC,MAAA;QACA;QACAsC,GAAA,GAAAA,GAAA,CAAAC,MAAA;MACA;MACA,OAAAD,GAAA;IACA;IACAF,SAAA,WAAAA,UAAA9D,GAAA;MACA,KAAA1G,SAAA;MACA,KAAAG,WAAA,CAAAC,GAAA,GAAAsG,GAAA,CAAAtG,GAAA;IACA;IACAwK,eAAA,WAAAA,gBAAA;MACA,KAAA7K,eAAA;IACA;IACA0K,KAAA,WAAAA,MAAA/D,GAAA;MACA,KAAAxG,YAAA;MACA,KAAAG,UAAA,CAAAD,GAAA,GAAAsG,GAAA,CAAAtG,GAAA;IACA;IACAyK,QAAA,WAAAA,SAAA;MACA,KAAA5K,YAAA;IACA;IACA6K,WAAA,WAAAA,YAAAjB,CAAA;MACA,KAAA5J,YAAA;MACA,KAAAI,UAAA,CAAAC,UAAA,GAAAuJ,CAAA,CAAAzJ,GAAA;MACA,KAAAC,UAAA,CAAAE,KAAA,GAAAsJ,CAAA,CAAAtJ,KAAA;IACA;IACAwK,MAAA,WAAAA,OAAAvL,IAAA;MACA,KAAAU,YAAA;MACA,KAAAiF,KAAA,CAAA3F,IAAA,EAAA6G,WAAA;MACA,KAAAhG,UAAA;QACAD,GAAA;QACAE,UAAA;QACAC,KAAA;MACA;IACA;IACA;IACAyK,SAAA,WAAAA,UAAAxF,EAAA;MAAA,IAAAyF,OAAA;MACA,KAAA1C,UAAA,CAAArK,YAAA,CAAAsH,EAAA,GAAAR,IAAA;QAAA,OAAAiG,OAAA,CAAAzG,OAAA;MAAA;;MAEA;MACA;MACA;MACA;MACA;;MAEA;MACA;MACA;MACA;MACA;MACA;IACA;IACA;IACA6F,aAAA,WAAAA,cAAA7E,EAAA;MAAA,IAAA0F,OAAA;MACA,KAAA3C,UAAA,CAAA7J,gBAAA,CAAA8G,EAAA,GAAAR,IAAA;QAAA,OAAAkG,OAAA,CAAA1G,OAAA;MAAA;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACA;IACA;IACA8F,GAAA,WAAAA,IAAA5D,GAAA,EAAAyE,GAAA,EAAAC,GAAA,EAAA5L,IAAA;MAAA,IAAA6L,OAAA;MACA,IAAAC,WAAA;QACAxD,KAAA,EAAAqD,GAAA;QACAC,GAAA,EAAAA,GAAA;QACAG,GAAA,EAAA/L,IAAA,gCAAAgM,MAAA,CAAA9E,GAAA,CAAAtG,GAAA,iCAAAoL,MAAA,CAAA9E,GAAA,CAAAtG,GAAA;QACAqL,MAAA,EAAAjM,IAAA;QACA4E,GAAA;QACAsH,KAAA;MACA;MACA,KAAAC,UAAA,CAAAL,WAAA,EACAtG,IAAA,WAAAC,GAAA;QACAoG,OAAA,CAAA5F,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;QACA0F,OAAA,CAAA7G,OAAA;MACA,GACAoB,KAAA,WAAAX,GAAA;QACAoG,OAAA,CAAA5F,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACA;IACAiG,WAAA,WAAAA,YAAA;MACA,KAAApH,OAAA;IACA;IACA;IACAA,OAAA,WAAAA,QAAA;MAAA,IAAAqH,OAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,KAAA/J,QAAA,CAAAE,SAAA,QAAAF,QAAA,CAAAE,SAAA;MACA,KAAAF,QAAA,CAAAG,MAAA,QAAAH,QAAA,CAAAG,MAAA;MACA,KAAAH,QAAA,CAAAI,GAAA,QAAAJ,QAAA,CAAAI,GAAA;MACA,KAAAJ,QAAA,CAAAK,WAAA,QAAAL,QAAA,CAAAK,WAAA;MACA,KAAAL,QAAA,CAAAM,OAAA,QAAAN,QAAA,CAAAM,OAAA;MACA,KAAAN,QAAA,CAAAyB,SAAA,QAAAA,SAAA,uBAAAA,SAAA;MACA,KAAAzB,QAAA,CAAAa,cAAA,QAAAA,cAAA,uBAAAA,cAAA;MACA,KAAAb,QAAA,CAAAwB,SAAA,QAAAA,SAAA,uBAAAA,SAAA;MACA,KAAAxB,QAAA,CAAAqB,KAAA,QAAAA,KAAA,uBAAAA,KAAA;MACA,KAAArB,QAAA,CAAAsB,QAAA,QAAAA,QAAA,uBAAAA,QAAA;MACA,KAAAtB,QAAA,CAAAuB,WAAA,QAAAA,WAAA,uBAAAA,WAAA;MACA,KAAAzB,OAAA;MACA9D,QAAA,MAAAgE,QAAA,EACAkD,IAAA;QAAA,IAAA8G,KAAA,GAAA/E,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAA8E,SAAA9G,GAAA;UAAA,IAAAvF,IAAA;UAAA,OAAAsH,YAAA,GAAAG,CAAA,WAAA6E,SAAA;YAAA,kBAAAA,SAAA,CAAA3E,CAAA;cAAA;gBACA3H,IAAA,GAAAuF,GAAA,CAAAvF,IAAA;gBACAmM,OAAA,CAAArI,SAAA,GAAA9D,IAAA,CAAA4H,IAAA;gBAEAuE,OAAA,CAAAhK,KAAA,GAAAnC,IAAA,CAAAuM,KAAA;gBACAJ,OAAA,CAAAjK,OAAA;gBACAiK,OAAA,CAAA3C,SAAA;kBACA2C,OAAA,CAAAK,UAAA;gBACA;cAAA;gBAAA,OAAAF,SAAA,CAAAzE,CAAA;YAAA;UAAA,GAAAwE,QAAA;QAAA,CACA;QAAA,iBAAAI,GAAA;UAAA,OAAAL,KAAA,CAAArE,KAAA,OAAAC,SAAA;QAAA;MAAA,KACA9B,KAAA,WAAAX,GAAA;QACA4G,OAAA,CAAAjK,OAAA;QACAiK,OAAA,CAAApG,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACA;IACAyG,UAAA,WAAAA,WAAA;MAAA,IAAAC,OAAA;MAAA,OAAAtF,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAAqF,SAAA;QAAA,IAAAC,EAAA,EAAAC,OAAA,EAAA9M,IAAA,EAAA+M,QAAA,EAAAC,SAAA,EAAApH,CAAA,EAAAqH,OAAA;QAAA,OAAA3F,YAAA,GAAAG,CAAA,WAAAyF,SAAA;UAAA,kBAAAA,SAAA,CAAAvF,CAAA;YAAA;cACA,IAAAgF,OAAA,CAAAjI,GAAA,CAAAgE,MAAA;gBACAiE,OAAA,CAAAvK,QAAA,CAAAsC,GAAA,GAAAiI,OAAA,CAAAjI,GAAA;cACA;cACAiI,OAAA,CAAAvK,QAAA,CAAAE,SAAA,GAAAqK,OAAA,CAAAvK,QAAA,CAAAE,SAAA;cACAqK,OAAA,CAAAvK,QAAA,CAAAG,MAAA,GAAAoK,OAAA,CAAAvK,QAAA,CAAAG,MAAA;cACAoK,OAAA,CAAAvK,QAAA,CAAAI,GAAA,GAAAmK,OAAA,CAAAvK,QAAA,CAAAI,GAAA;cACAmK,OAAA,CAAAvK,QAAA,CAAAK,WAAA,GAAAkK,OAAA,CAAAvK,QAAA,CAAAK,WAAA;cACAkK,OAAA,CAAAvK,QAAA,CAAAM,OAAA,GAAAiK,OAAA,CAAAvK,QAAA,CAAAM,OAAA;cACAiK,OAAA,CAAAvK,QAAA,CAAAyB,SAAA,GAAA8I,OAAA,CAAA9I,SAAA,kBAAA8I,OAAA,CAAA9I,SAAA;cACA8I,OAAA,CAAAvK,QAAA,CAAAa,cAAA,GAAA0J,OAAA,CAAA1J,cAAA,kBAAA0J,OAAA,CAAA1J,cAAA;cACA0J,OAAA,CAAAvK,QAAA,CAAAwB,SAAA,GAAA+I,OAAA,CAAA/I,SAAA,kBAAA+I,OAAA,CAAA/I,SAAA;cACA+I,OAAA,CAAAvK,QAAA,CAAAqB,KAAA,GAAAkJ,OAAA,CAAAlJ,KAAA,kBAAAkJ,OAAA,CAAAlJ,KAAA;cACAkJ,OAAA,CAAAvK,QAAA,CAAAsB,QAAA,GAAAiJ,OAAA,CAAAjJ,QAAA,kBAAAiJ,OAAA,CAAAjJ,QAAA;cACAiJ,OAAA,CAAAvK,QAAA,CAAAuB,WAAA,GAAAgJ,OAAA,CAAAhJ,WAAA,kBAAAgJ,OAAA,CAAAhJ,WAAA;cACAkJ,EAAA,OAAAC,OAAA,OAAA9M,IAAA,OAAA+M,QAAA,OACA;cACAC,SAAA,GAAAG,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,SAAA,CAAAV,OAAA,CAAAvK,QAAA;cACA4K,SAAA,CAAAzJ,IAAA;cACAqC,CAAA;YAAA;cAAA,MAAAA,CAAA,GAAAoH,SAAA,CAAAzJ,IAAA;gBAAA2J,SAAA,CAAAvF,CAAA;gBAAA;cAAA;cAAAuF,SAAA,CAAAvF,CAAA;cAAA,OACAgF,OAAA,CAAAW,YAAA,CAAAN,SAAA;YAAA;cAAAC,OAAA,GAAAC,SAAA,CAAAK,CAAA;cACA,KAAAR,QAAA,EAAAA,QAAA,GAAAE,OAAA,CAAAO,QAAA;cACA,KAAAV,OAAA,CAAApE,MAAA;gBACAoE,OAAA,GAAAG,OAAA,CAAAQ,OAAA;cACA;cACA,KAAAZ,EAAA,CAAAnE,MAAA,EAAAmE,EAAA,GAAAI,OAAA,CAAAS,MAAA;cAAA,KACAT,OAAA,CAAAU,MAAA,CAAAjF,MAAA;gBAAAwE,SAAA,CAAAvF,CAAA;gBAAA;cAAA;cACA3H,IAAA,GAAAA,IAAA,CAAA8L,MAAA,CAAAmB,OAAA,CAAAU,MAAA;cACAX,SAAA,CAAAzJ,IAAA;cAAA2J,SAAA,CAAAvF,CAAA;cAAA;YAAA;cAEAgF,OAAA,CAAAiB,YAAA,CAAAf,EAAA,EAAAC,OAAA,EAAAC,QAAA,EAAA/M,IAAA;cAAA,OAAAkN,SAAA,CAAArF,CAAA;YAAA;cAXAjC,CAAA;cAAAsH,SAAA,CAAAvF,CAAA;cAAA;YAAA;cAAA,OAAAuF,SAAA,CAAArF,CAAA;UAAA;QAAA,GAAA+E,QAAA;MAAA;IAeA;IACAU,YAAA,WAAAA,aAAAN,SAAA;MACA,WAAAa,OAAA,WAAAC,OAAA,EAAAC,MAAA;QACAzO,cAAA,CAAA0N,SAAA,EAAA1H,IAAA,WAAAC,GAAA;UACAuI,OAAA,CAAAvI,GAAA,CAAAvF,IAAA;QACA;MACA;IACA;IACAgO,UAAA,WAAAA,WAAA;MACA,KAAAhK,aAAA;MACA,KAAAc,OAAA;IACA;IAEA;IACAmJ,WAAA,WAAAA,YAAA;MACA,KAAA7L,QAAA,CAAAmB,IAAA;MACA,KAAAuB,OAAA;IACA;IACA;IACAoJ,KAAA,WAAAA,MAAApO,IAAA;MACA,KAAAsC,QAAA,GAAA+L,eAAA,CAAAA,eAAA;QACA9L,QAAA;QACAE,MAAA;QACAC,GAAA;QACAC,WAAA;QACAC,OAAA;QACAC,QAAA;QACAC,aAAA;QACAC,OAAA;QACAC,QAAA;QACAC,eAAA;QACAC,cAAA;QACAC,cAAA;QACAC,SAAA;QACAC,eAAA;QACAC,QAAA;QACAC,QAAA;QACAC,IAAA;QACAC,IAAA;QACAC,KAAA;QACAC,KAAA;QACAC,QAAA;QACAC,WAAA;QACAC,SAAA;MAAA,WACA,aACA,GACA;MACA,KAAAA,SAAA;MACA,KAAAH,KAAA;MACA,KAAAC,QAAA;MACA,KAAAC,WAAA;MACA,KAAA1D,SAAA;MACA,KAAAC,eAAA;MACA,KAAA+C,cAAA;MACA,KAAAY,SAAA;MACA,KAAAM,OAAA;MACA,KAAAM,WAAA,OAAAmF,GAAA;MACA,KAAA9E,OAAA;IACA;IACA;IACAsJ,WAAA,WAAAA,YAAAtI,EAAA;MAAA,IAAAuI,OAAA;MACApP,WAAA,CAAA6G,EAAA,EACAR,IAAA;QAAA,IAAAgJ,KAAA,GAAAjH,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAAgH,SAAAhJ,GAAA;UAAA,OAAA+B,YAAA,GAAAG,CAAA,WAAA+G,SAAA;YAAA,kBAAAA,SAAA,CAAA7G,CAAA;cAAA;gBACA0G,OAAA,CAAAjO,MAAA;gBACAiO,OAAA,CAAAlO,QAAA,GAAAoF,GAAA,CAAAvF,IAAA;cAAA;gBAAA,OAAAwO,SAAA,CAAA3G,CAAA;YAAA;UAAA,GAAA0G,QAAA;QAAA,CACA;QAAA,iBAAAE,GAAA;UAAA,OAAAH,KAAA,CAAAvG,KAAA,OAAAC,SAAA;QAAA;MAAA,KACA9B,KAAA,WAAAX,GAAA;QACA8I,OAAA,CAAAtI,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACA;IACAyE,YAAA,WAAAA,aAAA5E,EAAA,EAAA5E,IAAA;MAAA,IAAAwN,OAAA;MACA,KAAA7F,UAAA,CAAAtK,YAAA,CAAAuH,EAAA,EAAA5E,IAAA,GAAAoE,IAAA;QAAA,OAAAoJ,OAAA,CAAA5J,OAAA;MAAA;IACA;IACA;IACA6J,cAAA,WAAAA,eAAA3H,GAAA;MAAA,IAAA4H,OAAA;MACA,IAAA5O,IAAA;QACA8F,EAAA,EAAAkB,GAAA,CAAAtG,GAAA;QACA6B,MAAA,EAAAyE,GAAA,CAAAzE;MACA;MACAjE,SAAA,CAAA0B,IAAA,EACAsF,IAAA;QAAA,IAAAuJ,KAAA,GAAAxH,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAAuH,SAAAvJ,GAAA;UAAA,OAAA+B,YAAA,GAAAG,CAAA,WAAAsH,SAAA;YAAA,kBAAAA,SAAA,CAAApH,CAAA;cAAA;gBACAiH,OAAA,CAAA7I,QAAA,CAAAC,OAAA,CAAAT,GAAA,CAAAU,GAAA;cAAA;gBAAA,OAAA8I,SAAA,CAAAlH,CAAA;YAAA;UAAA,GAAAiH,QAAA;QAAA,CACA;QAAA,iBAAAE,GAAA;UAAA,OAAAH,KAAA,CAAA9G,KAAA,OAAAC,SAAA;QAAA;MAAA,KACA9B,KAAA,WAAAX,GAAA;QACAqJ,OAAA,CAAA7I,QAAA,CAAAK,KAAA,CAAAb,GAAA,CAAAU,GAAA;MACA;IACA;IACA;IACAgJ,MAAA,WAAAA,OAAA;MACA,SAAAvK,GAAA,CAAAgE,MAAA;QACA,KAAA3C,QAAA,CAAA4C,OAAA;MACA;QACA,KAAAlD,KAAA,CAAAyJ,KAAA,CAAA9O,MAAA;QACA,KAAAqF,KAAA,CAAAyJ,KAAA,CAAApK,OAAA;MACA;IACA;IACA;IACAqK,SAAA,WAAAA,UAAA;MACA,SAAAzK,GAAA,CAAAgE,MAAA;QACA,KAAA3C,QAAA,CAAA4C,OAAA;MACA;QACA,KAAArH,OAAA;MACA;IACA;IACA;IACAmJ,IAAA,WAAAA,KAAAzD,GAAA;MACA,KAAAoH,WAAA,CAAApH,GAAA,CAAAtG,GAAA;IACA;IACA;IACA0O,UAAA,WAAAA,WAAA;MACA;IAAA,CACA;IACA;IACAC,WAAA,WAAAA,YAAAlF,CAAA,EAAAmF,KAAA,EAAAC,KAAA;MACA,KAAAnN,QAAA,CAAA+H,CAAA,CAAAqF,IAAA,IAAArF,CAAA,CAAAoF,KAAA;MACA,KAAAzK,OAAA;IACA;IACA;IACA2K,eAAA,WAAAA,gBAAAC,SAAA;MAAA,IAAAC,OAAA;MACA,IAAAjL,GAAA;MACAgL,SAAA,CAAA/J,GAAA,WAAAwE,CAAA;QACAzF,GAAA,CAAAmB,IAAA,CAAAsE,CAAA,CAAAzJ,GAAA;MACA;MACA,KAAA+D,WAAA,GAAAC,GAAA;MACA,KAAA8E,SAAA;QACA;QACAmG,OAAA,CAAAnD,UAAA;MACA;IACA;IACA;IACAoD,eAAA,WAAAA,gBAAAF,SAAA,EAAA1I,GAAA;MAAA,IAAA6I,OAAA;MACA,IAAAnL,GAAA;MACAgL,SAAA,CAAA/J,GAAA,WAAAwE,CAAA;QACAzF,GAAA,CAAAmB,IAAA,CAAAsE,CAAA,CAAAzJ,GAAA;MACA;MACA,KAAA+D,WAAA,GAAAC,GAAA;MACA,KAAA8E,SAAA;QACA;QACAqG,OAAA,CAAArD,UAAA;MACA;IACA;IACAA,UAAA,WAAAA,WAAA;MACA;MACA,KAAA9H,GAAA,GAAAoL,kBAAA,MAAArL,WAAA;MACA;MACA,IAAAsL,OAAA,QAAAtK,KAAA,CAAAuK,KAAA,CAAAD,OAAA;MACA,SAAAxF,KAAA,IAAAwF,OAAA;QACA,SAAAtL,WAAA,CAAAwL,GAAA,CAAAF,OAAA,CAAAxF,KAAA,EAAA7J,GAAA;UACAqP,OAAA,CAAAxF,KAAA,EAAA2F,UAAA;QACA;MACA;IACA;EACA;AACA","ignoreList":[]}]}