{"remainingRequest":"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\\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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgdXRpbHMgZnJvbSAnQC91dGlscy5qcyc7DQpleHBvcnQgZGVmYXVsdCB7DQogIHdhdGNoOiB7DQogICAgJ3pvb20udmFsdWUnKHZhbCkgew0KICAgICAgY29uc3Qgem9vbSA9IHZhbCAvIDEwMDsNCiAgICAgIHRoaXMuam0udmlldy5zZXRab29tKHpvb20pOw0KICAgIH0sDQogICAgc2VsZWN0VHlwZXModikgew0KICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIChpdGVtKSA9PiB7DQogICAgICAgIGlmICh2Lmxlbmd0aCkgew0KICAgICAgICAgIGlmICh2LmluY2x1ZGVzKGl0ZW0udHlwZSkpIHsNCiAgICAgICAgICAgIHRoaXMuam0uc2V0X25vZGVfY29sb3IoaXRlbS5pZCwgdGhpcy5iZ01hcFtpdGVtLnR5cGVdLm9yaWdpbmFsLCAnI2ZmZicpOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLmptLnNldF9ub2RlX2NvbG9yKGl0ZW0uaWQsIHRoaXMuYmdNYXBbaXRlbS50eXBlXS50cmFuc3BhcmVudCwgJyNmZmYnKTsNCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCB0aGlzLmJnTWFwW2l0ZW0udHlwZV0udHJhbnNwYXJlbnQsICcjZmZmJyk7DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgcGF0aENvbG9yKCkgew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0eXBlKSB7DQogICAgICAgIHJldHVybiB0aGlzLnN0cnVjdHVyZS5hY3RpdmUgPT09IHR5cGUgPyB0aGlzLnN0cnVjdHVyZS5wYXRoQWN0aXZlQ29sb3IgOiB0aGlzLnN0cnVjdHVyZS5wYXRoT3JnaW5hbENvbG9yOw0KICAgICAgfTsNCiAgICB9LA0KICAgIHJlY3RDb2xvcigpIHsNCiAgICAgIHJldHVybiBmdW5jdGlvbiAodHlwZSkgew0KICAgICAgICByZXR1cm4gdGhpcy5zdHJ1Y3R1cmUuYWN0aXZlID09PSB0eXBlID8gdGhpcy5zdHJ1Y3R1cmUucmVjdEFjdGl2ZUNvbG9yIDogdGhpcy5zdHJ1Y3R1cmUucmVjdE9yZ2luYWxDb2xvcjsNCiAgICAgIH07DQogICAgfSwNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgbWluZDogew0KICAgICAgICBtZXRhOiB7DQogICAgICAgICAgbmFtZTogJ+aAnee7tOWvvOWbvicsDQogICAgICAgICAgYXV0aG9yOiAnaGl6emdkZXZAMTYzLmNvbScsDQogICAgICAgICAgdmVyc2lvbjogJzAuMicsDQogICAgICAgIH0sDQogICAgICAgIGZvcm1hdDogJ25vZGVfdHJlZScsDQogICAgICAgIGRhdGE6IHsNCiAgICAgICAgICBpZDogJ3Jvb3QnLA0KICAgICAgICAgIHRvcGljOiAn566X5rOV57uT5p6c5oyH5qCHKFBEUOeul+azlSknLA0KICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksIC8vIFvlv4XpgIldIElELCDmiYDmnInoioLngrnnmoRJROS4jeW6lOaciemHjeWkje+8jOWQpuWImUlE6YeN5aSN55qE57uT6IqC5bCG6KKr5b+955WlDQogICAgICAgICAgICAgIHRvcGljOiAn5L2g54us56uL5ZCXPycsIC8vIFvlv4XpgIldIOiKgueCueS4iuaYvuekuueahOWGheWuuQ0KICAgICAgICAgICAgICBkaXJlY3Rpb246ICdyaWdodCcsIC8vIFvlj6/pgIldIOiKgueCueeahOaWueWQke+8jOatpOaVsOaNruS7heWcqOesrOS4gOWxguiKgueCueS4iuacieaViO+8jOebruWJjeS7heaUr+aMgSBsZWZ0IOWSjCByaWdodCDkuKTnp43vvIzpu5jorqTkuLogcmlnaHQNCiAgICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsIC8vIFvlj6/pgIldIOivpeiKgueCueaYr+WQpuaYr+WxleW8gOeKtuaAge+8jOm7mOiupOS4uiB0cnVlDQogICAgICAgICAgICAgIHR5cGU6ICcxJywgLy8gW+WPr+mAiV3oh6rlrprkuYnoioLngrnnsbvlnosNCiAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgICAgICAgICAgdG9waWM6ICflrZTpm4DlnosnLA0KICAgICAgICAgICAgICAgICAgdHlwZTogJzInLA0KICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgeyBpZDogdXRpbHMudXVpZCgpLCB0b3BpYzogJ+S9oOWkluWQkeWQl++8nycsIHR5cGU6ICczJyB9LA0KICAgICAgICAgICAgICAgICAgICB7IGlkOiB1dGlscy51dWlkKCksIHRvcGljOiAn5L2g54ix6K+06K+d5ZCX77yfJywgdHlwZTogJzMnIH0sDQogICAgICAgICAgICAgICAgICAgIHsgaWQ6IHV0aWxzLnV1aWQoKSwgdG9waWM6ICfkvaDnu4Tnu4fog73lipvlpb3lkJfvvJ8nLCB0eXBlOiAnMycgfSwNCiAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB7IGlkOiB1dGlscy51dWlkKCksIHRvcGljOiAn54yr5aS06bmw5Z6LJywgdHlwZTogJzInIH0sDQogICAgICAgICAgICAgICAgeyBpZDogdXRpbHMudXVpZCgpLCB0b3BpYzogJ+WPmOiJsum+meWeiycsIHR5cGU6ICcyJyB9LA0KICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICAgICAgdG9waWM6ICfkvaDlpKfog4blkJc/JywNCiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAncmlnaHQnLA0KICAgICAgICAgICAgICBleHBhbmRlZDogdHJ1ZSwNCiAgICAgICAgICAgICAgdHlwZTogJzEnLA0KICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgIHsgaWQ6IHV0aWxzLnV1aWQoKSwgdG9waWM6ICfnjKvlpLTpubDlnosnLCB0eXBlOiAnMicgfSwNCiAgICAgICAgICAgICAgICB7IGlkOiB1dGlscy51dWlkKCksIHRvcGljOiAn6ICB6JmO5Z6LJywgdHlwZTogJzInIH0sDQogICAgICAgICAgICAgICAgeyBpZDogdXRpbHMudXVpZCgpLCB0b3BpYzogJ+WPmOiJsum+meWeiycsIHR5cGU6ICcyJyB9LA0KICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICAgICAgdG9waWM6ICfkvaDmmK/lkKbnp6/mnoHkuLvliqg/JywNCiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAncmlnaHQnLA0KICAgICAgICAgICAgICB0eXBlOiAnMScsDQogICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgeyBpZDogdXRpbHMudXVpZCgpLCB0b3BpYzogJ+iAgeiZjuWeiycsIHR5cGU6ICcyJyB9LA0KICAgICAgICAgICAgICAgIHsgaWQ6IHV0aWxzLnV1aWQoKSwgdG9waWM6ICflrZTpm4DlnosnLCB0eXBlOiAnMicgfSwNCiAgICAgICAgICAgICAgICB7IGlkOiB1dGlscy51dWlkKCksIHRvcGljOiAn6ICD5ouJ5Z6LJywgdHlwZTogJzInIH0sDQogICAgICAgICAgICAgIF0sDQogICAgICAgICAgICB9LA0KICAgICAgICAgIF0sDQogICAgICAgIH0sDQogICAgICB9LA0KICAgICAgdGFibGVEYXRhOiBbDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn6ICB6JmO5Z6LJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICflsZ7mgKfmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+WtlOmbgOWeiycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfogIPmi4nlnosnLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+WxnuaAp+aMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn54yr5aS06bmw5Z6LJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICflsZ7mgKfmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+WPmOiJsum+meWeiycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn5bGe5oCn5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDni6znq4vlkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5aSn6IOG5ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOaYr+WQpuenr+aegeS4u+WKqO+8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDli4fkuo7lrabkuaDlkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5Yuk5Yqz5ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOW3peS9nOi2s+Wkn+acieaViOeOh+WQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDnu4Tnu4fog73lipvlpb3lkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5pyJ5rS75Yqb5ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOeIseivtOivneWQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDkuKrmgKfmuKnlkozlkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5a+M5pyJ5ZCM5oOF5b+D5ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOmVh+WumuWQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDkvKDnu5/lkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5YGa5LqL5piv5LiA5Liq5YC85b6X5L+h6LWW55qE5Lq65ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOW8uuWKv+WQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDms6jmhI/nu4boioLlkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g5bCP5b+D57+857+85ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOacieivtOacjeWKm+WQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkvaDlj43lupTlv6vlkJfvvJ8nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+mXrumimOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5L2g55qE5Y2P6LCD6IO95Yqb5aW95ZCX77yfJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfpl67popjmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S9oOmAguW6lOiDveWKm+W8uuWQl++8nycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn6Zeu6aKY5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICflhYXmu6Hoh6rkv6EnLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn56ue5LqJ5b+D5by6JywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+S4u+WKqOS4lOS8geWbvuW/g+W8uueDiCcsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkuKrmgKfnp6/mnoEnLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn6IO45oCA5aSn5b+XJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+azqOmHjeWunui0qOWbnuaKpScsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfkurrpmYXlhbPns7vog73lipvlvojlvLonLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn6K+a5oGz54Ot5b+DJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+aThemVv+ivreiogOihqOi+vuWSjOiHquaIkeWuo+S8oCcsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfniLHlpb3lkozlubMnLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5oyB5LmL5Lul5oGSJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+W/jeiAkOW6puS9sycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfliqHlrp4nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5Zac5qyi57K+56GuJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+mHjeinhuS4k+S4muaApycsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICflvqrop4TouYjot50nLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn5Y6f5YiZ5oCn5ZKM6L+H56iL5a+85ZCR5oCn5by6JywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+WujOe+juS4u+S5iScsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIG5hbWU6ICfljY/osIPmgKfkvbMnLA0KICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksDQogICAgICAgICAgdHlwZTogJ+e7k+aenOaMh+aghycsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBuYW1lOiAn6YWN5ZCI5bqm6auYJywNCiAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLA0KICAgICAgICAgIHR5cGU6ICfnu5PmnpzmjIfmoIcnLA0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgbmFtZTogJ+WbouS9k+a2pua7keWJgicsDQogICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwNCiAgICAgICAgICB0eXBlOiAn57uT5p6c5oyH5qCHJywNCiAgICAgICAgfSwNCiAgICAgIF0sDQogICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sDQogICAgICBvcHRpb25zOiB7DQogICAgICAgIGNvbnRhaW5lcjogJ2pzbWluZF9jb250YWluZXInLCAvLyBb5b+F6YCJXSDlrrnlmajnmoRJRA0KICAgICAgICBlZGl0YWJsZTogdHJ1ZSwgLy8gW+WPr+mAiV0g5piv5ZCm5ZCv55So57yW6L6RDQogICAgICAgIHRoZW1lOiAnJywgLy8gW+WPr+mAiV0g5Li76aKYDQogICAgICAgIHZpZXc6IHsNCiAgICAgICAgICBlbmdpbmU6ICdjYW52YXMnLCAvLyDmgJ3nu7Tlr7zlm77lkIToioLngrnkuYvpl7Tnur/mnaHnmoTnu5jliLblvJXmk44NCiAgICAgICAgICBobWFyZ2luOiAxMjAsIC8vIOaAnee7tOWvvOWbvui3neWuueWZqOWkluahhueahOacgOWwj+awtOW5s+i3neemuw0KICAgICAgICAgIHZtYXJnaW46IDUwLCAvLyDmgJ3nu7Tlr7zlm77ot53lrrnlmajlpJbmoYbnmoTmnIDlsI/lnoLnm7Tot53nprsNCiAgICAgICAgICBsaW5lX3dpZHRoOiAyLCAvLyDmgJ3nu7Tlr7zlm77nur/mnaHnmoTnspfnu4YNCiAgICAgICAgICBsaW5lX2NvbG9yOiAnI2RkZCcsIC8vIOaAnee7tOWvvOWbvue6v+adoeeahOminOiJsg0KICAgICAgICB9LA0KICAgICAgICBsYXlvdXQ6IHsNCiAgICAgICAgICBoc3BhY2U6IDEwMCwgLy8g6IqC54K55LmL6Ze055qE5rC05bmz6Ze06LedDQogICAgICAgICAgdnNwYWNlOiAyMCwgLy8g6IqC54K55LmL6Ze055qE5Z6C55u06Ze06LedDQogICAgICAgICAgcHNwYWNlOiAyMCwgLy8g6IqC54K55LiO6L+e5o6l57q/5LmL6Ze055qE5rC05bmz6Ze06Led77yI55So5LqO5a6557qz6IqC54K55pS257ypL+WxleW8gOaOp+WItuWZqO+8iQ0KICAgICAgICB9LA0KICAgICAgICBzaG9ydGN1dDogew0KICAgICAgICAgIC8vIOemgeeUqOW/q+aNt+mUrg0KICAgICAgICAgIGVuYWJsZTogZmFsc2UsDQogICAgICAgIH0sDQogICAgICB9LA0KICAgICAgem9vbTogew0KICAgICAgICB2YWx1ZTogMTAwLCAvLyDlsYLnuqflpKflsI8NCiAgICAgICAgbWluOiAxMCwgLy8g5pyA5bCP5bGC57qnDQogICAgICAgIG1heDogNDAwLCAvLyDmnIDlpKflsYLnuqcNCiAgICAgIH0sDQogICAgICBiZ01hcDogew0KICAgICAgICAxOiB7DQogICAgICAgICAgb3JpZ2luYWw6ICdyZ2IoNjQsIDE1OCwgMjU1KScsDQogICAgICAgICAgdHJhbnNwYXJlbnQ6ICdyZ2IoNjQsIDE1OCwgMjU1LCAwLjIpJywNCiAgICAgICAgfSwNCiAgICAgICAgMjogew0KICAgICAgICAgIG9yaWdpbmFsOiAncmdiKDEwMywgMTk0LCA1OCknLA0KICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDEwMywgMTk0LCA1OCwgMC4yKScsDQogICAgICAgIH0sDQogICAgICAgIDM6IHsNCiAgICAgICAgICBvcmlnaW5hbDogJ3JnYigyMzAsIDE2MiwgNjApJywNCiAgICAgICAgICB0cmFuc3BhcmVudDogJ3JnYigyMzAsIDE2MiwgNjAsIDAuMiknLA0KICAgICAgICB9LA0KICAgICAgICA0OiB7DQogICAgICAgICAgb3JpZ2luYWw6ICdyZ2IoMjQ1LCAxMDgsIDEwOCknLA0KICAgICAgICAgIHRyYW5zcGFyZW50OiAncmdiKDI0NSwgMTA4LCAxMDgsIDAuMiknLA0KICAgICAgICB9LA0KICAgICAgICA1OiB7DQogICAgICAgICAgb3JpZ2luYWw6ICdyZ2IoMTQ0LCA0NiwgMTYwKScsDQogICAgICAgICAgdHJhbnNwYXJlbnQ6ICdyZ2IoMTQ0LCA0NiwgMTYwLCAwLjIpJywNCiAgICAgICAgfSwNCiAgICAgICAgNjogew0KICAgICAgICAgIG9yaWdpbmFsOiAncmdiKDE0NCwgMTQ3LCAxNTMpJywNCiAgICAgICAgICB0cmFuc3BhcmVudDogJ3JnYigxNDQsIDE0NywgMTUzLCAwLjIpJywNCiAgICAgICAgfSwNCiAgICAgIH0sDQogICAgICBzdHJ1Y3R1cmU6IHsNCiAgICAgICAgYWN0aXZlOiAncmlnaHQnLA0KICAgICAgICBwYXRoT3JnaW5hbENvbG9yOiAnIzJCMkYzNicsDQogICAgICAgIHBhdGhBY3RpdmVDb2xvcjogJyMzMzcwRkYnLA0KICAgICAgICByZWN0T3JnaW5hbENvbG9yOiAnI0MzQzZDQicsDQogICAgICAgIHJlY3RBY3RpdmVDb2xvcjogJyNCQUNFRkQnLA0KICAgICAgfSwNCiAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLA0KICAgICAgc2VsZWN0Tm9kZUluZm86IHsNCiAgICAgICAgaWQ6IG51bGwsDQogICAgICAgIE5hbWU6ICcnLA0KICAgICAgfSwgLy8g6YCJ5Lit6IqC54K55L+h5oGvDQogICAgICB0ZW1wTm9kZUluZm86IG51bGwsIC8vIOS/neWtmOS/ruaUueS5i+WJjeeahOS/oeaBrw0KICAgICAgY3JlYXRlVHlwZTogJycsIC8vIOa3u+WKoOW5s+e6p29y5a2Q57qnDQogICAgICBzaG93TWVudTogZmFsc2UsIC8vIOaYr+WQpuaYvuekuuWPs+mUruiPnOWNleagjw0KICAgICAgbWVudVN0eWxlOiB7DQogICAgICAgIHRvcDogJycsDQogICAgICAgIGJvdHRvbTogJycsDQogICAgICAgIGxlZnQ6ICcnLA0KICAgICAgICByaWdodDogJycsDQogICAgICB9LA0KICAgICAgLy8gZmlsdGVyVHlwZXM6IFsNCiAgICAgIC8vICAgew0KICAgICAgLy8gICAgIHR5cGU6ICJrZCIsDQogICAgICAvLyAgICAgdmFsdWU6ICI0IiwNCiAgICAgIC8vICAgICBuYW1lOiAi6ICD54K5IiwNCiAgICAgIC8vICAgICBzdGF0dXM6IHRydWUsDQogICAgICAvLyAgIH0sDQogICAgICAvLyAgIHsNCiAgICAgIC8vICAgICB0eXBlOiAienNkIiwNCiAgICAgIC8vICAgICB2YWx1ZTogIjEiLA0KICAgICAgLy8gICAgIG5hbWU6ICLnn6Xor4bngrkiLA0KICAgICAgLy8gICAgIHN0YXR1czogdHJ1ZSwNCiAgICAgIC8vICAgfSwNCiAgICAgIC8vICAgew0KICAgICAgLy8gICAgIHR5cGU6ICJ6c2twIiwNCiAgICAgIC8vICAgICB2YWx1ZTogIjIiLA0KICAgICAgLy8gICAgIG5hbWU6ICLnn6Xor4bljaHniYciLA0KICAgICAgLy8gICAgIHN0YXR1czogdHJ1ZSwNCiAgICAgIC8vICAgfSwNCiAgICAgIC8vICAgew0KICAgICAgLy8gICAgIHR5cGU6ICJzdCIsDQogICAgICAvLyAgICAgdmFsdWU6ICIzIiwNCiAgICAgIC8vICAgICBuYW1lOiAi57uD5Lmg6aKYIiwNCiAgICAgIC8vICAgICBzdGF0dXM6IHRydWUsDQogICAgICAvLyAgIH0sDQogICAgICAvLyBdLA0KICAgICAgdHlwZVF1ZXVlOiBuZXcgU2V0KFsnMScsICcyJywgJzMnLCAnNCddKSwgLy8g6YCJ5LitdHlwZXMgU2V0DQogICAgICBzZWxlY3RUeXBlczogWycxJywgJzInLCAnMycsICc0J10sIC8vIOmAieS4rXR5cGVzIEFycmF5DQogICAgfTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGZpbHRlclRhZyh2YWx1ZSwgcm93KSB7DQogICAgICByZXR1cm4gcm93LnR5cGUgPT09IHZhbHVlOw0KICAgIH0sDQogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkgew0KICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDsNCiAgICB9LA0KICAgIC8vIOetm+mAieagkee7k+aehA0KICAgIHRvZ2dsZUZpbHRlcihpdGVtKSB7DQogICAgICBpdGVtLnN0YXR1cyA9ICFpdGVtLnN0YXR1czsNCiAgICAgIGl0ZW0uc3RhdHVzID8gdGhpcy50eXBlUXVldWUuYWRkKGl0ZW0udmFsdWUpIDogdGhpcy50eXBlUXVldWUuZGVsZXRlKGl0ZW0udmFsdWUpOw0KICAgICAgdGhpcy5zZWxlY3RUeXBlcyA9IFsuLi50aGlzLnR5cGVRdWV1ZV07DQogICAgfSwNCg0KICAgIC8vIOmHjee9ruinhuWbvg0KICAgIHJlc2V0KCkgew0KICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnJvb3QnKS5zY3JvbGxJbnRvVmlldyh7DQogICAgICAgIGJsb2NrOiAnY2VudGVyJywNCiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLA0KICAgICAgfSk7DQogICAgfSwNCg0KICAgIC8vIOe8qeWwjw0KICAgIHpvb21PdXQoKSB7DQogICAgICB0aGlzLmptLnZpZXcuem9vbU91dCgpOw0KICAgICAgdGhpcy56b29tLnZhbHVlID0gcGFyc2VJbnQodGhpcy5qbS52aWV3LmFjdHVhbFpvb20gKiAxMDApOw0KICAgIH0sDQogICAgLy8g5pS+5aSnDQogICAgem9vbUluKCkgew0KICAgICAgdGhpcy5qbS52aWV3Lnpvb21JbigpOw0KICAgICAgdGhpcy56b29tLnZhbHVlID0gcGFyc2VJbnQodGhpcy5qbS52aWV3LmFjdHVhbFpvb20gKiAxMDApOw0KICAgIH0sDQoNCiAgICAvLyDlvqrnjq/moJHnu5PmnoQNCiAgICBsb29wVHJlZURhdGEobGlzdCwgY2FsbGJhY2spIHsNCiAgICAgIChmdW5jdGlvbiBkb09uZUZsb29yKGxpc3QpIHsNCiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHsNCiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2ldOw0KICAgICAgICAgICAgY2FsbGJhY2soaXRlbSwgaSk7DQogICAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgZG9PbmVGbG9vcihpdGVtLmNoaWxkcmVuKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pKGxpc3QpOw0KICAgIH0sDQoNCiAgICAvLyDorr7nva7og4zmma/popzoibINCiAgICBzZXRDb2xvcigpIHsNCiAgICAgIHRoaXMuam0uc2V0X25vZGVfY29sb3IoJ3Jvb3QnLCB0aGlzLmJnTWFwWzRdLm9yaWdpbmFsLCAnI2ZmZicpOw0KICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIChpdGVtKSA9PiB7DQogICAgICAgIGlmICh0aGlzLnNlbGVjdFR5cGVzLmxlbmd0aCkgew0KICAgICAgICAgIGlmICh0aGlzLnNlbGVjdFR5cGVzLmluY2x1ZGVzKGl0ZW0udHlwZSkpIHsNCiAgICAgICAgICAgIHRoaXMuam0uc2V0X25vZGVfY29sb3IoaXRlbS5pZCwgdGhpcy5iZ01hcFtpdGVtLnR5cGVdLm9yaWdpbmFsLCAnI2ZmZicpOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLmptLnNldF9ub2RlX2NvbG9yKGl0ZW0uaWQsIHRoaXMuYmdNYXBbaXRlbS50eXBlXS50cmFuc3BhcmVudCwgJyNmZmYnKTsNCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5qbS5zZXRfbm9kZV9jb2xvcihpdGVtLmlkLCB0aGlzLmJnTWFwW2l0ZW0udHlwZV0udHJhbnNwYXJlbnQsICcjZmZmJyk7DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQoNCiAgICAvLyDliIfmjaLmgJ3nu7Tlr7zlm77nu5PmnoQNCiAgICB0b2dnbGVTdHVjdHVyZSh0eXBlKSB7DQogICAgICBpZiAodGhpcy5zdHJ1Y3R1cmUuYWN0aXZlID09PSB0eXBlKSByZXR1cm47DQogICAgICB0aGlzLnN0cnVjdHVyZS5hY3RpdmUgPSB0eXBlOw0KICAgICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgJ3NpZGUnOg0KICAgICAgICAgIC8vIOS4pOi+ueWIhuW4gw0KICAgICAgICAgIHRoaXMubG9vcFRyZWVEYXRhKHRoaXMubWluZC5kYXRhLmNoaWxkcmVuLCAoaXRlbSwgaSkgPT4gew0KICAgICAgICAgICAgaXRlbS5kaXJlY3Rpb24gPSBpICUgMiA/ICdsZWZ0JyA6ICdyaWdodCc7DQogICAgICAgICAgfSk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAnbGVmdCc6DQogICAgICAgICAgLy8g5ZCR5bem5YiG5biDDQogICAgICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIChpdGVtKSA9PiB7DQogICAgICAgICAgICBpdGVtLmRpcmVjdGlvbiA9ICdsZWZ0JzsNCiAgICAgICAgICB9KTsNCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICdyaWdodCc6DQogICAgICAgICAgLy8g5ZCR5Y+z5YiG5biDDQogICAgICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIChpdGVtKSA9PiB7DQogICAgICAgICAgICBpdGVtLmRpcmVjdGlvbiA9ICdyaWdodCc7DQogICAgICAgICAgfSk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgdGhpcy5qbS5zaG93KHRoaXMubWluZCk7DQogICAgICB0aGlzLmluaXQoKTsNCiAgICB9LA0KDQogICAgLy8g5Yid5aeL5YyW6YWN572uDQogICAgaW5pdCgpIHsNCiAgICAgIHRoaXMuam0udmlldy5taW5ab29tID0gMC4xOw0KICAgICAgdGhpcy5qbS52aWV3Lm1heFpvb20gPSA1Ow0KICAgICAgdGhpcy5qbS5leHBhbmRfYWxsKCk7DQogICAgICB0aGlzLnNldENvbG9yKCk7DQoNCiAgICAgIC8vIOmHjeWGmee8lui+keWujOaIkOS6i+S7tg0KICAgICAgdGhpcy5qbS52aWV3LmVkaXRfbm9kZV9lbmQgPSAoKSA9PiB7DQogICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmptLnZpZXcuZ2V0X2VkaXRpbmdfbm9kZSgpOw0KICAgICAgICBjb25zdCB2aWV3RGF0YSA9IG5vZGUuX2RhdGEudmlldzsNCiAgICAgICAgY29uc3QgZWxlbWVudCA9IHZpZXdEYXRhLmVsZW1lbnQ7DQogICAgICAgIGVsZW1lbnQuc3R5bGUuekluZGV4ID0gJ2F1dG8nOw0KICAgICAgICBpZiAobm9kZS50b3BpYyA9PT0gdGhpcy5lZGl0b3IudmFsdWUpIHsNCiAgICAgICAgICB0aGlzLmptLnVwZGF0ZV9ub2RlKG5vZGUuaWQsIG5vZGUudG9waWMpOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgICAgICBub2RlLnRvcGljID0gdGhpcy5lZGl0b3IudmFsdWU7DQogICAgICAgIGlmICghbm9kZS50b3BpYykgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn6K+36L6T5YWl5Y2h54mH5qCH6aKYJyk7DQogICAgICAgIH0NCiAgICAgICAgdGhpcy5qbS51cGRhdGVfbm9kZShub2RlLmlkLCBub2RlLnRvcGljKTsNCg0KICAgICAgICAvLyBUT0RPIOiwg+aOpeWPow0KICAgICAgfTsNCg0KICAgICAgLy8g5Y+z6ZSu6I+c5Y2VDQogICAgICB0aGlzLmptLnZpZXcuYWRkX2V2ZW50KHRoaXMuZWRpdG9yLCAnY29udGV4dG1lbnUnLCAoZSkgPT4gew0KICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICAgIGlmIChzZWxlY3RlZE5vZGUgJiYgc2VsZWN0ZWROb2RlLmRhdGEudHlwZSkgew0KICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250ZXh0LW1lbnUgLmVsLW1lbnUtaXRlbScpOw0KICAgICAgICAgIGNvbnN0IHdpZHRoID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkud2lkdGgpOw0KICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmhlaWdodCkgKiAzICsgMTI7DQogICAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0Ow0KICAgICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7DQoNCiAgICAgICAgICAvLyDmnoHpmZDkvY3nva4g6YG/5YWN6LaK55WMDQogICAgICAgICAgaWYgKGUuY2xpZW50WSArIGhlaWdodCA+IHdpbmRvd0hlaWdodCkgew0KICAgICAgICAgICAgdGhpcy5tZW51U3R5bGUubGVmdCA9IGUuY2xpZW50WCArICdweCc7DQogICAgICAgICAgICB0aGlzLm1lbnVTdHlsZS50b3AgPSAndW5zZXQnOw0KICAgICAgICAgICAgdGhpcy5tZW51U3R5bGUuYm90dG9tID0gMDsNCiAgICAgICAgICB9IGVsc2UgaWYgKGUuY2xpZW50WCArIHdpZHRoID4gd2luZG93V2lkdGgpIHsNCiAgICAgICAgICAgIHRoaXMubWVudVN0eWxlLnRvcCA9IGUuY2xpZW50WSArICdweCc7DQogICAgICAgICAgICB0aGlzLm1lbnVTdHlsZS5sZWZ0ID0gJ3Vuc2V0JzsNCiAgICAgICAgICAgIHRoaXMubWVudVN0eWxlLnJpZ2h0ID0gMDsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGhpcy5tZW51U3R5bGUubGVmdCA9IGUuY2xpZW50WCArICdweCc7DQogICAgICAgICAgICB0aGlzLm1lbnVTdHlsZS50b3AgPSBlLmNsaWVudFkgKyAncHgnOw0KICAgICAgICAgICAgdGhpcy5tZW51U3R5bGUuYm90dG9tID0gJ3Vuc2V0JzsNCiAgICAgICAgICB9DQogICAgICAgICAgdGhpcy5zaG93TWVudSA9IHRydWU7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5zaG93TWVudSA9IGZhbHNlOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOiOt+WPlumAieS4reagh+etvueahCBJRA0KICAgIGdldF9zZWxlY3RlZF9ub2RlaWQoKSB7DQogICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICBpZiAoc2VsZWN0ZWROb2RlKSB7DQogICAgICAgIHJldHVybiBzZWxlY3RlZE5vZGUuaWQ7DQogICAgICB9IGVsc2Ugew0KICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgIH0NCiAgICB9LA0KDQogICAgLy8g5L+d5a2Y6IqC54K5DQogICAgc3VyZUVkaXROb2RlKCkgew0KICAgICAgaWYgKCF0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCkgew0KICAgICAgICB0aGlzLiRtZXNzYWdlLmluZm8oJ+ivt+mAieaLqeiKgueCuScpOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQoNCiAgICAgIGlmICh0aGlzLmNyZWF0ZVR5cGUgPT09ICdicm8nKSB7DQogICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsNCiAgICAgICAgY29uc29sZS5sb2coMTExMSwgc2VsZWN0ZWROb2RlKTsNCiAgICAgICAgY29uc29sZS5sb2coMjIyMiwgc2VsZWN0ZWROb2RlLnBhcmVudCk7DQogICAgICAgIHNlbGVjdGVkTm9kZS5kYXRhLnR5cGU7DQogICAgICAgIGNvbnNvbGUubG9nKHNlbGVjdGVkTm9kZS5kYXRhLnR5cGUpOw0KICAgICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmZvckVhY2goKGl0ZW0pID0+IHsNCiAgICAgICAgICB0aGlzLmptLmFkZF9ub2RlKHNlbGVjdGVkTm9kZS5wYXJlbnQsIGl0ZW0uaWQsIGl0ZW0ubmFtZSwgew0KICAgICAgICAgICAgdHlwZTogJ25ldycsDQogICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMuYmdNYXBbc2VsZWN0ZWROb2RlLmRhdGEudHlwZV0ub3JpZ2luYWwsDQogICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgICAgICAvLyByZXR1cm47DQoNCiAgICAgICAgLy8g5bmz57qnDQogICAgICAgIC8vIFRPRE8g6LCD5o6l5Y+jDQogICAgICB9IGVsc2Ugew0KICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24uZm9yRWFjaCgoaXRlbSkgPT4gew0KICAgICAgICAgIHRoaXMuam0uYWRkX25vZGUoc2VsZWN0ZWROb2RlLCBpdGVtLmlkLCBpdGVtLm5hbWUsIHsNCiAgICAgICAgICAgIHR5cGU6ICduZXcnLA0KICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLmJnTWFwW2Ake3BhcnNlSW50KHNlbGVjdGVkTm9kZS5kYXRhLnR5cGUpICsgMX1gXS5vcmlnaW5hbCwNCiAgICAgICAgICB9KTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIOWtkOe6pw0KICAgICAgICAvLyBUT0RPIOiwg+aOpeWPow0KICAgICAgfQ0KICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7DQogICAgfSwNCg0KICAgIC8vIOaLluaLvQ0KICAgIGhhbmRsZURyb3AoZHJhZ2dpbmdOb2RlLCBkcm9wTm9kZSkgew0KICAgICAgLy8g5YmN5LiA5Liq5YWE5byf6IqC54K5DQogICAgICBjb25zdCBwcmV2Tm9kZSA9IHRoaXMuam0uZmluZF9ub2RlX2JlZm9yZShkcm9wTm9kZSk7DQogICAgICAvLyDojrflj5bnp7vliqjlkI7nmoRub2RlDQogICAgICBjb25zdCBkcmFnRm9ybSA9IHsNCiAgICAgICAgbW9kZWxJZDogJycsDQogICAgICAgIHRyZWVOdW06ICFwcmV2Tm9kZSA/IGRyYWdnaW5nTm9kZSA6IHByZXZOb2RlLmlkLA0KICAgICAgICB0aGlzVHJlZU51bTogZHJvcE5vZGUsDQogICAgICB9Ow0KICAgICAgY29uc29sZS5sb2coJ2RyYWdGb3JtJywgZHJhZ0Zvcm0pOw0KDQogICAgICAvLyBUT0RPIOiwg+aOpeWPow0KICAgIH0sDQogICAgLy8g5Y2V5Ye76YeN572u6YCJ5Lit6IOM5pmv6aKc6ImyDQogICAgbm9kZUNsaWNrKCkgew0KICAgICAgY29uc3Qgc2VsZWN0ZWRJZCA9IHRoaXMuZ2V0X3NlbGVjdGVkX25vZGVpZCgpOw0KICAgICAgaWYgKCFzZWxlY3RlZElkKSByZXR1cm47DQogICAgICBjb25zdCBub2RlT2JqID0gdGhpcy5qbS5nZXRfbm9kZShzZWxlY3RlZElkKTsNCiAgICAgIHRoaXMuam0uc2V0X25vZGVfY29sb3Ioc2VsZWN0ZWRJZCwgbm9kZU9iai5kYXRhWydiYWNrZ3JvdW5kLWNvbG9yJ10sICcjZmZmJyk7DQogICAgfSwNCg0KICAgIC8vIOaPkuWFpeWNoeeJhw0KICAgIGluc2VydE5vZGUoKSB7DQogICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICBpZiAoc2VsZWN0ZWROb2RlLmRhdGEpIHsNCiAgICAgICAgdGhpcy4kZW1pdCgnaW5zZXJ0Jywgc2VsZWN0ZWROb2RlLmRhdGEpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign6K+36YCJ5oup5Y2h54mHJyk7DQogICAgICB9DQogICAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7DQogICAgfSwNCiAgICAvLyDmj5LlhaXlubPnuqcNCiAgICBhZGRCcm90aGVyKCkgew0KICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5qbS5nZXRfc2VsZWN0ZWRfbm9kZSgpOw0KDQogICAgICBpZiAoc2VsZWN0ZWROb2RlLmRhdGEpIHsNCiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsNCg0KICAgICAgICB0aGlzLmNyZWF0ZVR5cGUgPSAnYnJvJzsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWNoeeJhycpOw0KICAgICAgfQ0KDQogICAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7DQogICAgfSwNCg0KICAgIC8vIOaPkuWFpeWtkOe6pw0KICAgIGFkZENoaWxkKCkgew0KICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5qbS5nZXRfc2VsZWN0ZWRfbm9kZSgpOw0KICAgICAgaWYgKHNlbGVjdGVkTm9kZS5kYXRhKSB7DQogICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7DQoNCiAgICAgICAgdGhpcy5jcmVhdGVUeXBlID0gJ2NoaWxkJzsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWNoeeJhycpOw0KICAgICAgfQ0KDQogICAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7DQogICAgfSwNCg0KICAgIC8vIOWIoOmZpOWNoeeJhw0KICAgIGRlbENhcmQoKSB7DQogICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICBpZiAoc2VsZWN0ZWROb2RlLmRhdGEpIHsNCiAgICAgICAgLy8gVE9ETw0KICAgICAgICB0aGlzLmptLnJlbW92ZV9ub2RlKHNlbGVjdGVkTm9kZS5pZCk7DQogICAgICAgIC8vIOiOt+WPluaVsOaNrg0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmptLmdldF9kYXRhKCdub2RlX3RyZWUnKSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fpgInmi6nljaHniYcnKTsNCiAgICAgIH0NCiAgICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTsNCiAgICB9LA0KDQogICAgLy8g6byg5qCH5rua6L2u5pS+5aSn57yp5bCPDQogICAgbW91c2VXaGVlbCgpIHsNCiAgICAgIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7DQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RvbU1vdXNlU2Nyb2xsJywgdGhpcy5zY3JvbGxGdW5jLCBmYWxzZSk7DQogICAgICB9DQogICAgICB0aGlzLiRyZWZzLmNvbnRhaW5lci5vbm1vdXNld2hlZWwgPSB0aGlzLnNjcm9sbEZ1bmM7DQogICAgfSwNCiAgICAvLyDmu5rova7nvKnmlL4NCiAgICBzY3JvbGxGdW5jKGUpIHsNCiAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsNCiAgICAgIGlmIChlLndoZWVsRGVsdGEpIHsNCiAgICAgICAgaWYgKGUud2hlZWxEZWx0YSA+IDApIHsNCiAgICAgICAgICB0aGlzLnpvb21JbigpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuem9vbU91dCgpOw0KICAgICAgICB9DQogICAgICB9IGVsc2UgaWYgKGUuZGV0YWlsKSB7DQogICAgICAgIGlmIChlLmRldGFpbCA+IDApIHsNCiAgICAgICAgICB0aGlzLnpvb21JbigpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuem9vbU91dCgpOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICB0aGlzLmptLnJlc2l6ZSgpOw0KICAgIH0sDQoNCiAgICAvLyDlr7zlh7rlm77niYcNCiAgICBzY3JlZW5fc2hvdCgpIHsNCiAgICAgIC8vIOWOu+mZpOmAj+aYjuW6pg0KICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kLmRhdGEuY2hpbGRyZW4sIChpdGVtKSA9PiB0aGlzLmptLnNldF9ub2RlX2NvbG9yKGl0ZW0uaWQsIHRoaXMuYmdNYXBbaXRlbS50eXBlXS5vcmlnaW5hbCwgJyNmZmYnKSk7DQogICAgICB0cnkgew0KICAgICAgICB0aGlzLmptLnNjcmVlbnNob3Quc2hvb3REb3dubG9hZCgpOw0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpOw0KICAgICAgfQ0KICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgIHRoaXMuc2V0Q29sb3IoKTsNCiAgICAgIH0sIDEwMDApOw0KICAgIH0sDQogICAgLy8g6byg5qCH5ouW5ou9DQogICAgbW91c2VEcmFnKCkgew0KICAgICAgLy8g6YeM5bGCDQogICAgICBjb25zdCBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qc21pbmQtaW5uZXInKTsNCiAgICAgIC8vIOmAieS4reiKgueCuQ0KICAgICAgbGV0IHNlbGVjdGVkOw0KDQogICAgICBlbC5vbm1vdXNlZG93biA9IChldikgPT4gew0KICAgICAgICAvLyDpgInkuK3oioLngrkNCiAgICAgICAgc2VsZWN0ZWQgPSB0aGlzLmptLmdldF9zZWxlY3RlZF9ub2RlKCk7DQogICAgICAgIC8vIOagh+ivhiDmmK/lkKbmi5bmi73oioLngrkg6YG/5YWN5Yay56qBDQogICAgICAgIHRoaXMuZHJhZ05vZGVGbGFnID0gISFzZWxlY3RlZDsNCg0KICAgICAgICBjb25zdCBkaXNYID0gZXYuY2xpZW50WDsNCiAgICAgICAgY29uc3QgZGlzWSA9IGV2LmNsaWVudFk7DQogICAgICAgIGNvbnN0IG9yaWdpbmFsU2Nyb2xsTGVmdCA9IGVsLnNjcm9sbExlZnQ7DQogICAgICAgIGNvbnN0IG9yaWdpbmFsU2Nyb2xsVG9wID0gZWwuc2Nyb2xsVG9wOw0KICAgICAgICBjb25zdCBvcmlnaW5hbFNjcm9sbEJlaGF2aW9yID0gZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddOw0KICAgICAgICBjb25zdCBvcmlnaW5hbFBvaW50ZXJFdmVudHMgPSBlbC5zdHlsZVsncG9pbnRlci1ldmVudHMnXTsNCiAgICAgICAgLy8gYXV0bzog6buY6K6k5YC877yM6KGo56S65rua5Yqo5qGG56uL5Y2z5rua5Yqo5Yiw5oyH5a6a5L2N572u44CCDQogICAgICAgIGVsLnN0eWxlWydzY3JvbGwtYmVoYXZpb3InXSA9ICdhdXRvJzsNCiAgICAgICAgLy8g6byg5qCH56e75Yqo5LqL5Lu25piv55uR5ZCs55qE5pW05LiqZG9jdW1lbnTvvIzov5nmoLflj6/ku6Xkvb/pvKDmoIfog73lpJ/lnKjlhYPntKDlpJbpg6jnp7vliqjnmoTml7blgJnkuZ/og73lrp7njrDmi5bliqgNCiAgICAgICAgZG9jdW1lbnQub25tb3VzZW1vdmUgPSAoZXYpID0+IHsNCiAgICAgICAgICBpZiAodGhpcy5kcmFnTm9kZUZsYWcpIHJldHVybjsNCiAgICAgICAgICB0aGlzLmRyYWcgPSBmYWxzZTsNCiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgIC8vIOiuoeeul+aLluaLveeahOWBj+enu+i3neemuw0KICAgICAgICAgIGNvbnN0IGRpc3RhbmNlWCA9IGV2LmNsaWVudFggLSBkaXNYOw0KICAgICAgICAgIGNvbnN0IGRpc3RhbmNlWSA9IGV2LmNsaWVudFkgLSBkaXNZOw0KDQogICAgICAgICAgZWwuc2Nyb2xsVG8ob3JpZ2luYWxTY3JvbGxMZWZ0IC0gZGlzdGFuY2VYLCBvcmlnaW5hbFNjcm9sbFRvcCAtIGRpc3RhbmNlWSk7DQoNCiAgICAgICAgICAvLyDlnKjpvKDmoIfmi5bliqjnmoTml7blgJnlsIbngrnlh7vkuovku7blsY/olL3mjokNCiAgICAgICAgICBlbC5zdHlsZVsncG9pbnRlci1ldmVudHMnXSA9ICdub25lJzsNCiAgICAgICAgICBlbC5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnOw0KICAgICAgICB9Ow0KICAgICAgICBkb2N1bWVudC5vbm1vdXNldXAgPSAoKSA9PiB7DQogICAgICAgICAgaWYgKCF0aGlzLmRyYWdOb2RlRmxhZykgew0KICAgICAgICAgICAgZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddID0gb3JpZ2luYWxTY3JvbGxCZWhhdmlvcjsNCiAgICAgICAgICAgIGVsLnN0eWxlWydwb2ludGVyLWV2ZW50cyddID0gb3JpZ2luYWxQb2ludGVyRXZlbnRzOw0KICAgICAgICAgICAgZWwuc3R5bGUuY3Vyc29yID0gJ2dyYWInOw0KICAgICAgICAgIH0NCiAgICAgICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IGRvY3VtZW50Lm9ubW91c2V1cCA9IG51bGw7DQogICAgICAgIH07DQogICAgICB9Ow0KICAgIH0sDQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5qbSA9IGpzTWluZC5zaG93KHRoaXMub3B0aW9ucywgdGhpcy5taW5kKTsNCg0KICAgIC8vIOiHquWumuS5ieaLluaLveWujOaIkOS6i+S7tg0KICAgIGpzTWluZC5kcmFnZ2FibGUucHJvdG90eXBlLmhhbmRsZURyYWcgPSAoc3JjTm9kZSwgdGFyZ2V0Tm9kZSwgdGFyZ2V0RGlyZWN0KSA9PiB7DQogICAgICBjb25zdCBuZXh0UGFyZW50SWQgPSBzcmNOb2RlLnBhcmVudC5pZDsNCiAgICAgIHRoaXMuaGFuZGxlRHJvcChuZXh0UGFyZW50SWQsIHNyY05vZGUuaWQpOw0KICAgIH07DQogICAgdGhpcy5lZGl0b3IgPSB0aGlzLmptLnZpZXcuZV9lZGl0b3I7DQogICAgdGhpcy5pbml0KCk7DQogICAgdGhpcy5tb3VzZVdoZWVsKCk7DQogICAgdGhpcy5tb3VzZURyYWcoKTsNCiAgfSwNCiAgYmVmb3JlRGVzdHJveSgpIHsNCiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkb21Nb3VzZVNjcm9sbCcsIHRoaXMuc2Nyb2xsRnVuYywgZmFsc2UpOw0KICB9LA0KfTsNCg=="},null]}