{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\mindMap\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\mindMap\\index.vue","mtime":1735152909367},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmRpZmZlcmVuY2UudjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaW50ZXJzZWN0aW9uLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmlzLWRpc2pvaW50LWZyb20udjIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuaXMtc3Vic2V0LW9mLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmlzLXN1cGVyc2V0LW9mLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LnN5bW1ldHJpYy1kaWZmZXJlbmNlLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LnVuaW9uLnYyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmluY2x1ZGVzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IHV0aWxzIGZyb20gJ0AvdXRpbHMuanMnOwpleHBvcnQgZGVmYXVsdCB7CiAgd2F0Y2g6IHsKICAgICd6b29tLnZhbHVlJzogZnVuY3Rpb24gem9vbVZhbHVlKHZhbCkgewogICAgICB2YXIgem9vbSA9IHZhbCAvIDEwMDsKICAgICAgdGhpcy5qbS52aWV3LnNldFpvb20oem9vbSk7CiAgICB9LAogICAgc2VsZWN0VHlwZXM6IGZ1bmN0aW9uIHNlbGVjdFR5cGVzKHYpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaWYgKHYubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodi5pbmNsdWRlcyhpdGVtLnR5cGUpKSB7CiAgICAgICAgICAgIF90aGlzLmptLnNldF9ub2RlX2NvbG9yKGl0ZW0uaWQsIF90aGlzLmJnTWFwW2l0ZW0udHlwZV0ub3JpZ2luYWwsICcjZmZmJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpcy5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCBfdGhpcy5iZ01hcFtpdGVtLnR5cGVdLnRyYW5zcGFyZW50LCAnI2ZmZicpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpcy5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCBfdGhpcy5iZ01hcFtpdGVtLnR5cGVdLnRyYW5zcGFyZW50LCAnI2ZmZicpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgcGF0aENvbG9yOiBmdW5jdGlvbiBwYXRoQ29sb3IoKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiAodHlwZSkgewogICAgICAgIHJldHVybiB0aGlzLnN0cnVjdHVyZS5hY3RpdmUgPT09IHR5cGUgPyB0aGlzLnN0cnVjdHVyZS5wYXRoQWN0aXZlQ29sb3IgOiB0aGlzLnN0cnVjdHVyZS5wYXRoT3JnaW5hbENvbG9yOwogICAgICB9OwogICAgfSwKICAgIHJlY3RDb2xvcjogZnVuY3Rpb24gcmVjdENvbG9yKCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHR5cGUpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHJ1Y3R1cmUuYWN0aXZlID09PSB0eXBlID8gdGhpcy5zdHJ1Y3R1cmUucmVjdEFjdGl2ZUNvbG9yIDogdGhpcy5zdHJ1Y3R1cmUucmVjdE9yZ2luYWxDb2xvcjsKICAgICAgfTsKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBtaW5kOiB7CiAgICAgICAgbWV0YTogewogICAgICAgICAgbmFtZTogJ+aAnee7tOWvvOWbvicsCiAgICAgICAgICBhdXRob3I6ICdoaXp6Z2RldkAxNjMuY29tJywKICAgICAgICAgIHZlcnNpb246ICcwLjInCiAgICAgICAgfSwKICAgICAgICBmb3JtYXQ6ICdub2RlX3RyZWUnLAogICAgICAgIGRhdGE6IHsKICAgICAgICAgIGlkOiAncm9vdCcsCiAgICAgICAgICB0b3BpYzogJ+eul+azlee7k+aenOaMh+aghyhQRFDnrpfms5UpJywKICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAvLyBb5b+F6YCJXSBJRCwg5omA5pyJ6IqC54K555qESUTkuI3lupTmnInph43lpI3vvIzlkKbliJlJROmHjeWkjeeahOe7k+iKguWwhuiiq+W/veeVpQogICAgICAgICAgICB0b3BpYzogJ+S9oOeLrOeri+WQlz8nLAogICAgICAgICAgICAvLyBb5b+F6YCJXSDoioLngrnkuIrmmL7npLrnmoTlhoXlrrkKICAgICAgICAgICAgZGlyZWN0aW9uOiAncmlnaHQnLAogICAgICAgICAgICAvLyBb5Y+v6YCJXSDoioLngrnnmoTmlrnlkJHvvIzmraTmlbDmja7ku4XlnKjnrKzkuIDlsYLoioLngrnkuIrmnInmlYjvvIznm67liY3ku4XmlK/mjIEgbGVmdCDlkowgcmlnaHQg5Lik56eN77yM6buY6K6k5Li6IHJpZ2h0CiAgICAgICAgICAgIGV4cGFuZGVkOiB0cnVlLAogICAgICAgICAgICAvLyBb5Y+v6YCJXSDor6XoioLngrnmmK/lkKbmmK/lsZXlvIDnirbmgIHvvIzpu5jorqTkuLogdHJ1ZQogICAgICAgICAgICB0eXBlOiAnMScsCiAgICAgICAgICAgIC8vIFvlj6/pgIld6Ieq5a6a5LmJ6IqC54K557G75Z6LCiAgICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgdG9waWM6ICflrZTpm4DlnosnLAogICAgICAgICAgICAgIHR5cGU6ICcyJywKICAgICAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgICB0b3BpYzogJ+S9oOWkluWQkeWQl++8nycsCiAgICAgICAgICAgICAgICB0eXBlOiAnMycKICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgICAgdG9waWM6ICfkvaDniLHor7Tor53lkJfvvJ8nLAogICAgICAgICAgICAgICAgdHlwZTogJzMnCiAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICAgIHRvcGljOiAn5L2g57uE57uH6IO95Yqb5aW95ZCX77yfJywKICAgICAgICAgICAgICAgIHR5cGU6ICczJwogICAgICAgICAgICAgIH1dCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgIHRvcGljOiAn54yr5aS06bmw5Z6LJywKICAgICAgICAgICAgICB0eXBlOiAnMicKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgdG9waWM6ICflj5joibLpvpnlnosnLAogICAgICAgICAgICAgIHR5cGU6ICcyJwogICAgICAgICAgICB9XQogICAgICAgICAgfSwgewogICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICB0b3BpYzogJ+S9oOWkp+iDhuWQlz8nLAogICAgICAgICAgICBkaXJlY3Rpb246ICdyaWdodCcsCiAgICAgICAgICAgIGV4cGFuZGVkOiB0cnVlLAogICAgICAgICAgICB0eXBlOiAnMScsCiAgICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgdG9waWM6ICfnjKvlpLTpubDlnosnLAogICAgICAgICAgICAgIHR5cGU6ICcyJwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICB0b3BpYzogJ+iAgeiZjuWeiycsCiAgICAgICAgICAgICAgdHlwZTogJzInCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgIHRvcGljOiAn5Y+Y6Imy6b6Z5Z6LJywKICAgICAgICAgICAgICB0eXBlOiAnMicKICAgICAgICAgICAgfV0KICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgdG9waWM6ICfkvaDmmK/lkKbnp6/mnoHkuLvliqg/JywKICAgICAgICAgICAgZGlyZWN0aW9uOiAncmlnaHQnLAogICAgICAgICAgICB0eXBlOiAnMScsCiAgICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgdG9waWM6ICfogIHomY7lnosnLAogICAgICAgICAgICAgIHR5cGU6ICcyJwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICB0b3BpYzogJ+WtlOmbgOWeiycsCiAgICAgICAgICAgICAgdHlwZTogJzInCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgIHRvcGljOiAn6ICD5ouJ5Z6LJywKICAgICAgICAgICAgICB0eXBlOiAnMicKICAgICAgICAgICAgfV0KICAgICAgICAgIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICB0YWJsZURhdGE6IFt7CiAgICAgICAgbmFtZTogJ+iAgeiZjuWeiycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WtlOmbgOWeiycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+iAg+aLieWeiycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+eMq+WktOm5sOWeiycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WPmOiJsum+meWeiycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOeLrOeri+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWkp+iDhuWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOaYr+WQpuenr+aegeS4u+WKqO+8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWLh+S6juWtpuS5oOWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWLpOWKs+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOW3peS9nOi2s+Wkn+acieaViOeOh+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOe7hOe7h+iDveWKm+WlveWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOaciea0u+WKm+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOeIseivtOivneWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOS4quaAp+a4qeWSjOWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWvjOacieWQjOaDheW/g+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOmVh+WumuWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOS8oOe7n+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWBmuS6i+aYr+S4gOS4quWAvOW+l+S/oei1lueahOS6uuWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOW8uuWKv+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOazqOaEj+e7huiKguWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWwj+W/g+e/vOe/vOWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOacieivtOacjeWKm+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOWPjeW6lOW/q+WQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOeahOWNj+iwg+iDveWKm+WlveWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S9oOmAguW6lOiDveWKm+W8uuWQl++8nycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WFhea7oeiHquS/oScsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+ernuS6ieW/g+W8uicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S4u+WKqOS4lOS8geWbvuW/g+W8uueDiCcsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S4quaAp+enr+aegScsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+iDuOaAgOWkp+W/lycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+azqOmHjeWunui0qOWbnuaKpScsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+S6uumZheWFs+ezu+iDveWKm+W+iOW8uicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+ivmuaBs+eDreW/gycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+aThemVv+ivreiogOihqOi+vuWSjOiHquaIkeWuo+S8oCcsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+eIseWlveWSjOW5sycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+aMgeS5i+S7peaBkicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+W/jeiAkOW6puS9sycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WKoeWunicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WWnOasoueyvuehricsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+mHjeinhuS4k+S4muaApycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+W+quinhOi5iOi3nScsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WOn+WImeaAp+WSjOi/h+eoi+WvvOWQkeaAp+W8uicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WujOe+juS4u+S5iScsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WNj+iwg+aAp+S9sycsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+mFjeWQiOW6pumrmCcsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WbouS9k+a2pua7keWJgicsCiAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJwogICAgICB9XSwKICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLAogICAgICBvcHRpb25zOiB7CiAgICAgICAgY29udGFpbmVyOiAnanNtaW5kX2NvbnRhaW5lcicsCiAgICAgICAgLy8gW+W/hemAiV0g5a655Zmo55qESUQKICAgICAgICBlZGl0YWJsZTogdHJ1ZSwKICAgICAgICAvLyBb5Y+v6YCJXSDmmK/lkKblkK/nlKjnvJbovpEKICAgICAgICB0aGVtZTogJycsCiAgICAgICAgLy8gW+WPr+mAiV0g5Li76aKYCiAgICAgICAgdmlldzogewogICAgICAgICAgZW5naW5lOiAnY2FudmFzJywKICAgICAgICAgIC8vIOaAnee7tOWvvOWbvuWQhOiKgueCueS5i+mXtOe6v+adoeeahOe7mOWItuW8leaTjgogICAgICAgICAgaG1hcmdpbjogMTIwLAogICAgICAgICAgLy8g5oCd57u05a+85Zu+6Led5a655Zmo5aSW5qGG55qE5pyA5bCP5rC05bmz6Led56a7CiAgICAgICAgICB2bWFyZ2luOiA1MCwKICAgICAgICAgIC8vIOaAnee7tOWvvOWbvui3neWuueWZqOWkluahhueahOacgOWwj+WeguebtOi3neemuwogICAgICAgICAgbGluZV93aWR0aDogMiwKICAgICAgICAgIC8vIOaAnee7tOWvvOWbvue6v+adoeeahOeyl+e7hgogICAgICAgICAgbGluZV9jb2xvcjogJyNkZGQnIC8vIOaAnee7tOWvvOWbvue6v+adoeeahOminOiJsgogICAgICAgIH0sCiAgICAgICAgbGF5b3V0OiB7CiAgICAgICAgICBoc3BhY2U6IDEwMCwKICAgICAgICAgIC8vIOiKgueCueS5i+mXtOeahOawtOW5s+mXtOi3nQogICAgICAgICAgdnNwYWNlOiAyMCwKICAgICAgICAgIC8vIOiKgueCueS5i+mXtOeahOWeguebtOmXtOi3nQogICAgICAgICAgcHNwYWNlOiAyMCAvLyDoioLngrnkuI7ov57mjqXnur/kuYvpl7TnmoTmsLTlubPpl7Tot53vvIjnlKjkuo7lrrnnurPoioLngrnmlLbnvKkv5bGV5byA5o6n5Yi25Zmo77yJCiAgICAgICAgfSwKICAgICAgICBzaG9ydGN1dDogewogICAgICAgICAgLy8g56aB55So5b+r5o236ZSuCiAgICAgICAgICBlbmFibGU6IGZhbHNlCiAgICAgICAgfQogICAgICB9LAogICAgICB6b29tOiB7CiAgICAgICAgdmFsdWU6IDEwMCwKICAgICAgICAvLyDlsYLnuqflpKflsI8KICAgICAgICBtaW46IDEwLAogICAgICAgIC8vIOacgOWwj+Wxgue6pwogICAgICAgIG1heDogNDAwIC8vIOacgOWkp+Wxgue6pwogICAgICB9LAogICAgICBiZ01hcDogewogICAgICAgIDE6IHsKICAgICAgICAgIG9yaWdpbmFsOiAncmdiKDY0LCAxNTgsIDI1NSknLAogICAgICAgICAgdHJhbnNwYXJlbnQ6ICdyZ2IoNjQsIDE1OCwgMjU1LCAwLjIpJwogICAgICAgIH0sCiAgICAgICAgMjogewogICAgICAgICAgb3JpZ2luYWw6ICdyZ2IoMTAzLCAxOTQsIDU4KScsCiAgICAgICAgICB0cmFuc3BhcmVudDogJ3JnYigxMDMsIDE5NCwgNTgsIDAuMiknCiAgICAgICAgfSwKICAgICAgICAzOiB7CiAgICAgICAgICBvcmlnaW5hbDogJ3JnYigyMzAsIDE2MiwgNjApJywKICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDIzMCwgMTYyLCA2MCwgMC4yKScKICAgICAgICB9LAogICAgICAgIDQ6IHsKICAgICAgICAgIG9yaWdpbmFsOiAncmdiKDI0NSwgMTA4LCAxMDgpJywKICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDI0NSwgMTA4LCAxMDgsIDAuMiknCiAgICAgICAgfSwKICAgICAgICA1OiB7CiAgICAgICAgICBvcmlnaW5hbDogJ3JnYigxNDQsIDQ2LCAxNjApJywKICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDE0NCwgNDYsIDE2MCwgMC4yKScKICAgICAgICB9LAogICAgICAgIDY6IHsKICAgICAgICAgIG9yaWdpbmFsOiAncmdiKDE0NCwgMTQ3LCAxNTMpJywKICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDE0NCwgMTQ3LCAxNTMsIDAuMiknCiAgICAgICAgfQogICAgICB9LAogICAgICBzdHJ1Y3R1cmU6IHsKICAgICAgICBhY3RpdmU6ICdyaWdodCcsCiAgICAgICAgcGF0aE9yZ2luYWxDb2xvcjogJyMyQjJGMzYnLAogICAgICAgIHBhdGhBY3RpdmVDb2xvcjogJyMzMzcwRkYnLAogICAgICAgIHJlY3RPcmdpbmFsQ29sb3I6ICcjQzNDNkNCJywKICAgICAgICByZWN0QWN0aXZlQ29sb3I6ICcjQkFDRUZEJwogICAgICB9LAogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgc2VsZWN0Tm9kZUluZm86IHsKICAgICAgICBpZDogbnVsbCwKICAgICAgICBOYW1lOiAnJwogICAgICB9LAogICAgICAvLyDpgInkuK3oioLngrnkv6Hmga8KICAgICAgdGVtcE5vZGVJbmZvOiBudWxsLAogICAgICAvLyDkv53lrZjkv67mlLnkuYvliY3nmoTkv6Hmga8KICAgICAgY3JlYXRlVHlwZTogJycsCiAgICAgIC8vIOa3u+WKoOW5s+e6p29y5a2Q57qnCiAgICAgIHNob3dNZW51OiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5pi+56S65Y+z6ZSu6I+c5Y2V5qCPCiAgICAgIG1lbnVTdHlsZTogewogICAgICAgIHRvcDogJycsCiAgICAgICAgYm90dG9tOiAnJywKICAgICAgICBsZWZ0OiAnJywKICAgICAgICByaWdodDogJycKICAgICAgfSwKICAgICAgLy8gZmlsdGVyVHlwZXM6IFsKICAgICAgLy8gICB7CiAgICAgIC8vICAgICB0eXBlOiAia2QiLAogICAgICAvLyAgICAgdmFsdWU6ICI0IiwKICAgICAgLy8gICAgIG5hbWU6ICLogIPngrkiLAogICAgICAvLyAgICAgc3RhdHVzOiB0cnVlLAogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgdHlwZTogInpzZCIsCiAgICAgIC8vICAgICB2YWx1ZTogIjEiLAogICAgICAvLyAgICAgbmFtZTogIuefpeivhueCuSIsCiAgICAgIC8vICAgICBzdGF0dXM6IHRydWUsCiAgICAgIC8vICAgfSwKICAgICAgLy8gICB7CiAgICAgIC8vICAgICB0eXBlOiAienNrcCIsCiAgICAgIC8vICAgICB2YWx1ZTogIjIiLAogICAgICAvLyAgICAgbmFtZTogIuefpeivhuWNoeeJhyIsCiAgICAgIC8vICAgICBzdGF0dXM6IHRydWUsCiAgICAgIC8vICAgfSwKICAgICAgLy8gICB7CiAgICAgIC8vICAgICB0eXBlOiAic3QiLAogICAgICAvLyAgICAgdmFsdWU6ICIzIiwKICAgICAgLy8gICAgIG5hbWU6ICLnu4PkuaDpopgiLAogICAgICAvLyAgICAgc3RhdHVzOiB0cnVlLAogICAgICAvLyAgIH0sCiAgICAgIC8vIF0sCiAgICAgIHR5cGVRdWV1ZTogbmV3IFNldChbJzEnLCAnMicsICczJywgJzQnXSksCiAgICAgIC8vIOmAieS4rXR5cGVzIFNldAogICAgICBzZWxlY3RUeXBlczogWycxJywgJzInLCAnMycsICc0J10gLy8g6YCJ5LitdHlwZXMgQXJyYXkKICAgIH07CiAgfSwKICBtZXRob2RzOiB7CiAgICBmaWx0ZXJUYWc6IGZ1bmN0aW9uIGZpbHRlclRhZyh2YWx1ZSwgcm93KSB7CiAgICAgIHJldHVybiByb3cudHlwZSA9PT0gdmFsdWU7CiAgICB9LAogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB2YWw7CiAgICB9LAogICAgLy8g562b6YCJ5qCR57uT5p6ECiAgICB0b2dnbGVGaWx0ZXI6IGZ1bmN0aW9uIHRvZ2dsZUZpbHRlcihpdGVtKSB7CiAgICAgIGl0ZW0uc3RhdHVzID0gIWl0ZW0uc3RhdHVzOwogICAgICBpdGVtLnN0YXR1cyA/IHRoaXMudHlwZVF1ZXVlLmFkZChpdGVtLnZhbHVlKSA6IHRoaXMudHlwZVF1ZXVlLmRlbGV0ZShpdGVtLnZhbHVlKTsKICAgICAgdGhpcy5zZWxlY3RUeXBlcyA9IF90b0NvbnN1bWFibGVBcnJheSh0aGlzLnR5cGVRdWV1ZSk7CiAgICB9LAogICAgLy8g6YeN572u6KeG5Zu+CiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5yb290Jykuc2Nyb2xsSW50b1ZpZXcoewogICAgICAgIGJsb2NrOiAnY2VudGVyJywKICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcKICAgICAgfSk7CiAgICB9LAogICAgLy8g57yp5bCPCiAgICB6b29tT3V0OiBmdW5jdGlvbiB6b29tT3V0KCkgewogICAgICB0aGlzLmptLnZpZXcuem9vbU91dCgpOwogICAgICB0aGlzLnpvb20udmFsdWUgPSBwYXJzZUludCh0aGlzLmptLnZpZXcuYWN0dWFsWm9vbSAqIDEwMCk7CiAgICB9LAogICAgLy8g5pS+5aSnCiAgICB6b29tSW46IGZ1bmN0aW9uIHpvb21JbigpIHsKICAgICAgdGhpcy5qbS52aWV3Lnpvb21JbigpOwogICAgICB0aGlzLnpvb20udmFsdWUgPSBwYXJzZUludCh0aGlzLmptLnZpZXcuYWN0dWFsWm9vbSAqIDEwMCk7CiAgICB9LAogICAgLy8g5b6q546v5qCR57uT5p6ECiAgICBsb29wVHJlZURhdGE6IGZ1bmN0aW9uIGxvb3BUcmVlRGF0YShsaXN0LCBjYWxsYmFjaykgewogICAgICAoZnVuY3Rpb24gZG9PbmVGbG9vcihsaXN0KSB7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgaXRlbSA9IGxpc3RbaV07CiAgICAgICAgICAgIGNhbGxiYWNrKGl0ZW0sIGkpOwogICAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICBkb09uZUZsb29yKGl0ZW0uY2hpbGRyZW4pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KShsaXN0KTsKICAgIH0sCiAgICAvLyDorr7nva7og4zmma/popzoibIKICAgIHNldENvbG9yOiBmdW5jdGlvbiBzZXRDb2xvcigpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHRoaXMuam0uc2V0X25vZGVfY29sb3IoJ3Jvb3QnLCB0aGlzLmJnTWFwWzRdLm9yaWdpbmFsLCAnI2ZmZicpOwogICAgICB0aGlzLmxvb3BUcmVlRGF0YSh0aGlzLm1pbmQuZGF0YS5jaGlsZHJlbiwgZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpZiAoX3RoaXMyLnNlbGVjdFR5cGVzLmxlbmd0aCkgewogICAgICAgICAgaWYgKF90aGlzMi5zZWxlY3RUeXBlcy5pbmNsdWRlcyhpdGVtLnR5cGUpKSB7CiAgICAgICAgICAgIF90aGlzMi5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCBfdGhpczIuYmdNYXBbaXRlbS50eXBlXS5vcmlnaW5hbCwgJyNmZmYnKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF90aGlzMi5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCBfdGhpczIuYmdNYXBbaXRlbS50eXBlXS50cmFuc3BhcmVudCwgJyNmZmYnKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMyLmptLnNldF9ub2RlX2NvbG9yKGl0ZW0uaWQsIF90aGlzMi5iZ01hcFtpdGVtLnR5cGVdLnRyYW5zcGFyZW50LCAnI2ZmZicpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g5YiH5o2i5oCd57u05a+85Zu+57uT5p6ECiAgICB0b2dnbGVTdHVjdHVyZTogZnVuY3Rpb24gdG9nZ2xlU3R1Y3R1cmUodHlwZSkgewogICAgICBpZiAodGhpcy5zdHJ1Y3R1cmUuYWN0aXZlID09PSB0eXBlKSByZXR1cm47CiAgICAgIHRoaXMuc3RydWN0dXJlLmFjdGl2ZSA9IHR5cGU7CiAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgJ3NpZGUnOgogICAgICAgICAgLy8g5Lik6L655YiG5biDCiAgICAgICAgICB0aGlzLmxvb3BUcmVlRGF0YSh0aGlzLm1pbmQuZGF0YS5jaGlsZHJlbiwgZnVuY3Rpb24gKGl0ZW0sIGkpIHsKICAgICAgICAgICAgaXRlbS5kaXJlY3Rpb24gPSBpICUgMiA/ICdsZWZ0JyA6ICdyaWdodCc7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2xlZnQnOgogICAgICAgICAgLy8g5ZCR5bem5YiG5biDCiAgICAgICAgICB0aGlzLmxvb3BUcmVlRGF0YSh0aGlzLm1pbmQuZGF0YS5jaGlsZHJlbiwgZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgaXRlbS5kaXJlY3Rpb24gPSAnbGVmdCc7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3JpZ2h0JzoKICAgICAgICAgIC8vIOWQkeWPs+WIhuW4gwogICAgICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGl0ZW0uZGlyZWN0aW9uID0gJ3JpZ2h0JzsKICAgICAgICAgIH0pOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHRoaXMuam0uc2hvdyh0aGlzLm1pbmQpOwogICAgICB0aGlzLmluaXQoKTsKICAgIH0sCiAgICAvLyDliJ3lp4vljJbphY3nva4KICAgIGluaXQ6IGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB0aGlzLmptLnZpZXcubWluWm9vbSA9IDAuMTsKICAgICAgdGhpcy5qbS52aWV3Lm1heFpvb20gPSA1OwogICAgICB0aGlzLmptLmV4cGFuZF9hbGwoKTsKICAgICAgdGhpcy5zZXRDb2xvcigpOwoKICAgICAgLy8g6YeN5YaZ57yW6L6R5a6M5oiQ5LqL5Lu2CiAgICAgIHRoaXMuam0udmlldy5lZGl0X25vZGVfZW5kID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBub2RlID0gX3RoaXMzLmptLnZpZXcuZ2V0X2VkaXRpbmdfbm9kZSgpOwogICAgICAgIHZhciB2aWV3RGF0YSA9IG5vZGUuX2RhdGEudmlldzsKICAgICAgICB2YXIgZWxlbWVudCA9IHZpZXdEYXRhLmVsZW1lbnQ7CiAgICAgICAgZWxlbWVudC5zdHlsZS56SW5kZXggPSAnYXV0byc7CiAgICAgICAgaWYgKG5vZGUudG9waWMgPT09IF90aGlzMy5lZGl0b3IudmFsdWUpIHsKICAgICAgICAgIF90aGlzMy5qbS51cGRhdGVfbm9kZShub2RlLmlkLCBub2RlLnRvcGljKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbm9kZS50b3BpYyA9IF90aGlzMy5lZGl0b3IudmFsdWU7CiAgICAgICAgaWYgKCFub2RlLnRvcGljKSB7CiAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UuaW5mbygn6K+36L6T5YWl5Y2h54mH5qCH6aKYJyk7CiAgICAgICAgfQogICAgICAgIF90aGlzMy5qbS51cGRhdGVfbm9kZShub2RlLmlkLCBub2RlLnRvcGljKTsKCiAgICAgICAgLy8gVE9ETyDosIPmjqXlj6MKICAgICAgfTsKCiAgICAgIC8vIOWPs+mUruiPnOWNlQogICAgICB0aGlzLmptLnZpZXcuYWRkX2V2ZW50KHRoaXMuZWRpdG9yLCAnY29udGV4dG1lbnUnLCBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciBzZWxlY3RlZE5vZGUgPSBfdGhpczMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsKICAgICAgICBpZiAoc2VsZWN0ZWROb2RlICYmIHNlbGVjdGVkTm9kZS5kYXRhLnR5cGUpIHsKICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250ZXh0LW1lbnUgLmVsLW1lbnUtaXRlbScpOwogICAgICAgICAgdmFyIHdpZHRoID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkud2lkdGgpOwogICAgICAgICAgdmFyIGhlaWdodCA9IHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmhlaWdodCkgKiAzICsgMTI7CiAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICAgICAgdmFyIHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7CgogICAgICAgICAgLy8g5p6B6ZmQ5L2N572uIOmBv+WFjei2iueVjAogICAgICAgICAgaWYgKGUuY2xpZW50WSArIGhlaWdodCA+IHdpbmRvd0hlaWdodCkgewogICAgICAgICAgICBfdGhpczMubWVudVN0eWxlLmxlZnQgPSBlLmNsaWVudFggKyAncHgnOwogICAgICAgICAgICBfdGhpczMubWVudVN0eWxlLnRvcCA9ICd1bnNldCc7CiAgICAgICAgICAgIF90aGlzMy5tZW51U3R5bGUuYm90dG9tID0gMDsKICAgICAgICAgIH0gZWxzZSBpZiAoZS5jbGllbnRYICsgd2lkdGggPiB3aW5kb3dXaWR0aCkgewogICAgICAgICAgICBfdGhpczMubWVudVN0eWxlLnRvcCA9IGUuY2xpZW50WSArICdweCc7CiAgICAgICAgICAgIF90aGlzMy5tZW51U3R5bGUubGVmdCA9ICd1bnNldCc7CiAgICAgICAgICAgIF90aGlzMy5tZW51U3R5bGUucmlnaHQgPSAwOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX3RoaXMzLm1lbnVTdHlsZS5sZWZ0ID0gZS5jbGllbnRYICsgJ3B4JzsKICAgICAgICAgICAgX3RoaXMzLm1lbnVTdHlsZS50b3AgPSBlLmNsaWVudFkgKyAncHgnOwogICAgICAgICAgICBfdGhpczMubWVudVN0eWxlLmJvdHRvbSA9ICd1bnNldCc7CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpczMuc2hvd01lbnUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczMuc2hvd01lbnUgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPlumAieS4reagh+etvueahCBJRAogICAgZ2V0X3NlbGVjdGVkX25vZGVpZDogZnVuY3Rpb24gZ2V0X3NlbGVjdGVkX25vZGVpZCgpIHsKICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsKICAgICAgaWYgKHNlbGVjdGVkTm9kZSkgewogICAgICAgIHJldHVybiBzZWxlY3RlZE5vZGUuaWQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgIH0sCiAgICAvLyDkv53lrZjoioLngrkKICAgIHN1cmVFZGl0Tm9kZTogZnVuY3Rpb24gc3VyZUVkaXROb2RlKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgaWYgKCF0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn6K+36YCJ5oup6IqC54K5Jyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0aGlzLmNyZWF0ZVR5cGUgPT09ICdicm8nKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsKICAgICAgICBjb25zb2xlLmxvZygxMTExLCBzZWxlY3RlZE5vZGUpOwogICAgICAgIGNvbnNvbGUubG9nKDIyMjIsIHNlbGVjdGVkTm9kZS5wYXJlbnQpOwogICAgICAgIHNlbGVjdGVkTm9kZS5kYXRhLnR5cGU7CiAgICAgICAgY29uc29sZS5sb2coc2VsZWN0ZWROb2RlLmRhdGEudHlwZSk7CiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBfdGhpczQuam0uYWRkX25vZGUoc2VsZWN0ZWROb2RlLnBhcmVudCwgaXRlbS5pZCwgaXRlbS5uYW1lLCB7CiAgICAgICAgICAgIHR5cGU6ICduZXcnLAogICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IF90aGlzNC5iZ01hcFtzZWxlY3RlZE5vZGUuZGF0YS50eXBlXS5vcmlnaW5hbAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gcmV0dXJuOwoKICAgICAgICAvLyDlubPnuqcKICAgICAgICAvLyBUT0RPIOiwg+aOpeWPowogICAgICB9IGVsc2UgewogICAgICAgIHZhciBfc2VsZWN0ZWROb2RlID0gdGhpcy5qbS5nZXRfc2VsZWN0ZWRfbm9kZSgpOwogICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgX3RoaXM0LmptLmFkZF9ub2RlKF9zZWxlY3RlZE5vZGUsIGl0ZW0uaWQsIGl0ZW0ubmFtZSwgewogICAgICAgICAgICB0eXBlOiAnbmV3JywKICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBfdGhpczQuYmdNYXBbIiIuY29uY2F0KHBhcnNlSW50KF9zZWxlY3RlZE5vZGUuZGF0YS50eXBlKSArIDEpXS5vcmlnaW5hbAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8g5a2Q57qnCiAgICAgICAgLy8gVE9ETyDosIPmjqXlj6MKICAgICAgfQogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDmi5bmi70KICAgIGhhbmRsZURyb3A6IGZ1bmN0aW9uIGhhbmRsZURyb3AoZHJhZ2dpbmdOb2RlLCBkcm9wTm9kZSkgewogICAgICAvLyDliY3kuIDkuKrlhYTlvJ/oioLngrkKICAgICAgdmFyIHByZXZOb2RlID0gdGhpcy5qbS5maW5kX25vZGVfYmVmb3JlKGRyb3BOb2RlKTsKICAgICAgLy8g6I635Y+W56e75Yqo5ZCO55qEbm9kZQogICAgICB2YXIgZHJhZ0Zvcm0gPSB7CiAgICAgICAgbW9kZWxJZDogJycsCiAgICAgICAgdHJlZU51bTogIXByZXZOb2RlID8gZHJhZ2dpbmdOb2RlIDogcHJldk5vZGUuaWQsCiAgICAgICAgdGhpc1RyZWVOdW06IGRyb3BOb2RlCiAgICAgIH07CiAgICAgIGNvbnNvbGUubG9nKCdkcmFnRm9ybScsIGRyYWdGb3JtKTsKCiAgICAgIC8vIFRPRE8g6LCD5o6l5Y+jCiAgICB9LAogICAgLy8g5Y2V5Ye76YeN572u6YCJ5Lit6IOM5pmv6aKc6ImyCiAgICBub2RlQ2xpY2s6IGZ1bmN0aW9uIG5vZGVDbGljaygpIHsKICAgICAgdmFyIHNlbGVjdGVkSWQgPSB0aGlzLmdldF9zZWxlY3RlZF9ub2RlaWQoKTsKICAgICAgaWYgKCFzZWxlY3RlZElkKSByZXR1cm47CiAgICAgIHZhciBub2RlT2JqID0gdGhpcy5qbS5nZXRfbm9kZShzZWxlY3RlZElkKTsKICAgICAgdGhpcy5qbS5zZXRfbm9kZV9jb2xvcihzZWxlY3RlZElkLCBub2RlT2JqLmRhdGFbJ2JhY2tncm91bmQtY29sb3InXSwgJyNmZmYnKTsKICAgIH0sCiAgICAvLyDmj5LlhaXljaHniYcKICAgIGluc2VydE5vZGU6IGZ1bmN0aW9uIGluc2VydE5vZGUoKSB7CiAgICAgIHZhciBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7CiAgICAgIGlmIChzZWxlY3RlZE5vZGUuZGF0YSkgewogICAgICAgIHRoaXMuJGVtaXQoJ2luc2VydCcsIHNlbGVjdGVkTm9kZS5kYXRhKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fpgInmi6nljaHniYcnKTsKICAgICAgfQogICAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7CiAgICB9LAogICAgLy8g5o+S5YWl5bmz57qnCiAgICBhZGRCcm90aGVyOiBmdW5jdGlvbiBhZGRCcm90aGVyKCkgewogICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy5qbS5nZXRfc2VsZWN0ZWRfbm9kZSgpOwogICAgICBpZiAoc2VsZWN0ZWROb2RlLmRhdGEpIHsKICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICAgIHRoaXMuY3JlYXRlVHlwZSA9ICdicm8nOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWNoeeJhycpOwogICAgICB9CiAgICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDmj5LlhaXlrZDnuqcKICAgIGFkZENoaWxkOiBmdW5jdGlvbiBhZGRDaGlsZCgpIHsKICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsKICAgICAgaWYgKHNlbGVjdGVkTm9kZS5kYXRhKSB7CiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgICAgICB0aGlzLmNyZWF0ZVR5cGUgPSAnY2hpbGQnOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWNoeeJhycpOwogICAgICB9CiAgICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDliKDpmaTljaHniYcKICAgIGRlbENhcmQ6IGZ1bmN0aW9uIGRlbENhcmQoKSB7CiAgICAgIHZhciBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7CiAgICAgIGlmIChzZWxlY3RlZE5vZGUuZGF0YSkgewogICAgICAgIC8vIFRPRE8KICAgICAgICB0aGlzLmptLnJlbW92ZV9ub2RlKHNlbGVjdGVkTm9kZS5pZCk7CiAgICAgICAgLy8g6I635Y+W5pWw5o2uCiAgICAgICAgY29uc29sZS5sb2codGhpcy5qbS5nZXRfZGF0YSgnbm9kZV90cmVlJykpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWNoeeJhycpOwogICAgICB9CiAgICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDpvKDmoIfmu5rova7mlL7lpKfnvKnlsI8KICAgIG1vdXNlV2hlZWw6IGZ1bmN0aW9uIG1vdXNlV2hlZWwoKSB7CiAgICAgIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZG9tTW91c2VTY3JvbGwnLCB0aGlzLnNjcm9sbEZ1bmMsIGZhbHNlKTsKICAgICAgfQogICAgICB0aGlzLiRyZWZzLmNvbnRhaW5lci5vbm1vdXNld2hlZWwgPSB0aGlzLnNjcm9sbEZ1bmM7CiAgICB9LAogICAgLy8g5rua6L2u57yp5pS+CiAgICBzY3JvbGxGdW5jOiBmdW5jdGlvbiBzY3JvbGxGdW5jKGUpIHsKICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50OwogICAgICBpZiAoZS53aGVlbERlbHRhKSB7CiAgICAgICAgaWYgKGUud2hlZWxEZWx0YSA+IDApIHsKICAgICAgICAgIHRoaXMuem9vbUluKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuem9vbU91dCgpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlLmRldGFpbCkgewogICAgICAgIGlmIChlLmRldGFpbCA+IDApIHsKICAgICAgICAgIHRoaXMuem9vbUluKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuem9vbU91dCgpOwogICAgICAgIH0KICAgICAgfQogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIHRoaXMuam0ucmVzaXplKCk7CiAgICB9LAogICAgLy8g5a+85Ye65Zu+54mHCiAgICBzY3JlZW5fc2hvdDogZnVuY3Rpb24gc2NyZWVuX3Nob3QoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICAvLyDljrvpmaTpgI/mmI7luqYKICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIF90aGlzNS5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCBfdGhpczUuYmdNYXBbaXRlbS50eXBlXS5vcmlnaW5hbCwgJyNmZmYnKTsKICAgICAgfSk7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5qbS5zY3JlZW5zaG90LnNob290RG93bmxvYWQoKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7CiAgICAgIH0KICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM1LnNldENvbG9yKCk7CiAgICAgIH0sIDEwMDApOwogICAgfSwKICAgIC8vIOm8oOagh+aLluaLvQogICAgbW91c2VEcmFnOiBmdW5jdGlvbiBtb3VzZURyYWcoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICAvLyDph4zlsYIKICAgICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmpzbWluZC1pbm5lcicpOwogICAgICAvLyDpgInkuK3oioLngrkKICAgICAgdmFyIHNlbGVjdGVkOwogICAgICBlbC5vbm1vdXNlZG93biA9IGZ1bmN0aW9uIChldikgewogICAgICAgIC8vIOmAieS4reiKgueCuQogICAgICAgIHNlbGVjdGVkID0gX3RoaXM2LmptLmdldF9zZWxlY3RlZF9ub2RlKCk7CiAgICAgICAgLy8g5qCH6K+GIOaYr+WQpuaLluaLveiKgueCuSDpgb/lhY3lhrLnqoEKICAgICAgICBfdGhpczYuZHJhZ05vZGVGbGFnID0gISFzZWxlY3RlZDsKICAgICAgICB2YXIgZGlzWCA9IGV2LmNsaWVudFg7CiAgICAgICAgdmFyIGRpc1kgPSBldi5jbGllbnRZOwogICAgICAgIHZhciBvcmlnaW5hbFNjcm9sbExlZnQgPSBlbC5zY3JvbGxMZWZ0OwogICAgICAgIHZhciBvcmlnaW5hbFNjcm9sbFRvcCA9IGVsLnNjcm9sbFRvcDsKICAgICAgICB2YXIgb3JpZ2luYWxTY3JvbGxCZWhhdmlvciA9IGVsLnN0eWxlWydzY3JvbGwtYmVoYXZpb3InXTsKICAgICAgICB2YXIgb3JpZ2luYWxQb2ludGVyRXZlbnRzID0gZWwuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ107CiAgICAgICAgLy8gYXV0bzog6buY6K6k5YC877yM6KGo56S65rua5Yqo5qGG56uL5Y2z5rua5Yqo5Yiw5oyH5a6a5L2N572u44CCCiAgICAgICAgZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddID0gJ2F1dG8nOwogICAgICAgIC8vIOm8oOagh+enu+WKqOS6i+S7tuaYr+ebkeWQrOeahOaVtOS4qmRvY3VtZW5077yM6L+Z5qC35Y+v5Lul5L2/6byg5qCH6IO95aSf5Zyo5YWD57Sg5aSW6YOo56e75Yqo55qE5pe25YCZ5Lmf6IO95a6e546w5ouW5YqoCiAgICAgICAgZG9jdW1lbnQub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgIGlmIChfdGhpczYuZHJhZ05vZGVGbGFnKSByZXR1cm47CiAgICAgICAgICBfdGhpczYuZHJhZyA9IGZhbHNlOwogICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIC8vIOiuoeeul+aLluaLveeahOWBj+enu+i3neemuwogICAgICAgICAgdmFyIGRpc3RhbmNlWCA9IGV2LmNsaWVudFggLSBkaXNYOwogICAgICAgICAgdmFyIGRpc3RhbmNlWSA9IGV2LmNsaWVudFkgLSBkaXNZOwogICAgICAgICAgZWwuc2Nyb2xsVG8ob3JpZ2luYWxTY3JvbGxMZWZ0IC0gZGlzdGFuY2VYLCBvcmlnaW5hbFNjcm9sbFRvcCAtIGRpc3RhbmNlWSk7CgogICAgICAgICAgLy8g5Zyo6byg5qCH5ouW5Yqo55qE5pe25YCZ5bCG54K55Ye75LqL5Lu25bGP6JS95o6JCiAgICAgICAgICBlbC5zdHlsZVsncG9pbnRlci1ldmVudHMnXSA9ICdub25lJzsKICAgICAgICAgIGVsLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7CiAgICAgICAgfTsKICAgICAgICBkb2N1bWVudC5vbm1vdXNldXAgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoIV90aGlzNi5kcmFnTm9kZUZsYWcpIHsKICAgICAgICAgICAgZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddID0gb3JpZ2luYWxTY3JvbGxCZWhhdmlvcjsKICAgICAgICAgICAgZWwuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ10gPSBvcmlnaW5hbFBvaW50ZXJFdmVudHM7CiAgICAgICAgICAgIGVsLnN0eWxlLmN1cnNvciA9ICdncmFiJzsKICAgICAgICAgIH0KICAgICAgICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gZG9jdW1lbnQub25tb3VzZXVwID0gbnVsbDsKICAgICAgICB9OwogICAgICB9OwogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgdGhpcy5qbSA9IGpzTWluZC5zaG93KHRoaXMub3B0aW9ucywgdGhpcy5taW5kKTsKCiAgICAvLyDoh6rlrprkuYnmi5bmi73lrozmiJDkuovku7YKICAgIGpzTWluZC5kcmFnZ2FibGUucHJvdG90eXBlLmhhbmRsZURyYWcgPSBmdW5jdGlvbiAoc3JjTm9kZSwgdGFyZ2V0Tm9kZSwgdGFyZ2V0RGlyZWN0KSB7CiAgICAgIHZhciBuZXh0UGFyZW50SWQgPSBzcmNOb2RlLnBhcmVudC5pZDsKICAgICAgX3RoaXM3LmhhbmRsZURyb3AobmV4dFBhcmVudElkLCBzcmNOb2RlLmlkKTsKICAgIH07CiAgICB0aGlzLmVkaXRvciA9IHRoaXMuam0udmlldy5lX2VkaXRvcjsKICAgIHRoaXMuaW5pdCgpOwogICAgdGhpcy5tb3VzZVdoZWVsKCk7CiAgICB0aGlzLm1vdXNlRHJhZygpOwogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RvbU1vdXNlU2Nyb2xsJywgdGhpcy5zY3JvbGxGdW5jLCBmYWxzZSk7CiAgfQp9Ow=="},null]}