xiaomianao666

插件名:global_快速搜索

May 26th, 2023
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:网页插件¥js_url¥global_快速搜索@base64://Ly89PT09PT09PT09dmlhLXBsdWdpbjoyNz09PT09PT09PT0KLy89PT09PT09PT095b+r6YCf5pCc57SiPT09PT09PT09PQovKgogKiBAbmFtZTog5b+r6YCf5pCc57SiCiAqIEBBdXRob3I6IOWwseWDj3dvCiAqIEB2ZXJzaW9uOiA0LjAKICogQGRlc2NyaXB0aW9uOiDnvZHpobXlv6vpgJ/mkJzntKIr6KeG6aKR6Kej5p6QCiAqIEBpbmNsdWRlOiAqCiAqIEBjcmVhdGVUaW1lOiAyMDE5LTExLTEwCiAqIEB1cGRhdGVUaW1lOiAyMDE5LTEyLTEzCiovCihmdW5jdGlvbigpe3tsZXQga2V5PWVuY29kZVVSSUNvbXBvbmVudCgi5bCx5YOPd2865b+r6YCf5pCc57SiIik7aWYod2luZG93LmtleT09PXRydWUpe3JldHVybiAwO313aW5kb3cua2V5PXRydWU7fXZhciBtZW51RG9jSGVhZD0oZG9jdW1lbnQuaGVhZD09bnVsbD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuaGVhZCk7dmFyIG1lbnVEb2NCb2R5PShkb2N1bWVudC5ib2R5PT1udWxsP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5ib2R5KTtjb25zdCBtZW51QXV0aG9yPSJ3b2ppdTEwPiI7dmFyIGlzTWVudVRlbGVwaG9uZT0haXNNZW51Q29tcHV0ZXIoKTtpZighaXNNZW51VGVsZXBob25lKXtsZXQgdmVsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7dmVsZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAidmlld3BvcnQiKTt2ZWxlLnNldEF0dHJpYnV0ZSgiY29udGVudCIsICJ1c2VyLXNjYWxhYmxlPXllcyIpO21lbnVEb2NIZWFkLmFwcGVuZENoaWxkKHZlbGUpO312YXIgbWVudUNvbG9yPXsiZGVmIjoicmdiYSg4OCwxNDEsMTM0LDAuOCkiLCJzZWFyY2giOiJyZ2JhKDAsMCwyNTUsMC44KSIsInBhcnNlIjoicmdiYSgwLDI1NSwyNTUsMC44KSIsIm1vdiI6InJnYmEoMjU1LDAsMCwwLjgpIiwic25pZmYiOiJyZ2JhKDI1NSwyNTUsMCwwLjgpIn07dmFyIG1lbnVJbWc9eyJkZWYiOiJ1cmwoXCJodHRwczovL3NzMC5iZHN0YXRpYy5jb20vNzBjRnVIU2hfUTFZbnhHa3BvV0sxSEY2aGh5L2l0L3U9NDEzMjEyMDU5MCwzODc0MzgyMjA0JmZtPTI2JmdwPTAuanBnXCIpIiwic2VhcmNoIjoidXJsKFwiaHR0cHM6Ly9zczEuYmRzdGF0aWMuY29tLzcwY0Z1WFNoX1ExWW54R2twb1dLMUhGNmhoeS9pdC91PTI1MjIzNTkyMTUsMzA1MDIzOTAyMCZmbT0yNiZncD0wLmpwZ1wiKSIsInBhcnNlIjoidXJsKFwiaHR0cHM6Ly9zczEuYmRzdGF0aWMuY29tLzcwY0Z1WFNoX1ExWW54R2twb1dLMUhGNmhoeS9pdC91PTE4ODgzMTcxNTUsMTU0MzIxMzUxOCZmbT0yNiZncD0wLmpwZ1wiKSIsIm1vdiI6InVybChcImh0dHBzOi8vc3MyLmJkc3RhdGljLmNvbS83MGNGdm5TaF9RMVlueEdrcG9XSzFIRjZoaHkvaXQvdT00ODM3ODQ4MTQsMTU0NTA3NzA0JmZtPTI2JmdwPTAuanBnXCIpIiwic25pZmYiOiJ1cmwoXCJodHRwczovL3NzMC5iZHN0YXRpYy5jb20vNzBjRnVIU2hfUTFZbnhHa3BvV0sxSEY2aGh5L2l0L3U9MzcxNTIzMTc2OCwzNDU4MzkyNzY4JmZtPTI2JmdwPTAuanBnXCIpIn07dmFyIG1lbnVTaGQ9eyJkZWYiOiIwcHggMHB4IDEwcHggNXB4IHJnYmEoODgsMTQxLDEzNCwxKSIsInNlYXJjaCI6IjBweCAwcHggMTBweCA1cHggcmdiYSgwLDAsMjU1LDEpIiwicGFyc2UiOiIwcHggMHB4IDEwcHggNXB4IHJnYmEoMCwyNTUsMjU1LDEpIiwibW92IjoiMHB4IDBweCAxMHB4IDVweCByZ2JhKDI1NSwwLDAsMSkiLCJzbmlmZiI6IjBweCAwcHggMTBweCA1cHggcmdiYSgyNTUsMjU1LDAsMSkifTt2YXIgbWVudVNpemU9eyJwaDJwYyI6aW5uZXJXaWR0aC8zNjAsImZvbnQiOjI0LCJidG4iOjEyfTt2YXIgbWVudUZsYWc9eyJkZWYiOjEsInNlYXJjaCI6MiwicGFyc2UiOjMsIm1vdiI6NCwic25pZmYiOjUsImxvZ2luIjo2fTt2YXIgbWVudUZ1bmM9eyJzZWFyY2giOm1lbnVTZWFyY2gsInBhcnNlIjptZW51UGFyc2UsIm1vdiI6bWVudU1vdmUsInNuaWZmIjptZW51U25pZmYsImxvZ2luIjptZW51TG9naW59O3ZhciBtZW51VGltZUlEPXsicGFyc2UiOjAsIm1vdiI6MCwic25pZmYiOjB9O3ZhciBtZW51QnRuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO21lbnVCdG4uc3R5bGU9InBvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5OTk5OTtyaWdodDoyMCU7Ym90dG9tOjE1JTtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eToxO2JhY2tncm91bmQtc2l6ZTphdXRvIDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIjttZW51QnRuLnN0eWxlLndpZHRoPW1lbnVTaXplLmJ0bisiJSI7bWVudUJ0bi5zdHlsZS5oZWlnaHQ9KGlubmVyV2lkdGgvaW5uZXJIZWlnaHQqbWVudVNpemUuYnRuKSsiJSI7bWVudUJ0bi5zdHlsZS5ib3JkZXJSYWRpdXM9IjEwMCUiO21lbnVCdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG1lbnVDbGlja0p1ZGdlKTttZW51QnRuLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLG1lbnVMUFN0YXJ0KTttZW51QnRuLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbWVudUxQTW92ZSk7bWVudUJ0bi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsbWVudUxQRW5kKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe2lmKGlubmVySGVpZ2h0PG1lbnVPbGRJbm5lckhlaWdodCl7aWYobWVudURvY0JvZHkuY29tcGFyZURvY3VtZW50UG9zaXRpb24obWVudUJ0biklMj09MCl7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bik7fX1lbHNle2lmKG1lbnVEb2NCb2R5LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG1lbnVCdG4pJTI9PTEpe21lbnVEb2NCb2R5LmFwcGVuZENoaWxkKG1lbnVCdG4pO319bWVudUJ0bi5zdHlsZS5oZWlnaHQ9KGlubmVyV2lkdGgvaW5uZXJIZWlnaHQqbWVudVNpemUuYnRuKSsiJSI7fSk7dmFyIG1lbnVTdGF0ZTt2YXIgbWVudUhpZFRpbWVJRDt2YXIgbWVudUhpZFRpbWU9MjA7dmFyIG1lbnVCdG5PcGFjaXR5PTAuMTttZW51RGVmU3RhdGUoKTttZW51RG9jQm9keS5hcHBlbmRDaGlsZChtZW51QnRuKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKXtpZihldmVudC5hY2NlbGVyYXRpb24ueD4zMHx8ZXZlbnQuYWNjZWxlcmF0aW9uLnk+MzB8fGV2ZW50LmFjY2VsZXJhdGlvbi56PjMwKXtpZihtZW51RG9jQm9keS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihtZW51QnRuKSUyPT0wKXtpZihtZW51U3RhdGU9PW1lbnVGbGFnLnNlYXJjaCl7c2VhcmNoRG9jQm9keS5yZW1vdmVDaGlsZChzZWFyY2hCZ2QpO3NlYXJjaERvY0JvZHkuYXBwZW5kQ2hpbGQoc2VhcmNoQmdkKTt9ZWxzZSBpZihtZW51U3RhdGU9PW1lbnVGbGFnLnBhcnNlKXttZWRpYVBhcnNlRG9jQm9keS5yZW1vdmVDaGlsZCh2aWRlb1BhcnNlQmdkKTttZWRpYVBhcnNlRG9jQm9keS5hcHBlbmRDaGlsZCh2aWRlb1BhcnNlQmdkKTt9ZWxzZSBpZihtZW51U3RhdGU9PW1lbnVGbGFnLm1vdil7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bk1vdkJnZCk7bWVudURvY0JvZHkuYXBwZW5kQ2hpbGQobWVudUJ0bk1vdkJnZCk7fWVsc2UgaWYobWVudVN0YXRlPT1tZW51RmxhZy5sb2dpbil7bG9naW5Eb2NCb2R5LnJlbW92ZUNoaWxkKGxvZ2luQmdkKTtsb2dpbkRvY0JvZHkuYXBwZW5kQ2hpbGQobG9naW5CZ2QpO31tZW51RG9jQm9keS5yZW1vdmVDaGlsZChtZW51QnRuKTttZW51RG9jQm9keS5hcHBlbmRDaGlsZChtZW51QnRuKTt9fX0pO2Z1bmN0aW9uIG1lbnVDbGlja0p1ZGdlKCl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7aWYobWVudUJ0bi5zdHlsZS5vcGFjaXR5PT1tZW51QnRuT3BhY2l0eSl7bWVudUJ0bi5zdHlsZS5vcGFjaXR5PTE7bWVudUhpZFRpbWVJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bWVudUJ0bi5zdHlsZS5vcGFjaXR5PW1lbnVCdG5PcGFjaXR5O30sbWVudUhpZFRpbWUqMTAwMCk7cmV0dXJuIDA7fWlmKG1lbnVTdGF0ZT09bWVudUZsYWcuZGVmKXttZW51RnVuYy5zZWFyY2goKTt9ZWxzZSBpZihtZW51U3RhdGUhPW1lbnVGbGFnLnNuaWZmKXtpZihtZW51U3RhdGU9PW1lbnVGbGFnLnNlYXJjaCl7c2VhcmNoRG9jQm9keS5yZW1vdmVDaGlsZChzZWFyY2hCZ2QpO31lbHNlIGlmKG1lbnVTdGF0ZT09bWVudUZsYWcucGFyc2Upe3ZpZGVvUGFyc2VTY3JvbGxUb3A9dmlkZW9QYXJzZUJnZC5zY3JvbGxUb3A7bWVkaWFQYXJzZURvY0JvZHkucmVtb3ZlQ2hpbGQodmlkZW9QYXJzZUJnZCk7fWVsc2UgaWYobWVudVN0YXRlPT1tZW51RmxhZy5tb3Ype21lbnVEb2NCb2R5LnJlbW92ZUNoaWxkKG1lbnVCdG5Nb3ZCZ2QpO31lbHNlIGlmKG1lbnVTdGF0ZT09bWVudUZsYWcubG9naW4pe2xvZ2luRG9jQm9keS5yZW1vdmVDaGlsZChsb2dpbkJnZCk7fW1lbnVEZWZTdGF0ZSgpO319dmFyIG1lbnVMb2dpblN0cj0i55m75b2VIjt2YXIgbWVudVdhdGNoVHY9IuinhumikSI7dmFyIG1lbnVWaWRlb01vZGU9bWVudUF1dGhvcisidmlkZW8iO2Z1bmN0aW9uIHdhdGNoVmlkZW8oKXtzdHI9IiI7d2ViRXZvbHV0aW9uKG1lbnVWaWRlb01vZGUsc3RyLHdlYlBhZ2VSdWxlcy53YXRjaFRWLCJfYmxhbmsiKTt9dmFyIG1lbnVSZWFkTm92YWw9IuWwj+ivtCI7dmFyIG1lbnVOb3ZhbE1vZGU9bWVudUF1dGhvcisibm92YWwiO2Z1bmN0aW9uIG1lbnVOb3ZhbFJlYWQoKXt2YXIgc3RyPSJkbUZ5SlRJd1pXeGxjejFrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwYzBKNVZHRm5UbUZ0WlNnbE1qSkJKVEl5S1RzbE1FRm1iM0lvZG1GeUpUSXdhVDB3TzJrbE0wTmxiR1Z6TG14bGJtZDBhRHRwS3lzcEpUZENKVEJCSlRJd0pUSXdKVEl3SlRJd1pXeGxjeVUxUW1rbE5VUXVkR0Z5WjJWMFBTVXlNbDl6Wld4bUpUSXlPeVV3UVNVM1JBPT0iO3dlYkV2b2x1dGlvbihtZW51Tm92YWxNb2RlLHN0cix3ZWJQYWdlUnVsZXMubm92YWwsIl9zZWxmIik7fXZhciBtZW51UmVhZENvbWljPSLmvKvnlLsiO3ZhciBtZW51Q29taWNNb2RlPW1lbnVBdXRob3IrImNvbWljIjtmdW5jdGlvbiBtZW51Q29taWNSZWFkKCl7dmFyIHN0cj0iZG1GeUpUSXdaV3hsY3oxa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MGMwSjVWR0ZuVG1GdFpTZ2xNakpCSlRJeUtUc2xNRUZtYjNJb2RtRnlKVEl3YVQwd08ya2xNME5sYkdWekxteGxibWQwYUR0cEt5c3BKVGRDSlRCQkpUSXdKVEl3SlRJd0pUSXdaV3hsY3lVMVFta2xOVVF1ZEdGeVoyVjBQU1V5TWw5elpXeG1KVEl5T3lVd1FTVTNSQT09Ijt3ZWJFdm9sdXRpb24obWVudUNvbWljTW9kZSxzdHIsd2ViUGFnZVJ1bGVzLmNvbWljLCJfYmxhbmsiKTt9dmFyIG1lbnVRdWl0TW9kZT0i6YCA5Ye6Ijt2YXIgbWVudUJ0bk1vdkJnZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTttZW51QnRuTW92QmdkLnN0eWxlPSJwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5OTk5OTk7dG9wOjBweDtsZWZ0OjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsiO21lbnVCdG5Nb3ZCZ2QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7bWVudUJ0bi5zdHlsZS5sZWZ0PWV2ZW50LmNsaWVudFgtbWVudUJ0bi5vZmZzZXRXaWR0aC8yKyJweCI7bWVudUJ0bi5zdHlsZS50b3A9ZXZlbnQuY2xpZW50WS1tZW51QnRuLm9mZnNldEhlaWdodC8yKyJweCI7fSk7ZnVuY3Rpb24gbWVudU1vdmUoKXtjbGVhclRpbWVvdXQobWVudUhpZFRpbWVJRCk7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQodmlkZW9QYXJzZUJnZCk7bWVudURvY0JvZHkuYXBwZW5kQ2hpbGQobWVudUJ0bk1vdkJnZCk7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bik7bWVudURvY0JvZHkuYXBwZW5kQ2hpbGQobWVudUJ0bik7bWVudUJ0bi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9bWVudUNvbG9yLm1vdjttZW51QnRuLnN0eWxlLmJhY2tncm91bmRJbWFnZT1tZW51SW1nLm1vdjttZW51QnRuLnN0eWxlLmJveFNoYWRvdz1tZW51U2hkLm1vdjttZW51U3RhdGU9bWVudUZsYWcubW92O31mdW5jdGlvbiBtZW51U2VhcmNoKCl7Y2xlYXJUaW1lb3V0KG1lbnVIaWRUaW1lSUQpO3NlYXJjaCgpO2lmKG1lbnVEb2NCb2R5LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG1lbnVCdG4pJTI9PTApe21lbnVEb2NCb2R5LnJlbW92ZUNoaWxkKG1lbnVCdG4pO21lbnVEb2NCb2R5LmFwcGVuZENoaWxkKG1lbnVCdG4pO31tZW51QnRuLnN0eWxlLmJhY2tncm91bmRDb2xvcj1tZW51Q29sb3Iuc2VhcmNoO21lbnVCdG4uc3R5bGUuYmFja2dyb3VuZEltYWdlPW1lbnVJbWcuc2VhcmNoO21lbnVCdG4uc3R5bGUuYm94U2hhZG93PW1lbnVTaGQuc2VhcmNoO21lbnVTdGF0ZT1tZW51RmxhZy5zZWFyY2g7fWZ1bmN0aW9uIG1lbnVQYXJzZSgpe2NsZWFyVGltZW91dChtZW51SGlkVGltZUlEKTttZWRpYVBhcnNlKCk7aWYobWVudURvY0JvZHkuY29tcGFyZURvY3VtZW50UG9zaXRpb24obWVudUJ0biklMj09MCl7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bik7bWVudURvY0JvZHkuYXBwZW5kQ2hpbGQobWVudUJ0bik7fW1lbnVCdG4uc3R5bGUuYmFja2dyb3VuZENvbG9yPW1lbnVDb2xvci5wYXJzZTttZW51QnRuLnN0eWxlLmJhY2tncm91bmRJbWFnZT1tZW51SW1nLnBhcnNlO21lbnVCdG4uc3R5bGUuYm94U2hhZG93PW1lbnVTaGQucGFyc2U7bWVudVN0YXRlPW1lbnVGbGFnLnBhcnNlO31mdW5jdGlvbiBtZW51U25pZmYoKXtjbGVhclRpbWVvdXQobWVudUhpZFRpbWVJRCk7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bk1vdkJnZCk7bWVudUJ0bi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9bWVudUNvbG9yLnNuaWZmO21lbnVCdG4uc3R5bGUuYmFja2dyb3VuZEltYWdlPW1lbnVJbWcuc25pZmY7bWVudUJ0bi5zdHlsZS5ib3hTaGFkb3c9bWVudVNoZC5zbmlmZjttZW51U3RhdGU9bWVudUZsYWcuc25pZmY7c2V0VGltZW91dChmdW5jdGlvbigpe3NvdXJjZVNuaWZmKCk7bWVudURlZlN0YXRlKCk7fSwxMDApO31mdW5jdGlvbiBtZW51TG9naW4oKXtpZihhdXRvTG9naW4oKSl7aWYobWVudURvY0JvZHkuY29tcGFyZURvY3VtZW50UG9zaXRpb24obWVudUJ0biklMj09MCl7bWVudURvY0JvZHkucmVtb3ZlQ2hpbGQobWVudUJ0bik7bWVudURvY0JvZHkuYXBwZW5kQ2hpbGQobWVudUJ0bik7fW1lbnVTdGF0ZT1tZW51RmxhZy5sb2dpbjtyZXR1cm4gdHJ1ZTt9cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBtZW51RGVmU3RhdGUoKXttZW51QnRuLnN0eWxlLmJhY2tncm91bmRDb2xvcj1tZW51Q29sb3IuZGVmO21lbnVCdG4uc3R5bGUuYmFja2dyb3VuZEltYWdlPW1lbnVJbWcuZGVmO21lbnVCdG4uc3R5bGUuYm94U2hhZG93PW1lbnVTaGQuZGVmO21lbnVTdGF0ZT1tZW51RmxhZy5kZWY7bWVudUhpZFRpbWVJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bWVudUJ0bi5zdHlsZS5vcGFjaXR5PW1lbnVCdG5PcGFjaXR5O30sbWVudUhpZFRpbWUqMTAwMCk7fWZ1bmN0aW9uIG1lbnVMUFN0YXJ0KCl7aWYobWVudVN0YXRlPT1tZW51RmxhZy5kZWYmJm1lbnVCdG4uc3R5bGUub3BhY2l0eSE9bWVudUJ0bk9wYWNpdHkpe2NsZWFyVGltZW91dChtZW51SGlkVGltZUlEKTttZW51VGltZUlELnBhcnNlPXNldFRpbWVvdXQobWVudUZ1bmMucGFyc2UsNDAwKTttZW51VGltZUlELm1vdj1zZXRUaW1lb3V0KG1lbnVGdW5jLm1vdiwxMDAwKTttZW51VGltZUlELnNuaWZmPXNldFRpbWVvdXQobWVudUZ1bmMuc25pZmYsMTUwMCk7bWVudUhpZFRpbWVJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bWVudUJ0bi5zdHlsZS5vcGFjaXR5PW1lbnVCdG5PcGFjaXR5O30sbWVudUhpZFRpbWUqMTAwMCk7fX1mdW5jdGlvbiBtZW51TFBNb3ZlKCl7Zm9yKHZhciB0aW1lIGluIG1lbnVUaW1lSUQpe2NsZWFyVGltZW91dChtZW51VGltZUlEW3RpbWVdKTt9fWZ1bmN0aW9uIG1lbnVMUEVuZCgpe2Zvcih2YXIgdGltZSBpbiBtZW51VGltZUlEKXtjbGVhclRpbWVvdXQobWVudVRpbWVJRFt0aW1lXSk7fX12YXIgc2VhcmNoRG9jQm9keT0oZG9jdW1lbnQuYm9keT09bnVsbD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuYm9keSk7dmFyIHNlYXJjaFNpemU9eyJwaDJwYyI6aW5uZXJXaWR0aC8zNjAsImZvbnQiOjI0fTt2YXIgc2VhcmNoRW5naW5lPVt7CSJtZXRob2QiOiJnZXQiLCJzZWFVcmwiOiJodHRwczovL3F1YXJrLnNtLmNuL3M/cT1Ac2VhS2V5IiwicGxhY2Vob2xkZXIiOiLlpLjlhYvmkJzntKIifSx7Im1ldGhvZCI6ImdldCIsInNlYVVybCI6Imh0dHBzOi8vd3d3LnNva3UuY29tL20veS92aWRlbz9xPUBzZWFLZXkiLCJwbGFjZWhvbGRlciI6IuS8mOmFt+aQnOe0oiJ9LHsiaW5kZXgiOiJodHRwczovL20uYm9va3R4dC5jb20vIiwibWV0aG9kIjoiZ2V0Iiwic2VhVXJsIjoiaHR0cHM6Ly9tLmJvb2t0eHQuY29tL3NlYXJjaC5waHA/a2V5d29yZD1Ac2VhS2V5IiwicGxhY2Vob2xkZXIiOiLpobbngrnlsI/or7QifSx7ImluZGV4IjoiaHR0cHM6Ly9tLmJubWFuaHVhLmNvbS8iLCJtZXRob2QiOiJwb3N0Iiwic2VhVXJsIjoiaHR0cHM6Ly9tLmJubWFuaHVhLmNvbS9pbmRleC5waHA/bT12b2Qtc2VhcmNoIiwibmFtZSI6IndkIiwicGxhY2Vob2xkZXIiOiLnmb7lubTmvKvnlLsifV07dmFyIHNlYXJjaEJnZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgc2VhcmNoRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ZhciBzZWFyY2hGb3JtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTt2YXIgc2VhcmNoVGV4dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3ZhciBzZWFyY2hFbmdCZ2Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIHNlYXJjaEVuZ0Rpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzZWFyY2hCZ2Quc3R5bGU9InBvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5OTk5OTk5OTk5O3RvcDowcHg7bGVmdDowcHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7IjtzZWFyY2hEaXYuc3R5bGU9InBvc2l0aW9uOmZpeGVkO2xlZnQ6MTAlO2JvdHRvbTowcHg7Ym94LXNpemluZzppbmhlcml0O3dpZHRoOjgwJTsiO3NlYXJjaERpdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtldmVudC5zdG9wUHJvcGFnYXRpb24oKTt9KTtzZWFyY2hGb3JtLnN0eWxlPSJib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6MTAwJTsiO3NlYXJjaEZvcm0udGFyZ2V0PSJfYmxhbmsiO3NlYXJjaEZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixzZWFyY2hTdWJtaXQpO3NlYXJjaFRleHQudHlwZT0ic2VhcmNoIjtzZWFyY2hUZXh0LnJlcXVpcmVkPSJ0cnVlIjtzZWFyY2hUZXh0LmF1dG9jb21wbGV0ZT0ib2ZmIjtzZWFyY2hUZXh0LnN0eWxlPSJkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6aW5oZXJpdDt3aWR0aDoxMDAlO3BhZGRpbmc6MyUgOCU7Ym9yZGVyLXN0eWxlOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6Ym9sZDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KTsiO3NlYXJjaFRleHQuc3R5bGUuYm9yZGVyUmFkaXVzPWlubmVyV2lkdGgqNi8xMDArInB4IjtzZWFyY2hUZXh0LnN0eWxlLmZvbnRTaXplPXNlYXJjaFNpemUucGgycGMqc2VhcmNoU2l6ZS5mb250KyJweCI7c2VhcmNoVGV4dC5zdHlsZS5ib3JkZXJCb3R0b209KHNlYXJjaFNpemUucGgycGMqNSkrInB4IHNvbGlkIGJsdWUiO3ZhciBlbmdpbmVJRDtzZWFyY2hUZXh0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKGlubmVySGVpZ2h0PHNlYXJjaE9sZElubmVySGVpZ2h0KXtzZXRTZWFyY2gobmV4dFNlYXJjaElEKGVuZ2luZUlELHNlYXJjaEVuZ2luZS5sZW5ndGgpKTt9fSk7c2VhcmNoRW5nQmdkLnN0eWxlPSJib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6MTAwJTtvdmVyZmxvdzphdXRvOyI7c2VhcmNoRW5nQmdkLnN0eWxlLm1heEhlaWdodD1pbm5lckhlaWdodC8yKyJweCI7c2VhcmNoRW5nRGl2LnN0eWxlPSJmbG9hdDpsZWZ0O2JveC1zaXppbmc6aW5oZXJpdDt3aWR0aDozMCU7cGFkZGluZzoyJTttYXJnaW4tYm90dG9tOjIlO292ZXJmbG93OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOndoaXRlO2ZvbnQtd2VpZ2h0OmJvbGQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCwwLDI1NSk7Ym94LXNoYWRvdzowcHggMHB4IDEwcHggIzAwMDAwMDsiO3NlYXJjaEVuZ0Rpdi5zdHlsZS5ib3JkZXJSYWRpdXM9aW5uZXJXaWR0aCoyLzEwMCsicHgiO3NlYXJjaEVuZ0Rpdi5zdHlsZS5mb250U2l6ZT0oc2VhcmNoU2l6ZS5waDJwYypzZWFyY2hTaXplLmZvbnQqMi8zKSsicHgiO3NlYXJjaEVuZ0Rpdi5zdHlsZS5ib3JkZXI9KHNlYXJjaFNpemUucGgycGMqMykrInB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC43KSI7Zm9yKGxldCBpPTA7aTxzZWFyY2hFbmdpbmUubGVuZ3RoO2krKyl7bWFrU2VhcmNoRW5nRGl2KGkpO31zZWFyY2hGb3JtLmFwcGVuZENoaWxkKHNlYXJjaFRleHQpO3NlYXJjaERpdi5hcHBlbmRDaGlsZChzZWFyY2hFbmdCZ2QpO3NlYXJjaERpdi5hcHBlbmRDaGlsZChzZWFyY2hGb3JtKTtzZWFyY2hCZ2QuYXBwZW5kQ2hpbGQoc2VhcmNoRGl2KTtmdW5jdGlvbiBtYWtTZWFyY2hFbmdEaXYoaWQpe3ZhciBlZGl2PXNlYXJjaEVuZ0Rpdi5jbG9uZU5vZGUoKTtlZGl2LmlubmVySFRNTD1zZWFyY2hFbmdpbmVbaWRdLnBsYWNlaG9sZGVyO2lmKGlkJTMhPTEpe2VkaXYuc3R5bGUubWFyZ2luTGVmdD0iMi41JSI7ZWRpdi5zdHlsZS5tYXJnaW5SaWdodD0iMi41JSI7fWVkaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7c2V0U2VhcmNoKGlkKTtpZihzZWFyY2hFbmdpbmVbaWRdLmluZGV4IT11bmRlZmluZWQmJi9eICokLy50ZXN0KHNlYXJjaFRleHQudmFsdWUpKXt3aW5kb3cub3BlbihzZWFyY2hFbmdpbmVbaWRdLmluZGV4KTt9ZWxzZXtzZWFyY2hTdWJtaXQoKTt9fSk7c2VhcmNoRW5nQmdkLmFwcGVuZENoaWxkKGVkaXYpO31mdW5jdGlvbiBzZWFyY2goKXt2YXIgaWQ9c2VhcmNoRW5naW5lRnVuYygpP3NlYXJjaEVuZ2luZS5sZW5ndGgtMTplbmdpbmVJRD09dW5kZWZpbmVkPzA6ZW5naW5lSUQ7c2VhcmNoRG9jQm9keS5hcHBlbmRDaGlsZChzZWFyY2hCZ2QpO3NldFNlYXJjaChpZCk7c2VhcmNoVGV4dC5mb2N1cygpO31mdW5jdGlvbiBzZWFyY2hFbmdpbmVGdW5jKCl7dmFyIHNlYUZvcm1zPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJGT1JNIik7dmFyIGJvb2w9ZmFsc2U7Zm9yKHZhciBpPTA7aTxzZWFGb3Jtcy5sZW5ndGg7aSsrKXtpZihpc1NlYXJjaEhpZGRlbihzZWFGb3Jtc1tpXSkpe2NvbnRpbnVlO312YXIgZWxlO3ZhciB0PTA7dmFyIGVsZXM9c2VhRm9ybXNbaV0ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKTtmb3IodmFyIGo9MDtqPGVsZXMubGVuZ3RoO2orKyl7aWYoIWlzU2VhcmNoSGlkZGVuKGVsZXNbal0pKXtpZihlbGVzW2pdLnR5cGU9PSJzZWFyY2gifHxlbGVzW2pdLnR5cGU9PSJ0ZXh0Iil7ZWxlPWVsZXNbal07fWlmKGVsZXNbal0udHlwZT09InNlYXJjaCJ8fGVsZXNbal0udHlwZT09InRleHQifHxlbGVzW2pdLnR5cGU9PSJwYXNzd29yZCJ8fGVsZXNbal0udHlwZT09InRlbCJ8fGVsZXNbal0udHlwZT09ImVtYWlsIil7dCsrO319fWlmKHQ9PTEmJmVsZSE9PXVuZGVmaW5lZCYmIS9eICokLy50ZXN0KGVsZS5uYW1lKSl7dmFyIGFjdGlvbj1zZWFGb3Jtc1tpXS5hY3Rpb247aWYoL2dldC9pLnRlc3Qoc2VhRm9ybXNbaV0ubWV0aG9kKSl7dmFyIHBhdHQxPW5ldyBSZWdFeHAoIlxcP3wmIitlbGUubmFtZSsiPVteJl0qIik7dmFyIHBhdHQyPW5ldyBSZWdFeHAoIiYiK2VsZS5uYW1lKyI9W14mXSoiKTtpZihwYXR0MS50ZXN0KGFjdGlvbikpe2FjdGlvbj1hY3Rpb24ucmVwbGFjZShwYXR0MSwiPyIrZWxlLm5hbWUrIj1Ac2VhS2V5Iik7fWVsc2UgaWYocGF0dDIudGVzdChhY3Rpb24pKXthY3Rpb249YWN0aW9uLnJlcGxhY2UocGF0dDIsIiYiK2VsZS5uYW1lKyI9QHNlYUtleSIpO31lbHNle2FjdGlvbis9KC9cPy8udGVzdChhY3Rpb24pPyImIjoiPyIpK2VsZS5uYW1lKyI9QHNlYUtleSI7fX12YXIga2s9dHJ1ZTtmb3IodmFyIGo9MDtqPHNlYXJjaEVuZ2luZS5sZW5ndGg7aisrKXtpZihzZWFyY2hFbmdpbmVbal0uc2VhVXJsLnJlcGxhY2UoL1wvaW5kZXhcLlthLXpBLXpdezMsNH0vLCIiKT09YWN0aW9uLnJlcGxhY2UoL1wvaW5kZXhcLlthLXpBLXpdezMsNH0vLCIvIikpe2trPWZhbHNlO2JyZWFrO319aWYoa2spe2lmKC9nZXQvaS50ZXN0KHNlYUZvcm1zW2ldLm1ldGhvZCkpe3NlYXJjaEVuZ2luZVtzZWFyY2hFbmdpbmUubGVuZ3RoXT17Im1ldGhvZCI6ImdldCIsInNlYVVybCI6YWN0aW9uLCJwbGFjZWhvbGRlciI6IumhteWGheaQnOe0oi0iK2krKHNlYXJjaEVuZ2luZS5sZW5ndGgrMSl9O31lbHNle3NlYXJjaEVuZ2luZVtzZWFyY2hFbmdpbmUubGVuZ3RoXT17Im1ldGhvZCI6c2VhRm9ybXNbaV0ubWV0aG9kLCJzZWFVcmwiOmFjdGlvbiwibmFtZSI6ZWxlLm5hbWUsInBsYWNlaG9sZGVyIjoi6aG15YaF5pCc57SiLSIraSsoc2VhcmNoRW5naW5lLmxlbmd0aCsxKX07fW1ha1NlYXJjaEVuZ0RpdihzZWFyY2hFbmdpbmUubGVuZ3RoLTEpO3NlYXJjaFRleHQudmFsdWU9ZWxlLnZhbHVlO2Jvb2w9dHJ1ZTt9fX1yZXR1cm4gYm9vbDt9ZnVuY3Rpb24gc2V0U2VhcmNoKGlkKXsJZW5naW5lSUQ9aWQ7dmFyIGJnZENoaWxkcz1zZWFyY2hFbmdCZ2QuY2hpbGRyZW47Zm9yKHZhciBpPTA7aTxiZ2RDaGlsZHMubGVuZ3RoO2krKyl7aWYoaT09ZW5naW5lSUQpe2JnZENoaWxkc1tpXS5zdHlsZS5ib3JkZXJDb2xvcj0icmdiYSgwLDI1NSwwLDEpIjt9ZWxzZXtiZ2RDaGlsZHNbaV0uc3R5bGUuYm9yZGVyQ29sb3I9InJnYmEoMjU1LDI1NSwyNTUsMC43KSI7fX1zZWFyY2hUZXh0LnBsYWNlaG9sZGVyPXNlYXJjaEVuZ2luZVtpZF0ucGxhY2Vob2xkZXI7fXZhciBzZWFyY2hQYXR0PS8oaHR0cHxodHRwc3xmdHApOlwvXC8oKFtcd1wtXStcLikrW2Etel0rfChcZHsxLDN9XC4pezN9XGR7MSwzfSkoOlxkezEsNX0pP1wvKFtcd1wtI1wuJV0rXC8pKltcd1wtI1wuJV0qKFw/KChbXHdcLSNcLiVdKz1bXHdcLSNcLiVdKiYpKltcd1wtI1wuJV0rPVtcd1wtI1wuJV0qfFtcd1wtI1wuJV0qKSk/L2ltO2Z1bmN0aW9uIHNlYXJjaFN1Ym1pdCgpe2lmKHNlYXJjaFBhdHQudGVzdChzZWFyY2hUZXh0LnZhbHVlKSl7d2luZG93Lm9wZW4oc2VhcmNoVGV4dC52YWx1ZSk7fWVsc2UgaWYoIS9eICokLy50ZXN0KHNlYXJjaFRleHQudmFsdWUpKXtpZihzZWFyY2hFbmdpbmVbZW5naW5lSURdWyJtZXRob2QiXT09ImdldCIpe3dpbmRvdy5vcGVuKHNlYXJjaEVuZ2luZVtlbmdpbmVJRF1bInNlYVVybCJdLnJlcGxhY2UoIkBzZWFLZXkiLHNlYXJjaFRleHQudmFsdWUpKTt9ZWxzZXtzZWFyY2hGb3JtLm1ldGhvZD1zZWFyY2hFbmdpbmVbZW5naW5lSURdWyJtZXRob2QiXTtzZWFyY2hGb3JtLmFjdGlvbj1zZWFyY2hFbmdpbmVbZW5naW5lSURdWyJzZWFVcmwiXTtzZWFyY2hUZXh0Lm5hbWU9c2VhcmNoRW5naW5lW2VuZ2luZUlEXVsibmFtZSJdO3NlYXJjaEZvcm0uc3VibWl0KCk7fX1lbHNle3NlYXJjaFRleHQudmFsdWU9IiI7c2VhcmNoVGV4dC5mb2N1cygpO31ldmVudC5wcmV2ZW50RGVmYXVsdCgpO31mdW5jdGlvbiBuZXh0U2VhcmNoSUQoaWQsbGVuZ3RoKXtpZCsrO2lmKGlkPT1sZW5ndGgpe2lkPTA7fXJldHVybiBpZDt9dmFyIHNlYXJjaE9sZElubmVySGVpZ2h0PWlubmVySGVpZ2h0O2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9PSJjb21wbGV0ZSIpe3NlYXJjaE9sZElubmVySGVpZ2h0PWlubmVySGVpZ2h0O31lbHNle3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3NlYXJjaE9sZElubmVySGVpZ2h0PWlubmVySGVpZ2h0O30pO31mdW5jdGlvbiBpc1NlYXJjaEhpZGRlbihlbGUpe2lmKGVsZS5zY3JvbGxXaWR0aCE9MCYmZWxlLnNjcm9sbEhlaWdodCE9MCl7cmV0dXJuIGZhbHNlO31yZXR1cm4gdHJ1ZTt9c2VhcmNoQmdkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3NlYXJjaERvY0JvZHkucmVtb3ZlQ2hpbGQoc2VhcmNoQmdkKTtpZihzZWFyY2hUZXh0LnZhbHVlPT1tZW51TG9naW5TdHImJm1lbnVGdW5jLmxvZ2luKCkpe3JldHVybiAwO31tZW51RGVmU3RhdGUoKTtpZihzZWFyY2hUZXh0LnZhbHVlPT1tZW51UXVpdE1vZGUpe3dlYlF1aXRESVkoKTt9ZWxzZSBpZihzZWFyY2hUZXh0LnZhbHVlPT1tZW51V2F0Y2hUdil7d2F0Y2hWaWRlbygpO31lbHNlIGlmKHNlYXJjaFRleHQudmFsdWU9PW1lbnVSZWFkTm92YWwpe21lbnVOb3ZhbFJlYWQoKTt9ZWxzZSBpZihzZWFyY2hUZXh0LnZhbHVlPT1tZW51UmVhZENvbWljKXttZW51Q29taWNSZWFkKCk7fX0pO3ZhciBtZWRpYVBhcnNlRG9jQm9keT0oZG9jdW1lbnQuYm9keT09bnVsbD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuYm9keSk7dmFyIG1lZGlhUGFyc2VTaXplPXsicGgycGMiOmlubmVyV2lkdGgvMzYwLCJmb250IjoyNH07dmFyIHZpZGVvUGFyc2VVcmw9W1siaHR0cDovL3YuZDl5Lm5ldC92aXAvP3VybD0iLCLnrKzkuZ3lvbHpmaIiXSxbImh0dHBzOi8vangucmRoay5uZXQvP3Y9IiwiSEvop6PmnpAiXSxbImh0dHBzOi8vdmlwLmJsamlleC5jb20vP3Y9IiwiQkzop6PmnpAiXSxbImh0dHBzOi8vanguYndjeHkuY29tLz92PSIsIuWIneW/g+inhumikSJdLFsiaHR0cDovL21pYW9taWFvYWkuY24vdmlwL3BsYXkuaHRtbD91cmw9IiwiTU1BIl0sWyJodHRwczovL2FwaS5zaWd1anguY29tLz91cmw9Iiwi5oCd5Y+kIl0sWyJodHRwczovL3oxLm0xOTA3LmNuLz9qeD0iLCLng63lv4Pnur/ot68xIl0sWyJodHRwOi8vanguNTk4MTEwLmNvbS92LzEucGhwP3VybD0iLCLng63lv4Pnur/ot68yIl0sWyJodHRwczovL3d3dy4xNzE3eXVuLmNvbS9qeC90eS5waHA/dXJsPSIsIjE3MTfkupEiXSxbImh0dHBzOi8vdmlwLmphb3l1bi5jb20vaW5kZXgucGhwP3VybD0iLCLnroDlgrIiXSxbImh0dHBzOi8vanguNjE4Zy5jb20vP3VybD0iLCLnmb7ln58iXSxbImh0dHBzOi8vd3d3Lm15eGluLnRvcC9qeC9hcGkvP3VybD0iLCLpu5HnsbMiXSxbImh0dHBzOi8vamlleGkuMDcxODExLmNjL2p4LnBocD91cmw9Iiwi55+z5LqRIl0sWyJodHRwczovL2p4LndzbG1mLmNvbS8/dXJsPSIsIuWHoeWHoSJdLFsiaHR0cHM6Ly9qeC5keS1qeC5jb20vP3VybD0iLCLpq5jnp5HmioAiXSxbImh0dHBzOi8vdmlwLm1wb3MucmVuL3YvP3VybD0iLCLkurrkuroiXSxbImh0dHBzOi8vanFhYWEuY29tL2p4LnBocD91cmw9Iiwi6YeR5qGlIl0sWyJodHRwczovL2p4LjU5ODExMC5jb20vaW5kZXgucGhwP3VybD0iLCLpgJrnlKgiXSxbImh0dHBzOi8vanguZm85Ny5jbi8/dXJsPSIsIuaYn+epuiJdLFsiaHR0cHM6Ly9qeC5pdml0by5jbi8/dXJsPSIsIue7tOWkmiJdLFsiaHR0cHM6Ly9hcGkuOTI3anguY29tL3ZpcC8/dXJsPSIsIjkyNyJdLFsiaHR0cHM6Ly9hcGkudHY5MjAuY29tL3ZpcC8/dXJsPSIsInR2OTIwIl0sWyJodHRwczovL3d3dy5rYTYxYi5jbi9qeC5waHA/dXJsPSIsIjg5Il0sWyJodHRwczovL2FwaS5saGgubGEvdmlwLz91cmw9Iiwi6LGq5Y2O5ZWmIl0sWyJodHRwczovL2FwaS5zdW1pbmd5cy5jb20vaW5kZXgucGhwP3VybD0iLCLlrr/lkb0iXSxbImh0dHBzOi8vYXBpLjhianguY24vP3VybD0iLCI4QiJdLFsiaHR0cHM6Ly92LnFpYW55aWNwLmNvbS92LnBocD91cmw9Iiwi5Y2D5b+GIl0sWyJodHRwczovL21jbmNuLmNuLz91cmw9Iiwi5qKm5Z+OIl0sWyJodHRwczovL2p4LmY0MS5jYy8/dXJsPSIsIjQxIl0sWyJodHRwczovL3d3dy5ja21vdi52aXAvYXBpLnBocD91cmw9IiwiY2ttb3YiXSxbImh0dHBzOi8vangubXcwLmNjLz91cmw9Iiwi5YeJ5Z+OIl0sWyJodHRwczovL3d3dy4zM3RuLmNuLz91cmw9IiwiMzN0Il0sWyJodHRwczovL2p4LjFmZjEuY24vP3VybD0iLCLniLjmr5TkupEiXSxbImh0dHBzOi8vanguMDAwMTgwLnRvcC9qeC8/dXJsPSIsIjE4MCJdLFsiaHR0cHM6Ly9weS5oYTEyLnh5ei9zb3MvaW5kZXgucGhwP3VybD0iLCJoYTEyIl1dO3ZhciB2aWRlb1BhcnNlQmdkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ZhciB2aWRlb1BhcnNlRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ZhciB2aWRlb1BhcnNlVXJsRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ZpZGVvUGFyc2VCZ2Quc3R5bGU9InBvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5OTk5OTk5OTk5O3RvcDowcHg7bGVmdDowcHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0byI7dmFyIHZpZGVvUGFyc2VTY3JvbGxUb3A9MDt2aWRlb1BhcnNlQmdkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3ZpZGVvUGFyc2VTY3JvbGxUb3A9dmlkZW9QYXJzZUJnZC5zY3JvbGxUb3A7bWVkaWFQYXJzZURvY0JvZHkucmVtb3ZlQ2hpbGQodmlkZW9QYXJzZUJnZCk7bWVudURlZlN0YXRlKCk7fSk7dmlkZW9QYXJzZURpdi5zdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjY1JTtsZWZ0OjEwJTtib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6ODAlOyI7dmlkZW9QYXJzZURpdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtldmVudC5zdG9wUHJvcGFnYXRpb24oKTt9KTt2aWRlb1BhcnNlVXJsRGl2LnN0eWxlPSJib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6MTAwJTtwYWRkaW5nOjUlO21hcmdpbjowcHg7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojOWJhZmNjO2JhY2tncm91bmQtY29sb3I6IzI2MmYzZDtib3gtc2hhZG93OjBweCAwcHggMTBweCAjMDAwMDAwOyI7dmlkZW9QYXJzZVVybERpdi5zdHlsZS5ib3JkZXJSYWRpdXM9aW5uZXJXaWR0aCo1LzEwMCsicHgiO3ZpZGVvUGFyc2VVcmxEaXYuc3R5bGUuZm9udFNpemU9bWVkaWFQYXJzZVNpemUucGgycGMqbWVkaWFQYXJzZVNpemUuZm9udCsicHgiO2ZvcihsZXQgaT0wO2k8dmlkZW9QYXJzZVVybC5sZW5ndGg7aSsrKXttYWtWaWRlb1VybERpdihpKTt9dmlkZW9QYXJzZUJnZC5hcHBlbmRDaGlsZCh2aWRlb1BhcnNlRGl2KTtmdW5jdGlvbiBtZWRpYVBhcnNlKCl7bWVkaWFQYXJzZURvY0JvZHkuYXBwZW5kQ2hpbGQodmlkZW9QYXJzZUJnZCk7dmlkZW9QYXJzZUJnZC5zY3JvbGxCeSgwLHZpZGVvUGFyc2VTY3JvbGxUb3ApO31mdW5jdGlvbiBtYWtWaWRlb1VybERpdihpZCl7aWYodmlkZW9QYXJzZVVybFtpZF0ubGVuZ3RoPT0yKXtsZXQgdmRpdj12aWRlb1BhcnNlVXJsRGl2LmNsb25lTm9kZSgpO3ZkaXYudGl0bGU9dmlkZW9QYXJzZVVybFtpZF1bMF07dmRpdi5pbm5lckhUTUw9dmlkZW9QYXJzZVVybFtpZF1bMV07dmRpdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cub3Blbih0aGlzLnRpdGxlK2xvY2F0aW9uLmhyZWYpO30pO3ZpZGVvUGFyc2VEaXYuYXBwZW5kQ2hpbGQodmRpdik7fX12YXIgbG9naW5Eb2NCb2R5PShkb2N1bWVudC5ib2R5PT1udWxsP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5ib2R5KTt2YXIgbG9naW5TaXplPXsicGgycGMiOmlubmVyV2lkdGgvMzYwLCJmb250IjoyNH07bG9naW5Eb2NCb2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsb2dpbkF1dG9GaWxsKTt2YXIgbG9naW5CZ2Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIGxvZ2luRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3ZhciBsb2dpbk5hbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTs7bG9naW5OYW1lLnN0eWxlPSJkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6aW5oZXJpdDt3aWR0aDoxMDAlO3BhZGRpbmc6MyUgOCU7Ym9yZGVyLXN0eWxlOm5vbmU7bWFyZ2luLWJvdHRvbToyMHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOndoaXRlO2ZvbnQtd2VpZ2h0OmJvbGQ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7Ijtsb2dpbk5hbWUuc3R5bGUuYm9yZGVyUmFkaXVzPWlubmVyV2lkdGgqNi8xMDArInB4Ijtsb2dpbk5hbWUuc3R5bGUuZm9udFNpemU9bG9naW5TaXplLnBoMnBjKmxvZ2luU2l6ZS5mb250KyJweCI7bG9naW5OYW1lLnN0eWxlLmJvcmRlckJvdHRvbT0obG9naW5TaXplLnBoMnBjKjUpKyJweCBzb2xpZCByZWQiO3ZhciBsb2dpblBhc3N3b3JkPWxvZ2luTmFtZS5jbG9uZU5vZGUoKTt2YXIgbG9naW5EZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bG9naW5EZWwuc3R5bGU9ImZsb2F0OmxlZnQ7Ym94LXNpemluZzppbmhlcml0O3dpZHRoOjIyJTtwYWRkaW5nOjEuNSUgMiU7bWFyZ2luOjBweCAyLjUlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6d2hpdGU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDg4LDE0MSwxMzQsMS4wKTsiO2xvZ2luRGVsLnN0eWxlLmJvcmRlclJhZGl1cz1pbm5lcldpZHRoKjIvMTAwKyJweCI7bG9naW5EZWwuc3R5bGUuZm9udFNpemU9KGxvZ2luU2l6ZS5waDJwYypsb2dpblNpemUuZm9udCoyLzMpKyJweCI7bG9naW5EZWwuc3R5bGUuYm9yZGVyPShsb2dpblNpemUucGgycGMqMykrInB4IHNvbGlkIGJsdWUiO3ZhciBsb2dpblB3ZFNob3c9bG9naW5EZWwuY2xvbmVOb2RlKCk7dmFyIGxvZ2luRmlsbD1sb2dpbkRlbC5jbG9uZU5vZGUoKTtsb2dpbkJnZC5zdHlsZT0icG9zaXRpb246Zml4ZWQ7ei1pbmRleDo5OTk5OTk5OTk5OTk5OTk7dG9wOjBweDtsZWZ0OjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsiO2xvZ2luQmdkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpO2xvZ2luRG9jQm9keS5yZW1vdmVDaGlsZChsb2dpbkJnZCk7ZGVmU3RhdGUoKTt9KTtsb2dpbkRpdi5zdHlsZT0icG9zaXRpb246cmVsYXRpdmU7bGVmdDoxMCU7dG9wOjQwJTtib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6ODAlOyI7bG9naW5EaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7fSk7bG9naW5OYW1lLnR5cGU9InRleHQiO2xvZ2luUGFzc3dvcmQudHlwZT0icGFzc3dvcmQiO3ZhciBsb2dpblVSST1sb2NhdGlvbi5ocmVmLnJlcGxhY2UobG9jYXRpb24uc2VhcmNoLCIiKTtsb2dpbkRlbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2dpblVSSSkpe2lmKGNvbmZpcm0oIuS9oOehruWumuimgeWIoOmZpOS/neWtmOeahOWvhueggeWQl++8nyIpKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShsb2dpblVSSSk7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obG9naW5VUkkrIl91c2VyX25hbWUiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShsb2dpblVSSSsiX3VzZXJfcGFzc3dvcmQiKTtsb2dpbk5hbWUudmFsdWU9IiI7bG9naW5QYXNzd29yZC52YWx1ZT0iIjt0aGlzLmlubmVySFRNTD0i5YWz6ZetIjt9fWVsc2V7bG9naW5Eb2NCb2R5LnJlbW92ZUNoaWxkKGxvZ2luQmdkKTtkZWZTdGF0ZSgpO319KTtsb2dpblB3ZFNob3cuc3R5bGUud2lkdGg9IjQxJSI7bG9naW5Qd2RTaG93LmlubmVySFRNTD0i5p+l55yL5a+G56CBIjtsb2dpblB3ZFNob3cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7aWYobG9naW5QYXNzd29yZC50eXBlPT0icGFzc3dvcmQiKXtsb2dpblBhc3N3b3JkLnR5cGU9InRleHQiO2lmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKSl7dGhpcy5pbm5lckhUTUw9IumHjee9ruWvhueggSI7fWVsc2V7dGhpcy5pbm5lckhUTUw9IumakOiXj+WvhueggSI7fX1lbHNle2lmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKSl7bG9naW5OYW1lLnZhbHVlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9uYW1lIik7bG9naW5QYXNzd29yZC52YWx1ZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2dpblVSSSsiX3VzZXJfcGFzc3dvcmQiKTt9bG9naW5QYXNzd29yZC50eXBlPSJwYXNzd29yZCI7dGhpcy5pbm5lckhUTUw9Iuafpeeci+WvhueggSI7fX0pO2xvZ2luRmlsbC5pbm5lckhUTUw9IuWhq+WGmSI7bG9naW5GaWxsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKGxvZ2luTmFtZS52YWx1ZT09IiJ8fGxvZ2luUGFzc3dvcmQudmFsdWU9PSIiKXtsZXQgc3RyPSLkvaDnoa7lrprloavlhpnlkJfvvJ/lroPlsIbkuI3kvJrooqvkv53lrZjvvIFcbui0puWPt++8miIrbG9naW5OYW1lLnZhbHVlKyJcbuWvhuegge+8miIrbG9naW5QYXNzd29yZC52YWx1ZTtpZihjb25maXJtKHN0cikpe2lmKCFsb2dpblVzZXJGaWxsKCkpe2FsZXJ0KCLnlYzpnaLlj5HnlJ/lj5jljJbvvIzml6Dms5XloavlhYXlr4bnoIHvvIEiKTt9fWVsc2V7cmV0dXJuIDA7fX1lbHNle2lmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKSl7dmFyIG9sZF9uYW1lPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9uYW1lIik7dmFyIG9sZF9wYXNzd29yZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2dpblVSSSsiX3VzZXJfcGFzc3dvcmQiKTtpZighKG9sZF9uYW1lPT1sb2dpbk5hbWUudmFsdWUmJm9sZF9wYXNzd29yZD09bG9naW5QYXNzd29yZC52YWx1ZSkpe3ZhciBzdHI9IuaYr+WQpuS/ruaUueWvhueggeW5tuWhq+WGme+8mlxu6LSm5Y+377yaIitvbGRfbmFtZSsiPj4+Iitsb2dpbk5hbWUudmFsdWUrIlxu5a+G56CB77yaIitvbGRfcGFzc3dvcmQrIj4+PiIrbG9naW5QYXNzd29yZC52YWx1ZTtpZihjb25maXJtKHN0cikpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9uYW1lIixsb2dpbk5hbWUudmFsdWUpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9wYXNzd29yZCIsbG9naW5QYXNzd29yZC52YWx1ZSk7fWVsc2V7cmV0dXJuIDA7fX19ZWxzZXtsZXQgc3RyPSLmmK/lkKborrDkvY/lr4bnoIHlubbloavlhpnvvJpcbui0puWPt++8miIrbG9naW5OYW1lLnZhbHVlKyJcbuWvhuegge+8miIrbG9naW5QYXNzd29yZC52YWx1ZTtpZihjb25maXJtKHN0cikpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvZ2luVVJJLHRydWUpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9uYW1lIixsb2dpbk5hbWUudmFsdWUpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9wYXNzd29yZCIsbG9naW5QYXNzd29yZC52YWx1ZSk7fWVsc2V7cmV0dXJuIDA7fX1pZighbG9naW5Vc2VyRmlsbCgpKXthbGVydCgi55WM6Z2i5Y+R55Sf5Y+Y5YyW77yM5peg5rOV5aGr5YWF5a+G56CB77yBIik7fX1sb2dpbkRvY0JvZHkucmVtb3ZlQ2hpbGQobG9naW5CZ2QpO2RlZlN0YXRlKCk7fSk7bG9naW5EaXYuYXBwZW5kQ2hpbGQobG9naW5OYW1lKTtsb2dpbkRpdi5hcHBlbmRDaGlsZChsb2dpblBhc3N3b3JkKTtsb2dpbkRpdi5hcHBlbmRDaGlsZChsb2dpbkRlbCk7bG9naW5EaXYuYXBwZW5kQ2hpbGQobG9naW5Qd2RTaG93KTtsb2dpbkRpdi5hcHBlbmRDaGlsZChsb2dpbkZpbGwpO2xvZ2luQmdkLmFwcGVuZENoaWxkKGxvZ2luRGl2KTtmdW5jdGlvbiBhdXRvTG9naW4oKXt2YXIgaXM9aXNMb2dpbkZhY2UoZG9jdW1lbnQpO2lmKGlzLmxlbmd0aD4wKXtsb2dpbk5hbWUucGxhY2Vob2xkZXI9aXNbMF0ucGxhY2Vob2xkZXI9PSIiPyLnlKjmiLflkI0iOmlzWzBdLnBsYWNlaG9sZGVyO2xvZ2luUGFzc3dvcmQucGxhY2Vob2xkZXI9aXNbMV0ucGxhY2Vob2xkZXI9PSIiPyLlr4bnoIEiOmlzWzFdLnBsYWNlaG9sZGVyO2xvZ2luTmFtZS52YWx1ZT1pc1swXS52YWx1ZTtsb2dpblBhc3N3b3JkLnZhbHVlPWlzWzFdLnZhbHVlO2lmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKSl7bG9naW5EZWwuaW5uZXJIVE1MPSLliKDpmaQiO2xvZ2luTmFtZS52YWx1ZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2dpblVSSSsiX3VzZXJfbmFtZSIpO2xvZ2luUGFzc3dvcmQudmFsdWU9bG9jYWxTdG9yYWdlLmdldEl0ZW0obG9naW5VUkkrIl91c2VyX3Bhc3N3b3JkIik7fWVsc2V7bG9naW5EZWwuaW5uZXJIVE1MPSLlhbPpl60iO31sb2dpbkRvY0JvZHkuYXBwZW5kQ2hpbGQobG9naW5CZ2QpO3JldHVybiB0cnVlO31hbGVydCgi5b2T5YmN6aG16Z2i5LiN5piv55m75b2V55WM6Z2i77yBXG7lpoLmnpzor4bliKvmnInor6/vvIzor7fop4HosIXwn5izIik7cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBsb2dpbkF1dG9GaWxsKCl7aWYobG9jYWxTdG9yYWdlLmdldEl0ZW0obG9naW5VUkkpKXtpZighbG9naW5Vc2VyRmlsbCgpKXtzZXRUaW1lb3V0KGxvZ2luVXNlckZpbGwsMTAwKTt9fWxvZ2luRG9jQm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsbG9naW5BdXRvRmlsbCk7fWZ1bmN0aW9uIGxvZ2luVXNlckZpbGwoKXt2YXIgaXM9aXNMb2dpbkZhY2UoZG9jdW1lbnQpO2lmKGlzLmxlbmd0aD4wKXtpc1swXS52YWx1ZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2dpblVSSSsiX3VzZXJfbmFtZSIpO2lzWzFdLnZhbHVlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvZ2luVVJJKyJfdXNlcl9wYXNzd29yZCIpO3JldHVybiB0cnVlO31yZXR1cm4gZmFsc2U7fWZ1bmN0aW9uIGlzTG9naW5GYWNlKGRvYyl7dmFyIGVsZXM9ZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoImlmcmFtZSxpbnB1dCIpO2Zvcih2YXIgaT0wO2k8ZWxlcy5sZW5ndGg7aSsrKXtpZihpc0xvZ2luSGlkZGVuKGVsZXNbaV0pKXtjb250aW51ZTt9aWYoZWxlc1tpXS50YWdOYW1lPT0iSUZSQU1FIil7dmFyIGlmcmFEb2M9ZWxlc1tpXS5jb250ZW50RG9jdW1lbnQ7aWYoaWZyYURvYyE9bnVsbCl7dmFyIHJlc3VsdD1pc0xvZ2luRmFjZShpZnJhRG9jKTtpZihyZXN1bHQubGVuZ3RoPjApe3JldHVybiByZXN1bHQ7fX19ZWxzZSBpZihlbGVzW2ldLnR5cGU9PSJwYXNzd29yZCImJmVsZXNbaV0uc2Nyb2xsSGVpZ2h0PjIpe2Zvcih2YXIgaj1pLTE7aj49MDtqLS0pe2lmKGVsZXNbal0udGFnTmFtZT09IklOUFVUIiYmKGVsZXNbal0udHlwZT09InRleHQifHxlbGVzW2pdLnR5cGU9PSJ0ZWwifHxlbGVzW2pdLnR5cGU9PSJlbWFpbCIpJiYhaXNMb2dpbkhpZGRlbihlbGVzW2pdKSl7cmV0dXJuIFtlbGVzW2pdLGVsZXNbaV1dO319fX1yZXR1cm4gW107fWZ1bmN0aW9uIGlzTG9naW5IaWRkZW4oZWxlKXtpZihlbGUuc2Nyb2xsV2lkdGghPTAmJmVsZS5zY3JvbGxIZWlnaHQhPTApe3JldHVybiBmYWxzZTt9cmV0dXJuIHRydWU7fW1lbnVEb2NCb2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsb2dpbkF1dG9GaWxsKTt2YXIgd2ViUGFnZVJ1bGVzPXsidXJsIjoiL1suXFxyXFxuXSsvaSIsInR5cGUiOiJmb2xkZXIiLCJjdXJyZW50Ijp7InVybCI6Ii8uKy8iLCJ0eXBlIjoicnVsZSIsImFkZHJ1bGUiOnsiZWxlbWVudCI6InRpdGxlIiwiY3NzIjoibWV0YSxsaW5rW2hyZWYkPVwiLmNzc1wiXSxzdHlsZSIsImpzIjoic2NyaXB0In0sInJlbXJ1bGUiOnt9fSwid2F0Y2hUViI6eyJ1cmwiOiIvLisvIiwidHlwZSI6InJ1bGUiLCJhZGRydWxlIjp7ImVsZW1lbnQiOiJ2aWRlbyIsImNzcyI6Im1ldGEsbGlua1tocmVmJD1cIi5jc3NcIl0sc3R5bGUifSwicmVtcnVsZSI6e319LCJub3ZhbCI6eyJ1cmwiOiIvLisvIiwidHlwZSI6ImZvbGRlciIsInd3dy5ib29rdHh0LmNvbSI6eyJ1cmwiOiIvaHR0cHM6XFwvXFwvd3d3XFwuYm9va3R4dFxcLmNvbVxcLy8iLCJ0eXBlIjoiZm9sZGVyIiwic2VhcmNoIjp7InVybCI6Ii9odHRwczpcXC9cXC93d3dcXC5ib29rdHh0LmNvbVxcL3NlYXJjaC5waHBcXD9rZXl3b3JkPS8iLCJ0eXBlIjoicnVsZSIsImFkZHJ1bGUiOnsiZWxlbWVudCI6Ii5yZXN1bHQtbGlzdCAucmVzdWx0LWl0ZW0ucmVzdWx0LWdhbWUtaXRlbSIsImNzcyI6Im1ldGEsbGlua1tocmVmJD1cIi5jc3NcIl0sc3R5bGUifSwicmVtcnVsZSI6e319LCJjaGFwdGVyIjp7InVybCI6Ii9odHRwczpcXC9cXC93d3dcXC5ib29rdHh0LmNvbVxcL1xcZCtfXFxkK1xcLykvIiwidHlwZSI6InJ1bGUiLCJhZGRydWxlIjp7ImVsZW1lbnQiOiIuYm94X2NvbiwjbGlzdCIsImNzcyI6Im1ldGEsbGlua1tocmVmJD1cIi5jc3NcIl0sc3R5bGUifSwicmVtcnVsZSI6eyJlbGVtZW50IjoiI2xpc3R0aiJ9fSwiY29udGVudCI6eyJ1cmwiOiIvaHR0cHM6XFwvXFwvd3d3XFwuYm9va3R4dC5jb21cXC9cXGQrX1xcZCtcXC9cXGQrXFwuaHRtbC8iLCJ0eXBlIjoicnVsZSIsImFkZHJ1bGUiOnsiZWxlbWVudCI6Ii5jb250ZW50X3JlYWQiLCJjc3MiOiJtZXRhLGxpbmtbaHJlZiQ9XCIuY3NzXCJdLHN0eWxlIiwianMiOiJzY3JpcHRbc3JjXSJ9LCJyZW1ydWxlIjp7ImVsZW1lbnQiOiIuYm9va25hbWUgLmxtIiwianMiOiJzY3JpcHRbc3JjKj1cIm0yLmpzXCJdIn19fSwibS5ib29rdHh0LmNvbSI6eyJ1cmwiOiIvaHR0cHM6XFwvXFwvbVxcLmJvb2t0eHRcXC5jb21cXC8vIiwidHlwZSI6ImZvbGRlciIsInNlYXJjaCI6eyJ1cmwiOiIvaHR0cHM6XFwvXFwvbVxcLmJvb2t0eHQuY29tXFwvc2VhcmNoLnBocFxcP2tleXdvcmQ9LyIsInR5cGUiOiJydWxlIiwiYWRkcnVsZSI6eyJlbGVtZW50IjoiLnJlc3VsdC1saXN0IC5yZXN1bHQtaXRlbS5yZXN1bHQtZ2FtZS1pdGVtIiwiY3NzIjoibWV0YSxsaW5rW2hyZWYkPVwiLmNzc1wiXSxzdHlsZSJ9LCJyZW1ydWxlIjp7fX0sImNoYXB0ZXIiOnsidXJsIjoiL2h0dHBzOlxcL1xcL21cXC5ib29rdHh0LmNvbVxcL3dhcGJvb2tcXC8oXFxkK3xcXGQrXFwvaW5kZXhfXFxkKylcXC5odG1sLyIsInR5cGUiOiJydWxlIiwiYWRkcnVsZSI6eyJlbGVtZW50IjoiLmNvdmVyLC5pbnRybywuY2hhcHRlciIsImNzcyI6Im1ldGEsbGlua1tocmVmJD1cIi5jc3NcIl0sc3R5bGUifSwicmVtcnVsZSI6eyJlbGVtZW50IjoiLmFibHVtX3JlYWQifX0sImNvbnRlbnQiOnsidXJsIjoiL2h0dHBzOlxcL1xcL21cXC5ib29rdHh0LmNvbVxcL3dhcGJvb2tcXC9cXGQrX1xcZCsoX1xcZCspP1xcLmh0bWwvIiwidHlwZSI6InJ1bGUiLCJhZGRydWxlIjp7ImVsZW1lbnQiOiIuaGVhZCwubnJfc2V0LC5ucl90aXRsZSwubnJfcGFnZSwubnJfbnIiLCJjc3MiOiJtZXRhLGxpbmtbaHJlZiQ9XCIuY3NzXCJdLHN0eWxlIiwianMiOiJzY3JpcHRbc3JjKj1cInJlYWRlclwiXSJ9LCJyZW1ydWxlIjp7ImVsZW1lbnQiOiIubnJfbnIgLmNoYXB0ZXItcGFnZS1pbmZvLGJyOm50aC1jaGlsZCgybisxKSJ9fX19LCJjb21pYyI6eyJ1cmwiOiIvLisvIiwidHlwZSI6ImZvbGRlciIsIm0uYm5tYW5odWEuY29tIjp7InVybCI6Ii9odHRwczpcXC9cXC9tXFwuYm5tYW5odWFcXC5jb21cXC8vIiwidHlwZSI6ImZvbGRlciIsInNlYXJjaCI6eyJ1cmwiOiIvaHR0cHM6XFwvXFwvbVxcLmJubWFuaHVhXFwuY29tXFwvaW5kZXhcXC5waHBcXD9tPXZvZC1zZWFyY2gvIiwidHlwZSI6InJ1bGUiLCJhZGRydWxlIjp7ImVsZW1lbnQiOiJ0aXRsZSwudGJveCwubWVudSIsImNzcyI6Im1ldGEsbGlua1tocmVmKj1cIm0uYm5tYW5odWEuY29tXCJdIiwianMiOiJzY3JpcHRbdHlwZT1cImFwcGxpY2F0aW9uL2xkK2pzb25cIl0ifSwicmVtcnVsZSI6e319LCJjaGFwdGVyIjp7InVybCI6Ii9odHRwczpcXC9cXC9tXFwuYm5tYW5odWFcXC5jb21cXC9jb21pY1xcL1xcZCtcXC5odG1sLyIsInR5cGUiOiJydWxlIiwiYWRkcnVsZSI6eyJlbGVtZW50IjoidGl0bGUsLmRib3gsLnRib3gudGFicyIsImNzcyI6Im1ldGEsbGlua1tocmVmKj1cIm0uYm5tYW5odWEuY29tXCJdIiwianMiOiJzY3JpcHRbdHlwZT1cImFwcGxpY2F0aW9uL2xkK2pzb25cIl0ifSwicmVtcnVsZSI6e319LCJjb250ZW50Ijp7InVybCI6Ii9odHRwczpcXC9cXC9tXFwuYm5tYW5odWFcXC5jb21cXC9jb21pY1xcL1xcZCtcXC9cXGQrXFwuaHRtbC8iLCJ0eXBlIjoicnVsZSIsImFkZHJ1bGUiOnsiZWxlbWVudCI6Ii5ib190aXQsZGl2K2ltZywuYm9fbmF2IiwiY3NzIjoibWV0YSxsaW5rW2hyZWYqPVwibS5ibm1hbmh1YS5jb21cIl0iLCJqcyI6InNjcmlwdCJ9LCJyZW1ydWxlIjp7ImpzIjoic2NyaXB0W3NyYyo9XCJ3b2ppdTEwXCJdLHNjcmlwdFtzcmMqPVwiL2JkL1wiXSxzY3JpcHRbc3JjKj1cIm1pcGNkblwiXSxzY3JpcHRbYXN5bmNdLHNjcmlwdFtzcmMqPVwicHVzaFwiXSxzY3JpcHRbc3JjKj1cInZpZGVvXCJdIn19fX19O2Z1bmN0aW9uIHdlYkV2b2x1dGlvbihtb2RlLGFkZGl0aW9uLHJ1bGUsZ29hbCl7CWlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PSJjb21wbGV0ZSIpe3B1cmlmeVdlYlBhZ2UobW9kZSxhZGRpdGlvbixydWxlLGdvYWwpO31lbHNle2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09ImludGVyYWN0aXZlIil7cHVyaWZ5V2ViUGFnZShtb2RlLGFkZGl0aW9uLHJ1bGUsZ29hbCk7fX0pO319ZnVuY3Rpb24gd2ViUXVpdERJWSgpe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3ZWJNb2RlIik7fWZ1bmN0aW9uIHB1cmlmeVdlYlBhZ2UobW9kZSxhZGRpdGlvbixydWxlLGdvYWwpe2RvY3VtZW50Lm5vcm1hbGl6ZSgpO2dvYWw9KGdvYWw9PXVuZGVmaW5lZD8iX2JsYW5rIjpnb2FsKTtpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2ViTW9kZSIpPT1udWxsKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2ViTW9kZSIsbW9kZSk7fXZhciBkb2M9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsb25lTm9kZSh0cnVlKTt2YXIgcm9vdE5vZGU9cnVuV2ViUGFnZVJ1bGUoZG9jLHJ1bGUpO2lmKHJvb3ROb2RlIT1mYWxzZSl7dmFyIHdpbj13aW5kb3cub3BlbigiIixnb2FsKTt3aW4uZG9jdW1lbnQub3BlbigidGV4dC9odG1sIiwicmVwbGFjZSIpO3dpbi5kb2N1bWVudC53cml0ZShyb290Tm9kZS5pbm5lckhUTUwpO2FkZGl0aW9uPSI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4oZnVuY3Rpb24oKXtldmFsKGRlY29kZVVSSSh3aW5kb3cuYXRvYihcIiIrYWRkaXRpb24rIlwiKSkpO30pKCk7PC9zY3JpcHQ+Ijt3aW4uZG9jdW1lbnQud3JpdGUoYWRkaXRpb24pO3dpbi5kb2N1bWVudC5jbG9zZSgpO3JldHVybiB0cnVlO31lbHNle2FsZXJ0KCLop4TliJnmnInor68h5oiW6L+Y5rKh5pyJ6YCC6YWN6K+l572R6aG155qE6KeE5YiZIik7cmV0dXJuIGZhbHNlO319ZnVuY3Rpb24gcnVuV2ViUGFnZVJ1bGUoZG9jLHJ1bGVzKXt2YXIgYWRkQ3NzRmluZGVyPWFuYWx5c2lzV2ViUGFnZVJ1bGUocnVsZXMsImFkZCIpO3ZhciByZW1Dc3NGaW5kZXI9YW5hbHlzaXNXZWJQYWdlUnVsZShydWxlcywicmVtIik7dHJ5e3ZhciBhZGROb2RlcztpZihhZGRDc3NGaW5kZXIhPSIiKXthZGROb2Rlcz1kb2MucXVlcnlTZWxlY3RvckFsbChhZGRDc3NGaW5kZXIuc3Vic3RyaW5nKDEpKTt9aWYoYWRkTm9kZXMhPXVuZGVmaW5lZCl7dmFyIHJlbU5vZGVzO2lmKHJlbUNzc0ZpbmRlciE9IiIpe3JlbU5vZGVzPWRvYy5xdWVyeVNlbGVjdG9yQWxsKHJlbUNzc0ZpbmRlci5zdWJzdHJpbmcoMSkpO31yZXR1cm4gd2ViRXh0cmFjdE5vZGUoZG9jLGFkZE5vZGVzLHJlbU5vZGVzLDApO31yZXR1cm4gZmFsc2U7fWNhdGNoKGVycil7YWxlcnQoZXJyKTtyZXR1cm4gZmFsc2U7fX1mdW5jdGlvbiBhbmFseXNpc1dlYlBhZ2VSdWxlKHJ1bGVzLGJvb2wpe3ZhciBjc3NGaW5kZXI9IiI7dmFyIGlzTWF0Y2g9ZXZhbChydWxlcy51cmwpLnRlc3QobG9jYXRpb24uaHJlZik7aWYoaXNNYXRjaCl7aWYocnVsZXMudHlwZT09ImZvbGRlciIpe2Zvcih2YXIgcnVsZSBpbiBydWxlcyl7aWYocnVsZSE9InVybCImJnJ1bGUhPSJ0eXBlIil7Y3NzRmluZGVyKz1hbmFseXNpc1dlYlBhZ2VSdWxlKHJ1bGVzW3J1bGVdLGJvb2wpO319fWVsc2V7Zm9yKHZhciBydWxlIGluIHJ1bGVzW2Jvb2wrInJ1bGUiXSl7Y3NzRmluZGVyKz1ydWxlc1tib29sKyJydWxlIl1bcnVsZV09PSIiPyIiOiIsIitydWxlc1tib29sKyJydWxlIl1bcnVsZV07fX19cmV0dXJuIGNzc0ZpbmRlcjt9ZnVuY3Rpb24gd2ViRXh0cmFjdE5vZGUoZG9jLGFkZE5vZGVzLHJlbU5vZGVzLGRlcHRoKXt2YXIgZG9jMjtpZihkZXB0aD09MCl7ZG9jMj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2MyLmFwcGVuZENoaWxkKGRvYy5jbG9uZU5vZGUoKSk7fWVsc2V7ZG9jMj1kb2MuY2xvbmVOb2RlKCk7fXZhciBpc0FwcGVuZD1mYWxzZTt2YXIgY2hpbGQ9ZG9jLmZpcnN0Q2hpbGQ7d2hpbGUoY2hpbGQhPW51bGwpe2lmKCF3ZWJOb2RlSW5MaXN0KGNoaWxkLGFkZE5vZGVzKSl7aWYoY2hpbGQuaGFzQ2hpbGROb2RlcygpKXt2YXIgY2hpbGQyPXdlYkV4dHJhY3ROb2RlKGNoaWxkLGFkZE5vZGVzLHJlbU5vZGVzLGRlcHRoKzEpO2lmKGNoaWxkMiE9PWZhbHNlKXtkb2MyLmFwcGVuZENoaWxkKGNoaWxkMik7aXNBcHBlbmQ9dHJ1ZTt9fX1lbHNle2lmKHJlbU5vZGVzPT11bmRlZmluZWQpe2RvYzIuYXBwZW5kQ2hpbGQoY2hpbGQuY2xvbmVOb2RlKHRydWUpKTtpc0FwcGVuZD10cnVlO31lbHNlIGlmKCF3ZWJOb2RlSW5MaXN0KGNoaWxkLHJlbU5vZGVzKSl7aWYoY2hpbGQuaGFzQ2hpbGROb2RlcygpKXt2YXIgY2hpbGQyPXdlYkV4dHJhY3ROb2RlKGNoaWxkLGNoaWxkLmNoaWxkTm9kZXMscmVtTm9kZXMsZGVwdGgrMSk7aWYoY2hpbGQyIT09ZmFsc2Upe2RvYzIuYXBwZW5kQ2hpbGQoY2hpbGQyKTtpc0FwcGVuZD10cnVlO319ZWxzZXtkb2MyLmFwcGVuZENoaWxkKGNoaWxkLmNsb25lTm9kZSh0cnVlKSk7aXNBcHBlbmQ9dHJ1ZTt9fX1jaGlsZD1jaGlsZC5uZXh0U2libGluZzt9cmV0dXJuIGlzQXBwZW5kP2RvYzI6ZmFsc2U7fWZ1bmN0aW9uIHdlYk5vZGVJbkxpc3Qobm9kZSxsaXN0KXt2YXIgbGVuPWxpc3QubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7aWYobm9kZS5pc1NhbWVOb2RlKGxpc3RbaV0pKXtyZXR1cm4gdHJ1ZTt9fXJldHVybiBmYWxzZTt9aWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oIndlYk1vZGUiKT09bWVudU5vdmFsTW9kZSYmISgvXlwvKGluZGV4XC5bYS16XXszLDR9KT8kLy50ZXN0KGxvY2F0aW9uLnBhdGhuYW1lKSYmbG9jYXRpb24uc2VhcmNoPT0iIikpe21lbnVOb3ZhbFJlYWQoKTt9aWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oIndlYk1vZGUiKT09bWVudUNvbWljTW9kZSYmISgvXlwvKGluZGV4XC5bYS16XXszLDR9KT8kLy50ZXN0KGxvY2F0aW9uLnBhdGhuYW1lKSYmbG9jYXRpb24uc2VhcmNoPT0iIikpe21lbnVDb21pY1JlYWQoKTt9dmFyIHNuaWZmU3VmZml4QXJyPVtbIi5tM3U4IiwiLm1wNCIsIi5mbHYiLCIucm12YiIsIi5hdmkiLCIuM2dwIiwiLndtdiIsIi53ZWJtIiwiLm1wZWciLCIudHMiXSxbIi5tcDMiLCIub2dnIiwiLmFhYyIsIi53bWEiLCIuZmxhYyIsIi53YXYiLCIubWlkIl0sWyIuaWNvIiwiLmpwZyIsIi5qcGVnIiwiLnBuZyIsIi5naWYiLCIuc3ZnIiwiLmJtcCIsIi5wc2QiLCIucHNkeCIsIi50aWZmIiwiLnRnYSIsIi5lcHMiLCIuZHdnIl0sWyIudHh0IiwiLmRvYyIsIi5kb2N4IiwiLnhscyIsIi54bHN4IiwiLnBwdCIsIi5wcHR4IiwiLnBkZiIsIi5lcHViIiwiLmNhaiJdLFsiLmpzIiwiLmNzcyIsIi5hcGsiLCIuemlwIiwiLjd6Il1dO3ZhciBzbmlmZkxpc3ROYW1lPVsi6KeG6aKRJmlmcmFtZSIsIumfs+mikSIsIuWbvueJhyIsIuaWh+ahoyIsIuWFtuWugyIsIuWFqOmDqCIsIua6kOeggSJdO3ZhciBzbmlmZlVybFBhdHRlcm49W107c25pZmZVcmxQYXR0ZXJuWzBdPS8iKChodHRwfGh0dHBzfGZ0cCk6XC9cLygoW1x3XC1dK1wuKStbYS16XSt8KFxkezEsM31cLil7M31cZHsxLDN9KSg6XGR7MSw1fSk/XC8oWyBcd1wtI1wuJV0rXC8pKlsgXHdcLSNcLiVdKnxcL1wvKChbXHdcLV0rXC4pK1thLXpdK3woXGR7MSwzfVwuKXszfVxkezEsM30pKDpcZHsxLDV9KT9cLyhbIFx3XC0jXC4lXStcLykqWyBcd1wtI1wuJV0qfFwvKFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXSp8KFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXStcLlxkKlthLXpdW2EtelxkXSopKFw/KChbIFx3XC0jXC4lXSs9WyBcd1wtI1wuJV0qJikqWyBcd1wtI1wuJV0rPVsgXHdcLSNcLiVdKnxbIFx3XC0jXC4lXSopKT8iL2lnbTtzbmlmZlVybFBhdHRlcm5bMV09L1woKChodHRwfGh0dHBzfGZ0cCk6XC9cLygoW1x3XC1dK1wuKStbYS16XSt8KFxkezEsM31cLil7M31cZHsxLDN9KSg6XGR7MSw1fSk/XC8oWyBcd1wtI1wuJV0rXC8pKlsgXHdcLSNcLiVdKnxcL1wvKChbXHdcLV0rXC4pK1thLXpdK3woXGR7MSwzfVwuKXszfVxkezEsM30pKDpcZHsxLDV9KT9cLyhbIFx3XC0jXC4lXStcLykqWyBcd1wtI1wuJV0qfFwvKFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXSp8KFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXStcLlxkKlthLXpdW2EtelxkXSopKFw/KChbIFx3XC0jXC4lXSs9WyBcd1wtI1wuJV0qJikqWyBcd1wtI1wuJV0rPVsgXHdcLSNcLiVdKnxbIFx3XC0jXC4lXSopKT9cKS9pZ207c25pZmZVcmxQYXR0ZXJuWzJdPS8nKChodHRwfGh0dHBzfGZ0cCk6XC9cLygoW1x3XC1dK1wuKStbYS16XSt8KFxkezEsM31cLil7M31cZHsxLDN9KSg6XGR7MSw1fSk/XC8oWyBcd1wtI1wuJV0rXC8pKlsgXHdcLSNcLiVdKnxcL1wvKChbXHdcLV0rXC4pK1thLXpdK3woXGR7MSwzfVwuKXszfVxkezEsM30pKDpcZHsxLDV9KT9cLyhbIFx3XC0jXC4lXStcLykqWyBcd1wtI1wuJV0qfFwvKFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXSp8KFsgXHdcLSNcLiVdK1wvKSpbIFx3XC0jXC4lXStcLlxkKlthLXpdW2EtelxkXSopKFw/KChbIFx3XC0jXC4lXSs9WyBcd1wtI1wuJV0qJikqWyBcd1wtI1wuJV0rPVsgXHdcLSNcLiVdKnxbIFx3XC0jXC4lXSopKT8nL2lnbTt2YXIgc25pZmZFbXB0eUVsZT1bIiEiLCJhcmVhIiwiYmFzZSIsImJyIiwiY29sIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1nIiwiaW5wdXQiLCJrZXlnZW4iLCJsaW5rIiwibWV0YSIsInBhcmFtIiwicG9seWdvbiIsInNvdXJjZSIsInRyYWNrIiwid2JyIl07dmFyIHNuaWZmVnNyYz1bXTt2YXIgc25pZmZTb3VyY2VDb2RlO2Z1bmN0aW9uIHNvdXJjZVNuaWZmKCl7dmFyIHZzcmNxPVtdO3ZhciB2c3JjMT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbc3JjXSIpO3ZhciB2c3JjMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaHJlZl0iKTtmb3IodmFyIGk9MDtpPHZzcmMxLmxlbmd0aDtpKyspe3ZzcmNxW3ZzcmNxLmxlbmd0aF09dnNyYzFbaV0uc3JjO31mb3IodmFyIGk9MDtpPHZzcmMyLmxlbmd0aDtpKyspe3ZzcmNxW3ZzcmNxLmxlbmd0aF09dnNyYzJbaV0uaHJlZjt9c25pZmZWc3JjPXNuaWZmVnNyYy5jb25jYXQodnNyY3EpO3ZhciB2d29yZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MO3ZhciB2c3Jjdz1bXTtmb3IodmFyIGk9MDtpPHNuaWZmVXJsUGF0dGVybi5sZW5ndGg7aSsrKXt2c3Jjd1tpXT12d29yZC5tYXRjaChzbmlmZlVybFBhdHRlcm5baV0pO2lmKHZzcmN3W2ldPT1udWxsKXt2c3Jjd1tpXT1bXTt9c25pZmZBZGRyKHZzcmN3W2ldKTtzbmlmZlZzcmM9c25pZmZWc3JjLmNvbmNhdCh2c3Jjd1tpXSk7fXNuaWZmQ25raShzbmlmZlZzcmMpO3NuaWZmVnNyY1tzbmlmZlZzcmMubGVuZ3RoXT12d29yZDtzbmlmZk1hdGNoKHNuaWZmVnNyYyk7c25pZmZWc3JjLnBvcCgpO31mdW5jdGlvbiBzbmlmZkFkZHIodnNyY2Epe2Zvcih2YXIgaT0wO2k8dnNyY2EubGVuZ3RoO2krKyl7dnNyY2FbaV09dnNyY2FbaV0uc3Vic3RyaW5nKDEsdnNyY2FbaV0ubGVuZ3RoLTEpO2lmKC9eXC9cLy8udGVzdCh2c3JjYVtpXSkpe3ZzcmNhW2ldPWxvY2F0aW9uLnByb3RvY29sK3ZzcmNhW2ldO31lbHNlIGlmKC9eXC8vLnRlc3QodnNyY2FbaV0pKXt2c3JjYVtpXT1sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2xvY2F0aW9uLmhvc3QrdnNyY2FbaV07fWVsc2UgaWYoISgvXihodHRwfGh0dHBzfGZ0cCk6Ly50ZXN0KHZzcmNhW2ldKSkpe3ZhciBzdHI9bG9jYXRpb24ucHJvdG9jb2wrIi8vIitsb2NhdGlvbi5ob3N0K2xvY2F0aW9uLnBhdGhuYW1lO3ZhciBoPXN0ci5sYXN0SW5kZXhPZigiLyIpKzE7dnNyY2FbaV09c3RyLnN1YnN0cmluZygwLGgpK3ZzcmNhW2ldO319fWZ1bmN0aW9uIHNuaWZmQ25raSh2c3JjYyl7dmFyIHBvcz0xO2Zvcih2YXIgaT0wO2k8dnNyY2MubGVuZ3RoOyl7cG9zPXZzcmNjLmluZGV4T2YodnNyY2NbaV0scG9zKTtpZihwb3MhPS0xKXt2c3JjYy5zcGxpY2UocG9zLDEpO31lbHNle3Bvcz0oKytpKSsxO319fWZ1bmN0aW9uIHNuaWZmTWF0Y2godnNyY20pe3ZhciB2YXJyPVtdO3ZhciBwYXR0ZXJuPVtdO2Zvcih2YXIgaT0wO2k8c25pZmZTdWZmaXhBcnIubGVuZ3RoO2krKyl7dmFycltpXT1bXTtwYXR0ZXJuW2ldPVtdO2Zvcih2YXIgaj0wO2o8c25pZmZTdWZmaXhBcnJbaV0ubGVuZ3RoO2orKyl7cGF0dGVybltpXVtqXT1uZXcgUmVnRXhwKCJcXCIrc25pZmZTdWZmaXhBcnJbaV1bal0rIlteQS1aYS16MC05XVtcc1xTXSp8XFwiK3NuaWZmU3VmZml4QXJyW2ldW2pdKyIkIiwiaSIpO319dmFyIGs9c25pZmZTdWZmaXhBcnIubGVuZ3RoO3ZhcnJba109W107Zm9yKHZhciB0PTA7dDx2c3JjbS5sZW5ndGgtMTt0Kyspe3ZhciBmZj10cnVlO2Zvcih2YXIgaT0wO2ZmJiZpPHNuaWZmU3VmZml4QXJyLmxlbmd0aDtpKyspe2Zvcih2YXIgaj0wO2o8c25pZmZTdWZmaXhBcnJbaV0ubGVuZ3RoO2orKyl7aWYocGF0dGVybltpXVtqXS50ZXN0KHZzcmNtW3RdKSl7dmFycltpXVt2YXJyW2ldLmxlbmd0aF09dnNyY21bdF07ZmY9ZmFsc2U7YnJlYWs7fX19dmFycltrXVt2YXJyW2tdLmxlbmd0aF09dnNyY21bdF07fXZhciBpZnJhbWVzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJRlJBTUUiKTtmb3IodmFyIGk9MDtpPGlmcmFtZXMubGVuZ3RoO2krKyl7dmFyIGlmcmFTcmM9aWZyYW1lc1tpXS5zcmM7aWYoaWZyYVNyYyE9bnVsbCYmaWZyYVNyYyE9IiIpe3ZhcnJbMF1bdmFyclswXS5sZW5ndGhdPWlmcmFTcmM7fX12YXJyW2srMV09W107aWYoc25pZmZTb3VyY2VDb2RlPT11bmRlZmluZWQpe3ZhciB4bWxIdHRwO3htbEh0dHA9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eG1sSHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZih4bWxIdHRwLnJlYWR5U3RhdGU9PTQmJnhtbEh0dHAuc3RhdHVzPT0yMDApe3NuaWZmU291cmNlQ29kZT14bWxIdHRwLnJlc3BvbnNlVGV4dDt2YXJyW2srMV1bMF09c25pZmZTb3VyY2VDb2RlO3ZhcnJbaysxXVsxXT0iPCEgRE9DVFlQRSBodG1sPlxuPGh0bWw+XG4iK3ZzcmNtW3ZzcmNtLmxlbmd0aC0xXSsiXG48L2h0bWw+IjtzbmlmZlNob3codmFycik7fX07eG1sSHR0cC5vcGVuKCJHRVQiLGxvY2F0aW9uLmhyZWYsZmFsc2UpO3htbEh0dHAub3ZlcnJpZGVNaW1lVHlwZSgidGV4dC9odG1sO2NoYXJzZXQ9Iitkb2N1bWVudC5jaGFyYWN0ZXJTZXQpO3htbEh0dHAuc2VuZCgpO31lbHNle3ZhcnJbaysxXVswXT1zbmlmZlNvdXJjZUNvZGU7dmFycltrKzFdWzFdPSI8ISBET0NUWVBFIGh0bWw+XG48aHRtbD5cbiIrdnNyY21bdnNyY20ubGVuZ3RoLTFdKyJcbjwvaHRtbD4iO3NuaWZmU2hvdyh2YXJyKTt9fWZ1bmN0aW9uIHNuaWZmU2hvdyh2YXJyKXt2YXIgc3RyPSI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4iO3N0cis9InZhciBzbmlmZkxpc3ROYW1lPVtdO3ZhciBkYXRhPVtdOyI7Zm9yKHZhciBpPTA7aTx2YXJyLmxlbmd0aDtpKyspe3N0cis9InNuaWZmTGlzdE5hbWVbIitpKyJdPVwiIitzbmlmZkxpc3ROYW1lW2ldKyJcIjtkYXRhWyIraSsiXT1bXTsiO3ZhciBsZW49dmFycltpXS5sZW5ndGg7Zm9yKHZhciBqPTA7ajxsZW47aisrKXtzdHIrPSJkYXRhWyIraSsiXVsiK2orIl09XCIiKyhpPHZhcnIubGVuZ3RoLTE/dmFycltpXVtqXTplc2NhcGUoc25pZmZGb3JtYXRIVE1MKHZhcnJbaV1bal0pKSkrIlwiOyI7fX1zdHIrPSJ2YXIgdmJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpO3Zib3guc3R5bGU9XCJmbG9hdDpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6MHB4O3RvcDoxMCU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzoxMHB4O2JvcmRlcjpibGFjayA1cHggc29saWQ7bWFyZ2luLWJvdHRvbToyMHB4O3RleHQtYWxpZ246Y2VudGVyO1wiO3ZhciB2dGl0bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIkgxXCIpO3Z0aXRsZS50ZXh0Q29udGVudD1cIui1hOa6kOWIl+ihqFwiO3ZhciB2Y2F0YWxvZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpO3ZjYXRhbG9nLnN0eWxlPVwiZmxvYXQ6bGVmdDtib3gtc2l6aW5nOmluaGVyaXQ7cGFkZGluZzo1cHggMHB4O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmVcIjt2Y2F0YWxvZy5zdHlsZS53aWR0aD0xMDAvc25pZmZMaXN0TmFtZS5sZW5ndGgrXCIlXCI7dmFyIHZjb250ZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJESVZcIik7dmNvbnRlbnQuc3R5bGU9XCJib3gtc2l6aW5nOmluaGVyaXQ7d2lkdGg6MTAwJTtcIjt2Y29udGVudC5pZD1cImNvbnRlbnRcIjt2YXIgdmE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIkFcIik7dmEuc3R5bGU9XCJkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6aW5oZXJpdDt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweDtib3JkZXI6YmxhY2sgNXB4IHNvbGlkO21hcmdpbjoxMHB4IDBweDtmb250LXNpemU6MzJweDtmb250LXdlaWdodDpib2xkO3doaXRlLXNwYWNlOnByZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc1wiO3ZhLnRhcmdldD1cIl9ibGFua1wiO3ZhciB2dGV4dGFyZWE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIkRJVlwiKTt2dGV4dGFyZWEuc3R5bGU9XCJmbG9hdDpsZWZ0O2JveC1zaXppbmc6aW5oZXJpdDtyZXNpemU6aG9yaXpvbnRhbDtoZWlnaHQ6NzAlO2JvcmRlcjpyZWQgM3B4IHNvbGlkO3RleHQtYWxpZ246bGVmdDt3aGl0ZS1zcGFjZTpwcmU7b3ZlcmZsb3c6YXV0bztcIjt2dGV4dGFyZWEuY29udGVudEVkaXRhYmxlPXRydWU7dmJveC5hcHBlbmRDaGlsZCh2dGl0bGUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmJveCk7dmFyIGNvbnRlbnRzPVtdO2luaXQoKTtmdW5jdGlvbiBpbml0KCl7dmFyIGtrO2Zvcih2YXIgaT0wO2k8c25pZmZMaXN0TmFtZS5sZW5ndGg7aSsrKXtpZihraz09dW5kZWZpbmVkJiZkYXRhW2ldLmxlbmd0aD4wKXtraz1pO312YXIgdmRpdj12Y2F0YWxvZy5jbG9uZU5vZGUoKTt2ZGl2LmlkPVwiY2F0YWxvZ1wiK2k7dmRpdi5kYXRhc2V0LmlkPWk7dmRpdi5pbm5lckhUTUw9XCI8aDI+XCIrc25pZmZMaXN0TmFtZVtpXStcIjxiciAvPihcIisoaTxzbmlmZkxpc3ROYW1lLmxlbmd0aC0xP2RhdGFbaV0ubGVuZ3RoOmRhdGFbaV1bMF0ubGVuZ3RoKStcIilcIjt2ZGl2Lm9uY2xpY2s9ZnVuY3Rpb24oKXtkZUJveCh0aGlzLmRhdGFzZXQuaWQpO307aWYoaT09c25pZmZMaXN0TmFtZS5sZW5ndGgtMSl7dmRpdi5vbnRvdWNoc3RhcnQ9ZnVuY3Rpb24oKXtscFN0YXJ0KG9wZW5VcmwpO307dmRpdi5vbnRvdWNobW92ZT1scE1vdmU7dmRpdi5vbnRvdWNoZW5kPWxwRW5kO312Ym94LmFwcGVuZENoaWxkKHZkaXYpO3ZhciBjb250ZW50PXZjb250ZW50LmNsb25lTm9kZSgpO3ZhciBsZW49ZGF0YVtpXS5sZW5ndGg7aWYoaTxzbmlmZkxpc3ROYW1lLmxlbmd0aC0xKXtmb3IodmFyIGo9MDtqPGxlbjtqKyspe3ZhciB2cz12YS5jbG9uZU5vZGUoKTt2cy5ocmVmPWRhdGFbaV1bal07dnMuaW5uZXJIVE1MPWRhdGFbaV1bal07Y29udGVudC5hcHBlbmRDaGlsZCh2cyk7fX1lbHNle2Zvcih2YXIgaj0wO2o8bGVuO2orKyl7dmFyIHZzPXZ0ZXh0YXJlYS5jbG9uZU5vZGUoKTt2cy5zdHlsZS53aWR0aD0oMTAwLShsZW4rMSkvMikvbGVuK1wiJVwiO2lmKGo9PTApe3ZzLnN0eWxlLm1hcmdpbkxlZnQ9XCIwLjUlXCI7fXZzLnN0eWxlLm1hcmdpblJpZ2h0PVwiMC41JVwiO3ZzLmlkPVwidGV4dGFyZWFcIitqO3ZzLmRhdGFzZXQuaWQ9ajt2cy50ZXh0Q29udGVudD11bmVzY2FwZShkYXRhW2ldW2pdKTt2cy5vbmNsaWNrPWZ1bmN0aW9uKCl7dmFyIGVsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNhdGFsb2dcIisoc25pZmZMaXN0TmFtZS5sZW5ndGgtMSkpO2VsZS5kYXRhc2V0LnZhbHVlPXRoaXMuZGF0YXNldC5pZDtlbGUuaW5uZXJIVE1MPVwiPGgyPlwiK3NuaWZmTGlzdE5hbWVbc25pZmZMaXN0TmFtZS5sZW5ndGgtMV0rXCI8YnIgLz4oXCIrZGF0YVtzbmlmZkxpc3ROYW1lLmxlbmd0aC0xXVt0aGlzLmRhdGFzZXQuaWRdLmxlbmd0aCtcIilcIjtmb3IodmFyIGs9MDtrPGxlbjtrKyspe3ZhciBlbGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0ZXh0YXJlYVwiK2spO2lmKGs9PXRoaXMuZGF0YXNldC5pZCl7ZWxlLnN0eWxlLndpZHRoPSgoMTAwLShsZW4rMSkvMikvKGxlbipsZW4pKygxMDAtKGxlbisxKS8yKS9sZW4qKGxlbi0xKSkrXCIlXCI7fWVsc2V7ZWxlLnN0eWxlLndpZHRoPSgxMDAtKGxlbisxKS8yKS8obGVuKmxlbikrXCIlXCI7fX19O2NvbnRlbnQuYXBwZW5kQ2hpbGQodnMpO319Y29udGVudHNbaV09Y29udGVudDt9dmJveC5hcHBlbmRDaGlsZCh2Y29udGVudCk7ZGVCb3goa2spO31mdW5jdGlvbiBkZUJveCh0KXtmb3IodmFyIGk9MDtpPHNuaWZmTGlzdE5hbWUubGVuZ3RoO2krKyl7dmFyIGVsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNhdGFsb2dcIitpKTtpZihpPT10KXtlbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yPVwiI2ZmZmYwMFwiO3ZhciBlbGUxPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY29udGVudFwiKTt2Ym94LnJlcGxhY2VDaGlsZChjb250ZW50c1tpXSxlbGUxKTt9ZWxzZXtlbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yPVwiI2ZmZmZmZlwiO319fWZ1bmN0aW9uIG9wZW5VcmwoKXt2YXIgZWxlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiY2F0YWxvZ1wiKyhzbmlmZkxpc3ROYW1lLmxlbmd0aC0xKSk7dmFyIGVsZTE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0ZXh0YXJlYVwiKyhlbGUuZGF0YXNldC52YWx1ZT09dW5kZWZpbmVkPzA6ZWxlLmRhdGFzZXQudmFsdWUpKTt2YXIgd2luPXdpbmRvdy5vcGVuKCk7d2luLmRvY3VtZW50Lm9wZW4oXCJ0ZXh0L2h0bWxcIixcInJlcGxhY2VcIik7d2luLmRvY3VtZW50LndyaXRlKGVsZTEudGV4dENvbnRlbnQpO3dpbi5kb2N1bWVudC5jbG9zZSgpO312YXIgdGltZUlEO2Z1bmN0aW9uIGxwU3RhcnQoZnVuYyl7dGltZUlEPXNldFRpbWVvdXQoZnVuYywxMDAwKTt9ZnVuY3Rpb24gbHBNb3ZlKCl7Y2xlYXJUaW1lb3V0KHRpbWVJRCk7fWZ1bmN0aW9uIGxwRW5kKCl7Y2xlYXJUaW1lb3V0KHRpbWVJRCk7fSI7c3RyKz0iPC9zY3JpcHQ+Ijt2YXIgd2luPXdpbmRvdy5vcGVuKCk7d2luLmRvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIsInJlcGxhY2UiKTt3aW4uZG9jdW1lbnQud3JpdGUoIjwhIERPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48dGl0bGU+6LWE5rqQ5YiX6KGoPC90aXRsZT48bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9OTgwcHgsaGVpZ2h0PTE0NDNweCx1c2VyLXNjYWxhYmxlPW5vXCIgLz4iKTt3aW4uZG9jdW1lbnQud3JpdGUoIjwvaGVhZD48Ym9keT4iKTt3aW4uZG9jdW1lbnQud3JpdGUoc3RyKTt3aW4uZG9jdW1lbnQud3JpdGUoIjwvYm9keT48L2h0bWw+Iik7d2luLmRvY3VtZW50LmNsb3NlKCk7fWZ1bmN0aW9uIHNuaWZmRm9ybWF0SFRNTChjb2RlKXt2YXIgbGVuPWNvZGUubGVuZ3RoO3ZhciBra2s7dmFyIHZjb2RlPSIiO2Zvcih2YXIgaT0wO2kqMTAwMDxsZW47aSsrKXtra2s9Y29kZS5zdWJzdHJpbmcoaSoxMDAwLChpKzEpKjEwMDA+bGVuP2xlbjooaSsxKSoxMDAwKTtra2s9a2trLnJlcGxhY2UoLz5bXHJcblx0IF0qL2csIj4iKTtra2s9a2trLnJlcGxhY2UoL1tcclxuXHQgXSo8L2csIjwiKTt2Y29kZSs9a2trO312YXIgcmVzdWx0PXZjb2RlO3ZhciBwYXR0PS88KFwvKT8oW1xkYS16XSspKCAuKj8pPz8oICpcLyk/Pnw8KCEpID9kb2N0eXBlIGh0bWw+fDwoISktLS4qPy0tPi9pZzt2YXIgcGF0dGVyPXBhdHQuZXhlYyh2Y29kZSk7dmFyIGJsYW5rTnVtPTA7dmFyIGxlbmd0aD0wO3ZhciBzdHIxO3ZhciBzdHIyO3ZhciBibGFuazE7dmFyIGJsYW5rMjt2YXIgaW52YWxpZD1udWxsO3doaWxlKHBhdHRlciE9bnVsbCl7aWYoaW52YWxpZD09bnVsbCl7c3RyMT1yZXN1bHQuc3Vic3RyaW5nKDAsbGVuZ3RoK3BhdHRlci5pbmRleCk7c3RyMj1yZXN1bHQuc3Vic3RyaW5nKGxlbmd0aCtwYXR0Lmxhc3RJbmRleCk7aWYoIXNuaWZmSXNFbXB0eUVsZShwYXR0ZXIpKXtpZihwYXR0ZXJbMV0hPXVuZGVmaW5lZCl7YmxhbmtOdW09YmxhbmtOdW09PTA/MDpibGFua051bS0xO2JsYW5rMT1zbmlmZkJsYW5rR2VuZXJhdG9yKGJsYW5rTnVtKTtibGFuazI9YmxhbmsxO31lbHNle2JsYW5rMT1zbmlmZkJsYW5rR2VuZXJhdG9yKGJsYW5rTnVtKTtibGFua051bSsrO2JsYW5rMj1ibGFuazErIlx0Ijt9fWVsc2V7YmxhbmsxPXNuaWZmQmxhbmtHZW5lcmF0b3IoYmxhbmtOdW0pO2JsYW5rMj1ibGFuazE7fXJlc3VsdD1zdHIxK2JsYW5rMStwYXR0ZXJbMF0rYmxhbmsyK3N0cjI7bGVuZ3RoKz1ibGFuazEubGVuZ3RoK2JsYW5rMi5sZW5ndGg7aWYocGF0dGVyWzFdPT11bmRlZmluZWQmJihwYXR0ZXJbMl09PSJzdHlsZSJ8fHBhdHRlclsyXT09InNjcmlwdCIpKXtpbnZhbGlkPXBhdHRlclsyXTt9ZWxzZXtwYXR0ZXI9cGF0dC5leGVjKHZjb2RlKTt9fWVsc2V7cGF0dGVyPXBhdHQuZXhlYyh2Y29kZSk7aWYocGF0dGVyWzJdPT1pbnZhbGlkKXtpbnZhbGlkPW51bGw7fX19cmVzdWx0PXJlc3VsdC5yZXBsYWNlKC8oKFxyXG58XG4pW1x0IF0qKSo8ISA/RE9DVFlQRSBodG1sPi9pLCI8ISBET0NUWVBFIGh0bWw+Iik7cmV0dXJuIHJlc3VsdC5yZXBsYWNlKC8+XG5bXHQgXSpcbi9nLCI+XG4iKTt9ZnVuY3Rpb24gc25pZmZJc0VtcHR5RWxlKHBhdHQpe2lmKHBhdHRbNF0hPXVuZGVmaW5lZCl7cmV0dXJuIHRydWU7fXZhciBlbGU9cGF0dFs2XSE9dW5kZWZpbmVkP3BhdHRbNl06KHBhdHRbNV0hPXVuZGVmaW5lZD9wYXR0WzVdOnBhdHRbMl0pO2VsZT1lbGUudG9Mb3dlckNhc2UoKTtmb3IodmFyIGk9MDtpPHNuaWZmRW1wdHlFbGUubGVuZ3RoO2krKyl7aWYoZWxlPT1zbmlmZkVtcHR5RWxlW2ldKXtyZXR1cm4gdHJ1ZTt9fXJldHVybiBmYWxzZTt9ZnVuY3Rpb24gc25pZmZCbGFua0dlbmVyYXRvcih0KXtzdHI9IiI7Zm9yKHZhciBpPTA7aTx0O2krKyl7c3RyKz0iXHQiO31yZXR1cm4gIlxuIitzdHI7fXZhciBtZW51T2xkSW5uZXJIZWlnaHQ9aW5uZXJIZWlnaHQ7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09ImNvbXBsZXRlIil7bWVudU9sZElubmVySGVpZ2h0PWlubmVySGVpZ2h0O31lbHNle3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe21lbnVPbGRJbm5lckhlaWdodD1pbm5lckhlaWdodDt9KTt9ZnVuY3Rpb24gaXNNZW51Q29tcHV0ZXIoKXtpZigvYW5kcm9pZHxpcGhvbmUvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXtsZXQgZWxlcz1tZW51RG9jSGVhZC5xdWVyeVNlbGVjdG9yQWxsKCJtZXRhW25hbWU9XCJ2aWV3cG9ydFwiXSIpO2Zvcih2YXIgaT0wO2k8ZWxlcy5sZW5ndGg7aSsrKXtpZigvd2lkdGg9ZGV2aWNlLXdpZHRofGluaXRpYWwtc2NhbGU9MShcLjApPy9pLnRlc3QoZWxlc1tpXS5jb250ZW50KSl7cmV0dXJuIGZhbHNlO319fXJldHVybiB0cnVlO319KSgpOwovLz09PT09PT09PT12aWEtcGx1Z2luOjI3PT09PT09PT09PQo=
Add Comment
Please, Sign In to add comment