{"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\\RescueFeeStandard\\RescueFeeCq\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\RescueFeeStandard\\RescueFeeCq\\components\\EditAddPage\\index.vue","mtime":1742897503264},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBkaWN0aW9uYXJ5RXNjYXBlLCBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL1Jlc2N1ZUZlZUNxJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdFZGl0QWRkUGFnZScsCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ1RhYmxlUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHVwbG9hZFVybDogJ2h0dHA6Ly9leGFtcGxlLmNvbS91cGxvYWQnLAogICAgICBmaWxlTGlzdDogW10sCiAgICAgIHVwcGVyTGltaXQ6IDAsCiAgICAgIC8vIOWKoOaUtumhueWQiOiuoeWAvAogICAgICB0ZXh0YXJlYTogJycsCiAgICAgIGJ0bkxvYWRpbmc6IGZhbHNlLAogICAgICBjYXJDb2xvdXJMaXN0OiBbXSwKICAgICAgYWRkRWRpdEZvcm06IHsKICAgICAgICB1cHBlckxpbWl0OiAnJywKICAgICAgICBuYW1lOiAnJywKICAgICAgICBob21ld29ya1ZlaGljbGVzOiAnMScsCiAgICAgICAgcmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQmVuY2htYXJrTGlzdDogW10sCiAgICAgICAgcmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQWRkaXRpb25hbExpc3Q6IFt7CiAgICAgICAgICBhZGRpdGlvbmFsTmFtZTogJ+WknOmXtOS9nOS4micsCiAgICAgICAgICBvdmVydHJhdmVsUHJvcG9ydGlvbjogJycKICAgICAgICB9LCB7CiAgICAgICAgICBhZGRpdGlvbmFsTmFtZTogJ+WNsemZqei0p+eJqei9pui+hicsCiAgICAgICAgICBvdmVydHJhdmVsUHJvcG9ydGlvbjogJycKICAgICAgICB9LCB7CiAgICAgICAgICBhZGRpdGlvbmFsTmFtZTogJ+map+mBk+WGheS9nOS4micsCiAgICAgICAgICBvdmVydHJhdmVsUHJvcG9ydGlvbjogJycKICAgICAgICB9LCB7CiAgICAgICAgICBhZGRpdGlvbmFsTmFtZTogJ+aLluaLveS6pOmAmuS6i+aVhei9pui+hicsCiAgICAgICAgICBvdmVydHJhdmVsUHJvcG9ydGlvbjogJycKICAgICAgICB9XQogICAgICB9LAogICAgICBhZGRFZGl0UnVsZXM6IHsKICAgICAgICBuYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGhvbWV3b3JrVmVoaWNsZXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfovabnsbvnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgdXBwZXJMaW1pdDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+WKoOaUtumhueS4iumZkOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBtYW46IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICflhazlj7jms5XkurrkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgc2F2ZUxvYWRpbmc6IGZhbHNlLAogICAgICAvLyDkuIrkvKBsb2FkaW5nCiAgICAgIGlkOiAnJywKICAgICAgLy8gaWTmoIfor4bnrKYKICAgICAgcHViU3ViOiBudWxsCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwpIHsKICAgICAgICBpZiAobmV3VmFsID09PSB0aGlzLiRvcHRpb25zLm5hbWUpIHsKICAgICAgICAgIHRoaXMub3BlblBhZ2UoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jbG9zZVBhZ2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmdldENhckNvbG91ckxpc3QoKTsgLy8g5Zyo57uE5Lu25Yib5bu65pe26I635Y+W5a2X5YW45pWw5o2uCiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8vIOWOn+acieeahOS6i+S7tuiuoumYhQogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIGNvbnNvbGUubG9nKGRhdGEsICc5OTk5OScpOwogICAgICBpZiAoZGF0YS5kYXRhLmlkKSB7CiAgICAgICAgX3RoaXMuaWQgPSBkYXRhLmRhdGEuaWQ7CiAgICAgICAgX3RoaXMuZ2V0RGV0YWlsKGRhdGEuZGF0YS5pZCk7CiAgICAgIH0gZWxzZSB7fQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvLyBoYW5kbGVSZW1vdmUoZmlsZSwgZmlsZUxpc3QpIHsKICAgIC8vICAgY29uc29sZS5sb2coZmlsZSwgZmlsZUxpc3QpCiAgICAvLyB9LAogICAgLy8gaGFuZGxlUHJldmlldyhmaWxlKSB7CiAgICAvLyAgIGNvbnNvbGUubG9nKGZpbGUpCiAgICAvLyB9LAogICAgLy8gaGFuZGxlRXhjZWVkKGZpbGVzLCBmaWxlTGlzdCkgewogICAgLy8gICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoYOW9k+WJjemZkOWItumAieaLqSAzIOS4quaWh+S7tu+8jOacrOasoemAieaLqeS6hiAke2ZpbGVzLmxlbmd0aH0g5Liq5paH5Lu277yM5YWx6YCJ5oup5LqGICR7ZmlsZXMubGVuZ3RoICsgZmlsZUxpc3QubGVuZ3RofSDkuKrmlofku7ZgKQogICAgLy8gfSwKICAgIC8vIGJlZm9yZVJlbW92ZShmaWxlLCBmaWxlTGlzdCkgewogICAgLy8gICByZXR1cm4gdGhpcy4kY29uZmlybShg56Gu5a6a56e76ZmkICR7ZmlsZS5uYW1lfe+8n2ApCiAgICAvLyB9LAogICAgLy8gaGFuZGxlRmlsZUNoYW5nZShmaWxlLCBmaWxlTGlzdCkgewogICAgLy8gICB0aGlzLmZpbGVMaXN0ID0gZmlsZUxpc3QKICAgIC8vICAgdGhpcy4kcmVmcy51cGxvYWQuc3VibWl0KCkKICAgIC8vIH0sCiAgICAvLyBzdWJtaXRVcGxvYWQoKSB7CiAgICAvLyAgIHRoaXMuJHJlZnMudXBsb2FkLnN1Ym1pdCgpCiAgICAvLyB9LAogICAgLy8g5aSE55CG5Yqg5pS26aG55LiK6ZmQ6L6T5YWl5LqL5Lu2CiAgICBoYW5kbGVVcHBlckxpbWl0SW5wdXQ6IGZ1bmN0aW9uIGhhbmRsZVVwcGVyTGltaXRJbnB1dCgpIHsKICAgICAgdmFyIHZhbHVlID0gdGhpcy5hZGRFZGl0Rm9ybS51cHBlckxpbWl0OwogICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teXGQuXS9nLCAnJyk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udXBwZXJMaW1pdCA9IHZhbHVlOwogICAgICBpZiAodmFsdWUgIT09IHRoaXMuYWRkRWRpdEZvcm0udXBwZXJMaW1pdCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5Y+q6IO96L6T5YWl5pWw5a2X77yBJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZShkYXRhKSB7CiAgICAgIHRoaXMuZ2V0Q2FyQ29sb3VyTGlzdCgpOwogICAgfSwKICAgIGRpY3Rpb25hcnlFc2NhcGU6IGRpY3Rpb25hcnlFc2NhcGUsCiAgICAvLyDojrflj5bovabnsbvlrZflhbjmlbDmja4KICAgIGdldENhckNvbG91ckxpc3Q6IGZ1bmN0aW9uIGdldENhckNvbG91ckxpc3QoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIHJlc3BvbnNlLCB0cmFpbGVyUmVzcG9uc2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gZ2V0RGljdGlvbmFyeUJ5Q29kZSgnenljbCcpOyAvLyDosIPnlKjojrflj5blrZflhbjmlbDmja7nmoTmjqXlj6MKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSkgewogICAgICAgICAgICAgICAgICBfdGhpczIuY2FyQ29sb3VyTGlzdCA9IHJlc3BvbnNlLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLmVycm9yKCfojrflj5bovabnsbvlrZflhbjmlbDmja7lpLHotKUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIOiOt+WPlui9puWei+Wtl+WFuOaVsOaNru+8iGhjLXN0Y3jvvIkKICAgICAgICAgICAgICAgIHRyYWlsZXJSZXNwb25zZSA9IGdldERpY3Rpb25hcnlCeUNvZGUoJ2hjLXN0Y3gnKTsKICAgICAgICAgICAgICAgIGlmICh0cmFpbGVyUmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICAgLy8g5Yqo5oCB5pu05pawIHJlc2N1ZUZlZVN0YW5kYXJkRGV0YWlsc0JlbmNobWFya0xpc3Qg55qEIHVzZXJJZAogICAgICAgICAgICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0ucmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQmVuY2htYXJrTGlzdCA9IHRyYWlsZXJSZXNwb25zZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgY2FyQ2F0ZWdvcnk6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgICAgICAgICAgIC8vIOS9v+eUqOWtl+WFuOS4reeahCBuYW1lIOS9nOS4uiB1c2VySWQKICAgICAgICAgICAgICAgICAgICAgIGJlbmNobWFya1ByaWNlOiAnJywKICAgICAgICAgICAgICAgICAgICAgIC8vIOWIneWni+WMluWfuuS7twogICAgICAgICAgICAgICAgICAgICAgb3ZlcnRyYXZlbEZlZXM6ICcnLAogICAgICAgICAgICAgICAgICAgICAgLy8g5Yid5aeL5YyW5aKe5pa95LiA5YWs6YeMCiAgICAgICAgICAgICAgICAgICAgICBvdmVydGltZUZlZTogJycsCiAgICAgICAgICAgICAgICAgICAgICAvL+WinuWKoOS4gOWwj+aXtgogICAgICAgICAgICAgICAgICAgICAgcmVtYXJrczogJycKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcign6I635Y+W6L2m5Z6L5a2X5YW45pWw5o2u5aSx6LSlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcign6I635Y+W6L2m57G75a2X5YW45pWw5o2u5pe25Y+R55Sf6ZSZ6K+vJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy/mi5bovabliKDpmaTkuIDooYwKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKGluZGV4LCByb3cpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+atpOaTjeS9nOWwhuawuOS5heWIoOmZpOivpeaWh+S7tiwg5piv5ZCm57un57utPycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0ucmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQmVuY2htYXJrTGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIF90aGlzMy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfIScKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVEZWxldGVvdGhlcjogZnVuY3Rpb24gaGFuZGxlRGVsZXRlb3RoZXIoaW5kZXgsIHJvdykgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdGhpcy4kY29uZmlybSgn5q2k5pON5L2c5bCG5rC45LmF5Yig6Zmk6K+l5paH5Lu2LCDmmK/lkKbnu6fnu60/JywgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybS5yZXNjdWVGZWVTdGFuZGFyZERldGFpbHNBZGRpdGlvbmFsTGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIF90aGlzNC4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfIScKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlkIrovabliKDpmaTkuIDooYwKICAgIGhhbmRsZURlbGV0ZWJiYjogZnVuY3Rpb24gaGFuZGxlRGVsZXRlYmJiKGluZGV4LCByb3cpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+atpOaTjeS9nOWwhuawuOS5heWIoOmZpOivpeaWh+S7tiwg5piv5ZCm57un57utPycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0ucmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQmVuY2htYXJrTGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIF90aGlzNS4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfIScKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNS4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVEZWxldGVvdGhlcmJiYjogZnVuY3Rpb24gaGFuZGxlRGVsZXRlb3RoZXJiYmIoaW5kZXgsIHJvdykgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy4kY29uZmlybSgn5q2k5pON5L2c5bCG5rC45LmF5Yig6Zmk6K+l5paH5Lu2LCDmmK/lkKbnu6fnu60/JywgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi5hZGRFZGl0Rm9ybS5yZXNjdWVGZWVTdGFuZGFyZERldGFpbHNBZGRpdGlvbmFsTGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIF90aGlzNi4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfIScKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDpmLLmipblh73mlbAKICAgIGRlYm91bmNlOiBmdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0KSB7CiAgICAgIHZhciB0aW1lb3V0OwogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykgewogICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTsKICAgICAgICB9CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGZ1bmMuYXBwbHkoX3RoaXM3LCBhcmdzKTsKICAgICAgICB9LCB3YWl0KTsKICAgICAgfTsKICAgIH0sCiAgICAvLyDlpITnkIbmlbDlrZfovpPlhaUt6KaB5rGC55So5oi35Y+q6IO96L6T5YWl5pWw5a2XCiAgICBoYW5kbGVOdW1iZXJJbnB1dDogZnVuY3Rpb24gaGFuZGxlTnVtYmVySW5wdXQocm93LCBmaWVsZCkgewogICAgICAvLyDojrflj5bovpPlhaXnmoTlgLwKICAgICAgdmFyIHZhbHVlID0gcm93W2ZpZWxkXTsKICAgICAgLy8g5L2/55So5q2j5YiZ6KGo6L6+5byP6L+H5ruk6Z2e5pWw5a2X5a2X56ymCiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cZC5dL2csICcnKTsgLy8g5Y+q5YWB6K645pWw5a2X5ZKM5bCP5pWw54K5CiAgICAgIC8vIOabtOaWsOe7keWumueahOWAvAogICAgICByb3dbZmllbGRdID0gdmFsdWU7CiAgICAgIC8vIOWmguaenOi+k+WFpeS6humdnuazleWtl+espu+8jOe7meWHuuaPkOekugogICAgICBpZiAodmFsdWUgIT09IHJvd1tmaWVsZF0pIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+WPquiDvei+k+WFpeaVsOWtl++8gScpOwogICAgICB9CiAgICB9LAogICAgLy8g5aSE55CG6L6T5YWl5LqL5Lu2CiAgICBoYW5kbGVJbnB1dDogZnVuY3Rpb24gaGFuZGxlSW5wdXQocm93LCBmaWVsZCkgewogICAgICAvLyDojrflj5bovpPlhaXnmoTlgLwKICAgICAgdmFyIHZhbHVlID0gcm93W2ZpZWxkXTsKICAgICAgLy8g5L2/55So5q2j5YiZ6KGo6L6+5byP6L+H5ruk6Z2e5pWw5a2X5a2X56ymCiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cZC5dL2csICcnKTsgLy8g5Y+q5YWB6K645pWw5a2X5ZKM5bCP5pWw54K5CiAgICAgIC8vIOabtOaWsOe7keWumueahOWAvAogICAgICByb3dbZmllbGRdID0gdmFsdWU7CiAgICB9LAogICAgLy8g5ZCI6K6h5pa55rOVCiAgICBnZXRTdW1tYXJpZXM6IGZ1bmN0aW9uIGdldFN1bW1hcmllcyhwYXJhbSkgewogICAgICB2YXIgY29sdW1ucyA9IHBhcmFtLmNvbHVtbnMsCiAgICAgICAgZGF0YSA9IHBhcmFtLmRhdGE7CiAgICAgIHZhciBzdW1zID0gW107CiAgICAgIGNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sdW1uLCBpbmRleCkgewogICAgICAgIGlmIChpbmRleCA9PT0gMCkgewogICAgICAgICAgc3Vtc1tpbmRleF0gPSAn5Yqg5pS26aG55ZCI6K6hJzsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gJ292ZXJ0cmF2ZWxQcm9wb3J0aW9uJykgewogICAgICAgICAgLy8g6K6h566X5pWw5YC85oC75ZKMCiAgICAgICAgICB2YXIgdG90YWwgPSBkYXRhLnJlZHVjZShmdW5jdGlvbiAoc3VtLCByb3cpIHsKICAgICAgICAgICAgdmFyIHZhbHVlID0gTnVtYmVyKHJvdy5vdmVydHJhdmVsUHJvcG9ydGlvbikgfHwgMDsKICAgICAgICAgICAgcmV0dXJuIHN1bSArIHZhbHVlOwogICAgICAgICAgfSwgMCk7CiAgICAgICAgICBzdW1zW2luZGV4XSA9ICIiLmNvbmNhdCh0b3RhbCwgIiUiKTsgLy8g5pi+56S65pe25re75YqgICUKICAgICAgICB9IGVsc2UgewogICAgICAgICAgc3Vtc1tpbmRleF0gPSAnJzsKICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gc3VtczsKICAgIH0sCiAgICAvLyDliqjmgIHorr7nva7ljZXlhYPmoLznsbvlkI0KICAgIHRhYmxlQ2VsbENsYXNzTmFtZTogZnVuY3Rpb24gdGFibGVDZWxsQ2xhc3NOYW1lKF9yZWYpIHsKICAgICAgdmFyIHJvdyA9IF9yZWYucm93LAogICAgICAgIGNvbHVtbiA9IF9yZWYuY29sdW1uLAogICAgICAgIHJvd0luZGV4ID0gX3JlZi5yb3dJbmRleDsKICAgICAgLy8g5aaC5p6c5piv5ZCI6K6h6KGM77yI5pyA5ZCO5LiA6KGM77yJCiAgICAgIGlmIChyb3dJbmRleCA9PT0gdGhpcy5hZGRFZGl0Rm9ybS5yZXNjdWVGZWVTdGFuZGFyZERldGFpbHNBZGRpdGlvbmFsTGlzdC5sZW5ndGgpIHsKICAgICAgICByZXR1cm4gJ3N1bW1hcnktcm93JzsgLy8g6L+U5Zue6Ieq5a6a5LmJ57G75ZCNCiAgICAgIH0KICAgICAgcmV0dXJuICcnOwogICAgfSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICAvLyDmuIXnqbrooajljZXmlbDmja4KICAgICAgdGhpcy5hZGRFZGl0Rm9ybSA9IHsKICAgICAgICBuYW1lOiAnJywKICAgICAgICBzaG9ydE5hbWU6ICcnLAogICAgICAgIG1hbjogJycKICAgICAgfTsKICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsKICAgICAgICBwdWJTdWI6IHRoaXMucHViU3ViCiAgICAgIH0pOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgIF90aGlzOC4kcmVmcy5hZGRFZGl0Rm9ybS4kZWwuc2Nyb2xsVG9wID0gMDsKICAgICAgICBfdGhpczguJHJlZnMuYWRkRWRpdEZvcm0uY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bor6bmg4UKICAgIGdldERldGFpbDogZnVuY3Rpb24gZ2V0RGV0YWlsKGlkKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGV0YWlsKGlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF90aGlzOS5hZGRFZGl0Rm9ybSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczEwID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMyh2YWxpZCwgb2JqZWN0KSB7CiAgICAgICAgICB2YXIgcG9zdERhdGEsIG15SW50ZXJGYWNlLCBfeWllbGQkbXlJbnRlckZhY2UsIHN0YXRlLCBtZXNzYWdlOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXMxMC4kbWVzc2FnZS53YXJuaW5nKCJcdTY3MDkiLmNvbmNhdChPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aCwgIlx1NEUyQVx1NUI1N1x1NkJCNVx1NjcyQVx1OTAxQVx1OEZDN1x1NjgyMVx1OUE4Q1x1RkYwQ1x1OEJGN1x1NkI2M1x1Nzg2RVx1NTg2Qlx1NTE5OVx1ODg2OFx1NTM1NVx1NTE4NVx1NUJCOVx1MzAwMiIpKTsKICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTg7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAvLyDorqHnrpfliqDmlLbpobnmgLvlkowKICAgICAgICAgICAgICAgIC8vIHRoaXMudXBwZXJMaW1pdCA9IHRoaXMuYWRkRWRpdEZvcm0ucmVzY3VlRmVlU3RhbmRhcmREZXRhaWxzQWRkaXRpb25hbExpc3QucmVkdWNlKChzdW0sIGl0ZW0pID0+IHsKICAgICAgICAgICAgICAgIC8vICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoaXRlbS5vdmVydHJhdmVsUHJvcG9ydGlvbikgfHwgMAogICAgICAgICAgICAgICAgLy8gICByZXR1cm4gc3VtICsgdmFsdWUKICAgICAgICAgICAgICAgIC8vIH0sIDApCiAgICAgICAgICAgICAgICAvLyDmiZPljbDooajljZXmlbDmja4KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfooajljZXmlbDmja46JywgX29iamVjdFNwcmVhZCh7fSwgX3RoaXMxMC5hZGRFZGl0Rm9ybSkpOwogICAgICAgICAgICAgICAgLy8g5qCh6aqM5piv5ZCm6LaF6L+HNTAlCiAgICAgICAgICAgICAgICAvLyBpZiAodGhpcy51cHBlckxpbWl0ID4gNTApIHsKICAgICAgICAgICAgICAgIC8vICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfliqDmlLbpobnntK/orqHmr5TkvovkuI3lvpfotoXov4c1MCXvvIEnKQogICAgICAgICAgICAgICAgLy8gICByZXR1cm4KICAgICAgICAgICAgICAgIC8vIH0KICAgICAgICAgICAgICAgIC8vIOS/neWtmOaVsOaNru+8iOWMheWQqyB1cHBlckxpbWl077yJCiAgICAgICAgICAgICAgICBwb3N0RGF0YSA9IF9vYmplY3RTcHJlYWQoe30sIF90aGlzMTAuYWRkRWRpdEZvcm0pOwogICAgICAgICAgICAgICAgX3RoaXMxMC5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBteUludGVyRmFjZSA9IF90aGlzMTAuaWQgPyB0YWJsZUVkaXQgOiB0YWJsZUFkZDsKICAgICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gODsKICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTE7CiAgICAgICAgICAgICAgICByZXR1cm4gbXlJbnRlckZhY2UocG9zdERhdGEpOwogICAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgICBfeWllbGQkbXlJbnRlckZhY2UgPSBfY29udGV4dDMuc2VudDsKICAgICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJG15SW50ZXJGYWNlLnN0YXRlOwogICAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRteUludGVyRmFjZS5tZXNzYWdlOwogICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBfdGhpczEwLmlkID8gJ+S/ruaUuScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXMxMC4kbWVzc2FnZS5zdWNjZXNzKCJcdTY1NTFcdTYzRjRcdTY1MzZcdThEMzlcdTY4MDdcdTUxQzYiLmNvbmNhdChtZXNzYWdlLCAiXHU2MjEwXHU1MjlGIikpOwogICAgICAgICAgICAgICAgICAvLyDmuIXnqbrooajljZXmlbDmja4KICAgICAgICAgICAgICAgICAgX3RoaXMxMC5hZGRFZGl0Rm9ybSA9IHsKICAgICAgICAgICAgICAgICAgICBuYW1lOiAnJywKICAgICAgICAgICAgICAgICAgICBzaG9ydE5hbWU6ICcnLAogICAgICAgICAgICAgICAgICAgIG1hbjogJycKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgX3RoaXMxMC5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCBfdGhpczEwLmlkID8gJ2VkaXQnIDogJ2FkZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDE1OwogICAgICAgICAgICAgICAgX3RoaXMxMC5zYXZlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5maW5pc2goMTUpOwogICAgICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlMywgbnVsbCwgW1s4LCwgMTUsIDE4XV0pOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgLy8g5riF56m66KGo5Y2V5pWw5o2uCiAgICAgIHRoaXMuYWRkRWRpdEZvcm0gPSB7CiAgICAgICAgbmFtZTogJycsCiAgICAgICAgc2hvcnROYW1lOiAnJywKICAgICAgICBtYW46ICcnCiAgICAgIH07CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZVBhZ2UnLCBwYWdlTmFtZSwgZnVuY3Rpb24gKF8pIHsKICAgICAgICBQdWJTdWIucHVibGlzaChwYWdlTmFtZSwgewogICAgICAgICAgdHlwZTogdHlwZQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}