{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\calledPartyAnswer\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\calledPartyAnswer\\components\\EditAddPage\\index.vue","mtime":1752005297223},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgUHViU3ViIGZyb20gJ3B1YnN1Yi1qcyc7CmltcG9ydCB7IHRhYmxlQWRkLCB0YWJsZURldGFpbCwgdGFibGVFZGl0IH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL29wZXJhdGlvbmFsTW9uaXRvcmluZy9jYWxsZWRQYXJ0eUFuc3dlcic7CmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgcm9hZFNlY3Rpb25JbmZvSW50ZXIgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yb2FkU2VjdGlvbkluZm8nOwppbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7CmltcG9ydCBFYXJseURpYWxvZyBmcm9tICcuLi9FYXJseURpYWxvZy9pbmRleC52dWUnOwppbXBvcnQgeyBnZXRSZWdpb25hbERhdGEgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvb3BlcmF0aW9uYWxNb25pdG9yaW5nL2luZm9ybWF0aU9uRm9yQXR0ZW50aW9uJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdFZGl0QWRkUGFnZScsCiAgY29tcG9uZW50czogewogICAgRWFybHlEaWFsb2c6IEVhcmx5RGlhbG9nCiAgfSwKICBwcm9wczogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBkZWZhdWx0OiAnVGFibGVQYWdlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICBjb21wdXRlZDoge30sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICB2YXIgdmFsaWRhdGVQZWdWYWxTdGFydCA9IGZ1bmN0aW9uIHZhbGlkYXRlUGVnVmFsU3RhcnQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybSA9IF90aGlzLmFkZEVkaXRGb3JtLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWcsCiAgICAgICAgc3RhcnRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZDsKICAgICAgaWYgKCFzdGFydFBlZyB8fCAhc3RhcnRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpeW8gOWni+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgdmFyIHZhbGlkYXRlUGVnVmFsRW5kID0gZnVuY3Rpb24gdmFsaWRhdGVQZWdWYWxFbmQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybTIgPSBfdGhpcy5hZGRFZGl0Rm9ybSwKICAgICAgICBlbmRQZWcgPSBfdGhpcyRhZGRFZGl0Rm9ybTIuZW5kUGVnLAogICAgICAgIGVuZFBlZ0FkZCA9IF90aGlzJGFkZEVkaXRGb3JtMi5lbmRQZWdBZGQ7CiAgICAgIGlmICghZW5kUGVnIHx8ICFlbmRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpee7k+adn+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgcmV0dXJuIHsKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHdhcm5pbmdOYW1lOiAnJywKICAgICAgICB3YXJuaW5nVW5pdDogJycsCiAgICAgICAgd2FyblJhbmdlOiAnJywKICAgICAgICB3YXJuaW5nTGV2ZWw6IDQsCiAgICAgICAgcmVnaW9uYWxDb2RlOiAnJywKICAgICAgICByZWdpb25hbE5hbWU6ICcnLAogICAgICAgIHJvYWRJZDogJycsCiAgICAgICAgcm9hZE5hbWU6ICcnLAogICAgICAgIHJvYWRDb2RlOiAnJywKICAgICAgICB3YXJuaW5nQ2hhbm5lbDogJycsCiAgICAgICAgcHVibGlzaERldmljZVR5cGU6ICcnLAogICAgICAgIHdhcm5pbmdUeXBlOiAxLAogICAgICAgIHdhcm5pbmdWYWx1ZTogJycsCiAgICAgICAgbG9jYXRpb25DYXRVbmNsZTogJycsCiAgICAgICAgcmVsaWV2ZVdhcm5pbmdUaW1lOiAnJywKICAgICAgICB3YXJuaW5nQ29udGVudDogJycsCiAgICAgICAgd2FybmluZ1RpbWU6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpLAogICAgICAgIHJlc3BvbnNlTWVjaGFuaXNtOiAnMCcsCiAgICAgICAgaW5zcGVjdE1pbGVhZ2U6ICcnLAogICAgICAgIHBlb3BsZVNpdHVhdGlvbjogJycsCiAgICAgICAgcHJlc2V0c1RlYW1TaXR1YXRpb246ICcnLAogICAgICAgIHByZXNldHNQZW9wbGVTaXR1YXRpb246ICcnLAogICAgICAgIGNhclNpdHVhdGlvbjogJycsCiAgICAgICAgcHJlc2V0c0NhclNpdHVhdGlvbjogJycsCiAgICAgICAgY29udHJvbFRocmVzaG9sZDogJycsCiAgICAgICAgd2F0ZXJDb250ZW50OiAnJywKICAgICAgICB0YWtlQWN0aW9uOiAnJywKICAgICAgICBjb250cm9sU2l0dWF0aW9uOiAnJywKICAgICAgICBwdWJsaXNoU2l0dWF0aW9uOiAnJywKICAgICAgICBwcmVzZXRzR29vZHNTaXR1YXRpb246ICcnCiAgICAgIH0sCiAgICAgIGFkZEVkaXRSdWxlczogewogICAgICAgIHByb3ZpbmNlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5ZCN56ewJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGRpcmVjdGlvbjogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaWueWQkScsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5ZCN56ewJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHJlZ2lvbmFsQ29kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaJgOWxnuWMuuWfnycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdVbml0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5Y+R5biD5Y2V5L2NJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdMZXZlbDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemihOitpuetiee6pycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdUeXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ1ZhbHVlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m54G+5a6z57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ1RpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6npooTorabml7bpl7QnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3YXJuUmFuZ2U6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlj6/og73lj5flvbHlk43ljLrljr8nLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ0NoYW5uZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXpooTorabkv6Hmga/mnaXmupAnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgcm9hZElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Y+v6IO95Y+X5b2x5ZON6Lev5q61JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ0NvbnRlbnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXpooTorablhoXlrrknLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25DYXRVbmNsZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeS9jee9ruaPj+i/sCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBsb2NhdGlvblN0YXRpb25OdW1iZXJTdGFydDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVBlZ1ZhbFN0YXJ0LAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeW8gOWni+ahqeWPtycsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBsb2NhdGlvblN0YXRpb25OdW1iZXJFbmQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVQZWdWYWxFbmQsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl57uT5p2f5qGp5Y+3JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJywgJ2JsdXInXQogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHNhdmVMb2FkaW5nOiBmYWxzZSwKICAgICAgcHViU3ViOiBudWxsLAogICAgICByb2FkT3B0aW9uczogW10sCiAgICAgIHJlZ2lvbkxpc3Q6IFtdLAogICAgICBtZWNoYW5pc21MaXN0OiBbewogICAgICAgIG5hbWU6ICfmmK8nLAogICAgICAgIHZhbHVlOiAnMScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICflkKYnLAogICAgICAgIHZhbHVlOiAnMCcKICAgICAgfV0sCiAgICAgIGVhcmx5V2FybmluZ0luZm9ybWF0aW9uOiBbXSwKICAgICAgaXNBZGQ6IGZhbHNlLAogICAgICBlYXJseURpYWxvZzogZmFsc2UKICAgIH07CiAgfSwKICB3YXRjaDogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbCkgewogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgewogICAgICAgICAgdGhpcy5vcGVuUGFnZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNsb3NlUGFnZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHt9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgIHRoaXMucHViU3ViID0gUHViU3ViLnN1YnNjcmliZSgnRWRpdEFkZFBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICAvLyDnrKzkuIDlsYLnuqfkuI3muLLmn5Mg6buY6K6k56ys5LiA5LiqCiAgICAgIGlmIChkYXRhLnJvYWROYW1lICE9PSAnJykgewogICAgICAgIF90aGlzMi5hZGRFZGl0Rm9ybS5yb2FkTmFtZSA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEucm9hZE5hbWUpIHx8ICcnOwogICAgICAgIF90aGlzMi5hZGRFZGl0Rm9ybS5yb2FkSWQgPSAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnJvYWRJZCkgfHwgJyc7CiAgICAgIH0KICAgICAgX3RoaXMyLmdldFJvYWREYXRhKCk7CiAgICAgIGlmIChkYXRhLmlkKSB7CiAgICAgICAgX3RoaXMyLmlzQWRkID0gZmFsc2U7CiAgICAgICAgX3RoaXMyLmlkID0gZGF0YS5pZDsKICAgICAgICBfdGhpczIuZ2V0RGV0YWlsKGRhdGEuaWQpOwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMi5pc0FkZCA9IHRydWU7CiAgICAgIH0KICAgICAgX3RoaXMyLmdldFJlZ2lvbmFsQ2hhbmdlKCk7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICBlYXJseUNoYW5nZTogZnVuY3Rpb24gZWFybHlDaGFuZ2UoKSB7CiAgICAgIHRoaXMuZWFybHlEaWFsb2cgPSB0cnVlOwogICAgfSwKICAgIGhhbmRsZUVhcmx5U2VsZWN0OiBmdW5jdGlvbiBoYW5kbGVFYXJseVNlbGVjdChkYXRhKSB7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHRoaXMuYWRkRWRpdEZvcm0pLCBkYXRhKTsKICAgIH0sCiAgICByZWdpb25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lvbkNoYW5nZSh2YWwpIHsKICAgICAgdmFyIF90aGlzJHJlZ2lvbkxpc3QkZmlsdCA9IHRoaXMucmVnaW9uTGlzdC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmFkY29kZSA9PT0gdmFsOwogICAgICAgIH0pWzBdLAogICAgICAgIGFkbmFtZSA9IF90aGlzJHJlZ2lvbkxpc3QkZmlsdC5hZG5hbWUsCiAgICAgICAgcGVnRVZhbCA9IF90aGlzJHJlZ2lvbkxpc3QkZmlsdC5wZWdFVmFsLAogICAgICAgIHBlZ1NWYWwgPSBfdGhpcyRyZWdpb25MaXN0JGZpbHQucGVnU1ZhbDsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5yZWdpb25hbE5hbWUgPSBhZG5hbWU7CiAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgdmFyIHN0YXJ0UGVnQXJyID0gcGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWcnLCBzdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgfQogICAgICBpZiAocGVnRVZhbCkgewogICAgICAgIHZhciBlbmRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdlbmRQZWcnLCBlbmRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgZW5kUGVnQXJyWzFdKTsKICAgICAgfQogICAgfSwKICAgIHJvYWRDaGFuZ2U6IGZ1bmN0aW9uIHJvYWRDaGFuZ2UodmFsKSB7CiAgICAgIHZhciBfdGhpcyRyb2FkT3B0aW9ucyRmaWwgPSB0aGlzLnJvYWRPcHRpb25zLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IHZhbDsKICAgICAgICB9KVswXSwKICAgICAgICBuYW1lID0gX3RoaXMkcm9hZE9wdGlvbnMkZmlsLm5hbWUsCiAgICAgICAgY29kZSA9IF90aGlzJHJvYWRPcHRpb25zJGZpbC5jb2RlOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnJvYWROYW1lID0gbmFtZTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5yb2FkQ29kZSA9IGNvZGU7CiAgICAgIHRoaXMuZ2V0UmVnaW9uYWxDaGFuZ2UoKTsKICAgIH0sCiAgICBnZXRSZWdpb25hbENoYW5nZTogZnVuY3Rpb24gZ2V0UmVnaW9uYWxDaGFuZ2UoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF90aGlzMyRyZWdpb25MaXN0LCBfdGhpczMkcmVnaW9uTGlzdCR2YWwsIHZhbHVlLCBzdGFydFBlZ0FyciwgZW5kUGVnQXJyOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBnZXRSZWdpb25hbERhdGEoX3RoaXMzLmFkZEVkaXRGb3JtLnJvYWRJZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczMkcmVnaW9uTGlzdCA9IF90aGlzMy5yZWdpb25MaXN0ID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBfdGhpczMkcmVnaW9uTGlzdCR2YWwgPSBfdGhpczMkcmVnaW9uTGlzdC52YWx1ZTsKICAgICAgICAgICAgICB2YWx1ZSA9IF90aGlzMyRyZWdpb25MaXN0JHZhbCA9PT0gdm9pZCAwID8ge30gOiBfdGhpczMkcmVnaW9uTGlzdCR2YWw7CiAgICAgICAgICAgICAgX3RoaXMzLnJlZ2lvbkxpc3QgPSB2YWx1ZS5yZWdpb25hbDsKICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0ucHJvdmluY2UgPSB2YWx1ZS5wcm92aW5jZTsKICAgICAgICAgICAgICBpZiAoX3RoaXMzLnJlZ2lvbkxpc3QubGVuZ3RoID4gMCAmJiAhX3RoaXMzLmlkKSB7CiAgICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0ucmVnaW9uYWxDb2RlID0gX3RoaXMzLnJlZ2lvbkxpc3RbMF0uYWRjb2RlOwogICAgICAgICAgICAgICAgX3RoaXMzLmFkZEVkaXRGb3JtLnJlZ2lvbmFsTmFtZSA9IF90aGlzMy5yZWdpb25MaXN0WzBdLmFkbmFtZTsKICAgICAgICAgICAgICAgIGlmIChfdGhpczMucmVnaW9uTGlzdFswXS5wZWdTVmFsKSB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0UGVnQXJyID0gX3RoaXMzLnJlZ2lvbkxpc3RbMF0ucGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgICBfdGhpczMuJHNldChfdGhpczMuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgICAgX3RoaXMzLiRzZXQoX3RoaXMzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLnJlZ2lvbkxpc3RbMF0ucGVnRVZhbCkgewogICAgICAgICAgICAgICAgICBlbmRQZWdBcnIgPSBfdGhpczMucmVnaW9uTGlzdFswXS5wZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIGVuZFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy/ojrflj5bmiYDlnKjot6/mrrXliJfooajmlbDmja4KICAgIGdldFJvYWREYXRhOiBmdW5jdGlvbiBnZXRSb2FkRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyb2FkU2VjdGlvbkluZiwgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiByb2FkU2VjdGlvbkluZm9JbnRlcih7CiAgICAgICAgICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogLTEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZiA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkcm9hZFNlY3Rpb25JbmYyOwogICAgICAgICAgICAgIF90aGlzNC5yb2FkT3B0aW9ucyA9IHJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICBpdGVtLnJvYWROYW1lID0gaXRlbS5uYW1lICsgJyAnICsgaXRlbS5jb2RlOwogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX3RoaXM0LmFkZEVkaXRGb3JtLnJvYWRDb2RlID0gX3RoaXM0LnJvYWRPcHRpb25zLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IF90aGlzNC5hZGRFZGl0Rm9ybS5yb2FkSWQ7CiAgICAgICAgICAgICAgfSlbMF0uY29kZTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5omT5byA6aG16Z2i5omn6KGMCiAgICBvcGVuUGFnZTogZnVuY3Rpb24gb3BlblBhZ2UoKSB7fSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB2YXIgcm9hZE9wdGlvbnMgPSB0aGlzLnJvYWRPcHRpb25zOwogICAgICAvLyDph43nva7nu4Tku7bmlbDmja4KICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiRkYXRhLCB0aGlzLiRvcHRpb25zLmRhdGEuY2FsbCh0aGlzKSwgewogICAgICAgIHB1YlN1YjogdGhpcy5wdWJTdWIsCiAgICAgICAgcm9hZE9wdGlvbnM6IHJvYWRPcHRpb25zCiAgICAgIH0pOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgIF90aGlzNS4kcmVmcy5hZGRFZGl0Rm9ybS4kZWwuc2Nyb2xsVG9wID0gMDsKICAgICAgICBfdGhpczUuJHJlZnMuYWRkRWRpdEZvcm0uY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bor6bmg4UKICAgIGdldERldGFpbDogZnVuY3Rpb24gZ2V0RGV0YWlsKGlkKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBfdGhpczYkYWRkRWRpdEZvcm0sIHBlZ1NWYWwsIHBlZ0VWYWwsIHN0YXJ0UGVnQXJyLCBlbmRQZWdBcnI7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZXRhaWwoaWQpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3RoaXM2LmFkZEVkaXRGb3JtID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgX3RoaXM2JGFkZEVkaXRGb3JtID0gX3RoaXM2LmFkZEVkaXRGb3JtLCBwZWdTVmFsID0gX3RoaXM2JGFkZEVkaXRGb3JtLnBlZ1NWYWwsIHBlZ0VWYWwgPSBfdGhpczYkYWRkRWRpdEZvcm0ucGVnRVZhbDsKICAgICAgICAgICAgICBpZiAocGVnU1ZhbCkgewogICAgICAgICAgICAgICAgc3RhcnRQZWdBcnIgPSBwZWdTVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICBfdGhpczYuJHNldChfdGhpczYuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgIF90aGlzNi4kc2V0KF90aGlzNi5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnQWRkJywgc3RhcnRQZWdBcnJbMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocGVnRVZhbCkgewogICAgICAgICAgICAgICAgZW5kUGVnQXJyID0gcGVnRVZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgX3RoaXM2LiRzZXQoX3RoaXM2LmFkZEVkaXRGb3JtLCAnZW5kUGVnJywgZW5kUGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgIF90aGlzNi4kc2V0KF90aGlzNi5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIGVuZFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQodmFsaWQsIG9iamVjdCkgewogICAgICAgICAgdmFyIF90aGlzNyRhZGRFZGl0Rm9ybSwgc3RhcnRQZWcsIHN0YXJ0UGVnQWRkLCBlbmRQZWcsIGVuZFBlZ0FkZCwgcGVnU1ZhbCwgcGVnRVZhbCwgbXlJbnRlckZhY2UsIHJlc3BvbnNlLCBzdGF0ZSwgbWVzc2FnZSwgYWN0aW9uOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIF90aGlzNy5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczckYWRkRWRpdEZvcm0gPSBfdGhpczcuYWRkRWRpdEZvcm0sIHN0YXJ0UGVnID0gX3RoaXM3JGFkZEVkaXRGb3JtLnN0YXJ0UGVnLCBzdGFydFBlZ0FkZCA9IF90aGlzNyRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCwgZW5kUGVnID0gX3RoaXM3JGFkZEVkaXRGb3JtLmVuZFBlZywgZW5kUGVnQWRkID0gX3RoaXM3JGFkZEVkaXRGb3JtLmVuZFBlZ0FkZDsKICAgICAgICAgICAgICAgIHBlZ1NWYWwgPSAnJzsKICAgICAgICAgICAgICAgIHBlZ0VWYWwgPSAnJzsKICAgICAgICAgICAgICAgIGlmIChzdGFydFBlZyAhPT0gJycgJiYgc3RhcnRQZWcgIT09IHVuZGVmaW5lZCAmJiBzdGFydFBlZ0FkZCAhPT0gJycgJiYgc3RhcnRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICBwZWdTVmFsID0gJ2snICsgKHN0YXJ0UGVnICE9PSAnJyA/IHN0YXJ0UGVnIDogJycpICsgJysnICsgKHN0YXJ0UGVnQWRkICE9PSAnJyA/IHN0YXJ0UGVnQWRkIDogJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGVuZFBlZyAhPT0gJycgJiYgZW5kUGVnICE9PSB1bmRlZmluZWQgJiYgZW5kUGVnQWRkICE9PSAnJyAmJiBlbmRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICBwZWdFVmFsID0gJ2snICsgKGVuZFBlZyAhPT0gJycgPyBlbmRQZWcgOiAnJykgKyAnKycgKyAoZW5kUGVnQWRkICE9PSAnJyA/IGVuZFBlZ0FkZCA6ICcnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG15SW50ZXJGYWNlID0gX3RoaXM3LmlkID8gdGFibGVFZGl0IDogdGFibGVBZGQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDQucHJldiA9IDExOwogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAxNDsKICAgICAgICAgICAgICAgIHJldHVybiBteUludGVyRmFjZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzNy5hZGRFZGl0Rm9ybSksIHt9LCB7CiAgICAgICAgICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICAgICAgICAgIHBlZ0VWYWw6IHBlZ0VWYWwsCiAgICAgICAgICAgICAgICAgIHB1YlN0YXR1czogMQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgICAgc3RhdGUgPSByZXNwb25zZS5zdGF0ZSwgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgYWN0aW9uID0gX3RoaXM3LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLnN1Y2Nlc3MoIiIuY29uY2F0KGFjdGlvbiwgIlx1NjIxMFx1NTI5RiIpKTsKICAgICAgICAgICAgICAgICAgUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiBfdGhpczcuaWQgPyAnZWRpdCcgOiAnYWRkJwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM3LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzNy5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAxNzsKICAgICAgICAgICAgICAgIF90aGlzNy5zYXZlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5maW5pc2goMTcpOwogICAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNCwgbnVsbCwgW1sxMSwsIDE3LCAyMF1dKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCB7CiAgICAgICAgICB0eXBlOiB0eXBlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}