{"remainingRequest":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\flow\\taskFlowComponents\\formContent.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\flow\\taskFlowComponents\\formContent.vue","mtime":1705040076915},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgT25saW5lRm9ybSBmcm9tICdAL2NvbXBvbmVudHMvZmxvdy9PbmxpbmVGb3JtLnZ1ZScNCmltcG9ydCBmb3JtIGZyb20gJ0AvYXBpL2Zvcm1Db250ZW50LmpzJw0KaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdlbGVtZW50LXVpJw0KaW1wb3J0IHtMb2FkaW5nfSBmcm9tICdlbGVtZW50LXVpJw0KaW1wb3J0IEZpbGVQcmV2aWV3IGZyb20gJ0AvY29tcG9uZW50cy9jb21tb24vRmlsZVByZXZpZXcudnVlJw0KaW1wb3J0IHJlcSBmcm9tICdAL3JlcXVlc3QuanMnDQpleHBvcnQgZGVmYXVsdCB7DQogICAgbmFtZTogJ2Zvcm1Db250ZW50JywNCiAgICBwcm9wczogWw0KICAgICAgICAnaW5zdElkJywNCiAgICAgICAgJ3Rhc2tJZCcsDQogICAgICAgICdkZWZJZCcsDQogICAgICAgICdwcm9JbnN0SWQnLA0KICAgICAgICAndHlwZScsDQogICAgICAgICdyZWFkSWQnLA0KICAgICAgICAncmVhZERvbmVJZCcsDQogICAgICAgICdteVJlYWRUeXBlJywNCiAgICAgICAgJ2xlYWRlcklkJywNCiAgICAgICAgJ2Zvcm1Mb2FkaW5nJywNCiAgICAgICAgJ3Rhc2tfc3RhdGUnLA0KICAgICAgICAndGFza3MnLA0KICAgICAgICAnaXNMb29rJywNCiAgICAgICAgJ2NvcHlJbnN0SWQnLA0KICAgICAgICAnc3RhcnRGbG93JywNCiAgICAgICAgJ3JlbGF0aW9uRGF0YScsDQogICAgXSwNCiAgICBkYXRhKCkgew0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgYnV0dG9uczogW10sDQogICAgICAgICAgICBzdGF0dXNfc3R5bGU6ICcnLA0KICAgICAgICAgICAgZGF0YUluc3RJZDogJycsDQogICAgICAgICAgICBodG1sOiBudWxsLA0KICAgICAgICAgICAgZGF0YTogbnVsbCwNCiAgICAgICAgICAgIHBlcm1pc3Npb246IG51bGwsDQogICAgICAgICAgICBpc1ZpZXc6IHRydWUsDQogICAgICAgICAgICBmb3JtVHlwZTogJ0lOTkVSJywNCiAgICAgICAgICAgIGh0bWxTcmM6IG51bGwsDQogICAgICAgICAgICB1cmdlbnRTdGF0ZUNvbmY6IHt9LA0KICAgICAgICAgICAgZm9ybUhlbHBGaWxlOiAnJywNCiAgICAgICAgICAgIHNyYzogJycsDQogICAgICAgICAgICBmaWxlczogW10sDQogICAgICAgICAgICBmaWxlSWQ6ICcnLA0KICAgICAgICAgICAgZmlsZVRyZWU6ICcnLA0KICAgICAgICAgICAgZm9ybURhdGE6ICcnLA0KICAgICAgICAgICAgaW5pdEZpbGxEYXRhOiBmYWxzZSwNCiAgICAgICAgICAgIGZvcm1JZDogJycsDQogICAgICAgICAgICBmbG93S2V5OiAnJywNCiAgICAgICAgICAgIHRhc2tEZXRhaWxMb2FkaW5nOiAnJywNCiAgICAgICAgICAgIHRvcERpdkhlaWdodDogJzk5cHgnLCAvL+epumRpdueahOmrmOW6piDnlKjkuo7mkpHlvIDpobXpnaLkuIvnmoRkaXblhoXlrrkNCiAgICAgICAgICAgIGZvcm1LZXk6ICcnLCAvL+ihqOWNlWtleQ0KICAgICAgICAgICAgZm9ybUNvbXBvbmVudEtleTogbmV3IERhdGUoKS5nZXRUaW1lKCksDQogICAgICAgICAgICBpZnJhbWVXaW46IG51bGwsDQogICAgICAgIH0NCiAgICB9LA0KICAgIHdhdGNoOiB7DQogICAgICAgIHRhc2tzOiBmdW5jdGlvbiAobmV3VmFsLCBvbGRWYWwpIHsNCiAgICAgICAgICAgIGlmIChuZXdWYWwpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmluaXQoKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICB1cmdlbnRTdGF0ZVZhbHVlOiBmdW5jdGlvbiAobmV3VmFsLCBvbGRWYWwpIHsNCiAgICAgICAgICAgIGlmICh3aW5kb3cudXJnZW50U3RhdGVWYWx1ZSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy51cmdlbnRTdGF0ZVZhbHVlLm5ldyA9IG5ld1ZhbA0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgIH0sDQogICAgY3JlYXRlZCgpIHsNCiAgICAgICAgaWYgKHRoaXMuaXNQbG1lZm9ybVBhZ2UpIHsNCiAgICAgICAgICAgIHRoaXMudG9wRGl2SGVpZ2h0ID0gMA0KICAgICAgICB9DQogICAgICAgIC8v5b6F5Yqe55qE5pe25YCZLHdhdGNo5bey57uP55uR5ZCs5LqGdGFza3Ms5Y+v5Lul5LiN55So5Yid5aeL5YyWDQogICAgICAgIGlmICghdGhpcy50YXNrSWQpIHsNCiAgICAgICAgICAgIHRoaXMuaW5pdCgpDQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAncmVxdWVzdCcpIHsNCiAgICAgICAgICAgIHRoaXMudG9wRGl2SGVpZ2h0ID0gJzIwcHgnDQogICAgICAgIH0NCiAgICB9LA0KICAgIG1ldGhvZHM6IHsNCiAgICAgICAgLyoqDQogICAgICAgICAqIOS/ruaUueagt+W8jw0KICAgICAgICAgKiBAcGFyYW0gZGl2aGVpZ2h0ICDmnIDkuIrpnaJkaXbnmoTpq5jluqYNCiAgICAgICAgICovDQogICAgICAgIHVwZGF0ZVN0eWxlKGRpdmhlaWdodCkgew0KICAgICAgICAgICAgdGhpcy50b3BEaXZIZWlnaHQgPSBkaXZoZWlnaHQNCiAgICAgICAgfSwNCiAgICAgICAgcHJldmlld0hlbHBGaWxlKCkgew0KICAgICAgICAgICAgbGV0IG9iaiA9IHt9DQogICAgICAgICAgICBvYmouaWQgPSB0aGlzLmZvcm1IZWxwRmlsZVswXS5pZA0KICAgICAgICAgICAgb2JqLm5hbWUgPSB0aGlzLmZvcm1IZWxwRmlsZVswXS5uYW1lDQogICAgICAgICAgICBvYmouc2l6ZSA9IHRoaXMuZm9ybUhlbHBGaWxlWzBdLnNpemUNCiAgICAgICAgICAgIHRoaXMuJHJlZnMuZmlsZVByZXZpZXcucHJldmlldyhvYmopDQogICAgICAgIH0sDQogICAgICAgIHNldEluaXRGaWxsRGF0YShpc0luaXRGaWxsRGF0YSkgew0KICAgICAgICAgICAgdGhpcy5pbml0RmlsbERhdGEgPSBpc0luaXRGaWxsRGF0YQ0KICAgICAgICB9LA0KICAgICAgICBoaWRkZW5Db250ZW50KCkgew0KICAgICAgICAgICAgdGhpcy4kcmVmcy5mb3JtQ29udGFpbmVyLmNsYXNzTmFtZSA9ICdmb3JtLWNvbnRhaW5lci1ub3QnDQogICAgICAgIH0sDQogICAgICAgIGluaXQodXBkYXRlRm9ybUNvbXBvbmVudCkgew0KICAgICAgICAgICAgaWYgKHRoaXMudGFza19zdGF0ZSA9PSAnRk9MTE9XJykgew0KICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzX3N0eWxlID0gJ3BhZGRpbmctdG9wOjBweCAhaW1wb3J0YW50OycNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciAkID0gcmVxdWlyZSgnanF1ZXJ5JykNCiAgICAgICAgICAgIGxldCBfbWUgPSB0aGlzDQogICAgICAgICAgICBpZiAoX21lLnRhc2tzKSB7DQogICAgICAgICAgICAgICAgX21lLmluaXRGaWxsRGF0YSA9IF9tZS50YXNrcy5pbml0RmlsbERhdGENCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGxldCByZWFkT25seSA9IGZhbHNlDQogICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgX21lLnRhc2tzICYmDQogICAgICAgICAgICAgICAgX21lLnRhc2tzLmJwbVRhc2sgJiYNCiAgICAgICAgICAgICAgICAoX21lLnRhc2tzLmJwbVRhc2suc3RhdHVzID09PSAnQ09NTVUnIHx8DQogICAgICAgICAgICAgICAgICAgIF9tZS50YXNrcy5icG1UYXNrLnN0YXR1cyA9PT0gJ1RSQU5TRk9STUVESU5RVScgfHwNCiAgICAgICAgICAgICAgICAgICAgX21lLnRhc2tzLmJwbVRhc2suc3RhdHVzID09PSAnRk9MTE9XJykNCiAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gdHJ1ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvL+iOt+WPlua1geeoi+WumuS5iWtleQ0KICAgICAgICAgICAgX21lLmdldEZsb3dLZXkoKQ0KICAgICAgICAgICAgbGV0IGhhbmRsZXJKcyA9IGZ1bmN0aW9uIChyZXApIHsNCiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VXNlciA9IF9tZS4kc3RvcmUuc3RhdGUubG9naW4uY3VycmVudFVzZXINCg0KICAgICAgICAgICAgICAgIGxldCBkYXRhID0gX21lLmRhdGENCiAgICAgICAgICAgICAgICBsZXQgX3RoaXMgPSBfbWUNCiAgICAgICAgICAgICAgICBpZiAocmVwICYmIHJlcC5kaXlKcykgew0KICAgICAgICAgICAgICAgICAgICBldmFsKHJlcC5kaXlKcykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxldCBoYW5kbGVyID0gZnVuY3Rpb24gKHJlcCkgew0KICAgICAgICAgICAgICAgIC8v5Y+R6LW35rWB56iL55qE5pe25YCZ5b6X5Yiw5oyJ6ZKu5a+56LGhDQogICAgICAgICAgICAgICAgaWYgKHJlcC5idXR0b25zKSB7DQogICAgICAgICAgICAgICAgICAgIF9tZS5idXR0b25zID0gcmVwLmJ1dHRvbnMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKF9tZS50YXNrRGV0YWlsTG9hZGluZykgew0KICAgICAgICAgICAgICAgICAgICBfbWUudGFza0RldGFpbExvYWRpbmcuY2xvc2UoKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoX21lLm15UmVhZFR5cGUgPT0gJ2FnZW50Jykgew0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlLndhcm5pbmcoJ+atpOa1geeoi+W3suiiq+WnlOaJmCzmsqHmnInlrqHmibnmnYMnKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoIXJlcCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHJlcCkgPT0gJ3t9Jykgew0KICAgICAgICAgICAgICAgICAgICBNZXNzYWdlLmVycm9yKCfmraTmtYHnqIvov5jmsqHmnInorr7nva7lhajlsYDooajljZUs6K+35YWI6K6+572u5YWo5bGA6KGo5Y2VIScpDQogICAgICAgICAgICAgICAgICAgIHJldHVybg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAocmVwLnJlc3VsdE1zZyA9PSAnZm9ybUVtcHR5JyB8fCByZXAucmVzdWx0ID09ICdmb3JtRW1wdHknKSB7DQogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UuZXJyb3IoJ+atpOa1geeoi+i/mOayoeacieiuvue9ruihqOWNlSzor7flhYjorr7nva7ooajljZUhJykNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF9tZS5mb3JtS2V5ID0gcmVwLmZvcm0uZm9ybUtleQ0KICAgICAgICAgICAgICAgIC8vX21lLmZvcm1JZD1yZXAuZm9ybS5mb3JtSWQ7DQogICAgICAgICAgICAgICAgaWYgKHJlcC5mb3JtICYmIHJlcC5mb3JtLnR5cGUgPT0gJ0ZSQU1FJykgew0KICAgICAgICAgICAgICAgICAgICBfbWUuaHRtbFNyYyA9IHJlcC5mb3JtLmZvcm1WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfbWUuaHRtbFNyYywgJ19tZS5odG1sU3JjICcsIF9tZSkNCiAgICAgICAgICAgICAgICAgICAgX21lLmZvcm1UeXBlID0gcmVwLmZvcm0udHlwZQ0KDQogICAgICAgICAgICAgICAgICAgIC8v6KGo5Y2V5Yqg6L295a6M5oiQ5Y+R5biD5LqL5Lu2IOWuoeaJueaMiemSruaJjeWPr+S7peeCueWHuw0KICAgICAgICAgICAgICAgICAgICBfbWUuJHJvb3QuJGVtaXQoJ2Zvcm1Mb2FkaW5nJywgZmFsc2UpDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgX21lLmZvcm1JZCA9IHJlcC5mb3JtLmZvcm1JZA0KICAgICAgICAgICAgICAgICAgICBmb3JtLnByZXZpZXcocmVwLmZvcm0uZm9ybUlkLCBoYW5kbGVySnMpDQogICAgICAgICAgICAgICAgICAgIGlmIChfbWUuZm9ybURhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF9tZS5kYXRhID0gSlNPTi5wYXJzZShCYXNlNjQuZGVjb2RlKF9tZS5mb3JtRGF0YSkpDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfbWUuZGF0YSA9IHJlcC5kYXRhDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBpZiAocmVwLnBlcm1pc3Npb24pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25PYmogPSBKU09OLnBhcnNlKHJlcC5wZXJtaXNzaW9uKQ0KICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbW1vblJpZ2h0ID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgIC8v5aaC5p6c5piv566h55CG56uv6L+b5YWl77yM5YiZ5bCG6aG16Z2i5a2X5q6155qE5p2D6ZmQ5L+u5pS55Li65Y+v57yW6L6RDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoX21lLnR5cGUgPT0gJ21hbmFnZScpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25SaWdodCA9ICd3Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5aaC5p6c5piv5p+l55yL5a6e5L6L77yM5Lmf5piv6I635Y+W5Y+R6LW35rWB56iL55qE6KGo5Y2V5ZKM5p2D6ZmQ44CC5Y+q5LiN6L+H5omA5pyJ5Y+v6KeB55qE5p2D6ZmQ6KaB5Y+Y5oiQ57yW6L6RDQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXF1ZXN0JyA9PSBfbWUudHlwZSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tZS5teVJlYWRUeXBlID09ICdteVJlcXVlc3QnIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lLm15UmVhZFR5cGUgPT0gJ2RlbGVnYXRlJyB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tZS5teVJlYWRUeXBlID09ICdteVJlYWQnIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lLnJlYWREb25lSWQgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWUudHlwZSA9PSAncmVhZCcgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seQ0KICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uUmlnaHQgPSAncicNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uT2JqLmZpZWxkcyAmJiBjb21tb25SaWdodCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBwZXJtaXNzaW9uT2JqLmZpZWxkcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2RlZiA9IHBlcm1pc3Npb25PYmouZmllbGRzW2tleV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJvZGVmKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBmbmFtZSBpbiBib2RlZikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uUmlnaHQgPT0gJ3cnIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb25SaWdodCA9PSAncicgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZGVmW2ZuYW1lXSAhPSAnbicpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZGVmW2ZuYW1lXSA9IGNvbW1vblJpZ2h0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25PYmouZmllbGRzW2tleV0gPSBib2RlZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uT2JqLnRhYmxlICYmIGNvbW1vblJpZ2h0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHBlcm1pc3Npb25PYmoudGFibGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGUgPSBwZXJtaXNzaW9uT2JqLnRhYmxlW2tleV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYmxlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tbW9uUmlnaHQgPT0gJ3cnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVbJ2hpZGRlbiddID0gZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVsnYWRkJ10gPSB0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVbJ2RlbCddID0gdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb21tb25SaWdodCA9PSAncicpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVsnYWRkJ10gPSBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlWydkZWwnXSA9IGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVbJ3JlcXVpcmVkJ10gPSBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlWydlZGl0J10gPSBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25PYmoudGFibGVba2V5XSA9IHRhYmxlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBfbWUucGVybWlzc2lvbiA9IHBlcm1pc3Npb25PYmoNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBfbWUuaHRtbCA9IHJlcC5mb3JtLmZvcm1IdG1sDQogICAgICAgICAgICAgICAgICAgIGlmIChyZXAuZm9ybS5oZWxwRmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgX21lLmZvcm1IZWxwRmlsZSA9IEpTT04ucGFyc2UocmVwLmZvcm0uaGVscEZpbGUpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKF9tZS5odG1sLnNwbGl0KCdyZWY9Im5leHRfc3RlcF9jaGVja18nKS5sZW5ndGggPiAxKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfbWUuJHJvb3QuJGVtaXQoJ3N0YXJ0Rmxvd0J0bkNoYW5nZScsIGZhbHNlKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8v6KGo5Y2V5Yqg6L295a6M5oiQ5Y+R5biD5LqL5Lu2IOWuoeaJueaMiemSruaJjeWPr+S7peeCueWHuw0KICAgICAgICAgICAgICAgICAgICBfbWUuJHJvb3QuJGVtaXQoJ2Zvcm1Mb2FkaW5nJywgZmFsc2UpDQogICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVGb3JtQ29tcG9uZW50KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBfbWUuZm9ybUNvbXBvbmVudEtleSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0aGlzLiRzdG9yZQ0KICAgICAgICAgICAgICAgIC5kaXNwYXRjaCgnc3RvcmVQcm9jZXNzL2dldFVyZ2VudFN0YXRlQ29uZicsIHsNCiAgICAgICAgICAgICAgICAgICAgZGVmSWQ6IHRoaXMuZGVmSWQsDQogICAgICAgICAgICAgICAgICAgIGluc3RJZDogdGhpcy5pbnN0SWQsDQogICAgICAgICAgICAgICAgICAgIHRhc2tJZDogdGhpcy50YXNrSWQsDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5jb25mKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuY29uZiA9IEpTT04ucGFyc2UoZGF0YS5jb25mKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmNvbmYgPSBldmFsKCcoJyArIGRhdGEuY29uZiArICcpJykNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy51cmdlbnRTdGF0ZVZhbHVlID0ge29sZDogZGF0YS52YWx1ZX0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZGF0YS52YWx1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgYzsgKGMgPSBkYXRhLmNvbmZbaW5kZXgrK10pOyApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMuZGVmYXVsdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS52YWx1ZSA9IGMuc3RhdGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBfbWUudXJnZW50U3RhdGVDb25mID0gZGF0YQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICB0aGlzLnRhc2tJZCAmJg0KICAgICAgICAgICAgICAgIHRoaXMudGFza3MgJiYNCiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnRhc2tzKSAhPSAne30nDQogICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgICAgICF0aGlzLnRhc2tzLmJwbVRhc2sgJiYNCiAgICAgICAgICAgICAgICAgICAgIXRoaXMudGFza3Muc3RhdGUgJiYNCiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrcy5tZXNzYWdlID09ICfmraTku7vliqHlt7LooqvlpITnkIbmiJbkuI3lrZjlnKjvvIEnDQogICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgIF9tZS4kcm91dGVyLnB1c2goJy92LWZsb3cvdi10b2RvJykNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRoaXMudGFza0RldGFpbExvYWRpbmcgPSBMb2FkaW5nLnNlcnZpY2Uoew0KICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICBsb2NrOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICB0ZXh0OiAn6KGo5Y2V5pWw5o2u5Yqg6L295Lit77yM6K+36ICQ5b+D562J5b6FLi4uJywNCiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lcjogJ2VsLWljb24tbG9hZGluZycsDQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDAsIDAsIDAsIDAuNyknLA0KICAgICAgICAgICAgICAgIH0pIC8v5byA5aeLDQogICAgICAgICAgICAgICAgaWYgKHRoaXMudGFza3MuYnBtVGFzay5icG1uSW5zdElkKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcm0udGFza0RldGFpbCgNCiAgICAgICAgICAgICAgICAgICAgICAgIHt0YXNrSWQ6IHRoaXMudGFza0lkLCBsZWFkZXJJZDogdGhpcy5sZWFkZXJJZH0sDQogICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBmb3JtLmdldEluc3RGb3JtQW5kQk8oDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tzLmJwbVRhc2sucHJvY0luc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXINCiAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSBpZiAoDQogICAgICAgICAgICAgICAgdGhpcy50YXNrSWQgJiYNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCcvdGFzay8nICsgdGhpcy50YXNrSWQgKyAnLzAnKSAhPQ0KICAgICAgICAgICAgICAgICAgICAtMQ0KICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgZm9ybS50YXNrRGV0YWlsKA0KICAgICAgICAgICAgICAgICAgICB7dGFza0lkOiB0aGlzLnRhc2tJZCwgbGVhZGVySWQ6IHRoaXMubGVhZGVySWR9LA0KICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSB7DQogICAgICAgICAgICAgICAgICAgIHRhc2tJZDogdGhpcy50YXNrSWQsDQogICAgICAgICAgICAgICAgICAgIGxlYWRlcklkOiB0aGlzLmxlYWRlcklkLA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgnc3RvcmVQcm9jZXNzL3Rhc2tEZXRhaWwnLCBwYXJhbXMpIC8v6I635Y+W5pON5L2c5oyJ6ZKuDQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5zdElkKSB7DQogICAgICAgICAgICAgICAgaWYgKCdzdGFydCcgIT0gdGhpcy50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWaWV3ID0gZmFsc2UNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy/mn6XnnIvmiJHlj5HotbfnmoTvvIzkuZ/kvb/nlKjlj5HotbfmtYHnqIvnmoTooajljZXjgILlj6rkuI3ov4fmiornvJbovpHlkozlv4XloavmnYPpmZDmlLnmiJDlj6ror7sNCiAgICAgICAgICAgICAgICBpZiAoJ3JlcXVlc3QnID09IHRoaXMudHlwZSB8fCAnbXlSZXF1ZXN0JyA9PSB0aGlzLm15UmVhZFR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXRGb3JtQW5kQk8oe3Byb0luc3RJZDogdGhpcy5pbnN0SWR9LCBoYW5kbGVyKQ0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ3JlYWQnID09IHRoaXMudHlwZSB8fCB0aGlzLm15UmVhZFR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhpc18gPSB0aGlzDQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlYWRJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy/nn6XkvJrlvoXlip4NCiAgICAgICAgICAgICAgICAgICAgICAgIC8v5qC55o2u5b6F5Yqe55+l5Lya5Lu75Yqh5Li76ZSuSUTojrflj5bku7vliqFJRA0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2goDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdG9yZVByb2Nlc3MvZ2V0QnBtVGFza05vdGljZUJ5SWQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzXy5yZWFkSWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJvdykgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm93LnRhc2tJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/moLnmja7ku7vliqFJZOiOt+WPluWuoeaJueWOhuWPsuaVsOaNru+8iOWPquacieS4gOadoe+8iQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2goDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdG9yZVByb2Nlc3MvZ2V0VGFza0tleUJ5VGFza0lkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LnRhc2tJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZm9ybURhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfLmZvcm1EYXRhID0gcmVzLmZvcm1EYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzSW5jbHVkRGF0YSA9IHJlcy5mb3JtRGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0SW5zdEZvcm1BbmRCTygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SWQ6IHRoaXNfLmluc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IHJlcy50YXNrS2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZERhdGE6IGlzSW5jbHVkRGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJvdy5ub2RlSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZDogcm93Lm5vZGVJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SWQ6IHRoaXNfLmluc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5qC55o2u5Lu75Yqh6IqC54K5SUTlkozmtYHnqIvlrp7kvotJROiOt+WPluWuoeaJueWOhuWPsuaVsOaNru+8iOWPquacieS4gOadoe+8iQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2goDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdG9yZVByb2Nlc3MvZ2V0VGFza0tleUJ5Tm9kZUlkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZm9ybURhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfLmZvcm1EYXRhID0gcmVzLmZvcm1EYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzSW5jbHVkRGF0YSA9IHJlcy5mb3JtRGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0SW5zdEZvcm1BbmRCTygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SWQ6IHRoaXNfLmluc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IHJlcy50YXNrS2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZERhdGE6IGlzSW5jbHVkRGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/mn6XnnIvmiJHlj5HotbfnmoTvvIzkuZ/kvb/nlKjlj5HotbfmtYHnqIvnmoTooajljZUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0Rm9ybUFuZEJPKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9JbnN0SWQ6IHRoaXMuaW5zdElkfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JtLmdldEluc3RGb3JtQW5kQk8odGhpc18uaW5zdElkLCBoYW5kbGVyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZWFkRG9uZUlkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvL+efpeS8muW3suWKng0KICAgICAgICAgICAgICAgICAgICAgICAgLy/moLnmja7lt7Llip7nn6XkvJrku7vliqHkuLvplK5JROiOt+WPluS7u+WKoUlEDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzdG9yZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kaXNwYXRjaCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0b3JlUHJvY2Vzcy9nZXRCcG1UYXNrTm90aWNlRG9uZUJ5SWQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzXy5yZWFkRG9uZUlkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChyb3cpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdy50YXNrSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5qC55o2u5Lu75YqhSWTojrflj5blrqHmibnljoblj7LmlbDmja7vvIjlj6rmnInkuIDmnaHvvIkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHN0b3JlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRpc3BhdGNoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RvcmVQcm9jZXNzL2dldFRhc2tLZXlCeVRhc2tJZCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy50YXNrSWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmZvcm1EYXRhKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzXy5mb3JtRGF0YSA9IHJlcy5mb3JtRGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpc0luY2x1ZERhdGEgPSByZXMuZm9ybURhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldEluc3RGb3JtQW5kQk8oDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdElkOiB0aGlzXy5pbnN0SWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiByZXMudGFza0tleSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWREYXRhOiBpc0luY2x1ZERhdGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyb3cudGFza0tleSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiByb3cudGFza0tleSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SWQ6IHRoaXNfLmluc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5qC55o2u5Lu75Yqh6IqC54K5SUTlkozmtYHnqIvlrp7kvotJROiOt+WPluWuoeaJueWOhuWPsuaVsOaNru+8iOWPquacieS4gOadoe+8iQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2goDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdG9yZVByb2Nlc3MvZ2V0VGFza0tleUJ5Tm9kZUlkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZm9ybURhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfLmZvcm1EYXRhID0gcmVzLmZvcm1EYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzSW5jbHVkRGF0YSA9IHJlcy5mb3JtRGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0SW5zdEZvcm1BbmRCTygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SWQ6IHRoaXNfLmluc3RJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IHJlcy50YXNrS2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZERhdGE6IGlzSW5jbHVkRGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/mn6XnnIvmiJHlj5HotbfnmoTvvIzkuZ/kvb/nlKjlj5HotbfmtYHnqIvnmoTooajljZUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uZ2V0Rm9ybUFuZEJPKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9JbnN0SWQ6IHRoaXMuaW5zdElkfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JtLmdldEluc3RGb3JtQW5kQk8odGhpcy5pbnN0SWQsIGhhbmRsZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8v5p+l55yL5oiR5Y+R6LW355qE77yM5Lmf5L2/55So5Y+R6LW35rWB56iL55qE6KGo5Y2VDQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldEZvcm1BbmRCTyh7cHJvSW5zdElkOiB0aGlzLmluc3RJZH0sIGhhbmRsZXIpDQogICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JtLmdldEluc3RGb3JtQW5kQk8odGhpcy5pbnN0SWQsIGhhbmRsZXIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgLy/mn6XnnIvmiJHlj5HotbfnmoTvvIzkuZ/kvb/nlKjlj5HotbfmtYHnqIvnmoTooajljZUNCiAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXRGb3JtQW5kQk8oe3Byb0luc3RJZDogdGhpcy5pbnN0SWR9LCBoYW5kbGVyKQ0KICAgICAgICAgICAgICAgICAgICAvLyBmb3JtLmdldEluc3RGb3JtQW5kQk8odGhpcy5pbnN0SWQsIGhhbmRsZXIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZWZJZCkgew0KICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge30NCiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9JbnN0SWQgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7ZGVmSWQ6IHRoaXMuZGVmSWQsIHByb0luc3RJZDogdGhpcy5wcm9JbnN0SWR9DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvcHlJbnN0SWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHtkZWZJZDogdGhpcy5kZWZJZCwgY29weUluc3RJZDogdGhpcy5jb3B5SW5zdElkfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7ZGVmSWQ6IHRoaXMuZGVmSWR9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGZvcm0uZ2V0Rm9ybUFuZEJPKGRhdGEsIGhhbmRsZXIpDQogICAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgIHNlbmREYXRhKCkgew0KICAgICAgICAgICAgdGhpcy4kcmVmcy5pZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSh7cGFyYW1zOnRoaXMucmVsYXRpb25EYXRhfSk7DQogICAgICAgIH0sDQogICAgICAgIGdldEZsb3dLZXkoKSB7DQogICAgICAgICAgICBpZiAodGhpcy5kZWZJZCB8fCB0aGlzLmluc3RJZCB8fCB0aGlzLnRhc2tJZCkgew0KICAgICAgICAgICAgICAgIGxldCB1cmwgPSAnJHticG1SdW5UaW1lfS9ydW50aW1lL2luc3RhbmNlL3YxL2dldEZsb3dLZXknDQogICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJz9kZWZJZD0nICsgdGhpcy5kZWZJZA0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnN0SWQpIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJz9wcm9jSW5zdElkPScgKyB0aGlzLmluc3RJZA0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50YXNrSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJz90YXNrSWQ9JyArIHRoaXMudGFza0lkDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGxldCBfbWUgPSB0aGlzDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgX21lLiRodHRwLmdldCh1cmwsICdqc29uJywgZmFsc2UpLnRoZW4oKHJlc3ApID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcCA9IHJlc3AuZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcC5zdGF0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tZS5mbG93S2V5ID0gcmVwLnZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgfSwNCiAgICBjb21wdXRlZDogew0KICAgICAgICB1cmdlbnRTdGF0ZVZhbHVlOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICByZXR1cm4gdGhpcy51cmdlbnRTdGF0ZUNvbmYudmFsdWUNCiAgICAgICAgfSwNCiAgICAgICAgaXNQbG1lZm9ybVBhZ2UoKSB7DQogICAgICAgICAgICByZXR1cm4gdGhpcy4kcm91dGUucXVlcnkuaGFzT3duUHJvcGVydHkoJ3BsbWVmb3JtJykNCiAgICAgICAgfSwNCiAgICB9LA0KICAgIGNvbXBvbmVudHM6IHtPbmxpbmVGb3JtLCBGaWxlUHJldmlld30sDQp9DQo="},null]}