5a53f84d063179816b62ca37b5ae4015.json 27 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\components\\linkaddress\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\components\\linkaddress\\index.vue","mtime":1761614938957},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1761614937017},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0IHsgcGFnZUNhdGVnb3J5LCBwYWdlTGluaywgc2F2ZUxpbmsgfSBmcm9tICdAL2FwaS9kaXknOwppbXBvcnQgeyBjYXNjYWRlckxpc3RBcGksIGNoYW5nZUxpc3RBcGkgfSBmcm9tICdAL2FwaS9wcm9kdWN0JzsKaW1wb3J0IHsgc2Vja2lsbExpc3RBcGksIGNvbWJpbmF0aW9uTGlzdEFwaSwgYmFyZ2Fpbkxpc3RBcGksIGludGVncmFsUHJvZHVjdExpc3RBcGksIHByZXNlbGxMaXN0QXBpIH0gZnJvbSAnQC9hcGkvbWFya2V0aW5nJzsKaW1wb3J0IHsgbG90dGVyeUxpc3QgfSBmcm9tICdAL2FwaS9sb3R0ZXJ5JzsKaW1wb3J0IHsgY21zTGlzdEFwaSB9IGZyb20gJ0AvYXBpL2Ntcyc7CmltcG9ydCB7IGxpbmtMaXN0QXBpIH0gZnJvbSAnQC9hcGkvc2V0dGluZyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnbGlua2FkZHJlc3MnLAogIHByb3BzOiB7CiAgICBmcm9tVHlwZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICcnCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgbW9kYWxzOiBmYWxzZSwKICAgICAgY2F0ZWdvcnlEYXRhOiBbXSwKICAgICAgY3VycmVuVHlwZTogJ2xpbmsnLAogICAgICBwcm9wczogewogICAgICAgIGxhYmVsOiAnbmFtZScsCiAgICAgICAgY2hpbGRyZW46ICdjaGlsZHJlbicKICAgICAgfSwKICAgICAgdGVtcGxhdGVSYWRpbzogMCwKICAgICAgY29sdW1uczogW3sKICAgICAgICB0aXRsZTogJ0lEJywKICAgICAgICBrZXk6ICdpZCcsCiAgICAgICAgd2lkdGg6IDYwCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+mhtemdouWQjeensCcsCiAgICAgICAga2V5OiAnbmFtZScsCiAgICAgICAgd2lkdGg6IDE1MAogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfpobXpnaLpk77mjqUnLAogICAgICAgIGtleTogJ3VybCcKICAgICAgfV0sCiAgICAgIGNvbHVtbnM3OiBbewogICAgICAgIHRpdGxlOiAnSUQnLAogICAgICAgIGtleTogJ2lkJywKICAgICAgICB3aWR0aDogNjAKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5YiG57G75ZCN56ewJywKICAgICAgICBrZXk6ICdjYXRlX25hbWUnLAogICAgICAgIHRyZWU6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5YiG57G75Zu+5qCHJywKICAgICAgICBzbG90OiAncGljJwogICAgICB9XSwKICAgICAgY29sdW1uczg6IFt7CiAgICAgICAgdGl0bGU6ICdJRCcsCiAgICAgICAga2V5OiAnaWQnLAogICAgICAgIHdpZHRoOiA2MAogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfllYblk4Hlm77niYcnLAogICAgICAgIHNsb3Q6ICdpbWFnZScsCiAgICAgICAgd2lkdGg6IDkwCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+WVhuWTgeWQjeensCcsCiAgICAgICAga2V5OiAnc3RvcmVfbmFtZScKICAgICAgfV0sCiAgICAgIGJhcmdhaW46IFt7CiAgICAgICAgdGl0bGU6ICdJRCcsCiAgICAgICAga2V5OiAnaWQnLAogICAgICAgIHdpZHRoOiA2MAogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfllYblk4Hlm77niYcnLAogICAgICAgIHNsb3Q6ICdpbWFnZScsCiAgICAgICAgd2lkdGg6IDkwCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+WVhuWTgeWQjeensCcsCiAgICAgICAga2V5OiAndGl0bGUnCiAgICAgIH1dLAogICAgICBuZXdzOiBbewogICAgICAgIHRpdGxlOiAnSUQnLAogICAgICAgIGtleTogJ2lkJywKICAgICAgICB3aWR0aDogNjAKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5paH56ug5Zu+54mHJywKICAgICAgICBzbG90OiAnaW1hZ2VfaW5wdXQnLAogICAgICAgIHdpZHRoOiA5MAogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfmlofnq6DlkI3np7AnLAogICAgICAgIGtleTogJ3RpdGxlJwogICAgICB9XSwKICAgICAgbG90dGVyeTogW3sKICAgICAgICB0aXRsZTogJ0lEJywKICAgICAgICBrZXk6ICdpZCcsCiAgICAgICAgd2lkdGg6IDYwCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+WQjeensCcsCiAgICAgICAga2V5OiAnbmFtZScKICAgICAgfV0sCiAgICAgIGZvcm1WYWxpZGF0ZTogewogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgbGltaXQ6IDE1LAogICAgICAgIGNhdGVfaWQ6ICcnLAogICAgICAgIHN0b3JlX25hbWU6ICcnCiAgICAgIH0sCiAgICAgIHRvdGFsOiAwLAogICAgICBiYXNpY3NMaXN0OiBbXSwKICAgICAgdXNlckxpc3Q6IFtdLAogICAgICBkaXN0cmlidXRpb25MaXN0OiBbXSwKICAgICAgY291cG9uOiBbXSwKICAgICAgbHVja0RyYXc6IFtdLAogICAgICBpbnRlZ3JhbDogW10sCiAgICAgIGN1cnJlbklkOiAnJywKICAgICAgY3VycmVuVXJsOiAnJywKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIHRhYmxlTGlzdDogW10sCiAgICAgIHByZXNlbnRJZDogMCwKICAgICAgY2F0ZWdvcnlJZDogJycsCiAgICAgIC8v5bem5L6n5YiG57G7aWQKICAgICAgdHJlZVNlbGVjdDogW10sCiAgICAgIGN1c3RvbWRhdGU6IHsKICAgICAgICB1cmw6ICcnLAogICAgICAgIGFwcGlkOiAnJywKICAgICAgICBtcFVybDogJycsCiAgICAgICAgc3RhdHVzOiAyCiAgICAgIH0sCiAgICAgIGN1c3RvbU51bTogMSwKICAgICAgcnVsZVZhbGlkYXRlOiB7CiAgICAgICAgbmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpemTvuaOpeWQjeensCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB1cmw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXot7Povazot6/lvoQnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgYXBwaWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaVBUFBJRCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICB0cmVlSWQ6IDAKICAgIH07CiAgfSwKICBjb21wdXRlZDoge30sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0U29ydCgpOwogICAgdGhpcy5nb29kc0NhdGVnb3J5KCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXRUZW1wbGF0ZVJvdzogZnVuY3Rpb24gZ2V0VGVtcGxhdGVSb3cocm93KSB7CiAgICAgIHRoaXMucHJlc2VudElkID0gcm93LmlkOwogICAgICB0aGlzLmN1cnJlblVybCA9IHJvdy51cmw7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBkZWxMaW5rOiBmdW5jdGlvbiBkZWxMaW5rKHJvdywgdGl0LCBudW0pIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIGRlbGZyb21EYXRhID0gewogICAgICAgIHRpdGxlOiB0aXQsCiAgICAgICAgbnVtOiBudW0sCiAgICAgICAgdXJsOiAiZGl5L2RlbF9saW5rLyIuY29uY2F0KHJvdy5pZCksCiAgICAgICAgbWV0aG9kOiAnREVMRVRFJywKICAgICAgICBpZHM6ICcnCiAgICAgIH07CiAgICAgIHRoaXMuJG1vZGFsU3VyZShkZWxmcm9tRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICBfdGhpcy50YWJsZUxpc3Quc3BsaWNlKG51bSwgMSk7CiAgICAgICAgaWYgKCFfdGhpcy50YWJsZUxpc3QubGVuZ3RoKSB7CiAgICAgICAgICBfdGhpcy5jdXN0b21OdW0gPSAyOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBjdXN0b21MaW5rOiBmdW5jdGlvbiBjdXN0b21MaW5rKCkgewogICAgICB0aGlzLmN1c3RvbU51bSA9IDI7CiAgICB9LAogICAgY3VzdG9tTGlzdDogZnVuY3Rpb24gY3VzdG9tTGlzdCgpIHsKICAgICAgdGhpcy5jdXN0b21OdW0gPSAxOwogICAgfSwKICAgIGdldEN1c3RvbUxpc3Q6IGZ1bmN0aW9uIGdldEN1c3RvbUxpc3QoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICBwYWdlTGluayh0aGlzLmNhdGVnb3J5SWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmICghcmVzLmRhdGEubGlzdC5sZW5ndGgpIHsKICAgICAgICAgIF90aGlzMi5jdXN0b21OdW0gPSAyOwogICAgICAgIH0KICAgICAgICBfdGhpczIudGFibGVMaXN0ID0gcmVzLmRhdGEubGlzdDsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0TG90dGVyeUxpc3Q6IGZ1bmN0aW9uIGdldExvdHRlcnlMaXN0KCkge30sCiAgICBoYW5kbGVTdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChuYW1lKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgdmFyIHVybCA9IF90aGlzMy5jdXN0b21kYXRlLnVybDsKICAgICAgICAgIGlmIChfdGhpczMuY3VzdG9tZGF0ZS5zdGF0dXMgPT0gMSkgewogICAgICAgICAgICB1cmwgPSBfdGhpczMuY3VzdG9tZGF0ZS51cmw7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB1cmwgPSBfdGhpczMuY3VzdG9tZGF0ZS5tcFVybCArICdAQVBQSUQ9JyArIF90aGlzMy5jdXN0b21kYXRlLmFwcGlkOwogICAgICAgICAgfQogICAgICAgICAgX3RoaXMzLiRlbWl0KCdsaW5rVXJsJywgdXJsKTsKICAgICAgICAgIF90aGlzMy5tb2RhbHMgPSBmYWxzZTsKICAgICAgICAgIF90aGlzMy5yZXNldCgpOwogICAgICAgICAgLy8gc2F2ZUxpbmsodGhpcy5jdXN0b21kYXRlLHRoaXMuY2F0ZWdvcnlJZCkudGhlbihyZXM9PnsKICAgICAgICAgIC8vIAl0aGlzLmdldEN1c3RvbUxpc3QoKTsKICAgICAgICAgIC8vIAl0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICAvLyAJdGhpcy4kZW1pdCgibGlua1VybCIsdGhpcy5jdXN0b21kYXRlLnVybCk7CiAgICAgICAgICAvLyAJdGhpcy5tb2RhbHMgPSBmYWxzZQogICAgICAgICAgLy8gCXRoaXMucmVzZXQoKTsKICAgICAgICAgIC8vIH0pLmNhdGNoKGVycj0+ewogICAgICAgICAgLy8gCXRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgICAgICAvLyB9KQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+Whq+WGmeS/oeaBrycpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlUmVzZXQ6IGZ1bmN0aW9uIGhhbmRsZVJlc2V0KG5hbWUpIHsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS5yZXNldEZpZWxkcygpOwogICAgfSwKICAgIC8vIOWVhuWTgeWIhuexu++8mwogICAgZ29vZHNDYXRlZ29yeTogZnVuY3Rpb24gZ29vZHNDYXRlZ29yeSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIGNhc2NhZGVyTGlzdEFwaSgxKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczQudHJlZVNlbGVjdCA9IHJlcy5kYXRhOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM0LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDooajmoLzmkJzntKIKICAgIHVzZXJTZWFyY2hzOiBmdW5jdGlvbiB1c2VyU2VhcmNocygpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUucGFnZSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgICAgdGhpcy5jdXJyZW5VcmwgPSAnJzsKICAgICAgdGhpcy5wcmVzZW50SWQgPSAwOwogICAgICB0aGlzLmN1cnJlbklkID0gJyc7CiAgICAgIC8vIHRoaXMuY3VzdG9tZGF0ZS5uYW1lPSIiOwogICAgICB0aGlzLmN1c3RvbWRhdGUudXJsID0gJyc7CiAgICB9LAogICAgZ2V0VXJsOiBmdW5jdGlvbiBnZXRVcmwoaXRlbSkgewogICAgICB0aGlzLmN1cnJlbklkID0gaXRlbS5pZDsKICAgICAgdGhpcy5jdXJyZW5VcmwgPSBpdGVtLnVybDsKICAgIH0sCiAgICBnZXRTb3J0OiBmdW5jdGlvbiBnZXRTb3J0KCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcGFnZUNhdGVnb3J5KCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgcmVzLmRhdGFbMF0uY2hpbGRyZW5bMF0uc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgIF90aGlzNS5jYXRlZ29yeURhdGEgPSByZXMuZGF0YTsKICAgICAgICBpZiAoX3RoaXM1LmZyb21UeXBlID09PSAnZGl5UGFnZScpIHsKICAgICAgICAgIF90aGlzNS5oYW5kbGVDaGVja0NoYW5nZShyZXMuZGF0YVswXS5jaGlsZHJlblsyXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzNS5oYW5kbGVDaGVja0NoYW5nZShyZXMuZGF0YVswXS5jaGlsZHJlblswXS5jaGlsZHJlblswXSk7CiAgICAgICAgfQogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgX3RoaXM1LiRtZXNzYWdlLmVycm9yKGVyci5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUubGltaXQgPSAxNTsKICAgICAgaWYgKHRoaXMuY3VycmVuVHlwZSA9PSAncHJvZHVjdCcpIHsKICAgICAgICBjaGFuZ2VMaXN0QXBpKHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgX3JlZiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUocmVzKSB7CiAgICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5uKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgIGRhdGEgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgICAgZGF0YS5saXN0LmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICBlLnVybCA9ICIvcGFnZXMvZ29vZHNfZGV0YWlscy9pbmRleD9pZD0iLmNvbmNhdChlLmlkKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIF90aGlzNi50YWJsZUxpc3QgPSBkYXRhLmxpc3Q7CiAgICAgICAgICAgICAgICAgIF90aGlzNi50b3RhbCA9IHJlcy5kYXRhLmNvdW50OwogICAgICAgICAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYSgyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWUpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCkgewogICAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgfTsKICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzNi5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW5UeXBlID09ICdzZWNraWxsJykgewogICAgICAgIHNlY2tpbGxMaXN0QXBpKHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlMihyZXMpIHsKICAgICAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDIpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICAgIGRhdGEubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZS51cmwgPSAiL3BhZ2VzL2FjdGl2aXR5L2dvb2RzX3NlY2tpbGxfZGV0YWlscy9pbmRleD9pZD0iLmNvbmNhdChlLmlkLCAiJnN0YXR1cz0xIik7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczYudGFibGVMaXN0ID0gZGF0YS5saXN0OwogICAgICAgICAgICAgICAgICBfdGhpczYudG90YWwgPSByZXMuZGF0YS5jb3VudDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hKDIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDIpIHsKICAgICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICB9OwogICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlblR5cGUgPT0gJ2FkdmFuY2UnKSB7CiAgICAgICAgcHJlc2VsbExpc3RBcGkodGhpcy5mb3JtVmFsaWRhdGUpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBfcmVmMyA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUzKHJlcykgewogICAgICAgICAgICB2YXIgZGF0YTsKICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0MykgewogICAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5uKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgIGRhdGEgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgICAgZGF0YS5saXN0LmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICBlLnVybCA9ICIvcGFnZXMvYWN0aXZpdHkvcHJlc2VsbC9pbmRleD9pZD0iLmNvbmNhdChlLmlkLCAiJnN0YXR1cz0xIik7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczYudGFibGVMaXN0ID0gZGF0YS5saXN0OwogICAgICAgICAgICAgICAgICBfdGhpczYudG90YWwgPSByZXMuZGF0YS5jb3VudDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5hKDIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDMpIHsKICAgICAgICAgICAgcmV0dXJuIF9yZWYzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICB9OwogICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIGFkdmFuY2U7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW5UeXBlID09ICdiYXJnYWluJykgewogICAgICAgIGJhcmdhaW5MaXN0QXBpKHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgX3JlZjQgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNChyZXMpIHsKICAgICAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDQpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDQubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICAgIGRhdGEubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZS51cmwgPSAiL3BhZ2VzL2FjdGl2aXR5L2dvb2RzX2JhcmdhaW5fZGV0YWlscy9pbmRleD9pZD0iLmNvbmNhdChlLmlkKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIF90aGlzNi50YWJsZUxpc3QgPSBkYXRhLmxpc3Q7CiAgICAgICAgICAgICAgICAgIF90aGlzNi50b3RhbCA9IHJlcy5kYXRhLmNvdW50OwogICAgICAgICAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LmEoMik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgICAgICB9KSk7CiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94NCkgewogICAgICAgICAgICByZXR1cm4gX3JlZjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICAgIH07CiAgICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuVHlwZSA9PSAnY29tYmluYXRpb24nKSB7CiAgICAgICAgY29tYmluYXRpb25MaXN0QXBpKHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgX3JlZjUgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNShyZXMpIHsKICAgICAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDUpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICAgIGRhdGEubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZS51cmwgPSAiL3BhZ2VzL2FjdGl2aXR5L2dvb2RzX2NvbWJpbmF0aW9uX2RldGFpbHMvaW5kZXg/aWQ9Ii5jb25jYXQoZS5pZCk7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczYudGFibGVMaXN0ID0gZGF0YS5saXN0OwogICAgICAgICAgICAgICAgICBfdGhpczYudG90YWwgPSByZXMuZGF0YS5jb3VudDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5hKDIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDUpIHsKICAgICAgICAgICAgcmV0dXJuIF9yZWY1LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICB9OwogICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlblR5cGUgPT0gJ25ld3MnKSB7CiAgICAgICAgY21zTGlzdEFwaSh0aGlzLmZvcm1WYWxpZGF0ZSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIF9yZWY2ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTYocmVzKSB7CiAgICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ2KSB7CiAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2Lm4pIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgICAgICAgICAgICBkYXRhLmxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIGUudXJsID0gIi9wYWdlcy9leHRlbnNpb24vbmV3c19kZXRhaWxzL2luZGV4P2lkPSIuY29uY2F0KGUuaWQpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM2LnRhYmxlTGlzdCA9IGRhdGEubGlzdDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LnRvdGFsID0gZGF0YS5jb3VudDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hKDIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgX2NhbGxlZTYpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDYpIHsKICAgICAgICAgICAgcmV0dXJuIF9yZWY2LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICB9OwogICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlblR5cGUgPT0gJ2xvdHRlcnlfbGlzdCcpIHsKICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZSA9IHsKICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICBsaW1pdDogMTUsCiAgICAgICAgICBmYWN0b3I6IDEKICAgICAgICB9OwogICAgICAgIGxvdHRlcnlMaXN0KHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgX3JlZjcgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNyhyZXMpIHsKICAgICAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDcpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICAgIGRhdGEubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZS51cmwgPSAiL3BhZ2VzL2dvb2RzL2xvdHRlcnkvZ3JpZHMvaW5kZXg/dHlwZT0xJmxvdHRlcnlfaWQ9Ii5jb25jYXQoZS5pZCk7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczYudGFibGVMaXN0ID0gZGF0YS5saXN0OwogICAgICAgICAgICAgICAgICBfdGhpczYudG90YWwgPSBkYXRhLmNvdW50OwogICAgICAgICAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LmEoMik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCBfY2FsbGVlNyk7CiAgICAgICAgICB9KSk7CiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94NykgewogICAgICAgICAgICByZXR1cm4gX3JlZjcuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICAgIH07CiAgICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuVHlwZSA9PSAnaW50ZWdyYWwnKSB7CiAgICAgICAgaW50ZWdyYWxQcm9kdWN0TGlzdEFwaSh0aGlzLmZvcm1WYWxpZGF0ZSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIF9yZWY4ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTgocmVzKSB7CiAgICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ4KSB7CiAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ4Lm4pIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgICAgICAgICAgICBkYXRhLmxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIGUudXJsID0gIi9wYWdlcy9wb2ludHNfbWFsbC9pbnRlZ3JhbF9nb29kc19kZXRhaWxzP2lkPSIuY29uY2F0KGUuaWQpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM2LnRhYmxlTGlzdCA9IGRhdGEubGlzdDsKICAgICAgICAgICAgICAgICAgX3RoaXM2LnRvdGFsID0gcmVzLmRhdGEuY291bnQ7CiAgICAgICAgICAgICAgICAgIF90aGlzNi5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDguYSgyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWU4KTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g4KSB7CiAgICAgICAgICAgIHJldHVybiBfcmVmOC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgfTsKICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzNi5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVDaGVja0NoYW5nZTogZnVuY3Rpb24gaGFuZGxlQ2hlY2tDaGFuZ2UoZGF0YSkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgaWQgPSAnJzsKICAgICAgdGhpcy50cmVlSWQgPSBkYXRhLmlkOwogICAgICBpZiAoZGF0YS5waWQpIHsKICAgICAgICBpZCA9IGRhdGEuaWQ7CiAgICAgICAgdGhpcy5jYXRlZ29yeUlkID0gZGF0YS5pZDsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW5UeXBlID0gZGF0YS50eXBlOwogICAgICBpZiAodGhpcy5jdXJyZW5UeXBlID09ICdwcm9kdWN0JyB8fCB0aGlzLmN1cnJlblR5cGUgPT0gJ3NlY2tpbGwnIHx8IHRoaXMuY3VycmVuVHlwZSA9PSAnYmFyZ2FpbicgfHwgdGhpcy5jdXJyZW5UeXBlID09ICdjb21iaW5hdGlvbicgfHwgdGhpcy5jdXJyZW5UeXBlID09ICduZXdzJyB8fCB0aGlzLmN1cnJlblR5cGUgPT0gJ2FkdmFuY2UnIHx8IHRoaXMuY3VycmVuVHlwZSA9PSAnaW50ZWdyYWwnIHx8IHRoaXMuY3VycmVuVHlwZSA9PSAnbG90dGVyeV9saXN0JykgewogICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuVHlwZSA9PSAnY3VzdG9tJykgewogICAgICAgIHRoaXMuZ2V0Q3VzdG9tTGlzdCgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZm9ybVZhbGlkYXRlID0gewogICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgcGFnZTogMQogICAgICAgIH07CiAgICAgICAgbGlua0xpc3RBcGkodGhpcy5mb3JtVmFsaWRhdGUpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXM3LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIHZhciBkYXRhID0gcmVzLmRhdGEubGlzdDsKICAgICAgICAgIF90aGlzNy50b3RhbCA9IHJlcy5kYXRhLmNvdW50OwogICAgICAgICAgaWYgKF90aGlzNy5jdXJyZW5UeXBlID09ICdzcGVjaWFsJykgewogICAgICAgICAgICB2YXIgbGlzdCA9IFtdOwogICAgICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICBlLnVybCA9ICIvcGFnZXMvYW5uZXgvc3BlY2lhbC9pbmRleD9pZD0iLmNvbmNhdChlLmlkLCAiJm5hbWU9IikuY29uY2F0KGUubmFtZSk7CiAgICAgICAgICAgICAgaWYgKGUuaXNfZGl5KSB7CiAgICAgICAgICAgICAgICBsaXN0LnB1c2goZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgX3RoaXM3LnRhYmxlTGlzdCA9IGxpc3Q7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpczcudGFibGVMaXN0ID0gZGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIC8vIGlmICh0aGlzLmN1cnJlblR5cGUgPT0gJ21hcmtldGluZ19saW5rJyB8fCB0aGlzLmN1cnJlblR5cGUgPT0gJ2xpbmsnKSB7CiAgICAgICAgICAvLyAgIGxldCBiYXNpY3NMaXN0ID0gW107CiAgICAgICAgICAvLyAgIGxldCBkaXN0cmlidXRpb25MaXN0ID0gW107CiAgICAgICAgICAvLyAgIGxldCB1c2VyTGlzdCA9IFtdOwogICAgICAgICAgLy8gICBsZXQgaW50ZWdyYWwgPSBbXTsKICAgICAgICAgIC8vICAgbGV0IGx1Y2tEcmF3ID0gW107CiAgICAgICAgICAvLyAgIGxldCBjb3Vwb24gPSBbXTsKICAgICAgICAgIC8vICAgZGF0YS5mb3JFYWNoKChlKSA9PiB7CiAgICAgICAgICAvLyAgICAgaWYgKGUudHlwZSA9PSAxKSB7CiAgICAgICAgICAvLyAgICAgICBiYXNpY3NMaXN0LnB1c2goZSk7CiAgICAgICAgICAvLyAgICAgfSBlbHNlIGlmIChlLnR5cGUgPT0gMikgewogICAgICAgICAgLy8gICAgICAgZGlzdHJpYnV0aW9uTGlzdC5wdXNoKGUpOwogICAgICAgICAgLy8gICAgIH0gZWxzZSBpZiAoZS50eXBlID09IDMpIHsKICAgICAgICAgIC8vICAgICAgIHVzZXJMaXN0LnB1c2goZSk7CiAgICAgICAgICAvLyAgICAgfSBlbHNlIGlmIChlLnR5cGUgPT0gNCkgewogICAgICAgICAgLy8gICAgICAgaW50ZWdyYWwucHVzaChlKTsKICAgICAgICAgIC8vICAgICB9IGVsc2UgaWYgKGUudHlwZSA9PSA1KSB7CiAgICAgICAgICAvLyAgICAgICBsdWNrRHJhdy5wdXNoKGUpOwogICAgICAgICAgLy8gICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyAgICAgICBjb3Vwb24ucHVzaChlKTsKICAgICAgICAgIC8vICAgICB9CiAgICAgICAgICAvLyAgIH0pOwogICAgICAgICAgLy8gICB0aGlzLmJhc2ljc0xpc3QgPSBiYXNpY3NMaXN0OwogICAgICAgICAgLy8gICB0aGlzLmRpc3RyaWJ1dGlvbkxpc3QgPSBkaXN0cmlidXRpb25MaXN0OwogICAgICAgICAgLy8gICB0aGlzLnVzZXJMaXN0ID0gdXNlckxpc3Q7CiAgICAgICAgICAvLyAgIHRoaXMuY291cG9uID0gY291cG9uOwogICAgICAgICAgLy8gICB0aGlzLmx1Y2tEcmF3ID0gbHVja0RyYXc7CiAgICAgICAgICAvLyAgIHRoaXMuaW50ZWdyYWwgPSBpbnRlZ3JhbDsKICAgICAgICAgIC8vIH0gZWxzZSBpZiAodGhpcy5jdXJyZW5UeXBlID09ICdzcGVjaWFsJykgewogICAgICAgICAgLy8gICBsZXQgbGlzdCA9IFtdOwogICAgICAgICAgLy8gICBkYXRhLmZvckVhY2goKGUpID0+IHsKICAgICAgICAgIC8vICAgICBlLnVybCA9IGAvcGFnZXMvYW5uZXgvc3BlY2lhbC9pbmRleD9pZD0ke2UuaWR9Jm5hbWU9JHtlLm5hbWV9YDsKICAgICAgICAgIC8vICAgICBpZiAoZS5pc19kaXkpIHsKICAgICAgICAgIC8vICAgICAgIGxpc3QucHVzaChlKTsKICAgICAgICAgIC8vICAgICB9CiAgICAgICAgICAvLyAgIH0pOwogICAgICAgICAgLy8gICB0aGlzLnRhYmxlTGlzdCA9IGxpc3Q7CiAgICAgICAgICAvLyB9IGVsc2UgaWYgKHRoaXMuY3VycmVuVHlwZSA9PSAncHJvZHVjdF9jYXRlZ29yeScpIHsKICAgICAgICAgIC8vICAgZGF0YS5mb3JFYWNoKChlKSA9PiB7CiAgICAgICAgICAvLyAgICAgaWYgKGUuaGFzT3duUHJvcGVydHkoJ2NoaWxkcmVuJykpIHsKICAgICAgICAgIC8vICAgICAgIGUuY2hpbGRyZW4uZm9yRWFjaCgoaikgPT4gewogICAgICAgICAgLy8gICAgICAgICBqLnVybCA9IGAvcGFnZXMvZ29vZHMvZ29vZHNfbGlzdC9pbmRleD9zaWQ9JHtqLmlkfSZ0aXRsZT0ke2ouY2F0ZV9uYW1lfWA7CiAgICAgICAgICAvLyAgICAgICB9KTsKICAgICAgICAgIC8vICAgICB9CiAgICAgICAgICAvLyAgICAgZS51cmwgPSBgL3BhZ2VzL2dvb2RzL2dvb2RzX2xpc3QvaW5kZXg/Y2lkPSR7ZS5pZH0mdGl0bGU9JHtlLmNhdGVfbmFtZX1gOwogICAgICAgICAgLy8gICB9KTsKICAgICAgICAgIC8vICAgdGhpcy50YWJsZUxpc3QgPSBkYXRhOwogICAgICAgICAgLy8gfQogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgIF90aGlzNy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICBfdGhpczcuJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBvazogZnVuY3Rpb24gb2soKSB7CiAgICAgIGlmICh0aGlzLmN1cnJlblVybCA9PSAnJykgewogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqemTvuaOpScpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJGVtaXQoJ2xpbmtVcmwnLCB0aGlzLmN1cnJlblVybCk7CiAgICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIH0KICAgIH0sCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfQogIH0KfTs="},null]}